summaryrefslogtreecommitdiffstats
path: root/pkg/gui/commit_files_panel.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/gui/commit_files_panel.go')
-rw-r--r--pkg/gui/commit_files_panel.go35
1 files changed, 26 insertions, 9 deletions
diff --git a/pkg/gui/commit_files_panel.go b/pkg/gui/commit_files_panel.go
index 845f7b02d..ab7b56ae7 100644
--- a/pkg/gui/commit_files_panel.go
+++ b/pkg/gui/commit_files_panel.go
@@ -15,11 +15,21 @@ func (gui *Gui) getSelectedCommitFile(g *gocui.Gui) *commands.CommitFile {
return gui.State.CommitFiles[selectedLine]
}
+func (gui *Gui) handleCommitFilesClick(g *gocui.Gui, v *gocui.View) error {
+ itemCount := len(gui.State.CommitFiles)
+ handleSelect := gui.handleCommitFileSelect
+ selectedLine := &gui.State.Panels.CommitFiles.SelectedLine
+
+ return gui.handleClick(v, itemCount, selectedLine, handleSelect)
+}
+
func (gui *Gui) handleCommitFileSelect(g *gocui.Gui, v *gocui.View) error {
if gui.popupPanelFocused() {
return nil
}
+ gui.getMainView().Title = "Patch"
+
commitFile := gui.getSelectedCommitFile(g)
if commitFile == nil {
return gui.renderString(g, "commitFiles", gui.Tr.SLocalize("NoCommiteFiles"))
@@ -96,7 +106,7 @@ func (gui *Gui) refreshCommitFilesView() error {
return err
}
- if err := gui.refreshPatchBuildingPanel(); err != nil {
+ if err := gui.refreshPatchBuildingPanel(-1); err != nil {
return err
}
@@ -177,16 +187,20 @@ func (gui *Gui) startPatchManager() error {
}
func (gui *Gui) handleEnterCommitFile(g *gocui.Gui, v *gocui.View) error {
+ return gui.enterCommitFile(-1)
+}
+
+func (gui *Gui) enterCommitFile(selectedLineIdx int) error {
if ok, err := gui.validateNormalWorkingTreeState(); !ok {
return err
}
- commitFile := gui.getSelectedCommitFile(g)
+ commitFile := gui.getSelectedCommitFile(gui.g)
if commitFile == nil {
- return gui.renderString(g, "commitFiles", gui.Tr.SLocalize("NoCommiteFiles"))
+ return gui.renderString(gui.g, "commitFiles", gui.Tr.SLocalize("NoCommiteFiles"))
}
- enterTheFile := func() error {
+ enterTheFile := func(selectedLineIdx int) error {
if !gui.GitCommand.PatchManager.CommitSelected() {
if err := gui.startPatchManager(); err != nil {
return err
@@ -196,18 +210,21 @@ func (gui *Gui) handleEnterCommitFile(g *gocui.Gui, v *gocui.View) error {
if err := gui.changeContext("main", "patch-building"); err != nil {
return err
}
- if err := gui.switchFocus(g, v, gui.getMainView()); err != nil {
+ if err := gui.changeContext("secondary", "patch-building"); err != nil {
+ return err
+ }
+ if err := gui.switchFocus(gui.g, gui.getCommitFilesView(), gui.getMainView()); err != nil {
return err
}
- return gui.refreshPatchBuildingPanel()
+ return gui.refreshPatchBuildingPanel(selectedLineIdx)
}
if gui.GitCommand.PatchManager.CommitSelected() && gui.GitCommand.PatchManager.CommitSha != commitFile.Sha {
- return gui.createConfirmationPanel(g, v, false, gui.Tr.SLocalize("DiscardPatch"), gui.Tr.SLocalize("DiscardPatchConfirm"), func(g *gocui.Gui, v *gocui.View) error {
+ return gui.createConfirmationPanel(gui.g, gui.getCommitFilesView(), false, gui.Tr.SLocalize("DiscardPatch"), gui.Tr.SLocalize("DiscardPatchConfirm"), func(g *gocui.Gui, v *gocui.View) error {
gui.GitCommand.PatchManager.Reset()
- return enterTheFile()
+ return enterTheFile(selectedLineIdx)
}, nil)
}
- return enterTheFile()
+ return enterTheFile(selectedLineIdx)
}