diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2024-01-15 20:12:53 +1100 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2024-01-19 10:50:49 +1100 |
commit | 1ea0c270df13f30d2e74cea7ec78ea3a62df1d82 (patch) | |
tree | 59a6fd0ae0af5228c556ac876316b9a7923ab03d | |
parent | 51fb82d6bf26153f294477883a1b2abd592441f9 (diff) |
Disable range-select in menu and suggestions view
We don't need it there so no need to enable it.
I'm leaving the disabled reason checks there, even though they're now redundant,
because they're only one-liners and they communicate intent.
-rw-r--r-- | pkg/gui/context/list_context_trait.go | 5 | ||||
-rw-r--r-- | pkg/gui/context/menu_context.go | 5 | ||||
-rw-r--r-- | pkg/gui/context/suggestions_context.go | 5 | ||||
-rw-r--r-- | pkg/gui/controllers/list_controller.go | 17 | ||||
-rw-r--r-- | pkg/gui/types/context.go | 1 |
5 files changed, 29 insertions, 4 deletions
diff --git a/pkg/gui/context/list_context_trait.go b/pkg/gui/context/list_context_trait.go index d7315c9ec..eb738e332 100644 --- a/pkg/gui/context/list_context_trait.go +++ b/pkg/gui/context/list_context_trait.go @@ -118,3 +118,8 @@ func (self *ListContextTrait) IsItemVisible(item types.HasUrn) bool { } return false } + +// By default, list contexts supporta range select +func (self *ListContextTrait) RangeSelectEnabled() bool { + return true +} diff --git a/pkg/gui/context/menu_context.go b/pkg/gui/context/menu_context.go index b5c1a3c20..131aa8665 100644 --- a/pkg/gui/context/menu_context.go +++ b/pkg/gui/context/menu_context.go @@ -195,3 +195,8 @@ func (self *MenuContext) OnMenuPress(selectedItem *types.MenuItem) error { return nil } + +// There is currently no need to use range-select in a menu so we're disabling it. +func (self *MenuContext) RangeSelectEnabled() bool { + return false +} diff --git a/pkg/gui/context/suggestions_context.go b/pkg/gui/context/suggestions_context.go index 0921a7329..30781fce1 100644 --- a/pkg/gui/context/suggestions_context.go +++ b/pkg/gui/context/suggestions_context.go @@ -90,3 +90,8 @@ func (self *SuggestionsContext) RefreshSuggestions() { } }) } + +// There is currently no need to use range-select in the suggestions view so we're disabling it. +func (self *SuggestionsContext) RangeSelectEnabled() bool { + return false +} diff --git a/pkg/gui/controllers/list_controller.go b/pkg/gui/controllers/list_controller.go index 9b7a740b5..dc876b3fc 100644 --- a/pkg/gui/controllers/list_controller.go +++ b/pkg/gui/controllers/list_controller.go @@ -183,7 +183,7 @@ func (self *ListController) isFocused() bool { } func (self *ListController) GetKeybindings(opts types.KeybindingsOpts) []*types.Binding { - return []*types.Binding{ + bindings := []*types.Binding{ {Tag: "navigation", Key: opts.GetKey(opts.Config.Universal.PrevItemAlt), Handler: self.HandlePrevLine}, {Tag: "navigation", Key: opts.GetKey(opts.Config.Universal.PrevItem), Handler: self.HandlePrevLine}, {Tag: "navigation", Key: opts.GetKey(opts.Config.Universal.NextItemAlt), Handler: self.HandleNextLine}, @@ -194,10 +194,19 @@ func (self *ListController) GetKeybindings(opts types.KeybindingsOpts) []*types. {Tag: "navigation", Key: opts.GetKey(opts.Config.Universal.ScrollLeft), Handler: self.HandleScrollLeft}, {Tag: "navigation", Key: opts.GetKey(opts.Config.Universal.ScrollRight), Handler: self.HandleScrollRight}, {Tag: "navigation", Key: opts.GetKey(opts.Config.Universal.GotoBottom), Handler: self.HandleGotoBottom, Description: self.c.Tr.GotoBottom}, - {Tag: "navigation", Key: opts.GetKey(opts.Config.Universal.ToggleRangeSelect), Handler: self.HandleToggleRangeSelect, Description: self.c.Tr.ToggleRangeSelect}, - {Tag: "navigation", Key: opts.GetKey(opts.Config.Universal.RangeSelectDown), Handler: self.HandleRangeSelectDown, Description: self.c.Tr.RangeSelectDown}, - {Tag: "navigation", Key: opts.GetKey(opts.Config.Universal.RangeSelectUp), Handler: self.HandleRangeSelectUp, Description: self.c.Tr.RangeSelectUp}, } + + if self.context.RangeSelectEnabled() { + bindings = append(bindings, + []*types.Binding{ + {Tag: "navigation", Key: opts.GetKey(opts.Config.Universal.ToggleRangeSelect), Handler: self.HandleToggleRangeSelect, Description: self.c.Tr.ToggleRangeSelect}, + {Tag: "navigation", Key: opts.GetKey(opts.Config.Universal.RangeSelectDown), Handler: self.HandleRangeSelectDown, Description: self.c.Tr.RangeSelectDown}, + {Tag: "navigation", Key: opts.GetKey(opts.Config.Universal.RangeSelectUp), Handler: self.HandleRangeSelectUp, Description: self.c.Tr.RangeSelectUp}, + }..., + ) + } + + return bindings } func (self *ListController) GetMouseKeybindings(opts types.KeybindingsOpts) []*gocui.ViewMouseBinding { diff --git a/pkg/gui/types/context.go b/pkg/gui/types/context.go index a3f0ad24a..860a49588 100644 --- a/pkg/gui/types/context.go +++ b/pkg/gui/types/context.go @@ -144,6 +144,7 @@ type IListContext interface { FocusLine() IsListContext() // used for type switch + RangeSelectEnabled() bool } type IPatchExplorerContext interface { |