diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2020-08-23 09:23:59 +1000 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2020-08-23 14:29:18 +1000 |
commit | b3a7acbdad7d11df12fce95aff8aa95eff7d0d6a (patch) | |
tree | 400f9a497fdb2eb83551d0e8df917f054fffd6a4 /pkg/gui | |
parent | 88ae550b93020de7e4b232b3ed9a26606c7caa83 (diff) |
more standardising modes
Diffstat (limited to 'pkg/gui')
-rw-r--r-- | pkg/gui/global_handlers.go | 20 | ||||
-rw-r--r-- | pkg/gui/modes.go | 32 | ||||
-rw-r--r-- | pkg/gui/quitting.go | 2 |
3 files changed, 32 insertions, 22 deletions
diff --git a/pkg/gui/global_handlers.go b/pkg/gui/global_handlers.go index 574efdc6d..ce75c6162 100644 --- a/pkg/gui/global_handlers.go +++ b/pkg/gui/global_handlers.go @@ -141,21 +141,17 @@ func (gui *Gui) handleInfoClick(g *gocui.Gui, v *gocui.View) error { cx, _ := v.Cursor() width, _ := v.Size() - // if we're in the normal context there will be a donate button here - if width-cx <= len(gui.Tr.SLocalize("(reset)")) { - if gui.State.Modes.Filtering.Active() { - return gui.exitFilterMode() - } - if gui.State.Modes.Diffing.Active() { - return gui.exitDiffMode() - } - if gui.GitCommand.PatchManager.Active() { - return gui.handleResetPatch() - } - } else { + if width-cx > len(gui.Tr.SLocalize("(reset)")) { return nil } + for _, mode := range gui.modeStatuses() { + if mode.isActive() { + return mode.reset() + } + } + + // if we're not in an active mode we show the donate button if cx <= len(gui.Tr.SLocalize("Donate"))+len(INFO_SECTION_PADDING) { return gui.OSCommand.OpenLink("https://github.com/sponsors/jesseduffield") } diff --git a/pkg/gui/modes.go b/pkg/gui/modes.go index f53a64d13..79239e91c 100644 --- a/pkg/gui/modes.go +++ b/pkg/gui/modes.go @@ -10,7 +10,7 @@ import ( type modeStatus struct { isActive func() bool description func() string - onReset func() error + reset func() error } func (gui *Gui) modeStatuses() []modeStatus { @@ -18,30 +18,44 @@ func (gui *Gui) modeStatuses() []modeStatus { { isActive: gui.State.Modes.Diffing.Active, description: func() string { - return utils.ColoredString(fmt.Sprintf("%s %s %s", gui.Tr.SLocalize("showingGitDiff"), "git diff "+gui.diffStr(), utils.ColoredString(gui.Tr.SLocalize("(reset)"), color.Underline)), color.FgMagenta) + return utils.ColoredString( + fmt.Sprintf("%s %s %s", gui.Tr.SLocalize("showingGitDiff"), "git diff "+gui.diffStr(), utils.ColoredString(gui.Tr.SLocalize("(reset)"), color.Underline)), + color.FgMagenta, + ) }, - onReset: gui.exitDiffMode, + reset: gui.exitDiffMode, }, { isActive: gui.State.Modes.Filtering.Active, description: func() string { - return utils.ColoredString(fmt.Sprintf("%s '%s' %s", gui.Tr.SLocalize("filteringBy"), gui.State.Modes.Filtering.Path, utils.ColoredString(gui.Tr.SLocalize("(reset)"), color.Underline)), color.FgRed, color.Bold) + return utils.ColoredString( + fmt.Sprintf("%s '%s' %s", gui.Tr.SLocalize("filteringBy"), gui.State.Modes.Filtering.Path, utils.ColoredString(gui.Tr.SLocalize("(reset)"), color.Underline)), + color.FgRed, + color.Bold, + ) }, - onReset: gui.exitFilterMode, + reset: gui.exitFilterMode, }, { isActive: gui.GitCommand.PatchManager.Active, description: func() string { - return utils.ColoredString(fmt.Sprintf("%s %s", gui.Tr.SLocalize("buildingPatch"), utils.ColoredString(gui.Tr.SLocalize("(reset)"), color.Underline)), color.FgYellow, color.Bold) + return utils.ColoredString( + fmt.Sprintf("%s %s", gui.Tr.SLocalize("buildingPatch"), utils.ColoredString(gui.Tr.SLocalize("(reset)"), color.Underline)), + color.FgYellow, + color.Bold, + ) }, - onReset: gui.handleResetPatch, + reset: gui.handleResetPatch, }, { isActive: gui.State.Modes.CherryPicking.Active, description: func() string { - return utils.ColoredString(fmt.Sprintf("%d commits copied", len(gui.State.Modes.CherryPicking.CherryPickedCommits)), color.FgCyan) + return utils.ColoredString( + fmt.Sprintf("%d commits copied %s", len(gui.State.Modes.CherryPicking.CherryPickedCommits), utils.ColoredString(gui.Tr.SLocalize("(reset)"), color.Underline)), + color.FgCyan, + ) }, - onReset: gui.exitCherryPickingMode, + reset: gui.exitCherryPickingMode, }, } } diff --git a/pkg/gui/quitting.go b/pkg/gui/quitting.go index da755c4dc..297b4a474 100644 --- a/pkg/gui/quitting.go +++ b/pkg/gui/quitting.go @@ -43,7 +43,7 @@ func (gui *Gui) handleTopLevelReturn(g *gocui.Gui, v *gocui.View) error { for _, mode := range gui.modeStatuses() { if mode.isActive() { - return mode.onReset() + return mode.reset() } } |