1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-06-27 00:51:18 +02:00

Show current files filter as radio buttons

I renamed the "Reset filter" item to "No filter" to make it look more like a
state than an action, so that it fits the radio button concept better.

When there are conflicts and we set the filter to show only conflicting files,
then none of the radio buttons light up, which is slightly strange. I guess it's
ok though.
This commit is contained in:
Stefan Haller
2025-02-01 18:47:29 +01:00
parent e883f74f3c
commit 2f4cedd025
4 changed files with 16 additions and 10 deletions

View File

@ -753,6 +753,7 @@ func (self *FilesController) isResolvingConflicts() bool {
} }
func (self *FilesController) handleStatusFilterPressed() error { func (self *FilesController) handleStatusFilterPressed() error {
currentFilter := self.context().GetFilter()
return self.c.Menu(types.CreateMenuOptions{ return self.c.Menu(types.CreateMenuOptions{
Title: self.c.Tr.FilteringMenuTitle, Title: self.c.Tr.FilteringMenuTitle,
Items: []*types.MenuItem{ Items: []*types.MenuItem{
@ -762,6 +763,7 @@ func (self *FilesController) handleStatusFilterPressed() error {
return self.setStatusFiltering(filetree.DisplayStaged) return self.setStatusFiltering(filetree.DisplayStaged)
}, },
Key: 's', Key: 's',
Widget: types.MakeMenuRadioButton(currentFilter == filetree.DisplayStaged),
}, },
{ {
Label: self.c.Tr.FilterUnstagedFiles, Label: self.c.Tr.FilterUnstagedFiles,
@ -769,6 +771,7 @@ func (self *FilesController) handleStatusFilterPressed() error {
return self.setStatusFiltering(filetree.DisplayUnstaged) return self.setStatusFiltering(filetree.DisplayUnstaged)
}, },
Key: 'u', Key: 'u',
Widget: types.MakeMenuRadioButton(currentFilter == filetree.DisplayUnstaged),
}, },
{ {
Label: self.c.Tr.FilterTrackedFiles, Label: self.c.Tr.FilterTrackedFiles,
@ -776,6 +779,7 @@ func (self *FilesController) handleStatusFilterPressed() error {
return self.setStatusFiltering(filetree.DisplayTracked) return self.setStatusFiltering(filetree.DisplayTracked)
}, },
Key: 't', Key: 't',
Widget: types.MakeMenuRadioButton(currentFilter == filetree.DisplayTracked),
}, },
{ {
Label: self.c.Tr.FilterUntrackedFiles, Label: self.c.Tr.FilterUntrackedFiles,
@ -783,13 +787,15 @@ func (self *FilesController) handleStatusFilterPressed() error {
return self.setStatusFiltering(filetree.DisplayUntracked) return self.setStatusFiltering(filetree.DisplayUntracked)
}, },
Key: 'T', Key: 'T',
Widget: types.MakeMenuRadioButton(currentFilter == filetree.DisplayUntracked),
}, },
{ {
Label: self.c.Tr.ResetFilter, Label: self.c.Tr.NoFilter,
OnPress: func() error { OnPress: func() error {
return self.setStatusFiltering(filetree.DisplayAll) return self.setStatusFiltering(filetree.DisplayAll)
}, },
Key: 'r', Key: 'r',
Widget: types.MakeMenuRadioButton(currentFilter == filetree.DisplayAll),
}, },
}, },
}) })

View File

@ -89,7 +89,7 @@ type TranslationSet struct {
FilterUnstagedFiles string FilterUnstagedFiles string
FilterTrackedFiles string FilterTrackedFiles string
FilterUntrackedFiles string FilterUntrackedFiles string
ResetFilter string NoFilter string
MergeConflictsTitle string MergeConflictsTitle string
Checkout string Checkout string
CheckoutTooltip string CheckoutTooltip string
@ -1115,7 +1115,7 @@ func EnglishTranslationSet() *TranslationSet {
FilterUnstagedFiles: "Show only unstaged files", FilterUnstagedFiles: "Show only unstaged files",
FilterTrackedFiles: "Show only tracked files", FilterTrackedFiles: "Show only tracked files",
FilterUntrackedFiles: "Show only untracked files", FilterUntrackedFiles: "Show only untracked files",
ResetFilter: "Reset filter", NoFilter: "No filter",
NoChangedFiles: "No changed files", NoChangedFiles: "No changed files",
SoftReset: "Soft reset", SoftReset: "Soft reset",
AlreadyCheckedOutBranch: "You have already checked out this branch", AlreadyCheckedOutBranch: "You have already checked out this branch",

View File

@ -25,7 +25,7 @@ var Filter = NewIntegrationTest(NewIntegrationTestArgs{
Tap(func() { Tap(func() {
t.ExpectPopup().Menu(). t.ExpectPopup().Menu().
Title(Equals("Filtering")). Title(Equals("Filtering")).
Select(Contains("Reset filter")). Select(Contains("No filter")).
Confirm() Confirm()
}). }).
Lines( Lines(

View File

@ -52,7 +52,7 @@ var FilterByFileStatus = NewIntegrationTest(NewIntegrationTestArgs{
Tap(func() { Tap(func() {
t.ExpectPopup().Menu(). t.ExpectPopup().Menu().
Title(Equals("Filtering")). Title(Equals("Filtering")).
Select(Contains("Reset filter")). Select(Contains("No filter")).
Confirm() Confirm()
}). }).
Lines( Lines(