Add 2 branchs selectors
This commit is contained in:
192
main2.pb
192
main2.pb
@@ -399,14 +399,19 @@ Enumeration GadgetsIDs
|
|||||||
#GID_BtnBrowseRepo
|
#GID_BtnBrowseRepo
|
||||||
#GID_BtnInit
|
#GID_BtnInit
|
||||||
#GID_BtnRefresh
|
#GID_BtnRefresh
|
||||||
|
; --- NEW: Local branches ---
|
||||||
|
#GID_LblLocalBranch
|
||||||
|
#GID_CbLocalBranch
|
||||||
|
#GID_BtnNewLocalBranch
|
||||||
|
|
||||||
; Remote frame
|
; Remote frame
|
||||||
#GID_FrmRemote
|
#GID_FrmRemote
|
||||||
#GID_LblRemote
|
#GID_LblRemote
|
||||||
#GID_EdRemote
|
#GID_EdRemote
|
||||||
#GID_LblBranch
|
; --- NEW: Remote branches ---
|
||||||
#GID_CbBranch
|
#GID_LblRemoteBranch
|
||||||
#GID_BtnNewBranch
|
#GID_CbRemoteBranch
|
||||||
|
#GID_BtnNewRemoteBranch
|
||||||
#GID_BtnClone
|
#GID_BtnClone
|
||||||
#GID_BtnPull
|
#GID_BtnPull
|
||||||
#GID_BtnPush
|
#GID_BtnPush
|
||||||
@@ -451,7 +456,7 @@ Enumeration GadgetsIDs
|
|||||||
#GID_CbScope
|
#GID_CbScope
|
||||||
#GID_BtnSaveCfg
|
#GID_BtnSaveCfg
|
||||||
|
|
||||||
; --- App settings (langue) ---
|
; --- App settings (langue) ---
|
||||||
#GID_FrmApp
|
#GID_FrmApp
|
||||||
#GID_LblAppLang
|
#GID_LblAppLang
|
||||||
#GID_CbAppLang
|
#GID_CbAppLang
|
||||||
@@ -482,6 +487,7 @@ Enumeration GadgetsIDs
|
|||||||
#GID_BtnApplyProxy
|
#GID_BtnApplyProxy
|
||||||
EndEnumeration
|
EndEnumeration
|
||||||
|
|
||||||
|
|
||||||
; -----------------------------------------------------------------------------
|
; -----------------------------------------------------------------------------
|
||||||
; SMALL HELPERS / AIDES UTILITAIRES
|
; SMALL HELPERS / AIDES UTILITAIRES
|
||||||
; -----------------------------------------------------------------------------
|
; -----------------------------------------------------------------------------
|
||||||
@@ -498,7 +504,7 @@ Procedure ResizeGUI()
|
|||||||
If winW < #UI_WinMinW : winW = #UI_WinMinW : EndIf
|
If winW < #UI_WinMinW : winW = #UI_WinMinW : EndIf
|
||||||
If winH < #UI_WinMinH : winH = #UI_WinMinH : EndIf
|
If winH < #UI_WinMinH : winH = #UI_WinMinH : EndIf
|
||||||
|
|
||||||
; Left panel width adapts, but keeps at least minimum
|
; Largeur du panel gauche (avec min/max)
|
||||||
Protected panelW = #UI_PanelStartW
|
Protected panelW = #UI_PanelStartW
|
||||||
panelW = Min(panelW, winW - #UI_HelpMinW - #UI_Margin*4)
|
panelW = Min(panelW, winW - #UI_HelpMinW - #UI_Margin*4)
|
||||||
panelW = Max(panelW, #UI_PanelMinW)
|
panelW = Max(panelW, #UI_PanelMinW)
|
||||||
@@ -506,59 +512,85 @@ Procedure ResizeGUI()
|
|||||||
Protected panelH = winH - #UI_Margin*2
|
Protected panelH = winH - #UI_Margin*2
|
||||||
ResizeGadget(#GID_Panel, #UI_Margin, #UI_Margin, panelW, panelH)
|
ResizeGadget(#GID_Panel, #UI_Margin, #UI_Margin, panelW, panelH)
|
||||||
|
|
||||||
; Help / Aide area on the right fills the remaining space
|
; Zone d’aide à droite
|
||||||
Protected helpX = #UI_Margin*2 + panelW
|
Protected helpX = #UI_Margin*2 + panelW
|
||||||
Protected helpW = winW - helpX - #UI_Margin
|
Protected helpW = winW - helpX - #UI_Margin
|
||||||
Protected helpH = panelH
|
Protected helpH = panelH
|
||||||
|
|
||||||
ResizeGadget(#GID_HelpFrame, helpX, #UI_Margin, helpW, helpH)
|
ResizeGadget(#GID_HelpFrame, helpX, #UI_Margin, helpW, helpH)
|
||||||
; WebView inside frame (with padding and header)
|
|
||||||
Protected innerX = helpX + #UI_Inset
|
Protected innerX = helpX + #UI_Inset
|
||||||
Protected innerY = #UI_Margin + #UI_FrameHeaderH
|
Protected innerY = #UI_Margin + #UI_FrameHeaderH
|
||||||
Protected innerW = helpW - #UI_Inset*2
|
Protected innerW = helpW - #UI_Inset*2
|
||||||
Protected innerH = helpH - #UI_Inset - #UI_FrameHeaderH
|
Protected innerH = helpH - #UI_Inset - #UI_FrameHeaderH
|
||||||
ResizeGadget(#GID_HelpWeb, innerX, innerY, innerW, innerH)
|
ResizeGadget(#GID_HelpWeb, innerX, innerY, innerW, innerH)
|
||||||
|
|
||||||
; --- Resize essentials inside tabs (keep it simple & robust) ---
|
; === Onglet 1 : Local + Remote + Files ===
|
||||||
; TAB 1: Files list should expand with panel height
|
; Étire les frames Local/Remote à la nouvelle largeur et recalcule l'empilement
|
||||||
|
Protected hLocal = GadgetHeight(#GID_FrmLocal)
|
||||||
|
Protected hRemote = GadgetHeight(#GID_FrmRemote)
|
||||||
|
|
||||||
|
ResizeGadget(#GID_FrmLocal, #UI_Inset, #UI_Inset, panelW - #UI_Inset*2, hLocal)
|
||||||
|
|
||||||
|
Protected yRemote = BottomOf(#GID_FrmLocal) + #UI_Inset
|
||||||
|
ResizeGadget(#GID_FrmRemote, #UI_Inset, yRemote, panelW - #UI_Inset*2, hRemote)
|
||||||
|
|
||||||
|
; --- Ajuste les contrôles internes dépendants de la largeur ---
|
||||||
|
; LOCAL: Combo branche + bouton
|
||||||
|
Protected yLocalBranch = GadgetY(#GID_CbLocalBranch)
|
||||||
|
Protected cbLocalW = GadgetWidth(#GID_FrmLocal) - #UI_Inset*4 - GadgetWidth(#GID_LblLocalBranch) - 150
|
||||||
|
If cbLocalW < 120 : cbLocalW = 120 : EndIf
|
||||||
|
ResizeGadget(#GID_CbLocalBranch, RightOf(#GID_LblLocalBranch), yLocalBranch, cbLocalW, #UI_RowH)
|
||||||
|
ResizeGadget(#GID_BtnNewLocalBranch, RightOf(#GID_CbLocalBranch) + #UI_Inset, yLocalBranch, 150, #UI_RowH)
|
||||||
|
|
||||||
|
; REMOTE: URL + combo branche distante + bouton
|
||||||
|
Protected yRemoteUrl = GadgetY(#GID_EdRemote)
|
||||||
|
Protected edRemoteW = GadgetWidth(#GID_FrmRemote) - #UI_Inset*2 - GadgetWidth(#GID_LblRemote) - #UI_Inset
|
||||||
|
If edRemoteW < 120 : edRemoteW = 120 : EndIf
|
||||||
|
ResizeGadget(#GID_EdRemote, RightOf(#GID_LblRemote) + #UI_Inset, yRemoteUrl, edRemoteW, #UI_RowH)
|
||||||
|
|
||||||
|
Protected yRemoteBranch = GadgetY(#GID_CbRemoteBranch)
|
||||||
|
Protected cbRemoteW = GadgetWidth(#GID_FrmRemote) - #UI_Inset*3 - GadgetWidth(#GID_LblRemoteBranch) - 160
|
||||||
|
If cbRemoteW < 120 : cbRemoteW = 120 : EndIf
|
||||||
|
ResizeGadget(#GID_CbRemoteBranch, RightOf(#GID_LblRemoteBranch), yRemoteBranch, cbRemoteW, #UI_RowH)
|
||||||
|
ResizeGadget(#GID_BtnNewRemoteBranch, RightOf(#GID_CbRemoteBranch) + #UI_Inset, yRemoteBranch, 160, #UI_RowH)
|
||||||
|
|
||||||
|
; FILES: prend tout l'espace restant
|
||||||
Protected filesTop = BottomOf(#GID_FrmRemote) + #UI_Inset
|
Protected filesTop = BottomOf(#GID_FrmRemote) + #UI_Inset
|
||||||
Protected filesH = panelH - filesTop - #UI_Inset
|
Protected filesH = panelH - filesTop - #UI_Inset
|
||||||
|
If filesH < 150 : filesH = 150 : EndIf
|
||||||
ResizeGadget(#GID_FrmFiles, #UI_Inset, filesTop, panelW - #UI_Inset*2, filesH)
|
ResizeGadget(#GID_FrmFiles, #UI_Inset, filesTop, panelW - #UI_Inset*2, filesH)
|
||||||
|
|
||||||
Protected listMargin = #UI_Inset
|
|
||||||
Protected listH = filesH - #UI_RowH*2 - #UI_Inset*4 - #UI_FrameHeaderH
|
Protected listH = filesH - #UI_RowH*2 - #UI_Inset*4 - #UI_FrameHeaderH
|
||||||
If listH < 100 : listH = 100 : EndIf
|
If listH < 100 : listH = 100 : EndIf
|
||||||
ResizeGadget(#GID_ListStatus, #UI_Inset, #UI_FrameHeaderH, GadgetWidth(#GID_FrmFiles) - #UI_Inset*2, listH)
|
ResizeGadget(#GID_ListStatus, #UI_Inset, #UI_FrameHeaderH, GadgetWidth(#GID_FrmFiles) - #UI_Inset*2, listH)
|
||||||
|
|
||||||
; Buttons row positions under list
|
|
||||||
Protected btnY = #UI_FrameHeaderH + listH + #UI_Inset
|
Protected btnY = #UI_FrameHeaderH + listH + #UI_Inset
|
||||||
ResizeGadget(#GID_BtnRestore, #UI_Inset + 10, btnY, 110, #UI_RowH)
|
ResizeGadget(#GID_BtnRestore, #UI_Inset + 10, btnY, 110, #UI_RowH)
|
||||||
ResizeGadget(#GID_BtnRename, #UI_Inset + 130, btnY, 110, #UI_RowH)
|
ResizeGadget(#GID_BtnRename, #UI_Inset + 130, btnY, 110, #UI_RowH)
|
||||||
ResizeGadget(#GID_BtnDelete, #UI_Inset + 250, btnY, 110, #UI_RowH)
|
ResizeGadget(#GID_BtnDelete, #UI_Inset + 250, btnY, 110, #UI_RowH)
|
||||||
ResizeGadget(#GID_BtnIgnore, #UI_Inset + 370, btnY, 110, #UI_RowH)
|
ResizeGadget(#GID_BtnIgnore, #UI_Inset + 370, btnY, 110, #UI_RowH)
|
||||||
|
|
||||||
; Commit message line under the buttons
|
|
||||||
Protected msgY = btnY + #UI_RowH + #UI_Inset
|
Protected msgY = btnY + #UI_RowH + #UI_Inset
|
||||||
ResizeGadget(#GID_LblMessage, #UI_Inset + 10, msgY + 4, 80, 22)
|
ResizeGadget(#GID_LblMessage, #UI_Inset + 10, msgY + 4, 80, 22)
|
||||||
ResizeGadget(#GID_BtnCommit, GadgetWidth(#GID_FrmFiles) - #UI_Inset - 100, msgY - 2, 100, #UI_RowH)
|
ResizeGadget(#GID_BtnCommit, GadgetWidth(#GID_FrmFiles) - #UI_Inset - 100, msgY - 2, 100, #UI_RowH)
|
||||||
ResizeGadget(#GID_EdMessage, #UI_Inset + 95, msgY, GadgetX(#GID_BtnCommit) - (#UI_Inset + 95) - #UI_Inset, #UI_RowH)
|
ResizeGadget(#GID_EdMessage, #UI_Inset + 95, msgY, GadgetX(#GID_BtnCommit) - (#UI_Inset + 95) - #UI_Inset, #UI_RowH)
|
||||||
|
|
||||||
; TAB 2: History List + editor
|
; === Onglet 2 : History ===
|
||||||
Protected histListH = panelH - #UI_Margin*2 - #UI_RowH - 10 - 150 - 10
|
Protected histListH = panelH - #UI_Margin*2 - #UI_RowH - 10 - 150 - 10
|
||||||
If histListH < 100 : histListH = 100 : EndIf
|
If histListH < 100 : histListH = 100 : EndIf
|
||||||
ResizeGadget(#GID_ListHistory, #UI_Inset, #UI_Inset, panelW - #UI_Inset*2, histListH)
|
ResizeGadget(#GID_ListHistory, #UI_Inset, #UI_Inset, panelW - #UI_Inset*2, histListH)
|
||||||
ResizeGadget(#GID_BtnRestoreCommit, #UI_Inset, #UI_Inset + histListH + #UI_Inset, 180, #UI_RowH)
|
ResizeGadget(#GID_BtnRestoreCommit, #UI_Inset, #UI_Inset + histListH + #UI_Inset, 180, #UI_RowH)
|
||||||
ResizeGadget(#GID_TxtCommitInfo, #UI_Inset, panelH - #UI_Inset - 150, panelW - #UI_Inset*2, 150)
|
ResizeGadget(#GID_TxtCommitInfo, #UI_Inset, panelH - #UI_Inset - 150, panelW - #UI_Inset*2, 150)
|
||||||
|
|
||||||
; TAB 3: .gitignore
|
; === Onglet 3 : .gitignore ===
|
||||||
Protected gitEdH = panelH - #UI_Inset*4 - #UI_RowH
|
Protected gitEdH = panelH - #UI_Inset*4 - #UI_RowH
|
||||||
ResizeGadget(#GID_TxtGitIgnore, #UI_Inset, #UI_Inset, panelW - #UI_Inset*2, gitEdH)
|
ResizeGadget(#GID_TxtGitIgnore, #UI_Inset, #UI_Inset, panelW - #UI_Inset*2, gitEdH)
|
||||||
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)
|
||||||
|
|
||||||
; TAB 4: Config frame fits content (kept constant height)
|
; Onglet 4 : statique (inchangé)
|
||||||
; (no additional dynamic resize needed here)
|
|
||||||
EndProcedure
|
EndProcedure
|
||||||
|
|
||||||
|
|
||||||
; -----------------------------------------------------------------------------
|
; -----------------------------------------------------------------------------
|
||||||
; Tooltips & i18n
|
; Tooltips & i18n
|
||||||
; FR: Appeler après la création des gadgets, puis après tout changement de langue.
|
; FR: Appeler après la création des gadgets, puis après tout changement de langue.
|
||||||
@@ -573,8 +605,18 @@ Procedure ApplyToolTips()
|
|||||||
|
|
||||||
; --- Remote / Branch ---
|
; --- Remote / Branch ---
|
||||||
GadgetToolTip(#GID_EdRemote, T("tip.remote", "URL du remote (ex.: https://... ou git@host:org/repo.git)"))
|
GadgetToolTip(#GID_EdRemote, T("tip.remote", "URL du remote (ex.: https://... ou git@host:org/repo.git)"))
|
||||||
GadgetToolTip(#GID_CbBranch, T("tip.branch.select", "Choisir la branche active"))
|
|
||||||
GadgetToolTip(#GID_BtnNewBranch, T("tip.branch.new", "Créer une nouvelle branche"))
|
; Local branches
|
||||||
|
GadgetToolTip(#GID_CbLocalBranch, T("tip.branch.local.select", "Choisir la branche locale active"))
|
||||||
|
GadgetToolTip(#GID_BtnNewLocalBranch,T("tip.branch.local.new", "Créer une nouvelle branche locale"))
|
||||||
|
|
||||||
|
; Remote branches
|
||||||
|
GadgetToolTip(#GID_CbRemoteBranch, T("tip.branch.remote.select", "Choisir une branche distante (remote-tracking)"))
|
||||||
|
GadgetToolTip(#GID_BtnNewRemoteBranch,T("tip.branch.remote.new", "Créer une branche sur le dépôt distant / publier"))
|
||||||
|
|
||||||
|
|
||||||
|
; --- Remote / Branch ---
|
||||||
|
GadgetToolTip(#GID_EdRemote, T("tip.remote", "URL du remote (ex.: https://... ou git@host:org/repo.git)"))
|
||||||
GadgetToolTip(#GID_BtnClone, T("tip.clone", "Cloner depuis l’URL remote"))
|
GadgetToolTip(#GID_BtnClone, T("tip.clone", "Cloner depuis l’URL remote"))
|
||||||
GadgetToolTip(#GID_BtnPull, T("tip.pull", "Récupérer et fusionner depuis le remote"))
|
GadgetToolTip(#GID_BtnPull, T("tip.pull", "Récupérer et fusionner depuis le remote"))
|
||||||
GadgetToolTip(#GID_BtnPush, T("tip.push", "Envoyer vos commits sur le remote"))
|
GadgetToolTip(#GID_BtnPush, T("tip.push", "Envoyer vos commits sur le remote"))
|
||||||
@@ -645,8 +687,8 @@ Procedure OpenGUI()
|
|||||||
; ===========================================================================
|
; ===========================================================================
|
||||||
AddGadgetItem(#GID_Panel, -1, T("Tab.Repo", "Dépôt"))
|
AddGadgetItem(#GID_Panel, -1, T("Tab.Repo", "Dépôt"))
|
||||||
|
|
||||||
; ---- Frame: Local repository ------------------------------------------------
|
; ---- Frame: Local repository ------------------------------------------------
|
||||||
FrameGadget(#GID_FrmLocal, #UI_Inset, #UI_Inset, GadgetWidth(#GID_Panel) - #UI_Inset*2, #UI_FrameHeaderH + #UI_RowH*2 + #UI_Inset*2, T("Local.FrameTitle", "Dépôt local"), #PB_Frame_Container)
|
FrameGadget(#GID_FrmLocal, #UI_Inset, #UI_Inset, GadgetWidth(#GID_Panel) - #UI_Inset*2, #UI_FrameHeaderH + #UI_RowH*3 + #UI_Inset*3, T("Local.FrameTitle", "Dépôt local"), #PB_Frame_Container)
|
||||||
|
|
||||||
TextGadget(#GID_LblRepo, #UI_Inset, #UI_FrameHeaderH, 70, #UI_RowH, T("Local.Label.Repo","Dépôt :"))
|
TextGadget(#GID_LblRepo, #UI_Inset, #UI_FrameHeaderH, 70, #UI_RowH, T("Local.Label.Repo","Dépôt :"))
|
||||||
StringGadget(#GID_EdRepo, RightOf(#GID_LblRepo) + #UI_Inset, #UI_FrameHeaderH, GadgetWidth(#GID_FrmLocal) - #UI_Inset*4 - 70 - #UI_BtnW, #UI_RowH, repoDir$)
|
StringGadget(#GID_EdRepo, RightOf(#GID_LblRepo) + #UI_Inset, #UI_FrameHeaderH, GadgetWidth(#GID_FrmLocal) - #UI_Inset*4 - 70 - #UI_BtnW, #UI_RowH, repoDir$)
|
||||||
@@ -654,55 +696,76 @@ Procedure OpenGUI()
|
|||||||
|
|
||||||
ButtonGadget(#GID_BtnInit, #UI_Inset, BottomOf(#GID_BtnBrowseRepo) + #UI_Inset, #UI_BtnW, #UI_RowH, T("Local.Button.Init","Init Dépôt"))
|
ButtonGadget(#GID_BtnInit, #UI_Inset, BottomOf(#GID_BtnBrowseRepo) + #UI_Inset, #UI_BtnW, #UI_RowH, T("Local.Button.Init","Init Dépôt"))
|
||||||
ButtonGadget(#GID_BtnRefresh, RightOf(#GID_BtnInit) + #UI_Inset, GadgetY(#GID_BtnInit), #UI_BtnW, #UI_RowH, T("Local.Button.Refresh","Rafraîchir"))
|
ButtonGadget(#GID_BtnRefresh, RightOf(#GID_BtnInit) + #UI_Inset, GadgetY(#GID_BtnInit), #UI_BtnW, #UI_RowH, T("Local.Button.Refresh","Rafraîchir"))
|
||||||
|
|
||||||
|
; --- NEW: branche locale (sélecteur + bouton) ---
|
||||||
|
Define yLocalBranch = BottomOf(#GID_BtnRefresh) + #UI_Inset
|
||||||
|
TextGadget(#GID_LblLocalBranch, #UI_Inset, yLocalBranch, 120, #UI_RowH, T("Local.Label.Branch","Branche locale :"))
|
||||||
|
ComboBoxGadget(#GID_CbLocalBranch, RightOf(#GID_LblLocalBranch), yLocalBranch, GadgetWidth(#GID_FrmLocal) - #UI_Inset*4 - 120 - 150, #UI_RowH, #PB_ComboBox_Editable)
|
||||||
|
ButtonGadget(#GID_BtnNewLocalBranch, RightOf(#GID_CbLocalBranch) + #UI_Inset, yLocalBranch, 150, #UI_RowH, T("Local.Button.NewBranch","+ Nouvelle branche"))
|
||||||
CloseGadgetList()
|
CloseGadgetList()
|
||||||
|
|
||||||
; ---- Frame: Remote / Branche ------------------------------------------------
|
; ---- Frame: Remote / Branche ------------------------------------------------
|
||||||
Define yRemote = BottomOf(#GID_FrmLocal) + #UI_Inset
|
Define yRemote = BottomOf(#GID_FrmLocal) + #UI_Inset
|
||||||
FrameGadget(#GID_FrmRemote, #UI_Inset, yRemote, GadgetWidth(#GID_Panel) - #UI_Inset*2, #UI_FrameHeaderH + #UI_RowH*4 + #UI_Inset*4, T("Remote.FrameTitle","Distant (remote / branche)"), #PB_Frame_Container)
|
FrameGadget(#GID_FrmRemote, #UI_Inset, yRemote, GadgetWidth(#GID_Panel) - #UI_Inset*2, #UI_FrameHeaderH + #UI_RowH*5 + #UI_Inset*5, T("Remote.FrameTitle","Distant (remote / branche)"), #PB_Frame_Container)
|
||||||
|
|
||||||
|
; Ligne 1: URL du remote
|
||||||
TextGadget(#GID_LblRemote, #UI_Inset, #UI_FrameHeaderH, 70, #UI_RowH, T("Remote.Label.Remote","Remote :"))
|
TextGadget(#GID_LblRemote, #UI_Inset, #UI_FrameHeaderH, 70, #UI_RowH, T("Remote.Label.Remote","Remote :"))
|
||||||
StringGadget(#GID_EdRemote, RightOf(#GID_LblRemote) + #UI_Inset, #UI_FrameHeaderH, 420, #UI_RowH, "")
|
StringGadget(#GID_EdRemote, RightOf(#GID_LblRemote) + #UI_Inset, #UI_FrameHeaderH, 420, #UI_RowH, "")
|
||||||
|
|
||||||
TextGadget(#GID_LblBranch, RightOf(#GID_EdRemote) + #UI_Inset, #UI_FrameHeaderH, 80, #UI_RowH, T("Remote.Label.Branch","Branche :"))
|
; Ligne 2: Branche distante (sélecteur + bouton)
|
||||||
ComboBoxGadget(#GID_CbBranch, RightOf(#GID_LblBranch), #UI_FrameHeaderH, 220, #UI_RowH, #PB_ComboBox_Editable)
|
Define yRemoteBranch = BottomOf(#GID_EdRemote) + #UI_Inset
|
||||||
ButtonGadget(#GID_BtnNewBranch, RightOf(#GID_CbBranch) + #UI_Inset, #UI_FrameHeaderH, 130, #UI_RowH, T("Remote.Button.NewBranch","New branch"))
|
TextGadget(#GID_LblRemoteBranch, #UI_Inset, yRemoteBranch, 130, #UI_RowH, T("Remote.Label.BranchRemote","Branche distante :"))
|
||||||
|
ComboBoxGadget(#GID_CbRemoteBranch, RightOf(#GID_LblRemoteBranch), yRemoteBranch, 220, #UI_RowH)
|
||||||
ButtonGadget(#GID_BtnClone, #UI_Inset, BottomOf(#GID_LblRemote) + #UI_Inset, #UI_BtnW, #UI_RowH, T("Remote.Button.Clone","Clone"))
|
ButtonGadget(#GID_BtnNewRemoteBranch, RightOf(#GID_CbRemoteBranch) + #UI_Inset, yRemoteBranch, 160, #UI_RowH, T("Remote.Button.NewRemoteBranch","+ Nouvelle branche distante"))
|
||||||
|
|
||||||
|
; Ligne 3: Actions réseau
|
||||||
|
ButtonGadget(#GID_BtnClone, #UI_Inset, BottomOf(#GID_LblRemoteBranch) + #UI_Inset, #UI_BtnW, #UI_RowH, T("Remote.Button.Clone","Clone"))
|
||||||
ButtonGadget(#GID_BtnPull, RightOf(#GID_BtnClone) + #UI_Inset, GadgetY(#GID_BtnClone), #UI_BtnW, #UI_RowH, T("Remote.Button.Pull","Pull"))
|
ButtonGadget(#GID_BtnPull, RightOf(#GID_BtnClone) + #UI_Inset, GadgetY(#GID_BtnClone), #UI_BtnW, #UI_RowH, T("Remote.Button.Pull","Pull"))
|
||||||
ButtonGadget(#GID_BtnPush, RightOf(#GID_BtnPull) + #UI_Inset, GadgetY(#GID_BtnClone), #UI_BtnW, #UI_RowH, T("Remote.Button.Push","Push"))
|
ButtonGadget(#GID_BtnPush, RightOf(#GID_BtnPull) + #UI_Inset, GadgetY(#GID_BtnClone), #UI_BtnW, #UI_RowH, T("Remote.Button.Push","Push"))
|
||||||
|
|
||||||
|
; Ligne 4: Statut & dernière synchro
|
||||||
Define yStatus = BottomOf(#GID_BtnClone) + #UI_Inset
|
Define yStatus = BottomOf(#GID_BtnClone) + #UI_Inset
|
||||||
TextGadget(#GID_LblRemoteStatus, #UI_Inset, yStatus, 70, #UI_RowH, T("Remote.Status.Label","Status :"))
|
TextGadget(#GID_LblRemoteStatus, #UI_Inset, yStatus, 70, #UI_RowH, T("Remote.Status.Label","Status :"))
|
||||||
TextGadget(#GID_TxtRemoteStatus, RightOf(#GID_LblRemoteStatus), yStatus, 200, #UI_RowH, T("Remote.Status.Checking","Vérification..."), #PB_Text_Border)
|
TextGadget(#GID_TxtRemoteStatus, RightOf(#GID_LblRemoteStatus), yStatus, 200, #UI_RowH, T("Remote.Status.Checking","Vérification..."), #PB_Text_Border)
|
||||||
|
|
||||||
TextGadget(#GID_LblLastFetch, RightOf(#GID_TxtRemoteStatus) + 15, yStatus, 110, #UI_RowH, T("Remote.LastSync.Label","Dernière sync :"))
|
TextGadget(#GID_LblLastFetch, RightOf(#GID_TxtRemoteStatus) + 15, yStatus, 110, #UI_RowH, T("Remote.LastSync.Label","Dernière sync :"))
|
||||||
TextGadget(#GID_TxtLastFetch, RightOf(#GID_LblLastFetch), yStatus, 120, #UI_RowH, "-", #PB_Text_Border)
|
TextGadget(#GID_TxtLastFetch, RightOf(#GID_LblLastFetch), yStatus, 120, #UI_RowH, "-", #PB_Text_Border)
|
||||||
ButtonGadget(#GID_BtnVerify, RightOf(#GID_TxtLastFetch) + 10, yStatus - 2, 90, #UI_RowH, T("Remote.Button.Verify","Vérifier"))
|
ButtonGadget(#GID_BtnVerify, RightOf(#GID_TxtLastFetch) + 10, yStatus - 2, 90, #UI_RowH, T("Remote.Button.Verify","Vérifier"))
|
||||||
|
|
||||||
|
; Ligne 5: Action en cours
|
||||||
TextGadget(#GID_LblAction, #UI_Inset, BottomOf(#GID_LblRemoteStatus) + #UI_Inset, 60, 20, T("Remote.Action.Label","Action :"))
|
TextGadget(#GID_LblAction, #UI_Inset, BottomOf(#GID_LblRemoteStatus) + #UI_Inset, 60, 20, T("Remote.Action.Label","Action :"))
|
||||||
TextGadget(#GID_TxtAction, RightOf(#GID_LblAction), GadgetY(#GID_LblAction), 300, 20, "-", #PB_Text_Border)
|
TextGadget(#GID_TxtAction, RightOf(#GID_LblAction), GadgetY(#GID_LblAction), 300, 20, "-", #PB_Text_Border)
|
||||||
CloseGadgetList()
|
CloseGadgetList()
|
||||||
|
|
||||||
|
|
||||||
; ---- Frame: Files & changes -------------------------------------------------
|
; ---- Frame: Files & changes -------------------------------------------------
|
||||||
Define yFiles = BottomOf(#GID_FrmRemote) + #UI_Inset
|
Define yFiles = BottomOf(#GID_FrmRemote) + #UI_Inset
|
||||||
Define hFiles = panelH - yFiles - #UI_Inset
|
Define hFiles = panelH - yFiles - #UI_Inset
|
||||||
FrameGadget(#GID_FrmFiles, #UI_Inset, yFiles, GadgetWidth(#GID_Panel) - #UI_Inset*2, hFiles, T("Files.FrameTitle","Fichiers & modifications"), #PB_Frame_Container)
|
If hFiles < 260 : hFiles = 260 : EndIf ; hauteur mini du frame pour éviter valeurs négatives
|
||||||
|
|
||||||
ListIconGadget(#GID_ListStatus, #UI_Inset, #UI_FrameHeaderH, GadgetWidth(#GID_FrmFiles) - #UI_Inset*2, hFiles - #UI_RowH*2 - #UI_Inset*4 - #UI_FrameHeaderH, T("Files.List.Path","Path"), 300, #PB_ListIcon_CheckBoxes | #PB_ListIcon_MultiSelect | #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
|
FrameGadget(#GID_FrmFiles, #UI_Inset, yFiles, GadgetWidth(#GID_Panel) - #UI_Inset*2, hFiles, T("Files.FrameTitle","Fichiers & modifications"), #PB_Frame_Container)
|
||||||
AddGadgetColumn(#GID_ListStatus, 1, T("Files.List.Status","Status"), 80)
|
|
||||||
AddGadgetColumn(#GID_ListStatus, 2, T("Files.List.Description","Description"), 300)
|
; Hauteur de la liste avec garde-fou (même logique que dans ResizeGUI)
|
||||||
|
Define listH = hFiles - #UI_RowH*2 - #UI_Inset*4 - #UI_FrameHeaderH
|
||||||
Define yLocalActions = BottomOf(#GID_ListStatus) + #UI_Inset
|
If listH < 100 : listH = 100 : EndIf
|
||||||
ButtonGadget(#GID_BtnRestore, #UI_Inset + 10, yLocalActions, 110, #UI_RowH, T("LocalActions.Button.Restore","Restaurer"))
|
|
||||||
ButtonGadget(#GID_BtnRename, #UI_Inset + 130, yLocalActions, 110, #UI_RowH, T("LocalActions.Button.Rename","Renommer"))
|
ListIconGadget(#GID_ListStatus, #UI_Inset, #UI_FrameHeaderH, GadgetWidth(#GID_FrmFiles) - #UI_Inset*2, listH, T("Files.List.Path","Path"), 300, #PB_ListIcon_CheckBoxes | #PB_ListIcon_MultiSelect | #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
|
||||||
ButtonGadget(#GID_BtnDelete, #UI_Inset + 250, yLocalActions, 110, #UI_RowH, T("LocalActions.Button.Delete","Supprimer"))
|
AddGadgetColumn(#GID_ListStatus, 1, T("Files.List.Status","Status"), 80)
|
||||||
ButtonGadget(#GID_BtnIgnore, #UI_Inset + 370, yLocalActions, 110, #UI_RowH, T("LocalActions.Button.Ignore","Ignorer"))
|
AddGadgetColumn(#GID_ListStatus, 2, T("Files.List.Description","Description"), 300)
|
||||||
|
|
||||||
Define yMsg = BottomOf(#GID_BtnRestore) + #UI_Inset
|
; Ligne boutons sous la liste
|
||||||
TextGadget(#GID_LblMessage, #UI_Inset + 10, yMsg + 4, 80, 22, T("Commit.Label.Message","Message :"))
|
Define yLocalActions = #UI_FrameHeaderH + listH + #UI_Inset
|
||||||
StringGadget(#GID_EdMessage, #UI_Inset + 95, yMsg, GadgetWidth(#GID_FrmFiles) - #UI_Inset*2 - 95 - 110, #UI_RowH, "")
|
ButtonGadget(#GID_BtnRestore, #UI_Inset + 10, yLocalActions, 110, #UI_RowH, T("LocalActions.Button.Restore","Restaurer"))
|
||||||
ButtonGadget(#GID_BtnCommit, GadgetWidth(#GID_FrmFiles) - #UI_Inset - 100, yMsg - 2, 100, #UI_RowH, T("Commit.Button.Commit","Commit"))
|
ButtonGadget(#GID_BtnRename, #UI_Inset + 130, yLocalActions, 110, #UI_RowH, T("LocalActions.Button.Rename","Renommer"))
|
||||||
CloseGadgetList()
|
ButtonGadget(#GID_BtnDelete, #UI_Inset + 250, yLocalActions, 110, #UI_RowH, T("LocalActions.Button.Delete","Supprimer"))
|
||||||
|
ButtonGadget(#GID_BtnIgnore, #UI_Inset + 370, yLocalActions, 110, #UI_RowH, T("LocalActions.Button.Ignore","Ignorer"))
|
||||||
|
|
||||||
|
; Message de commit
|
||||||
|
Define yMsg = yLocalActions + #UI_RowH + #UI_Inset
|
||||||
|
TextGadget(#GID_LblMessage, #UI_Inset + 10, yMsg + 4, 80, 22, T("Commit.Label.Message","Message :"))
|
||||||
|
StringGadget(#GID_EdMessage, #UI_Inset + 95, yMsg, GadgetWidth(#GID_FrmFiles) - #UI_Inset*2 - 95 - 110, #UI_RowH, "")
|
||||||
|
ButtonGadget(#GID_BtnCommit, GadgetWidth(#GID_FrmFiles) - #UI_Inset - 100, yMsg - 2, 100, #UI_RowH, T("Commit.Button.Commit","Commit"))
|
||||||
|
CloseGadgetList()
|
||||||
|
|
||||||
|
|
||||||
; ===========================================================================
|
; ===========================================================================
|
||||||
; TAB 2: HISTORY
|
; TAB 2: HISTORY
|
||||||
@@ -730,8 +793,8 @@ Procedure OpenGUI()
|
|||||||
; TAB 4: CONFIG
|
; TAB 4: CONFIG
|
||||||
; ===========================================================================
|
; ===========================================================================
|
||||||
AddGadgetItem(#GID_Panel, -1, T("Tabs.Config","Config"))
|
AddGadgetItem(#GID_Panel, -1, T("Tabs.Config","Config"))
|
||||||
|
|
||||||
; --- Frame: Paramètres de l’application (LANGUE, etc.) ---
|
; --- Frame: Paramètres de l’application (LANGUE, etc.) ---
|
||||||
FrameGadget(#GID_FrmApp, #UI_Inset, #UI_Inset, GadgetWidth(#GID_Panel) - #UI_Inset*2, 90, T("App.FrameTitle","Paramètres de l’application"), #PB_Frame_Container)
|
FrameGadget(#GID_FrmApp, #UI_Inset, #UI_Inset, GadgetWidth(#GID_Panel) - #UI_Inset*2, 90, T("App.FrameTitle","Paramètres de l’application"), #PB_Frame_Container)
|
||||||
TextGadget(#GID_LblAppLang, #UI_Inset + 10, #UI_Inset + 35, 120, 22, T("App.Label.Lang","Langue"))
|
TextGadget(#GID_LblAppLang, #UI_Inset + 10, #UI_Inset + 35, 120, 22, T("App.Label.Lang","Langue"))
|
||||||
ComboBoxGadget(#GID_CbAppLang, #UI_Inset + 140, #UI_Inset + 33, 220, #UI_RowH)
|
ComboBoxGadget(#GID_CbAppLang, #UI_Inset + 140, #UI_Inset + 33, 220, #UI_RowH)
|
||||||
@@ -739,7 +802,7 @@ Procedure OpenGUI()
|
|||||||
AddGadgetItem(#GID_CbAppLang, -1, "English (en)")
|
AddGadgetItem(#GID_CbAppLang, -1, "English (en)")
|
||||||
SetGadgetState(#GID_CbAppLang, 0) ; défaut: fr
|
SetGadgetState(#GID_CbAppLang, 0) ; défaut: fr
|
||||||
CloseGadgetList()
|
CloseGadgetList()
|
||||||
|
|
||||||
; --- Frame: Configuration Git (identité + portée) ---
|
; --- Frame: Configuration Git (identité + portée) ---
|
||||||
Define yCfg = BottomOf(#GID_FrmApp) + #UI_Inset
|
Define yCfg = BottomOf(#GID_FrmApp) + #UI_Inset
|
||||||
FrameGadget(#GID_FrmConfig, #UI_Inset, yCfg, GadgetWidth(#GID_Panel) - #UI_Inset*2, 170, T("Config.FrameTitle","Configuration Git"), #PB_Frame_Container)
|
FrameGadget(#GID_FrmConfig, #UI_Inset, yCfg, GadgetWidth(#GID_Panel) - #UI_Inset*2, 170, T("Config.FrameTitle","Configuration Git"), #PB_Frame_Container)
|
||||||
@@ -755,45 +818,44 @@ Procedure OpenGUI()
|
|||||||
SetGadgetState(#GID_CbScope, 0)
|
SetGadgetState(#GID_CbScope, 0)
|
||||||
ButtonGadget(#GID_BtnSaveCfg, GadgetWidth(#GID_FrmConfig) - #UI_Inset - 110, #UI_Inset + 100, 110, #UI_RowH, T("Config.Button.Save","Enregistrer"))
|
ButtonGadget(#GID_BtnSaveCfg, GadgetWidth(#GID_FrmConfig) - #UI_Inset - 110, #UI_Inset + 100, 110, #UI_RowH, T("Config.Button.Save","Enregistrer"))
|
||||||
CloseGadgetList()
|
CloseGadgetList()
|
||||||
|
|
||||||
; --- Frame: Proxy HTTP(S) ---
|
; --- Frame: Proxy HTTP(S) ---
|
||||||
Define yProxy = BottomOf(#GID_FrmConfig) + #UI_Inset
|
Define yProxy = BottomOf(#GID_FrmConfig) + #UI_Inset
|
||||||
FrameGadget(#GID_FrmProxy, #UI_Inset, yProxy, GadgetWidth(#GID_Panel) - #UI_Inset*2, 260, T("Proxy.FrameTitle","Proxy HTTP / HTTPS"), #PB_Frame_Container)
|
FrameGadget(#GID_FrmProxy, #UI_Inset, yProxy, GadgetWidth(#GID_Panel) - #UI_Inset*2, 260, T("Proxy.FrameTitle","Proxy HTTP / HTTPS"), #PB_Frame_Container)
|
||||||
|
|
||||||
; Activation
|
; Activation
|
||||||
CheckBoxGadget(#GID_ChkProxy, #UI_Inset + 10, #UI_Inset + 30, 280, #UI_RowH, T("Proxy.Enable","Activer le proxy"))
|
CheckBoxGadget(#GID_ChkProxy, #UI_Inset + 10, #UI_Inset + 30, 280, #UI_RowH, T("Proxy.Enable","Activer le proxy"))
|
||||||
SetGadgetState(#GID_ChkProxy, 0)
|
SetGadgetState(#GID_ChkProxy, 0)
|
||||||
|
|
||||||
; --- HTTP row 1 (server/port)
|
; --- HTTP row 1 (server/port)
|
||||||
TextGadget(#GID_LblHttpSrv, #UI_Inset + 10, #UI_Inset + 70, 100, #UI_RowH, "HTTP serveur")
|
TextGadget(#GID_LblHttpSrv, #UI_Inset + 10, #UI_Inset + 70, 100, #UI_RowH, "HTTP serveur")
|
||||||
StringGadget(#GID_EdHttpSrv, #UI_Inset + 110, #UI_Inset + 68, 260, #UI_RowH, "")
|
StringGadget(#GID_EdHttpSrv, #UI_Inset + 110, #UI_Inset + 68, 260, #UI_RowH, "")
|
||||||
TextGadget(#GID_LblHttpPort, RightOf(#GID_EdHttpSrv) + #UI_Inset, #UI_Inset + 70, 40, #UI_RowH, "Port")
|
TextGadget(#GID_LblHttpPort, RightOf(#GID_EdHttpSrv) + #UI_Inset, #UI_Inset + 70, 40, #UI_RowH, "Port")
|
||||||
StringGadget(#GID_EdHttpPort, RightOf(#GID_LblHttpPort) + #UI_Inset, #UI_Inset + 68, 80, #UI_RowH, "")
|
StringGadget(#GID_EdHttpPort, RightOf(#GID_LblHttpPort) + #UI_Inset, #UI_Inset + 68, 80, #UI_RowH, "")
|
||||||
|
|
||||||
; --- HTTP row 2 (user/pass)
|
; --- HTTP row 2 (user/pass)
|
||||||
TextGadget(#GID_LblHttpUser, #UI_Inset + 10, #UI_Inset + 105, 100, #UI_RowH, "HTTP login")
|
TextGadget(#GID_LblHttpUser, #UI_Inset + 10, #UI_Inset + 105, 100, #UI_RowH, "HTTP login")
|
||||||
StringGadget(#GID_EdHttpUser, #UI_Inset + 110, #UI_Inset + 103, 260, #UI_RowH, "")
|
StringGadget(#GID_EdHttpUser, #UI_Inset + 110, #UI_Inset + 103, 260, #UI_RowH, "")
|
||||||
TextGadget(#GID_LblHttpPass, RightOf(#GID_EdHttpUser) + #UI_Inset, #UI_Inset + 105, 70, #UI_RowH, "Password")
|
TextGadget(#GID_LblHttpPass, RightOf(#GID_EdHttpUser) + #UI_Inset, #UI_Inset + 105, 70, #UI_RowH, "Password")
|
||||||
StringGadget(#GID_EdHttpPass, RightOf(#GID_LblHttpPass) + #UI_Inset, #UI_Inset + 103, 180, #UI_RowH, "")
|
StringGadget(#GID_EdHttpPass, RightOf(#GID_LblHttpPass) + #UI_Inset, #UI_Inset + 103, 180, #UI_RowH, "")
|
||||||
SetGadgetAttribute(#GID_EdHttpPass, #PB_String_Password, #True)
|
SetGadgetAttribute(#GID_EdHttpPass, #PB_String_Password, #True)
|
||||||
|
|
||||||
; --- HTTPS row 1 (server/port)
|
; --- HTTPS row 1 (server/port)
|
||||||
TextGadget(#GID_LblHttpsSrv, #UI_Inset + 10, #UI_Inset + 145, 100, #UI_RowH, "HTTPS serveur")
|
TextGadget(#GID_LblHttpsSrv, #UI_Inset + 10, #UI_Inset + 145, 100, #UI_RowH, "HTTPS serveur")
|
||||||
StringGadget(#GID_EdHttpsSrv, #UI_Inset + 110, #UI_Inset + 143, 260, #UI_RowH, "")
|
StringGadget(#GID_EdHttpsSrv, #UI_Inset + 110, #UI_Inset + 143, 260, #UI_RowH, "")
|
||||||
TextGadget(#GID_LblHttpsPort, RightOf(#GID_EdHttpsSrv) + #UI_Inset, #UI_Inset + 145, 40, #UI_RowH, "Port")
|
TextGadget(#GID_LblHttpsPort, RightOf(#GID_EdHttpsSrv) + #UI_Inset, #UI_Inset + 145, 40, #UI_RowH, "Port")
|
||||||
StringGadget(#GID_EdHttpsPort, RightOf(#GID_LblHttpsPort) + #UI_Inset, #UI_Inset + 143, 80, #UI_RowH, "")
|
StringGadget(#GID_EdHttpsPort, RightOf(#GID_LblHttpsPort) + #UI_Inset, #UI_Inset + 143, 80, #UI_RowH, "")
|
||||||
|
|
||||||
; --- HTTPS row 2 (user/pass)
|
; --- HTTPS row 2 (user/pass)
|
||||||
TextGadget(#GID_LblHttpsUser, #UI_Inset + 10, #UI_Inset + 180, 100, #UI_RowH, "HTTPS login")
|
TextGadget(#GID_LblHttpsUser, #UI_Inset + 10, #UI_Inset + 180, 100, #UI_RowH, "HTTPS login")
|
||||||
StringGadget(#GID_EdHttpsUser, #UI_Inset + 110, #UI_Inset + 178, 260, #UI_RowH, "")
|
StringGadget(#GID_EdHttpsUser, #UI_Inset + 110, #UI_Inset + 178, 260, #UI_RowH, "")
|
||||||
TextGadget(#GID_LblHttpsPass, RightOf(#GID_EdHttpsUser) + #UI_Inset, #UI_Inset + 180, 70, #UI_RowH, "Password")
|
TextGadget(#GID_LblHttpsPass, RightOf(#GID_EdHttpsUser) + #UI_Inset, #UI_Inset + 180, 70, #UI_RowH, "Password")
|
||||||
StringGadget(#GID_EdHttpsPass, RightOf(#GID_LblHttpsPass) + #UI_Inset, #UI_Inset + 178, 180, #UI_RowH, "")
|
StringGadget(#GID_EdHttpsPass, RightOf(#GID_LblHttpsPass) + #UI_Inset, #UI_Inset + 178, 180, #UI_RowH, "")
|
||||||
SetGadgetAttribute(#GID_EdHttpsPass, #PB_String_Password, #True)
|
SetGadgetAttribute(#GID_EdHttpsPass, #PB_String_Password, #True)
|
||||||
|
|
||||||
; Bouton Appliquer
|
; Bouton Appliquer
|
||||||
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()
|
||||||
|
|
||||||
|
|
||||||
; --- End tabs ---
|
; --- End tabs ---
|
||||||
CloseGadgetList()
|
CloseGadgetList()
|
||||||
@@ -807,12 +869,12 @@ Procedure OpenGUI()
|
|||||||
|
|
||||||
; Initial placement / placement initial
|
; Initial placement / placement initial
|
||||||
ResizeGUI()
|
ResizeGUI()
|
||||||
; toolTip aide
|
; Tooltips
|
||||||
ApplyToolTips()
|
ApplyToolTips()
|
||||||
ProcedureReturn #True
|
ProcedureReturn #True
|
||||||
EndIf
|
EndIf
|
||||||
ProcedureReturn #False
|
|
||||||
|
|
||||||
|
ProcedureReturn #False
|
||||||
EndProcedure
|
EndProcedure
|
||||||
|
|
||||||
; -----------------------------------------------------------------------------
|
; -----------------------------------------------------------------------------
|
||||||
@@ -1181,8 +1243,8 @@ EndProcedure
|
|||||||
Main()
|
Main()
|
||||||
|
|
||||||
; IDE Options = PureBasic 6.21 (Windows - x64)
|
; IDE Options = PureBasic 6.21 (Windows - x64)
|
||||||
; CursorPosition = 1032
|
; CursorPosition = 591
|
||||||
; FirstLine = 1025
|
; FirstLine = 521
|
||||||
; Folding = ------
|
; Folding = ------
|
||||||
; EnableXP
|
; EnableXP
|
||||||
; DPIAware
|
; DPIAware
|
Reference in New Issue
Block a user