diff --git a/modules/datadog/keyboard.go b/modules/datadog/keyboard.go index 3dd8e6f3..3538fdc2 100644 --- a/modules/datadog/keyboard.go +++ b/modules/datadog/keyboard.go @@ -5,8 +5,8 @@ import ( ) func (widget *Widget) initializeKeyboardControls() { - widget.SetKeyboardChar("/", widget.ShowHelp, "Show/hide this help prompt") - widget.SetKeyboardChar("r", widget.Refresh, "Refresh widget") + widget.InitializeCommonControls(widget.Refresh) + widget.SetKeyboardChar("j", widget.Next, "Select next item") widget.SetKeyboardChar("k", widget.Prev, "Select previous item") widget.SetKeyboardChar("o", widget.openItem, "Open item in browser") diff --git a/modules/feedreader/keyboard.go b/modules/feedreader/keyboard.go index bc8bd14c..4c17aaa3 100644 --- a/modules/feedreader/keyboard.go +++ b/modules/feedreader/keyboard.go @@ -3,8 +3,8 @@ package feedreader import "github.com/gdamore/tcell" func (widget *Widget) initializeKeyboardControls() { - widget.SetKeyboardChar("/", widget.ShowHelp, "Show/hide this help widget") - widget.SetKeyboardChar("r", widget.Refresh, "Refresh widget") + widget.InitializeCommonControls(widget.Refresh) + widget.SetKeyboardChar("j", widget.Next, "Select next item") widget.SetKeyboardChar("k", widget.Prev, "Select previous item") widget.SetKeyboardChar("o", widget.openStory, "Open story in browser") diff --git a/modules/gerrit/keyboard.go b/modules/gerrit/keyboard.go index d2c0be3e..d9307caa 100644 --- a/modules/gerrit/keyboard.go +++ b/modules/gerrit/keyboard.go @@ -5,8 +5,8 @@ import ( ) func (widget *Widget) initializeKeyboardControls() { - widget.SetKeyboardChar("/", widget.ShowHelp, "Show/hide this help window") - widget.SetKeyboardChar("r", widget.Refresh, "Refresh widget") + widget.InitializeCommonControls(widget.Refresh) + widget.SetKeyboardChar("h", widget.prevProject, "Select previous project") widget.SetKeyboardChar("l", widget.nextProject, "Select next project") widget.SetKeyboardChar("j", widget.nextReview, "Select next review") diff --git a/modules/git/keyboard.go b/modules/git/keyboard.go index d4478200..783a1fcf 100644 --- a/modules/git/keyboard.go +++ b/modules/git/keyboard.go @@ -3,8 +3,8 @@ package git import "github.com/gdamore/tcell" func (widget *Widget) initializeKeyboardControls() { - widget.SetKeyboardChar("/", widget.ShowHelp, "Show/hide this help window") - widget.SetKeyboardChar("r", widget.Refresh, "Refresh widget") + widget.InitializeCommonControls(widget.Refresh) + widget.SetKeyboardChar("l", widget.NextSource, "Select next source") widget.SetKeyboardChar("h", widget.PrevSource, "Select previous source") widget.SetKeyboardChar("p", widget.Pull, "Pull repo") diff --git a/modules/github/keyboard.go b/modules/github/keyboard.go index 07432905..d3f39bec 100644 --- a/modules/github/keyboard.go +++ b/modules/github/keyboard.go @@ -5,8 +5,8 @@ import ( ) func (widget *Widget) initializeKeyboardControls() { - widget.SetKeyboardChar("/", widget.ShowHelp, "Show/hide this help prompt") - widget.SetKeyboardChar("r", widget.Refresh, "Refresh widget") + widget.InitializeCommonControls(widget.Refresh) + widget.SetKeyboardChar("l", widget.NextSource, "Select next source") widget.SetKeyboardChar("h", widget.PrevSource, "Select previous source") widget.SetKeyboardChar("o", widget.openRepo, "Open item in browser") diff --git a/modules/gitlab/keyboard.go b/modules/gitlab/keyboard.go index 5d3791d7..fbf3ee20 100644 --- a/modules/gitlab/keyboard.go +++ b/modules/gitlab/keyboard.go @@ -3,8 +3,8 @@ package gitlab import "github.com/gdamore/tcell" func (widget *Widget) initializeKeyboardControls() { - widget.SetKeyboardChar("/", widget.ShowHelp, "Show/hide this help prompt") - widget.SetKeyboardChar("r", widget.Refresh, "Refresh widget") + widget.InitializeCommonControls(widget.Refresh) + widget.SetKeyboardChar("h", widget.PrevSource, "Select previous project") widget.SetKeyboardChar("l", widget.NextSource, "Select next project") diff --git a/modules/gitter/keyboard.go b/modules/gitter/keyboard.go index 9ff820c2..4bfe71c7 100644 --- a/modules/gitter/keyboard.go +++ b/modules/gitter/keyboard.go @@ -3,8 +3,8 @@ package gitter import "github.com/gdamore/tcell" func (widget *Widget) initializeKeyboardControls() { - widget.SetKeyboardChar("/", widget.ShowHelp, "Show/hide this help prompt") - widget.SetKeyboardChar("r", widget.Refresh, "Refresh widget") + widget.InitializeCommonControls(widget.Refresh) + widget.SetKeyboardChar("j", widget.Next, "Select next item") widget.SetKeyboardChar("k", widget.Prev, "Select previous item") diff --git a/modules/hackernews/keyboard.go b/modules/hackernews/keyboard.go index f9917746..b6d1db87 100644 --- a/modules/hackernews/keyboard.go +++ b/modules/hackernews/keyboard.go @@ -3,8 +3,8 @@ package hackernews import "github.com/gdamore/tcell" func (widget *Widget) initializeKeyboardControls() { - widget.SetKeyboardChar("/", widget.ShowHelp, "Show/hide this help widget") - widget.SetKeyboardChar("r", widget.Refresh, "Refresh widget") + widget.InitializeCommonControls(widget.Refresh) + widget.SetKeyboardChar("j", widget.Next, "Select next item") widget.SetKeyboardChar("k", widget.Prev, "Select previous item") widget.SetKeyboardChar("o", widget.openStory, "Open story in browser") diff --git a/modules/jenkins/keyboard.go b/modules/jenkins/keyboard.go index 9ffefdb1..b6fc1110 100644 --- a/modules/jenkins/keyboard.go +++ b/modules/jenkins/keyboard.go @@ -3,8 +3,8 @@ package jenkins import "github.com/gdamore/tcell" func (widget *Widget) initializeKeyboardControls() { - widget.SetKeyboardChar("/", widget.ShowHelp, "Show/hide this help prompt") - widget.SetKeyboardChar("r", widget.Refresh, "Refresh widget") + widget.InitializeCommonControls(widget.Refresh) + widget.SetKeyboardChar("j", widget.Next, "Select next item") widget.SetKeyboardChar("k", widget.Prev, "Select previous item") widget.SetKeyboardChar("o", widget.openJob, "Open job in browser") diff --git a/modules/jira/keyboard.go b/modules/jira/keyboard.go index fad3f783..34083a7d 100644 --- a/modules/jira/keyboard.go +++ b/modules/jira/keyboard.go @@ -5,8 +5,8 @@ import ( ) func (widget *Widget) initializeKeyboardControls() { - widget.SetKeyboardChar("/", widget.ShowHelp, "Show/hide this help prompt") - widget.SetKeyboardChar("r", widget.openItem, "Refresh widget") + widget.InitializeCommonControls(widget.Refresh) + widget.SetKeyboardChar("j", widget.Next, "Select next item") widget.SetKeyboardChar("k", widget.Prev, "Select previous item") widget.SetKeyboardChar("o", widget.openItem, "Open item in browser") diff --git a/modules/mercurial/keyboard.go b/modules/mercurial/keyboard.go index 41fd62b9..b775ce10 100644 --- a/modules/mercurial/keyboard.go +++ b/modules/mercurial/keyboard.go @@ -3,8 +3,8 @@ package mercurial import "github.com/gdamore/tcell" func (widget *Widget) initializeKeyboardControls() { - widget.SetKeyboardChar("/", widget.ShowHelp, "Show/hide this help prompt") - widget.SetKeyboardChar("r", widget.Refresh, "Refresh widget") + widget.InitializeCommonControls(widget.Refresh) + widget.SetKeyboardChar("l", widget.NextSource, "Select next source") widget.SetKeyboardChar("h", widget.PrevSource, "Select previous source") widget.SetKeyboardChar("p", widget.Pull, "Pull repo") diff --git a/modules/nbascore/keyboard.go b/modules/nbascore/keyboard.go index ca20c120..5861961a 100644 --- a/modules/nbascore/keyboard.go +++ b/modules/nbascore/keyboard.go @@ -3,8 +3,8 @@ package nbascore import "github.com/gdamore/tcell" func (widget *Widget) initializeKeyboardControls() { - widget.SetKeyboardChar("/", widget.ShowHelp, "Show/hide this help prompt") - widget.SetKeyboardChar("r", widget.Refresh, "Refresh widget") + widget.InitializeCommonControls(widget.Refresh) + widget.SetKeyboardChar("l", widget.next, "Select next item") widget.SetKeyboardChar("h", widget.prev, "Select previous item") widget.SetKeyboardChar("c", widget.center, "Center on item") diff --git a/modules/rollbar/keyboard.go b/modules/rollbar/keyboard.go index f6f760a9..09870c6a 100644 --- a/modules/rollbar/keyboard.go +++ b/modules/rollbar/keyboard.go @@ -3,8 +3,8 @@ package rollbar import "github.com/gdamore/tcell" func (widget *Widget) initializeKeyboardControls() { - widget.SetKeyboardChar("/", widget.ShowHelp, "Show/hide this help prompt") - widget.SetKeyboardChar("r", widget.Refresh, "Refresh widget") + widget.InitializeCommonControls(widget.Refresh) + widget.SetKeyboardChar("j", widget.Next, "Select next item") widget.SetKeyboardChar("k", widget.Prev, "Select previous item") widget.SetKeyboardChar("o", widget.openBuild, "Open item in browser") diff --git a/modules/spotify/keyboard.go b/modules/spotify/keyboard.go index 6c650834..cbdedc3f 100644 --- a/modules/spotify/keyboard.go +++ b/modules/spotify/keyboard.go @@ -7,8 +7,8 @@ import ( ) func (widget *Widget) initializeKeyboardControls() { - widget.SetKeyboardChar("/", widget.ShowHelp, "Show/hide this help prompt") - widget.SetKeyboardChar("r", widget.Refresh, "Refresh widgett") + widget.InitializeCommonControls(widget.Refresh) + widget.SetKeyboardChar("l", widget.next, "Select next item") widget.SetKeyboardChar("h", widget.previous, "Select previous item") widget.SetKeyboardChar(" ", widget.playPause, "Play/pause song") diff --git a/modules/spotifyweb/keyboard.go b/modules/spotifyweb/keyboard.go index 50d0dbdb..1d3fd4d5 100644 --- a/modules/spotifyweb/keyboard.go +++ b/modules/spotifyweb/keyboard.go @@ -7,8 +7,8 @@ import ( ) func (widget *Widget) initializeKeyboardControls() { - widget.SetKeyboardChar("/", widget.ShowHelp, "Show/hide this help prompt") - widget.SetKeyboardChar("/", widget.Refresh, "Refresh widget") + widget.InitializeCommonControls(widget.Refresh) + widget.SetKeyboardChar("h", widget.selectPrevious, "Select previous item") widget.SetKeyboardChar("l", widget.selectNext, "Select next item") widget.SetKeyboardChar(" ", widget.playPause, "Play/pause") diff --git a/modules/textfile/keyboard.go b/modules/textfile/keyboard.go index e5dba8d5..bfeeb25a 100644 --- a/modules/textfile/keyboard.go +++ b/modules/textfile/keyboard.go @@ -6,7 +6,8 @@ import ( ) func (widget *Widget) initializeKeyboardControls() { - widget.SetKeyboardChar("/", widget.ShowHelp, "Show/hide this help prompt") + widget.InitializeCommonControls(nil) + widget.SetKeyboardChar("l", widget.NextSource, "Select next file") widget.SetKeyboardChar("h", widget.PrevSource, "Select previous file") widget.SetKeyboardChar("o", widget.openFile, "Open file") diff --git a/modules/todo/keyboard.go b/modules/todo/keyboard.go index faa7b437..a04962f7 100644 --- a/modules/todo/keyboard.go +++ b/modules/todo/keyboard.go @@ -9,8 +9,8 @@ import ( ) func (widget *Widget) initializeKeyboardControls() { - widget.SetKeyboardChar("/", widget.ShowHelp, "Show/hide this help prompt") - widget.SetKeyboardChar("r", widget.Refresh, "Refresh widget") + widget.InitializeCommonControls(widget.Refresh) + widget.SetKeyboardChar("j", widget.displayNext, "Select next item") widget.SetKeyboardChar("k", widget.displayPrev, "Select previous item") widget.SetKeyboardChar(" ", widget.toggleChecked, "Toggle checkmark") @@ -24,6 +24,7 @@ func (widget *Widget) initializeKeyboardControls() { widget.SetKeyboardKey(tcell.KeyCtrlJ, widget.demoteSelected, "Demote item") widget.SetKeyboardKey(tcell.KeyCtrlK, widget.promoteSelected, "Promote item") widget.SetKeyboardKey(tcell.KeyEnter, widget.editSelected, "Edit item") + } func (widget *Widget) deleteSelected() { diff --git a/modules/todoist/keyboard.go b/modules/todoist/keyboard.go index 43381f11..b6cc2134 100644 --- a/modules/todoist/keyboard.go +++ b/modules/todoist/keyboard.go @@ -3,8 +3,8 @@ package todoist import "github.com/gdamore/tcell" func (widget *Widget) initializeKeyboardControls() { - widget.SetKeyboardChar("/", widget.ShowHelp, "Show/hide this help prompt") - widget.SetKeyboardChar("r", widget.Refresh, "Refresh widget") + widget.InitializeCommonControls(widget.Refresh) + widget.SetKeyboardChar("d", widget.Delete, "Delete item") widget.SetKeyboardChar("j", widget.Prev, "Select previous item") widget.SetKeyboardChar("k", widget.Next, "Select next item") diff --git a/modules/transmission/keyboard.go b/modules/transmission/keyboard.go index a52ccd04..1f9dc56f 100644 --- a/modules/transmission/keyboard.go +++ b/modules/transmission/keyboard.go @@ -3,7 +3,8 @@ package transmission import "github.com/gdamore/tcell" func (widget *Widget) initializeKeyboardControls() { - widget.SetKeyboardChar("/", widget.ShowHelp, "Show/hide this help prompt") + widget.InitializeCommonControls(nil) + widget.SetKeyboardChar("j", widget.Prev, "Select previous item") widget.SetKeyboardChar("k", widget.Next, "Select next item") widget.SetKeyboardChar("u", widget.Unselect, "Clear selection") diff --git a/modules/travisci/keyboard.go b/modules/travisci/keyboard.go index 06f6b4f4..c5a91a6a 100644 --- a/modules/travisci/keyboard.go +++ b/modules/travisci/keyboard.go @@ -3,8 +3,8 @@ package travisci import "github.com/gdamore/tcell" func (widget *Widget) initializeKeyboardControls() { - widget.SetKeyboardChar("/", widget.ShowHelp, "Show/hide this help prompt") - widget.SetKeyboardChar("r", widget.Refresh, "Refresh widget") + widget.InitializeCommonControls(widget.Refresh) + widget.SetKeyboardChar("j", widget.Next, "Select next item") widget.SetKeyboardChar("k", widget.Prev, "Select previous item") widget.SetKeyboardChar("o", widget.openBuild, "Open item in browser") diff --git a/modules/twitter/keyboard.go b/modules/twitter/keyboard.go index 93d40439..959ab9f2 100644 --- a/modules/twitter/keyboard.go +++ b/modules/twitter/keyboard.go @@ -6,8 +6,8 @@ import ( ) func (widget *Widget) initializeKeyboardControls() { - widget.SetKeyboardChar("/", widget.ShowHelp, "Show/hide this help prompt") - widget.SetKeyboardChar("r", widget.Refresh, "Refresh widget") + widget.InitializeCommonControls(widget.Refresh) + widget.SetKeyboardChar("l", widget.NextSource, "Select next source") widget.SetKeyboardChar("h", widget.PrevSource, "Select previous source") widget.SetKeyboardChar("o", widget.openFile, "Open source") diff --git a/modules/weatherservices/weather/keyboard.go b/modules/weatherservices/weather/keyboard.go index 197e36be..080a7ced 100644 --- a/modules/weatherservices/weather/keyboard.go +++ b/modules/weatherservices/weather/keyboard.go @@ -3,8 +3,8 @@ package weather import "github.com/gdamore/tcell" func (widget *Widget) initializeKeyboardControls() { - widget.SetKeyboardChar("/", widget.ShowHelp, "Show/hide this help prompt") - widget.SetKeyboardChar("r", widget.Refresh, "Refresh Widget") + widget.InitializeCommonControls(widget.Refresh) + widget.SetKeyboardChar("h", widget.PrevSource, "Select previous city") widget.SetKeyboardChar("l", widget.NextSource, "Select next city") diff --git a/modules/zendesk/keyboard.go b/modules/zendesk/keyboard.go index 3640d414..4c135cd8 100644 --- a/modules/zendesk/keyboard.go +++ b/modules/zendesk/keyboard.go @@ -3,8 +3,8 @@ package zendesk import "github.com/gdamore/tcell" func (widget *Widget) initializeKeyboardControls() { - widget.SetKeyboardChar("/", widget.ShowHelp, "Show/hide this help prompt") - widget.SetKeyboardChar("r", widget.ShowHelp, "Refresh widget") + widget.InitializeCommonControls(widget.Refresh) + widget.SetKeyboardChar("j", widget.Next, "Select next item") widget.SetKeyboardChar("k", widget.Prev, "Select previous item") widget.SetKeyboardChar("o", widget.openTicket, "Open item") diff --git a/view/keyboard_widget.go b/view/keyboard_widget.go index d48c69fd..ba9ffbf0 100644 --- a/view/keyboard_widget.go +++ b/view/keyboard_widget.go @@ -31,7 +31,7 @@ type KeyboardWidget struct { // NewKeyboardWidget creates and returns a new instance of KeyboardWidget func NewKeyboardWidget(app *tview.Application, pages *tview.Pages, settings *cfg.Common) KeyboardWidget { - return KeyboardWidget{ + keyWidget := KeyboardWidget{ app: app, pages: pages, settings: settings, @@ -40,6 +40,8 @@ func NewKeyboardWidget(app *tview.Application, pages *tview.Pages, settings *cfg charHelp: []helpItem{}, keyHelp: []helpItem{}, } + + return keyWidget } // SetKeyboardChar sets a character/function combination that responds to key presses @@ -70,6 +72,16 @@ func (widget *KeyboardWidget) SetKeyboardKey(key tcell.Key, fn func(), helpText } } +// InitializeCommonControls sets up the keyboard controls that are common to +// all widgets that accept keyboard input +func (widget *KeyboardWidget) InitializeCommonControls(refreshFunc func()) { + widget.SetKeyboardChar("/", widget.ShowHelp, "Show/hide this help prompt") + + if refreshFunc != nil { + widget.SetKeyboardChar("r", refreshFunc, "Refresh widget") + } +} + // InputCapture is the function passed to tview's SetInputCapture() function // This is done during the main widget's creation process using the following code: //