summaryrefslogtreecommitdiffstats
path: root/pkg/gui/commit_message_panel.go
diff options
context:
space:
mode:
authorMark Kopenga <mkopenga@gmail.com>2018-08-14 11:05:26 +0200
committerMark Kopenga <mkopenga@gmail.com>2018-08-14 11:05:26 +0200
commitdfafb988713a79664139d15ad471736a5a4b1b90 (patch)
treeebde4bd5c64ce8e1fe5e8670657c708984b0e8ff /pkg/gui/commit_message_panel.go
parentf2dfcb6e12d78f3e7b890d5bd43be7b032e1df88 (diff)
tried to update to latest master
Diffstat (limited to 'pkg/gui/commit_message_panel.go')
-rw-r--r--pkg/gui/commit_message_panel.go50
1 files changed, 50 insertions, 0 deletions
diff --git a/pkg/gui/commit_message_panel.go b/pkg/gui/commit_message_panel.go
new file mode 100644
index 000000000..f765ab308
--- /dev/null
+++ b/pkg/gui/commit_message_panel.go
@@ -0,0 +1,50 @@
+package gui
+
+import "github.com/jesseduffield/gocui"
+
+func (gui *Gui) handleCommitConfirm(g *gocui.Gui, v *gocui.View) error {
+ message := gui.trimmedContent(v)
+ if message == "" {
+ return gui.createErrorPanel(g, "You cannot commit without a commit message")
+ }
+ sub, err := gui.GitCommand.Commit(g, message)
+ if err != nil {
+ // TODO need to find a way to send through this error
+ if err != ErrSubProcess {
+ return gui.createErrorPanel(g, err.Error())
+ }
+ }
+ if sub != nil {
+ gui.SubProcess = sub
+ return ErrSubProcess
+ }
+ gui.refreshFiles(g)
+ v.Clear()
+ v.SetCursor(0, 0)
+ g.SetViewOnBottom("commitMessage")
+ gui.switchFocus(g, v, gui.getFilesView(g))
+ return gui.refreshCommits(g)
+}
+
+func (gui *Gui) handleCommitClose(g *gocui.Gui, v *gocui.View) error {
+ g.SetViewOnBottom("commitMessage")
+ return gui.switchFocus(g, v, gui.getFilesView(g))
+}
+
+func (gui *Gui) handleNewlineCommitMessage(g *gocui.Gui, v *gocui.View) error {
+ // resising ahead of time so that the top line doesn't get hidden to make
+ // room for the cursor on the second line
+ x0, y0, x1, y1 := gui.getConfirmationPanelDimensions(g, v.Buffer())
+ if _, err := g.SetView("commitMessage", x0, y0, x1, y1+1, 0); err != nil {
+ if err != gocui.ErrUnknownView {
+ return err
+ }
+ }
+
+ v.EditNewLine()
+ return nil
+}
+
+func (gui *Gui) handleCommitFocused(g *gocui.Gui, v *gocui.View) error {
+ return gui.renderString(g, "options", "esc: close, enter: confirm")
+}