summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2020-08-23 09:23:59 +1000
committerJesse Duffield <jessedduffield@gmail.com>2020-08-23 14:29:18 +1000
commitb3a7acbdad7d11df12fce95aff8aa95eff7d0d6a (patch)
tree400f9a497fdb2eb83551d0e8df917f054fffd6a4
parent88ae550b93020de7e4b232b3ed9a26606c7caa83 (diff)
more standardising modes
-rw-r--r--pkg/gui/global_handlers.go20
-rw-r--r--pkg/gui/modes.go32
-rw-r--r--pkg/gui/quitting.go2
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()
}
}