1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2024-12-12 11:15:00 +02:00

more standardising modes

This commit is contained in:
Jesse Duffield 2020-08-23 09:23:59 +10:00
parent 88ae550b93
commit b3a7acbdad
3 changed files with 32 additions and 22 deletions

View File

@ -141,21 +141,17 @@ func (gui *Gui) handleInfoClick(g *gocui.Gui, v *gocui.View) error {
cx, _ := v.Cursor() cx, _ := v.Cursor()
width, _ := v.Size() 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 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 {
return nil 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) { if cx <= len(gui.Tr.SLocalize("Donate"))+len(INFO_SECTION_PADDING) {
return gui.OSCommand.OpenLink("https://github.com/sponsors/jesseduffield") return gui.OSCommand.OpenLink("https://github.com/sponsors/jesseduffield")
} }

View File

@ -10,7 +10,7 @@ import (
type modeStatus struct { type modeStatus struct {
isActive func() bool isActive func() bool
description func() string description func() string
onReset func() error reset func() error
} }
func (gui *Gui) modeStatuses() []modeStatus { func (gui *Gui) modeStatuses() []modeStatus {
@ -18,30 +18,44 @@ func (gui *Gui) modeStatuses() []modeStatus {
{ {
isActive: gui.State.Modes.Diffing.Active, isActive: gui.State.Modes.Diffing.Active,
description: func() string { 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, isActive: gui.State.Modes.Filtering.Active,
description: func() string { 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, isActive: gui.GitCommand.PatchManager.Active,
description: func() string { 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, isActive: gui.State.Modes.CherryPicking.Active,
description: func() string { 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,
}, },
} }
} }

View File

@ -43,7 +43,7 @@ func (gui *Gui) handleTopLevelReturn(g *gocui.Gui, v *gocui.View) error {
for _, mode := range gui.modeStatuses() { for _, mode := range gui.modeStatuses() {
if mode.isActive() { if mode.isActive() {
return mode.onReset() return mode.reset()
} }
} }