summaryrefslogtreecommitdiffstats
path: root/pkg/gui/context.go
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2020-08-17 22:04:20 +1000
committerJesse Duffield <jessedduffield@gmail.com>2020-08-23 14:29:18 +1000
commit4f4df8f9cc91118853fc40e38b54d61d3aeb5688 (patch)
tree25ef154e60f992046eae8b72ffeb083f5241cf0c /pkg/gui/context.go
parentc730271e0961d15e8f90381af35fc0d6230a586e (diff)
move context specific keybindings into context file
Diffstat (limited to 'pkg/gui/context.go')
-rw-r--r--pkg/gui/context.go46
1 files changed, 46 insertions, 0 deletions
diff --git a/pkg/gui/context.go b/pkg/gui/context.go
index 5ab4bfe1b..7faa16782 100644
--- a/pkg/gui/context.go
+++ b/pkg/gui/context.go
@@ -411,3 +411,49 @@ func (gui *Gui) changeMainViewsContext(context string) {
gui.State.MainContext = context
}
+
+func (gui *Gui) getListContextKeyBindings() []*Binding {
+ bindings := make([]*Binding, 0)
+
+ for _, listContext := range gui.getListContexts() {
+ bindings = append(bindings, []*Binding{
+ {ViewName: listContext.ViewName, Contexts: []string{listContext.ContextKey}, Key: gui.getKey("universal.prevItem-alt"), Modifier: gocui.ModNone, Handler: listContext.handlePrevLine},
+ {ViewName: listContext.ViewName, Contexts: []string{listContext.ContextKey}, Key: gui.getKey("universal.prevItem"), Modifier: gocui.ModNone, Handler: listContext.handlePrevLine},
+ {ViewName: listContext.ViewName, Contexts: []string{listContext.ContextKey}, Key: gocui.MouseWheelUp, Modifier: gocui.ModNone, Handler: listContext.handlePrevLine},
+ {ViewName: listContext.ViewName, Contexts: []string{listContext.ContextKey}, Key: gui.getKey("universal.nextItem-alt"), Modifier: gocui.ModNone, Handler: listContext.handleNextLine},
+ {ViewName: listContext.ViewName, Contexts: []string{listContext.ContextKey}, Key: gui.getKey("universal.nextItem"), Modifier: gocui.ModNone, Handler: listContext.handleNextLine},
+ {ViewName: listContext.ViewName, Contexts: []string{listContext.ContextKey}, Key: gui.getKey("universal.prevPage"), Modifier: gocui.ModNone, Handler: listContext.handlePrevPage, Description: gui.Tr.SLocalize("prevPage")},
+ {ViewName: listContext.ViewName, Contexts: []string{listContext.ContextKey}, Key: gui.getKey("universal.nextPage"), Modifier: gocui.ModNone, Handler: listContext.handleNextPage, Description: gui.Tr.SLocalize("nextPage")},
+ {ViewName: listContext.ViewName, Contexts: []string{listContext.ContextKey}, Key: gui.getKey("universal.gotoTop"), Modifier: gocui.ModNone, Handler: listContext.handleGotoTop, Description: gui.Tr.SLocalize("gotoTop")},
+ {ViewName: listContext.ViewName, Contexts: []string{listContext.ContextKey}, Key: gocui.MouseWheelDown, Modifier: gocui.ModNone, Handler: listContext.handleNextLine},
+ {ViewName: listContext.ViewName, Contexts: []string{listContext.ContextKey}, Key: gocui.MouseLeft, Modifier: gocui.ModNone, Handler: listContext.handleClick},
+ }...)
+
+ // the commits panel needs to lazyload things so it has a couple of its own handlers
+ openSearchHandler := gui.handleOpenSearch
+ gotoBottomHandler := listContext.handleGotoBottom
+ if listContext.ViewName == "commits" {
+ openSearchHandler = gui.handleOpenSearchForCommitsPanel
+ gotoBottomHandler = gui.handleGotoBottomForCommitsPanel
+ }
+
+ bindings = append(bindings, []*Binding{
+ {
+ ViewName: listContext.ViewName,
+ Contexts: []string{listContext.ContextKey},
+ Key: gui.getKey("universal.startSearch"),
+ Handler: openSearchHandler,
+ Description: gui.Tr.SLocalize("startSearch"),
+ },
+ {
+ ViewName: listContext.ViewName,
+ Contexts: []string{listContext.ContextKey},
+ Key: gui.getKey("universal.gotoBottom"),
+ Handler: gotoBottomHandler,
+ Description: gui.Tr.SLocalize("gotoBottom"),
+ },
+ }...)
+ }
+
+ return bindings
+}