summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2020-01-08 22:19:13 +1100
committerJesse Duffield <jessedduffield@gmail.com>2020-01-08 22:30:54 +1100
commite0015a52e567b58697851f616549c37213c621fe (patch)
tree85011eedc44acf236f13758e11e0a171e690f6c7
parentaea4661be540f075e86f97b881ed125f0233866c (diff)
refresh side panels when resetting to upstreamv0.12.1
-rw-r--r--pkg/gui/files_panel.go75
-rw-r--r--pkg/gui/workspace_reset_options_panel.go100
2 files changed, 100 insertions, 75 deletions
diff --git a/pkg/gui/files_panel.go b/pkg/gui/files_panel.go
index 82a81654c..38622efa1 100644
--- a/pkg/gui/files_panel.go
+++ b/pkg/gui/files_panel.go
@@ -10,7 +10,6 @@ import (
"fmt"
"strings"
- "github.com/fatih/color"
"github.com/jesseduffield/gocui"
"github.com/jesseduffield/lazygit/pkg/commands"
"github.com/jesseduffield/lazygit/pkg/utils"
@@ -510,22 +509,11 @@ type discardOption struct {
description string
}
-type discardAllOption struct {
- handler func() error
- description string
- command string
-}
-
// GetDisplayStrings is a function.
func (r *discardOption) GetDisplayStrings(isFocused bool) []string {
return []string{r.description}
}
-// GetDisplayStrings is a function.
-func (r *discardAllOption) GetDisplayStrings(isFocused bool) []string {
- return []string{r.description, color.New(color.FgRed).Sprint(r.command)}
-}
-
func (gui *Gui) handleCreateDiscardMenu(g *gocui.Gui, v *gocui.View) error {
file, err := gui.getSelectedFile(g)
if err != nil {
@@ -577,69 +565,6 @@ func (gui *Gui) handleCreateDiscardMenu(g *gocui.Gui, v *gocui.View) error {
return gui.createMenu(file.Name, options, len(options), handleMenuPress)
}
-func (gui *Gui) handleCreateResetMenu(g *gocui.Gui, v *gocui.View) error {
- options := []*discardAllOption{
- {
- description: gui.Tr.SLocalize("discardAllChangesToAllFiles"),
- command: "reset --hard HEAD && git clean -fd",
- handler: func() error {
- return gui.GitCommand.ResetAndClean()
- },
- },
- {
- description: gui.Tr.SLocalize("discardAnyUnstagedChanges"),
- command: "git checkout -- .",
- handler: func() error {
- return gui.GitCommand.DiscardAnyUnstagedFileChanges()
- },
- },
- {
- description: gui.Tr.SLocalize("discardUntrackedFiles"),
- command: "git clean -fd",
- handler: func() error {
- return gui.GitCommand.RemoveUntrackedFiles()
- },
- },
- {
- description: gui.Tr.SLocalize("softReset"),
- command: "git reset --soft HEAD",
- handler: func() error {
- return gui.GitCommand.ResetSoft("HEAD")
- },
- },
- {
- description: gui.Tr.SLocalize("hardReset"),
- command: "git reset --hard HEAD",
- handler: func() error {
- return gui.GitCommand.ResetHard("HEAD")
- },
- },
- {
- description: gui.Tr.SLocalize("hardResetUpstream"),
- command: "git reset --hard @{upstream}",
- handler: func() error {
- return gui.GitCommand.ResetHard("@{upstream}")
- },
- },
- {
- description: gui.Tr.SLocalize("cancel"),
- handler: func() error {
- return nil
- },
- },
- }
-
- handleMenuPress := func(index int) error {
- if err := options[index].handler(); err != nil {
- return gui.createErrorPanel(gui.g, err.Error())
- }
-
- return gui.refreshFiles()
- }
-
- return gui.createMenu("", options, len(options), handleMenuPress)
-}
-
func (gui *Gui) handleCustomCommand(g *gocui.Gui, v *gocui.View) error {
return gui.createPromptPanel(g, v, gui.Tr.SLocalize("CustomCommand"), "", func(g *gocui.Gui, v *gocui.View) error {
command := gui.trimmedContent(v)
diff --git a/pkg/gui/workspace_reset_options_panel.go b/pkg/gui/workspace_reset_options_panel.go
new file mode 100644
index 000000000..0e3cd59c6
--- /dev/null
+++ b/pkg/gui/workspace_reset_options_panel.go
@@ -0,0 +1,100 @@
+package gui
+
+import (
+ "github.com/fatih/color"
+ "github.com/jesseduffield/gocui"
+)
+
+type workspaceResetOption struct {
+ handler func() error
+ description string
+ command string
+}
+
+// GetDisplayStrings is a function.
+func (r *workspaceResetOption) GetDisplayStrings(isFocused bool) []string {
+ return []string{r.description, color.New(color.FgRed).Sprint(r.command)}
+}
+
+func (gui *Gui) handleCreateResetMenu(g *gocui.Gui, v *gocui.View) error {
+ options := []*workspaceResetOption{
+ {
+ description: gui.Tr.SLocalize("discardAllChangesToAllFiles"),
+ command: "reset --hard HEAD && git clean -fd",
+ handler: func() error {
+ if err := gui.GitCommand.ResetAndClean(); err != nil {
+ return gui.createErrorPanel(gui.g, err.Error())
+ }
+
+ return gui.refreshFiles()
+ },
+ },
+ {
+ description: gui.Tr.SLocalize("discardAnyUnstagedChanges"),
+ command: "git checkout -- .",
+ handler: func() error {
+ if err := gui.GitCommand.DiscardAnyUnstagedFileChanges(); err != nil {
+ return gui.createErrorPanel(gui.g, err.Error())
+ }
+
+ return gui.refreshFiles()
+ },
+ },
+ {
+ description: gui.Tr.SLocalize("discardUntrackedFiles"),
+ command: "git clean -fd",
+ handler: func() error {
+ if err := gui.GitCommand.RemoveUntrackedFiles(); err != nil {
+ return gui.createErrorPanel(gui.g, err.Error())
+ }
+
+ return gui.refreshFiles()
+ },
+ },
+ {
+ description: gui.Tr.SLocalize("softReset"),
+ command: "git reset --soft HEAD",
+ handler: func() error {
+ if err := gui.GitCommand.ResetSoft("HEAD"); err != nil {
+ return gui.createErrorPanel(gui.g, err.Error())
+ }
+
+ return gui.refreshFiles()
+ },
+ },
+ {
+ description: gui.Tr.SLocalize("hardReset"),
+ command: "git reset --hard HEAD",
+ handler: func() error {
+ if err := gui.GitCommand.ResetHard("HEAD"); err != nil {
+ return gui.createErrorPanel(gui.g, err.Error())
+ }
+
+ return gui.refreshFiles()
+ },
+ },
+ {
+ description: gui.Tr.SLocalize("hardResetUpstream"),
+ command: "git reset --hard @{upstream}",
+ handler: func() error {
+ if err := gui.GitCommand.ResetHard("@{upstream}"); err != nil {
+ return gui.createErrorPanel(gui.g, err.Error())
+ }
+
+ return gui.refreshSidePanels(gui.g)
+ },
+ },
+ {
+ description: gui.Tr.SLocalize("cancel"),
+ handler: func() error {
+ return nil
+ },
+ },
+ }
+
+ handleMenuPress := func(index int) error {
+ return options[index].handler()
+ }
+
+ return gui.createMenu("", options, len(options), handleMenuPress)
+}