summaryrefslogtreecommitdiffstats
path: root/pkg/gui/controllers
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2022-03-26 16:42:56 +1100
committerJesse Duffield <jessedduffield@gmail.com>2022-03-26 17:22:42 +1100
commit45dab51214d7deca689279a6a162d80ee27befc8 (patch)
treefc06fe1b646f37f46ea2461f2b90f41235775ede /pkg/gui/controllers
parent540edb0bf46df2dce32f9bcc554c482cfa0cbc7b (diff)
add basic commits controller for handling actions that apply to all commit contexts
Diffstat (limited to 'pkg/gui/controllers')
-rw-r--r--pkg/gui/controllers/basic_commits_controller.go236
-rw-r--r--pkg/gui/controllers/local_commits_controller.go166
-rw-r--r--pkg/gui/controllers/reflog_controller.go103
-rw-r--r--pkg/gui/controllers/sub_commits_controller.go114
4 files changed, 236 insertions, 383 deletions
diff --git a/pkg/gui/controllers/basic_commits_controller.go b/pkg/gui/controllers/basic_commits_controller.go
new file mode 100644
index 000000000..c59686126
--- /dev/null
+++ b/pkg/gui/controllers/basic_commits_controller.go
@@ -0,0 +1,236 @@
+package controllers
+
+import (
+ "github.com/jesseduffield/gocui"
+ "github.com/jesseduffield/lazygit/pkg/commands/models"
+ "github.com/jesseduffield/lazygit/pkg/gui/types"
+)
+
+// This controller is for all contexts that contain a list of commits.
+
+type BasicCommitsControllerFactory struct {
+ controllerCommon *controllerCommon
+}
+
+var _ types.IController = &BasicCommitsController{}
+
+type ContainsCommits interface {
+ types.Context
+ GetSelected() *models.Commit
+ GetCommits() []*models.Commit
+ GetSelectedLineIdx() int
+}
+
+type BasicCommitsController struct {
+ baseController
+ *controllerCommon
+ context ContainsCommits
+}
+
+func NewBasicCommitsControllerFactory(
+ common *controllerCommon,
+) *BasicCommitsControllerFactory {
+ return &BasicCommitsControllerFactory{
+ controllerCommon: common,
+ }
+}
+
+func (self *BasicCommitsControllerFactory) Create(context ContainsCommits) *BasicCommitsController {
+ return &BasicCommitsController{
+ baseController: baseController{},
+ controllerCommon: self.controllerCommon,
+ context: context,
+ }
+}
+
+func (self *BasicCommitsController) GetKeybindings(opts types.KeybindingsOpts) []*types.Binding {
+ bindings := []*types.Binding{
+ {
+ Key: opts.GetKey(opts.Config.Commits.CheckoutCommit),
+ Handler: self.checkSelected(self.checkout),
+ Description: self.c.Tr.LcCheckoutCommit,
+ },
+ {
+ Key: opts.GetKey(opts.Config.Commits.CopyCommitAttributeToClipboard),
+ Handler: self.checkSelected(self.copyCommitAttribute),
+ Description: self.c.Tr.LcCopyCommitAttributeToClipboard,
+ OpensMenu: true,
+ },
+ {
+ Key: opts.GetKey(opts.Config.Commits.OpenInBrowser),
+ Handler: self.checkSelected(self.openInBrowser),
+ Description: self.c.Tr.LcOpenCommitInBrowser,
+ },
+ {
+ Key: opts.GetKey(opts.Config.Universal.New),
+ Modifier: gocui.ModNone,
+ Handler: self.checkSelected(self.newBranch),
+ Description: self.c.Tr.LcCreateNewBranchFromCommit,
+ },
+ {
+ Key: opts.GetKey(opts.Config.Commits.ViewResetOptions),
+ Handler: self.checkSelected(self.createResetMenu),
+ Description: self.c.Tr.LcResetToThisCommit,
+ },
+ {
+ Key: opts.GetKey(opts.Config.Commits.CherryPickCopy),
+ Handler: self.checkSelected(self.copy),
+ Description: self.c.Tr.LcCherryPickCopy,
+ },
+ {
+ Key: opts.GetKey(opts.Config.Commits.CherryPickCopyRange),
+ Handler: self.checkSelected(self.copyRange),
+ Description: self.c.Tr.LcCherryPickCopyRange,
+ },
+ {
+ Key: opts.GetKey(opts.Config.Commits.ResetCherryPick),
+ Handler: self.helpers.CherryPick.Reset,
+ Description: self.c.Tr.LcResetCherryPick,
+ },
+ }
+
+ return bindings
+}
+
+func (self *BasicCommitsController) checkSelected(callback func(*models.Commit) error) func() error {
+ return func() error {
+ commit := self.context.GetSelected()
+ if commit == nil {
+ return nil
+ }
+
+ return callback(commit)
+ }
+}
+
+func (self *BasicCommitsController) Context() types.Context {
+ return self.context
+}
+
+func (self *BasicCommitsController) copyCommitAttribute(commit *models.Commit) error {
+ return self.c.Menu(types.CreateMenuOptions{
+ Title: self.c.Tr.Actions.CopyCommitAttributeToClipboard,
+ Items: []*types.MenuItem{
+ {
+ DisplayString: self.c.Tr.LcCommitSha,
+ OnPress: func() error {
+ return self.copyCommitSHAToClipboard(commit)
+ },
+ },
+ {
+ DisplayString: self.c.Tr.LcCommitURL,
+ OnPress: func() error {
+ return self.copyCommitURLToClipboard(commit)
+ },
+ },
+ {
+ DisplayString: self.c.Tr.LcCommitDiff,
+ OnPress: func() error {
+ return self.copyCommitDiffToClipboard(commit)
+ },
+ },
+ {
+ DisplayString: self.c.Tr.LcCommitMessage,
+ OnPress: func() error {
+ return self.copyCommitMessageToClipboard(commit)
+ },
+ },
+ },
+ })
+}
+
+func (self *BasicCommitsController) copyCommitSHAToClipboard(commit *models.Commit) error {
+ self.c.LogAction(self.c.Tr.Actions.CopyCommitSHAToClipboard)
+ if err := self.os.CopyToClipboard(commit.Sha); err != nil {
+ return self.c.Error(err)
+ }
+
+ self.c.Toast(self.c.Tr.CommitSHACopiedToClipboard)
+ return nil
+}
+
+func (self *BasicCommitsController) copyCommitURLToClipboard(commit *models.Commit) error {
+ url, err := self.helpers.Host.GetCommitURL(commit.Sha)
+ if err != nil {
+ return err
+ }
+
+ self.c.LogAction(self.c.Tr.Actions.CopyCommitURLToClipboard)
+ if err := self.os.CopyToClipboard(url); err != nil {
+ return self.c.Error(err)
+ }
+
+ self.c.Toast(self.c.Tr.CommitURLCopiedToClipboard)
+ return nil
+}
+
+func (self *BasicCommitsController) copyCommitDiffToClipboard(commit *models.Commit) error {
+ diff, err := self.git.Commit.GetCommitDiff(commit.Sha)
+ if err != nil {
+ return self.c.Error(err)
+ }
+
+ self.c.LogAction(self.c.Tr.Actions.CopyCommitDiffToClipboard)
+ if err := self.os.CopyToClipboard(diff); err != nil {
+ return self.c.Error(err)
+ }
+
+ self.c.Toast(self.c.Tr.CommitDiffCopiedToClipboard)
+ return nil
+}
+
+func (self *BasicCommitsController) copyCommitMessageToClipboard(commit *models.Commit) error {
+ message, err := self.git.Commit.GetCommitMessage(commit.Sha)
+ if err != nil {
+ return self.c.Error(err)
+ }
+
+ self.c.LogAction(self.c.Tr.Actions.CopyCommitMessageToClipboard)
+ if err := self.os.CopyToClipboard(message); err != nil {
+ return self.c.Error(err)
+ }
+
+ self.c.Toast(self.c.Tr.CommitMessageCopiedToClipboard)
+ return nil
+}
+
+func (self *BasicCommitsController) openInBrowser(commit *models.Commit) error {
+ url, err := self.helpers.Host.GetCommitURL(commit.Sha)
+ if err != nil {
+ return self.c.Error(err)
+ }
+
+ self.c.LogAction(self.c.Tr.Actions.OpenCommitInBrowser)
+ if err := self.os.OpenLink(url); err != nil {
+ return self.c.Error(err)
+ }
+
+ return nil
+}
+
+func (self *BasicCommitsController) newBranch(commit *models.Commit) error {
+ return self.helpers.Refs.NewBranch(commit.RefName(), commit.Description(), "")
+}
+
+func (self *BasicCommitsController) createResetMenu(commit *models.Commit) error {
+ return self.helpers.Refs.CreateGitResetMenu(commit.Sha)
+}
+
+func (self *BasicCommitsController) checkout(commit *models.Commit) error {
+ return self.c.Ask(types.AskOpts{
+ Title: self.c.Tr.LcCheckoutCommit,
+ Prompt: self.c.Tr.SureCheckoutThisCommit,
+ HandleConfirm: func() error {
+ self.c.LogAction(self.c.Tr.Actions.CheckoutCommit)
+ return self.helpers.Refs.CheckoutRef(commit.Sha, types.CheckoutRefOptions{})
+ },
+ })
+}
+
+func (self *BasicCommitsController) copy(commit *models.Commit) error {
+ return self.helpers.CherryPick.Copy(commit, self.context.GetCommits(), self.context)
+}
+
+func (self *BasicCommitsController) copyRange(*models.Commit) error {
+ return self.helpers.CherryPick.CopyRange(self.context.GetSelectedLineIdx(), self.model.Commits, self.context)
+}
diff --git a/pkg/gui/controllers/local_commits_controller.go b/pkg/gui/controllers/local_commits_controller.go
index 2c3618b82..41433068d 100644
--- a/pkg/gui/controllers/local_commits_controller.go
+++ b/pkg/gui/controllers/local_commits_controller.go
@@ -3,7 +3,6 @@ package controllers
import (
"fmt"
- "github.com/jesseduffield/gocui"
"github.com/jesseduffield/lazygit/pkg/commands/models"
"github.com/jesseduffield/lazygit/pkg/gui/context"
"github.com/jesseduffield/lazygit/pkg/gui/types"
@@ -102,22 +101,6 @@ func (self *LocalCommitsController) GetKeybindings(opts types.KeybindingsOpts) [
Description: self.c.Tr.LcRevertCommit,
},
{
- Key: opts.GetKey(opts.Config.Universal.New),
- Modifier: gocui.ModNone,
- Handler: self.checkSelected(self.newBranch),
- Description: self.c.Tr.LcCreateNewBranchFromCommit,
- },
- {
- Key: opts.GetKey(opts.Config.Commits.CherryPickCopy),
- Handler: self.checkSelected(self.copy),
- Description: self.c.Tr.LcCherryPickCopy,
- },
- {
- Key: opts.GetKey(opts.Config.Commits.CherryPickCopyRange),
- Handler: self.checkSelected(self.copyRange),
- Description: self.c.Tr.LcCherryPickCopyRange,
- },
- {
Key: opts.GetKey(opts.Config.Commits.PasteCommits),
Handler: opts.Guards.OutsideFilterMode(self.paste),
Description: self.c.Tr.LcPasteCommits,
@@ -150,31 +133,10 @@ func (self *LocalCommitsController) GetKeybindings(opts types.KeybindingsOpts) [
OpensMenu: true,
},
{
- Key: opts.GetKey(opts.Config.Commits.ViewResetOptions),
- Handler: self.checkSelected(self.createResetMenu),
- Description: self.c.Tr.LcResetToThisCommit,
- },
- {
- Key: opts.GetKey(opts.Config.Commits.CheckoutCommit),
- Handler: self.checkSelected(self.checkout),
- Description: self.c.Tr.LcCheckoutCommit,
- },
- {
Key: opts.GetKey(opts.Config.Commits.TagCommit),
Handler: self.checkSelected(self.createTag),
Description: self.c.Tr.LcTagCommit,
},
- {
- Key: opts.GetKey(opts.Config.Commits.CopyCommitAttributeToClipboard),
- Handler: self.checkSelected(self.copyCommitAttribute),
- Description: self.c.Tr.LcCopyCommitAttributeToClipboard,
- OpensMenu: true,
- },
- {
- Key: opts.GetKey(opts.Config.Commits.OpenInBrowser),
- Handler: self.checkSelected(self.openInBrowser),
- Description: self.c.Tr.LcOpenCommitInBrowser,
- },
}...)
return bindings
@@ -557,21 +519,6 @@ func (self *LocalCommitsController) createTag(commit *models.Commit) error {
return self.helpers.Tags.CreateTagMenu(commit.Sha, func() {})
}
-func (self *LocalCommitsController) checkout(commit *models.Commit) error {
- return self.c.Ask(types.AskOpts{
- Title: self.c.Tr.LcCheckoutCommit,
- Prompt: self.c.Tr.SureCheckoutThisCommit,
- HandleConfirm: func() error {
- self.c.LogAction(self.c.Tr.Actions.CheckoutCommit)
- return self.helpers.Refs.CheckoutRef(commit.Sha, types.CheckoutRefOptions{})
- },
- })
-}
-
-func (self *LocalCommitsController) createResetMenu(commit *models.Commit) error {
- return self.helpers.Refs.CreateGitResetMenu(commit.Sha)
-}
-
func (self *LocalCommitsController) openSearch() error {
// we usually lazyload these commits but now that we're searching we need to load them now
if self.context().GetLimitCommits() {
@@ -600,93 +547,6 @@ func (self *LocalCommitsController) gotoBottom() error {
return nil
}
-func (self *LocalCommitsController) copyCommitAttribute(commit *models.Commit) error {
- return self.c.Menu(types.CreateMenuOptions{
- Title: self.c.Tr.Actions.CopyCommitAttributeToClipboard,
- Items: []*types.MenuItem{
- {
- DisplayString: self.c.Tr.LcCommitSha,
- OnPress: func() error {
- return self.copyCommitSHAToClipboard(commit)
- },
- },
- {
- DisplayString: self.c.Tr.LcCommitURL,
- OnPress: func() error {
- return self.copyCommitURLToClipboard(commit)
- },
- },
- {
- DisplayString: self.c.Tr.LcCommitDiff,
- OnPress: func() error {
- return self.copyCommitDiffToClipboard(commit)
- },
- },
- {
- DisplayString: self.c.Tr.LcCommitMessage,
- OnPress: func() error {
- return self.copyCommitMessageToClipboard(commit)
- },
- },
- },
- })
-}
-
-func (self *LocalCommitsController) copyCommitSHAToClipboard(commit *models.Commit) error {
- self.c.LogAction(self.c.Tr.Actions.CopyCommitSHAToClipboard)
- if err := self.os.CopyToClipboard(commit.Sha); err != nil {
- return self.c.Error(err)
- }
-
- self.c.Toast(self.c.Tr.CommitSHACopiedToClipboard)
- return nil
-}
-
-func (self *LocalCommitsController) copyCommitURLToClipboard(commit *models.Commit) error {
- url, err := self.helpers.Host.GetCommitURL(commit.Sha)
- if err != nil {
- return err
- }
-
- self.c.LogAction(self.c.Tr.Actions.CopyCommitURLToClipboard)
- if err := self.os.CopyToClipboard(url); err != nil {
- return self.c.Error(err)
- }
-
- self.c.Toast(self.c.Tr.CommitURLCopiedToClipboard)
- return nil
-}
-
-func (self *LocalCommitsController) copyCommitDiffToClipboard(commit *models.Commit) error {
- diff, err := self.git.Commit.GetCommitDiff(commit.Sha)
- if err != nil {
- return self.c.Error(err)
- }
-
- self.c.LogAction(self.c.Tr.Actions.CopyCommitDiffToClipboard)
- if err := self.os.CopyToClipboard(diff); err != nil {
- return self.c.Error(err)
- }
-
- self.c.Toast(self.c.Tr.CommitDiffCopiedToClipboard)
- return nil
-}
-
-func (self *LocalCommitsController) copyCommitMessageToClipboard(commit *models.Commit) error {
- message, err := self.git.Commit.GetCommitMessage(commit.Sha)
- if err != nil {
- return self.c.Error(err)
- }
-
- self.c.LogAction(self.c.Tr.Actions.CopyCommitMessageToClipboard)
- if err := self.os.CopyToClipboard(message); err != nil {
- return self.c.Error(err)
- }
-
- self.c.Toast(self.c.Tr.CommitMessageCopiedToClipboard)
- return nil
-}
-
func (self *LocalCommitsController) handleOpenLogMenu() error {
return self.c.Menu(types.CreateMenuOptions{
Title: self.c.Tr.LogMenuTitle,
@@ -770,20 +630,6 @@ func (self *LocalCommitsController) handleOpenLogMenu() error {
})
}
-func (self *LocalCommitsController) openInBrowser(commit *models.Commit) error {
- url, err := self.helpers.Host.GetCommitURL(commit.Sha)
- if err != nil {
- return self.c.Error(err)
- }
-
- self.c.LogAction(self.c.Tr.Actions.OpenCommitInBrowser)
- if err := self.os.OpenLink(url); err != nil {
- return self.c.Error(err)
- }
-
- return nil
-}
-
func (self *LocalCommitsController) checkSelected(callback func(*models.Commit) error) func() error {
return func() error {
commit := self.context().GetSelected()
@@ -803,18 +649,6 @@ func (self *LocalCommitsController) context() *context.LocalCommitsContext {
return self.contexts.LocalCommits
}
-func (self *LocalCommitsController) newBranch(commit *models.Commit) error {
- return self.helpers.Refs.NewBranch(commit.RefName(), commit.Description(), "")
-}
-
-func (self *LocalCommitsController) copy(commit *models.Commit) error {
- return self.helpers.CherryPick.Copy(commit, self.model.Commits, self.context())
-}
-
-func (self *LocalCommitsController) copyRange(*models.Commit) error {
- return self.helpers.CherryPick.CopyRange(self.context().GetSelectedLineIdx(), self.model.Commits, self.context())
-}
-
func (self *LocalCommitsController) paste() error {
return self.helpers.CherryPick.Paste()
}
diff --git a/pkg/gui/controllers/reflog_controller.go b/pkg/gui/controllers/reflog_controller.go
deleted file mode 100644
index 4085df635..000000000
--- a/pkg/gui/controllers/reflog_controller.go
+++ /dev/null
@@ -1,103 +0,0 @@
-package controllers
-
-import (
- "github.com/jesseduffield/lazygit/pkg/commands/models"
- "github.com/jesseduffield/lazygit/pkg/gui/context"
- "github.com/jesseduffield/lazygit/pkg/gui/types"
-)
-
-type ReflogController struct {
- baseController
- *controllerCommon
-}
-
-var _ types.IController = &ReflogController{}
-
-func NewReflogController(
- common *controllerCommon,
-) *ReflogController {
- return &ReflogController{
- baseController: baseController{},
- controllerCommon: common,
- }
-}
-
-func (self *ReflogController) GetKeybindings(opts types.KeybindingsOpts) []*types.Binding {
- bindings := []*types.Binding{
- {
- Key: opts.GetKey(opts.Config.Universal.Select),
- Handler: self.checkSelected(self.checkout),
- Description: self.c.Tr.LcCheckoutCommit,
- },
- {
- Key: opts.GetKey(opts.Config.Commits.ViewResetOptions),
- Handler: self.checkSelected(self.openResetMenu),
- Description: self.c.Tr.LcViewResetOptions,
- OpensMenu: true,
- },
- {
- Key: opts.GetKey(opts.Config.Commits.CherryPickCopy),
- Handler: opts.Guards.OutsideFilterMode(self.checkSelected(self.copy)),
- Description: self.c.Tr.LcCherryPickCopy,
- },
- {
- Key: opts.GetKey(opts.Config.Commits.CherryPickCopyRange),
- Handler: opts.Guards.OutsideFilterMode(self.checkSelected(self.copyRange)),
- Description: self.c.Tr.LcCherryPickCopyRange,
- },
- {
- Key: opts.GetKey(opts.Config.Commits.ResetCherryPick),
- Handler: self.helpers.CherryPick.Reset,
- Description: self.c.Tr.LcResetCherryPick,
- },
- }
-
- return bindings
-}
-
-func (self *ReflogController) checkSelected(callback func(*models.Commit) error) func() error {
- return func() error {
- commit := self.context().GetSelected()
- if commit == nil {
- return nil
- }
-
- return callback(commit)
- }
-}
-
-func (self *ReflogController) Context() types.Context {
- return self.context()
-}
-
-func (self *ReflogController) context() *context.ReflogCommitsContext {
- return self.contexts.ReflogCommits
-}
-
-func (self *ReflogController) checkout(commit *models.Commit) error {
- err := self.c.Ask(types.AskOpts{
- Title: self.c.Tr.LcCheckoutCommit,
- Prompt: self.c.Tr.SureCheckoutThisCommit,
- HandleConfirm: func() error {
- self.c.LogAction(self.c.Tr.Actions.CheckoutReflogCommit)
- return self.helpers.Refs.CheckoutRef(commit.Sha, types.CheckoutRefOptions{})
- },
- })
- if err != nil {
- return err
- }
-
- return nil
-}
-
-func (self *ReflogController) openResetMenu(commit *models.Commit) error {
- return self.helpers.Refs.CreateGitResetMenu(commit.Sha)
-}
-
-func (self *ReflogController) copy(commit *models.Commit) error {
- return self.helpers.CherryPick.Copy(commit, self.model.FilteredReflogCommits, self.context())
-}
-
-func (self *ReflogController) copyRange(commit *models.Commit) error {
- return self.helpers.CherryPick.CopyRange(self.context().GetSelectedLineIdx(), self.model.FilteredReflogCommits, self.context())
-}
diff --git a/pkg/gui/controllers/sub_commits_controller.go b/pkg/gui/controllers/sub_commits_controller.go
deleted file mode 100644
index 36d8b2315..000000000
--- a/pkg/gui/controllers/sub_commits_controller.go
+++ /dev/null
@@ -1,114 +0,0 @@
-package controllers
-
-import (
- "github.com/jesseduffield/lazygit/pkg/commands/models"
- "github.com/jesseduffield/lazygit/pkg/gui/context"
- "github.com/jesseduffield/lazygit/pkg/gui/types"
-)
-
-type SubCommitsController struct {
- baseController
- *controllerCommon
-}
-
-var _ types.IController = &SubCommitsController{}
-
-func NewSubCommitsController(
- common *controllerCommon,
-) *SubCommitsController {
- return &SubCommitsController{
- baseController: baseController{},
- controllerCommon: common,
- }
-}
-
-func (self *SubCommitsController) GetKeybindings(opts types.KeybindingsOpts) []*types.Binding {
- bindings := []*types.Binding{
- {
- Key: opts.GetKey(opts.Config.Universal.Select),
- Handler: self.checkSelected(self.checkout),
- Description: self.c.Tr.LcCheckoutCommit,
- },
- {
- Key: opts.GetKey(opts.Config.Commits.ViewResetOptions),
- Handler: self.checkSelected(self.openResetMenu),
- Description: self.c.Tr.LcViewResetOptions,
- OpensMenu: true,
- },
- {
- Key: opts.GetKey(opts.Config.Universal.New),
- Handler: self.checkSelected(self.newBranch),
- Description: self.c.Tr.LcNewBranch,
- },
- {
- Key: opts.GetKey(opts.Config.Commits.CherryPickCopy),
- Handler: self.checkSelected(self.copy),
- Description: self.c.Tr.LcCherryPickCopy,
- },
- {
- Key: opts.GetKey(opts.Config.Commits.CherryPickCopyRange),
- Handler: self.checkSelected(self.copyRange),
- Description: self.c.Tr.LcCherryPickCopyRange,
- },
- {
- Key: opts.GetKey(opts.Config.Commits.ResetCherryPick),
- Handler: self.helpers.CherryPick.Reset,
- Description: self.c.Tr.LcResetCherryPick,
- },
- }
-
- return bindings
-}
-
-func (self *SubCommitsController) checkSelected(callback func(*models.Commit) error) func() error {
- return func() error {
- commit := self.context().GetSelected()
- if commit == nil {
- return nil
- }
-
- return callback(commit)
- }
-}
-
-func (self *SubCommitsController) Context() types.Context {
- return self.context()
-}
-
-func (self *SubCommitsController) context() *context.SubCommitsContext {
- return self.contexts.SubCommits
-}
-
-func (self *SubCommitsController) checkout(commit *models.Commit) error {
- err := self.c.Ask(types.AskOpts{
- Title: self.c.Tr.LcCheckoutCommit,
- Prompt: self.c.Tr.SureCheckoutThisCommit,
- HandleConfirm: func() error {
- self.c.LogAction(self.c.Tr.Actions.CheckoutCommit)
- return self.helpers.Refs.CheckoutRef(commit.Sha, types.CheckoutRefOptions{})
- },
- })
- if err != nil {
- return err
- }
-
- self.context().SetSelectedLineIdx(0)
-
- return nil
-}
-
-func (self *SubCommitsController) openResetMenu(commit *models.Commit) error {
- return self.helpers.Refs.CreateGitResetMenu(commit.Sha)
-}
-
-func (self *SubCommitsController) newBranch(commit *models.Commit) error {
- return self.helpers.Refs.NewBranch(commit.RefName(), commit.Description(), "")
-}
-
-func (self *SubCommitsController) copy(commit *models.Commit) error {
- return self.helpers.CherryPick.Copy(commit, self.model.SubCommits, self.context())
-}
-
-func (self *SubCommitsController) copyRange(commit *models.Commit) error {
- return self.helpers.CherryPick.CopyRange(self.context().GetSelectedLineIdx(), self.model.SubCommits, self.context())
-}