Skip to content

Commit df48667

Browse files
committed
Add a prompt for the sort order menus for branches
1 parent 6bfcb3d commit df48667

File tree

7 files changed

+40
-22
lines changed

7 files changed

+40
-22
lines changed

pkg/gui/controllers/branches_controller.go

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -673,15 +673,18 @@ func (self *BranchesController) createTag(branch *models.Branch) error {
673673
}
674674

675675
func (self *BranchesController) createSortMenu() error {
676-
return self.c.Helpers().Refs.CreateSortOrderMenu([]string{"recency", "alphabetical", "date"}, func(sortOrder string) error {
677-
if self.c.UserConfig().Git.LocalBranchSortOrder != sortOrder {
678-
self.c.UserConfig().Git.LocalBranchSortOrder = sortOrder
679-
self.c.Contexts().Branches.SetSelection(0)
680-
self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.BRANCHES}})
676+
return self.c.Helpers().Refs.CreateSortOrderMenu(
677+
[]string{"recency", "alphabetical", "date"},
678+
self.c.Tr.SortOrderPromptLocalBranches,
679+
func(sortOrder string) error {
680+
if self.c.UserConfig().Git.LocalBranchSortOrder != sortOrder {
681+
self.c.UserConfig().Git.LocalBranchSortOrder = sortOrder
682+
self.c.Contexts().Branches.SetSelection(0)
683+
self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.BRANCHES}})
684+
return nil
685+
}
681686
return nil
682-
}
683-
return nil
684-
},
687+
},
685688
self.c.UserConfig().Git.LocalBranchSortOrder)
686689
}
687690

pkg/gui/controllers/helpers/refs_helper.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ func (self *RefsHelper) ResetToRef(ref string, strength string, envVars []string
186186
return nil
187187
}
188188

189-
func (self *RefsHelper) CreateSortOrderMenu(sortOptionsOrder []string, onSelected func(sortOrder string) error, currentValue string) error {
189+
func (self *RefsHelper) CreateSortOrderMenu(sortOptionsOrder []string, menuPrompt string, onSelected func(sortOrder string) error, currentValue string) error {
190190
type sortMenuOption struct {
191191
key types.Key
192192
label string
@@ -222,8 +222,9 @@ func (self *RefsHelper) CreateSortOrderMenu(sortOptionsOrder []string, onSelecte
222222
}
223223
})
224224
return self.c.Menu(types.CreateMenuOptions{
225-
Title: self.c.Tr.SortOrder,
226-
Items: menuItems,
225+
Title: self.c.Tr.SortOrder,
226+
Items: menuItems,
227+
Prompt: menuPrompt,
227228
})
228229
}
229230

pkg/gui/controllers/remote_branches_controller.go

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -145,14 +145,17 @@ func (self *RemoteBranchesController) rebase(selectedBranch *models.RemoteBranch
145145
}
146146

147147
func (self *RemoteBranchesController) createSortMenu() error {
148-
return self.c.Helpers().Refs.CreateSortOrderMenu([]string{"alphabetical", "date"}, func(sortOrder string) error {
149-
if self.c.UserConfig().Git.RemoteBranchSortOrder != sortOrder {
150-
self.c.UserConfig().Git.RemoteBranchSortOrder = sortOrder
151-
self.c.Contexts().RemoteBranches.SetSelection(0)
152-
self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.REMOTES}})
153-
}
154-
return nil
155-
},
148+
return self.c.Helpers().Refs.CreateSortOrderMenu(
149+
[]string{"alphabetical", "date"},
150+
self.c.Tr.SortOrderPromptRemoteBranches,
151+
func(sortOrder string) error {
152+
if self.c.UserConfig().Git.RemoteBranchSortOrder != sortOrder {
153+
self.c.UserConfig().Git.RemoteBranchSortOrder = sortOrder
154+
self.c.Contexts().RemoteBranches.SetSelection(0)
155+
self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.REMOTES}})
156+
}
157+
return nil
158+
},
156159
self.c.UserConfig().Git.RemoteBranchSortOrder)
157160
}
158161

pkg/i18n/english.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -760,10 +760,13 @@ type TranslationSet struct {
760760
ShowGitGraph string
761761
ShowGitGraphTooltip string
762762
SortOrder string
763+
SortOrderPromptLocalBranches string
764+
SortOrderPromptRemoteBranches string
763765
SortAlphabetical string
764766
SortByDate string
765767
SortByRecency string
766768
SortBasedOnReflog string
769+
SortOrderPrompt string
767770
SortCommits string
768771
SortCommitsTooltip string
769772
CantChangeContextSizeError string
@@ -1807,6 +1810,8 @@ func EnglishTranslationSet() *TranslationSet {
18071810
ShowGitGraph: "Show git graph",
18081811
ShowGitGraphTooltip: "Show or hide the git graph in the commit log.\n\nThe default can be changed in the config file with the key 'git.log.showGraph'.",
18091812
SortOrder: "Sort order",
1813+
SortOrderPromptLocalBranches: "The default sort order for local branches can be set in the config file with the key 'git.localBranchSortOrder'.",
1814+
SortOrderPromptRemoteBranches: "The default sort order for remote branches can be set in the config file with the key 'git.remoteBranchSortOrder'.",
18101815
SortAlphabetical: "Alphabetical",
18111816
SortByDate: "Date",
18121817
SortByRecency: "Recency",

pkg/integration/components/menu_driver.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,12 @@ func (self *MenuDriver) TopLines(matchers ...*TextMatcher) *MenuDriver {
5050
return self
5151
}
5252

53+
func (self *MenuDriver) ContainsLines(matchers ...*TextMatcher) *MenuDriver {
54+
self.getViewDriver().ContainsLines(matchers...)
55+
56+
return self
57+
}
58+
5359
func (self *MenuDriver) Filter(text string) *MenuDriver {
5460
self.getViewDriver().FilterOrSearch(text)
5561

pkg/integration/tests/branch/sort_local_branches.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ var SortLocalBranches = NewIntegrationTest(NewIntegrationTestArgs{
3737
Press(keys.Branches.SortOrder)
3838

3939
t.ExpectPopup().Menu().Title(Equals("Sort order")).
40-
Lines(
40+
ContainsLines(
4141
Contains("r ( ) Recency").IsSelected(),
4242
Contains("a ( ) Alphabetical"),
4343
Contains("d (•) Date"),
@@ -59,7 +59,7 @@ var SortLocalBranches = NewIntegrationTest(NewIntegrationTestArgs{
5959
Press(keys.Branches.SortOrder)
6060

6161
t.ExpectPopup().Menu().Title(Equals("Sort order")).
62-
Lines(
62+
ContainsLines(
6363
Contains("r (•) Recency").IsSelected(),
6464
Contains("a ( ) Alphabetical"),
6565
Contains("d ( ) Date"),

pkg/integration/tests/branch/sort_remote_branches.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ var SortRemoteBranches = NewIntegrationTest(NewIntegrationTestArgs{
4141
Press(keys.Branches.SortOrder)
4242

4343
t.ExpectPopup().Menu().Title(Equals("Sort order")).
44-
Lines(
44+
ContainsLines(
4545
Contains("a ( ) Alphabetical").IsSelected(),
4646
Contains("d (•) Date"),
4747
Contains(" Cancel"),

0 commit comments

Comments
 (0)