Add Tags Gadgets
This commit is contained in:
185
main2.pb
185
main2.pb
@@ -461,6 +461,34 @@ Enumeration GadgetsIDs
|
|||||||
#GID_CbScope
|
#GID_CbScope
|
||||||
#GID_BtnSaveCfg
|
#GID_BtnSaveCfg
|
||||||
|
|
||||||
|
; === TAB 5: TAGS ===
|
||||||
|
#GID_Tab_Tags
|
||||||
|
#GID_FrmTagsList
|
||||||
|
#GID_ListTags
|
||||||
|
#GID_BtnCreateTag
|
||||||
|
#GID_BtnDeleteTag
|
||||||
|
#GID_BtnPushTag
|
||||||
|
#GID_BtnFetchTags
|
||||||
|
#GID_BtnCheckoutTag
|
||||||
|
|
||||||
|
; Frame création de tag
|
||||||
|
#GID_FrmCreateTag
|
||||||
|
#GID_LblTagName
|
||||||
|
#GID_EdTagName
|
||||||
|
#GID_LblTagType
|
||||||
|
#GID_OptTagLight
|
||||||
|
#GID_OptTagAnnotated
|
||||||
|
#GID_LblTagMessage
|
||||||
|
#GID_EdTagMessage
|
||||||
|
#GID_LblTagTarget
|
||||||
|
#GID_CbTagTarget
|
||||||
|
#GID_BtnApplyTag
|
||||||
|
#GID_BtnCancelTag
|
||||||
|
|
||||||
|
; Détails du tag
|
||||||
|
#GID_FrmTagDetails
|
||||||
|
#GID_TxtTagDetails
|
||||||
|
|
||||||
; --- App settings (langue) ---
|
; --- App settings (langue) ---
|
||||||
#GID_FrmApp
|
#GID_FrmApp
|
||||||
#GID_LblAppLang
|
#GID_LblAppLang
|
||||||
@@ -625,6 +653,42 @@ Procedure ResizeGUI()
|
|||||||
ResizeGadget(#GID_BtnSaveGitIgnore, #UI_Inset, #UI_Inset + gitEdH + #UI_Inset, 100, #UI_RowH)
|
ResizeGadget(#GID_BtnSaveGitIgnore, #UI_Inset, #UI_Inset + gitEdH + #UI_Inset, 100, #UI_RowH)
|
||||||
|
|
||||||
; Onglet 4 : statique (inchangé)
|
; Onglet 4 : statique (inchangé)
|
||||||
|
|
||||||
|
; === Onglet 5 : Tags ===
|
||||||
|
Protected tagsListH = (panelH - #UI_Inset*4) / 2
|
||||||
|
Protected tagsListInnerH = tagsListH - #UI_FrameHeaderH - #UI_RowH - #UI_Inset*2
|
||||||
|
If tagsListInnerH < 100 : tagsListInnerH = 100 : EndIf
|
||||||
|
|
||||||
|
ResizeGadget(#GID_FrmTagsList, #UI_Inset, #UI_Inset, panelW - #UI_Inset*2, tagsListH)
|
||||||
|
ResizeGadget(#GID_ListTags, #UI_Inset, #UI_FrameHeaderH,
|
||||||
|
GadgetWidth(#GID_FrmTagsList) - #UI_Inset*2, tagsListInnerH)
|
||||||
|
|
||||||
|
Protected yTagsButtons = GadgetHeight(#GID_FrmTagsList) - #UI_RowH - #UI_Inset
|
||||||
|
ResizeGadget(#GID_BtnCheckoutTag, #UI_Inset, yTagsButtons, 110, #UI_RowH)
|
||||||
|
ResizeGadget(#GID_BtnDeleteTag, RightOf(#GID_BtnCheckoutTag) + #UI_Inset, yTagsButtons, 110, #UI_RowH)
|
||||||
|
ResizeGadget(#GID_BtnPushTag, RightOf(#GID_BtnDeleteTag) + #UI_Inset, yTagsButtons, 110, #UI_RowH)
|
||||||
|
ResizeGadget(#GID_BtnFetchTags, RightOf(#GID_BtnPushTag) + #UI_Inset, yTagsButtons, 110, #UI_RowH)
|
||||||
|
|
||||||
|
Protected yCreateTag = BottomOf(#GID_FrmTagsList) + #UI_Inset
|
||||||
|
Protected createTagW = (panelW - #UI_Inset*3) / 2
|
||||||
|
Protected createTagH = panelH - yCreateTag - #UI_Inset
|
||||||
|
|
||||||
|
ResizeGadget(#GID_FrmCreateTag, #UI_Inset, yCreateTag, createTagW, createTagH)
|
||||||
|
ResizeGadget(#GID_EdTagName, RightOf(#GID_LblTagName) + #UI_Inset,
|
||||||
|
GadgetY(#GID_EdTagName), createTagW - 120 - #UI_Inset*3, #UI_RowH)
|
||||||
|
ResizeGadget(#GID_CbTagTarget, RightOf(#GID_LblTagTarget) + #UI_Inset,
|
||||||
|
GadgetY(#GID_CbTagTarget), createTagW - 120 - #UI_Inset*3, #UI_RowH)
|
||||||
|
ResizeGadget(#GID_EdTagMessage, #UI_Inset, GadgetY(#GID_EdTagMessage),
|
||||||
|
createTagW - #UI_Inset*2, 80)
|
||||||
|
|
||||||
|
Protected xDetails = RightOf(#GID_FrmCreateTag) + #UI_Inset
|
||||||
|
ResizeGadget(#GID_FrmTagDetails, xDetails, yCreateTag,
|
||||||
|
panelW - xDetails - #UI_Inset, createTagH)
|
||||||
|
ResizeGadget(#GID_TxtTagDetails, xDetails + #UI_Inset,
|
||||||
|
yCreateTag + #UI_FrameHeaderH,
|
||||||
|
GadgetWidth(#GID_FrmTagDetails) - #UI_Inset*2,
|
||||||
|
GadgetHeight(#GID_FrmTagDetails) - #UI_FrameHeaderH - #UI_Inset)
|
||||||
|
|
||||||
EndProcedure
|
EndProcedure
|
||||||
|
|
||||||
|
|
||||||
@@ -699,7 +763,18 @@ Procedure ApplyToolTips()
|
|||||||
GadgetToolTip(#GID_BtnApplyProxy,T("tip.proxy.apply", "Appliquer la configuration proxy dans Git"))
|
GadgetToolTip(#GID_BtnApplyProxy,T("tip.proxy.apply", "Appliquer la configuration proxy dans Git"))
|
||||||
|
|
||||||
|
|
||||||
|
; --- Tags ---
|
||||||
|
GadgetToolTip(#GID_ListTags, T("tip.tags.list", "Liste des tags du dépôt"))
|
||||||
|
GadgetToolTip(#GID_BtnCreateTag, T("tip.tags.create", "Créer un nouveau tag"))
|
||||||
|
GadgetToolTip(#GID_BtnDeleteTag, T("tip.tags.delete", "Supprimer le tag sélectionné"))
|
||||||
|
GadgetToolTip(#GID_BtnPushTag, T("tip.tags.push", "Envoyer le tag vers le dépôt distant"))
|
||||||
|
GadgetToolTip(#GID_BtnFetchTags, T("tip.tags.fetch", "Récupérer les tags du dépôt distant"))
|
||||||
|
GadgetToolTip(#GID_BtnCheckoutTag, T("tip.tags.checkout", "Basculer vers le tag sélectionné"))
|
||||||
|
GadgetToolTip(#GID_EdTagName, T("tip.tags.name", "Nom du tag (ex: v1.0.0)"))
|
||||||
|
GadgetToolTip(#GID_OptTagLight, T("tip.tags.light", "Tag léger (référence simple)"))
|
||||||
|
GadgetToolTip(#GID_OptTagAnnotated,T("tip.tags.annotated", "Tag annoté (avec message et signature)"))
|
||||||
|
GadgetToolTip(#GID_CbTagTarget, T("tip.tags.target", "Commit ou branche à taguer"))
|
||||||
|
GadgetToolTip(#GID_EdTagMessage, T("tip.tags.message", "Message descriptif du tag annoté"))
|
||||||
|
|
||||||
|
|
||||||
; --- Help (optionnel) ---
|
; --- Help (optionnel) ---
|
||||||
@@ -788,6 +863,7 @@ Enumeration
|
|||||||
#Panel_History
|
#Panel_History
|
||||||
#Panel_GitIgnore
|
#Panel_GitIgnore
|
||||||
#Panel_Config
|
#Panel_Config
|
||||||
|
#Panel_Tags
|
||||||
EndEnumeration
|
EndEnumeration
|
||||||
Procedure OpenGUI()
|
Procedure OpenGUI()
|
||||||
UseModule Translate
|
UseModule Translate
|
||||||
@@ -973,6 +1049,109 @@ Procedure OpenGUI()
|
|||||||
ButtonGadget(#GID_BtnApplyProxy, GadgetWidth(#GID_FrmProxy) - #UI_Inset - 140, #UI_Inset + 215, 140, #UI_RowH, T("Proxy.Apply","Appliquer proxy"))
|
ButtonGadget(#GID_BtnApplyProxy, GadgetWidth(#GID_FrmProxy) - #UI_Inset - 140, #UI_Inset + 215, 140, #UI_RowH, T("Proxy.Apply","Appliquer proxy"))
|
||||||
CloseGadgetList()
|
CloseGadgetList()
|
||||||
|
|
||||||
|
|
||||||
|
; ===========================================================================
|
||||||
|
; TAB 5: TAGS
|
||||||
|
; ===========================================================================
|
||||||
|
AddGadgetItem(#GID_Panel, #Panel_Tags, T("Tabs.Tags", "Tags"))
|
||||||
|
|
||||||
|
; ---- Frame: Liste des tags ----
|
||||||
|
FrameGadget(#GID_FrmTagsList, #UI_Inset, #UI_Inset,
|
||||||
|
GadgetWidth(#GID_Panel) - #UI_Inset*2,
|
||||||
|
(panelH - #UI_Inset*4) / 2,
|
||||||
|
T("Tags.FrameList", "Tags existants"), #PB_Frame_Container)
|
||||||
|
|
||||||
|
; Liste des tags avec colonnes
|
||||||
|
ListIconGadget(#GID_ListTags, #UI_Inset, #UI_FrameHeaderH,
|
||||||
|
GadgetWidth(#GID_FrmTagsList) - #UI_Inset*2,
|
||||||
|
GadgetHeight(#GID_FrmTagsList) - #UI_FrameHeaderH - #UI_RowH - #UI_Inset*2,
|
||||||
|
T("Tags.List.Name", "Nom"), 200,
|
||||||
|
#PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
|
||||||
|
AddGadgetColumn(#GID_ListTags, 1, T("Tags.List.Type", "Type"), 100)
|
||||||
|
AddGadgetColumn(#GID_ListTags, 2, T("Tags.List.Commit", "Commit"), 100)
|
||||||
|
AddGadgetColumn(#GID_ListTags, 3, T("Tags.List.Date", "Date"), 150)
|
||||||
|
AddGadgetColumn(#GID_ListTags, 4, T("Tags.List.Author", "Auteur"), 150)
|
||||||
|
AddGadgetColumn(#GID_ListTags, 5, T("Tags.List.Message", "Message"), 300)
|
||||||
|
|
||||||
|
; Boutons d'action pour les tags
|
||||||
|
Define yTagButtons = GadgetHeight(#GID_FrmTagsList) - #UI_RowH - #UI_Inset
|
||||||
|
ButtonGadget(#GID_BtnCheckoutTag, #UI_Inset, yTagButtons, 110, #UI_RowH,
|
||||||
|
T("Tags.Button.Checkout", "Checkout"))
|
||||||
|
ButtonGadget(#GID_BtnDeleteTag, RightOf(#GID_BtnCheckoutTag) + #UI_Inset, yTagButtons, 110, #UI_RowH,
|
||||||
|
T("Tags.Button.Delete", "Supprimer"))
|
||||||
|
ButtonGadget(#GID_BtnPushTag, RightOf(#GID_BtnDeleteTag) + #UI_Inset, yTagButtons, 110, #UI_RowH,
|
||||||
|
T("Tags.Button.Push", "Push Tag"))
|
||||||
|
ButtonGadget(#GID_BtnFetchTags, RightOf(#GID_BtnPushTag) + #UI_Inset, yTagButtons, 110, #UI_RowH,
|
||||||
|
T("Tags.Button.Fetch", "Fetch Tags"))
|
||||||
|
CloseGadgetList()
|
||||||
|
|
||||||
|
; ---- Frame: Création de tag ----
|
||||||
|
Define yCreateTag = BottomOf(#GID_FrmTagsList) + #UI_Inset
|
||||||
|
FrameGadget(#GID_FrmCreateTag, #UI_Inset, yCreateTag,
|
||||||
|
(GadgetWidth(#GID_Panel) - #UI_Inset*3) / 2,
|
||||||
|
panelH - yCreateTag - #UI_Inset,
|
||||||
|
T("Tags.FrameCreate", "Créer un tag"), #PB_Frame_Container)
|
||||||
|
|
||||||
|
; Nom du tag
|
||||||
|
TextGadget(#GID_LblTagName, #UI_Inset, #UI_FrameHeaderH + #UI_Inset, 100, #UI_RowH,
|
||||||
|
T("Tags.Label.Name", "Nom :"))
|
||||||
|
StringGadget(#GID_EdTagName, RightOf(#GID_LblTagName) + #UI_Inset,
|
||||||
|
#UI_FrameHeaderH + #UI_Inset,
|
||||||
|
GadgetWidth(#GID_FrmCreateTag) - 120 - #UI_Inset*3, #UI_RowH, "")
|
||||||
|
|
||||||
|
; Type de tag
|
||||||
|
Define yTagType = BottomOf(#GID_EdTagName) + #UI_Inset
|
||||||
|
TextGadget(#GID_LblTagType, #UI_Inset, yTagType, 100, #UI_RowH,
|
||||||
|
T("Tags.Label.Type", "Type :"))
|
||||||
|
OptionGadget(#GID_OptTagLight, RightOf(#GID_LblTagType) + #UI_Inset, yTagType, 100, #UI_RowH,
|
||||||
|
T("Tags.Type.Light", "Léger"))
|
||||||
|
OptionGadget(#GID_OptTagAnnotated, RightOf(#GID_OptTagLight) + #UI_Inset, yTagType, 100, #UI_RowH,
|
||||||
|
T("Tags.Type.Annotated", "Annoté"))
|
||||||
|
SetGadgetState(#GID_OptTagAnnotated, 1) ; Par défaut : tag annoté
|
||||||
|
|
||||||
|
; Cible du tag (commit/branche)
|
||||||
|
Define yTagTarget = BottomOf(#GID_OptTagLight) + #UI_Inset
|
||||||
|
TextGadget(#GID_LblTagTarget, #UI_Inset, yTagTarget, 100, #UI_RowH,
|
||||||
|
T("Tags.Label.Target", "Cible :"))
|
||||||
|
ComboBoxGadget(#GID_CbTagTarget, RightOf(#GID_LblTagTarget) + #UI_Inset, yTagTarget,
|
||||||
|
GadgetWidth(#GID_FrmCreateTag) - 120 - #UI_Inset*3, #UI_RowH)
|
||||||
|
AddGadgetItem(#GID_CbTagTarget, -1, "HEAD")
|
||||||
|
AddGadgetItem(#GID_CbTagTarget, -1, T("Tags.Target.SelectCommit", "Sélectionner un commit..."))
|
||||||
|
SetGadgetState(#GID_CbTagTarget, 0)
|
||||||
|
|
||||||
|
; Message du tag (pour les tags annotés)
|
||||||
|
Define yTagMessage = BottomOf(#GID_CbTagTarget) + #UI_Inset
|
||||||
|
TextGadget(#GID_LblTagMessage, #UI_Inset, yTagMessage, 100, #UI_RowH,
|
||||||
|
T("Tags.Label.Message", "Message :"))
|
||||||
|
EditorGadget(#GID_EdTagMessage, #UI_Inset, BottomOf(#GID_LblTagMessage) + 5,
|
||||||
|
GadgetWidth(#GID_FrmCreateTag) - #UI_Inset*2, 80)
|
||||||
|
|
||||||
|
; Boutons Créer/Annuler
|
||||||
|
Define yCreateButtons = BottomOf(#GID_EdTagMessage) + #UI_Inset
|
||||||
|
ButtonGadget(#GID_BtnApplyTag, #UI_Inset, yCreateButtons, 100, #UI_RowH,
|
||||||
|
T("Tags.Button.Create", "Créer"))
|
||||||
|
ButtonGadget(#GID_BtnCancelTag, RightOf(#GID_BtnApplyTag) + #UI_Inset, yCreateButtons, 100, #UI_RowH,
|
||||||
|
T("Tags.Button.Cancel", "Annuler"))
|
||||||
|
ButtonGadget(#GID_BtnCreateTag, RightOf(#GID_BtnCancelTag) + #UI_Inset, yCreateButtons, 140, #UI_RowH,
|
||||||
|
T("Tags.Button.NewTag", "+ Nouveau Tag"))
|
||||||
|
CloseGadgetList()
|
||||||
|
|
||||||
|
; ---- Frame: Détails du tag sélectionné ----
|
||||||
|
Define xDetails = RightOf(#GID_FrmCreateTag) + #UI_Inset
|
||||||
|
FrameGadget(#GID_FrmTagDetails, xDetails, yCreateTag,
|
||||||
|
GadgetWidth(#GID_Panel) - xDetails - #UI_Inset,
|
||||||
|
panelH - yCreateTag - #UI_Inset,
|
||||||
|
T("Tags.FrameDetails", "Détails du tag"), #PB_Frame_Container)
|
||||||
|
|
||||||
|
EditorGadget(#GID_TxtTagDetails, xDetails + #UI_Inset,
|
||||||
|
yCreateTag + #UI_FrameHeaderH,
|
||||||
|
GadgetWidth(#GID_FrmTagDetails) - #UI_Inset*2,
|
||||||
|
GadgetHeight(#GID_FrmTagDetails) - #UI_FrameHeaderH - #UI_Inset,
|
||||||
|
#PB_Editor_ReadOnly | #PB_Editor_WordWrap)
|
||||||
|
CloseGadgetList()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; --- End tabs ---
|
; --- End tabs ---
|
||||||
CloseGadgetList()
|
CloseGadgetList()
|
||||||
|
|
||||||
@@ -1924,8 +2103,8 @@ EndProcedure
|
|||||||
Main()
|
Main()
|
||||||
|
|
||||||
; IDE Options = PureBasic 6.21 (Windows - x64)
|
; IDE Options = PureBasic 6.21 (Windows - x64)
|
||||||
; CursorPosition = 771
|
; CursorPosition = 776
|
||||||
; FirstLine = 752
|
; FirstLine = 721
|
||||||
; Folding = ---------
|
; Folding = ---------
|
||||||
; EnableThread
|
; EnableThread
|
||||||
; EnableXP
|
; EnableXP
|
||||||
|
Reference in New Issue
Block a user