diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2020-08-22 10:17:09 +1000 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2020-08-23 14:29:18 +1000 |
commit | 134566ed49718b5ff73d74f22a3cc743371c57d6 (patch) | |
tree | dd3e0def7241e64caa7184005cc011aa2328a63c /pkg/gui/branches_panel.go | |
parent | 8da93fd76287d16156308896ef162e9749fcd27f (diff) |
move into more appropriate file
Diffstat (limited to 'pkg/gui/branches_panel.go')
-rw-r--r-- | pkg/gui/branches_panel.go | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/pkg/gui/branches_panel.go b/pkg/gui/branches_panel.go index 358b094e8..7f7748834 100644 --- a/pkg/gui/branches_panel.go +++ b/pkg/gui/branches_panel.go @@ -468,3 +468,40 @@ func (gui *Gui) handleClipboardCopyBranch(g *gocui.Gui, v *gocui.View) error { return gui.OSCommand.CopyToClipboard(branch.Name) } + +func (gui *Gui) handleNewBranchOffCurrentItem() error { + context := gui.currentSideContext() + + item := context.GetSelectedItem() + if item == nil { + return nil + } + + message := gui.Tr.TemplateLocalize( + "NewBranchNameBranchOff", + Teml{ + "branchName": item.Description(), + }, + ) + + return gui.prompt(gui.getCurrentSideView(), message, "", func(response string) error { + if err := gui.GitCommand.NewBranch(response, item.ID()); err != nil { + return err + } + + // if we're currently in the branch commits context then the selected commit + // is about to go to the top of the list + if context.GetKey() == BRANCH_COMMITS_CONTEXT_KEY { + context.GetPanelState().SetSelectedLineIdx(0) + } + + if context.GetKey() != gui.Contexts.Branches.Context.GetKey() { + if err := gui.switchContext(gui.Contexts.Branches.Context); err != nil { + return err + } + gui.State.Panels.Branches.SelectedLineIdx = 0 + } + + return gui.refreshSidePanels(refreshOptions{mode: ASYNC}) + }) +} |