1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-10-29 15:09:22 +03:00

start refactoring gui

This commit is contained in:
Jesse Duffield
2022-01-28 20:44:36 +11:00
parent fa8571e1f4
commit a90b6efded
61 changed files with 1779 additions and 1522 deletions

View File

@@ -4,41 +4,43 @@ import (
"fmt"
"github.com/jesseduffield/lazygit/pkg/commands/types/enums"
"github.com/jesseduffield/lazygit/pkg/gui/popup"
"github.com/jesseduffield/lazygit/pkg/gui/types"
)
func (gui *Gui) handleCreatePatchOptionsMenu() error {
if !gui.Git.Patch.PatchManager.Active() {
return gui.createErrorPanel(gui.Tr.NoPatchError)
return gui.PopupHandler.ErrorMsg(gui.Tr.NoPatchError)
}
menuItems := []*menuItem{
menuItems := []*popup.MenuItem{
{
displayString: "reset patch",
onPress: gui.handleResetPatch,
DisplayString: "reset patch",
OnPress: gui.handleResetPatch,
},
{
displayString: "apply patch",
onPress: func() error { return gui.handleApplyPatch(false) },
DisplayString: "apply patch",
OnPress: func() error { return gui.handleApplyPatch(false) },
},
{
displayString: "apply patch in reverse",
onPress: func() error { return gui.handleApplyPatch(true) },
DisplayString: "apply patch in reverse",
OnPress: func() error { return gui.handleApplyPatch(true) },
},
}
if gui.Git.Patch.PatchManager.CanRebase && gui.Git.Status.WorkingTreeState() == enums.REBASE_MODE_NONE {
menuItems = append(menuItems, []*menuItem{
menuItems = append(menuItems, []*popup.MenuItem{
{
displayString: fmt.Sprintf("remove patch from original commit (%s)", gui.Git.Patch.PatchManager.To),
onPress: gui.handleDeletePatchFromCommit,
DisplayString: fmt.Sprintf("remove patch from original commit (%s)", gui.Git.Patch.PatchManager.To),
OnPress: gui.handleDeletePatchFromCommit,
},
{
displayString: "move patch out into index",
onPress: gui.handleMovePatchIntoWorkingTree,
DisplayString: "move patch out into index",
OnPress: gui.handleMovePatchIntoWorkingTree,
},
{
displayString: "move patch into new commit",
onPress: gui.handlePullPatchIntoNewCommit,
DisplayString: "move patch into new commit",
OnPress: gui.handlePullPatchIntoNewCommit,
},
}...)
@@ -49,10 +51,10 @@ func (gui *Gui) handleCreatePatchOptionsMenu() error {
menuItems = append(
menuItems[:1],
append(
[]*menuItem{
[]*popup.MenuItem{
{
displayString: fmt.Sprintf("move patch to selected commit (%s)", selectedCommit.Sha),
onPress: gui.handleMovePatchToSelectedCommit,
DisplayString: fmt.Sprintf("move patch to selected commit (%s)", selectedCommit.Sha),
OnPress: gui.handleMovePatchToSelectedCommit,
},
}, menuItems[1:]...,
)...,
@@ -61,7 +63,7 @@ func (gui *Gui) handleCreatePatchOptionsMenu() error {
}
}
return gui.createMenu(gui.Tr.PatchOptionsTitle, menuItems, createMenuOptions{showCancel: true})
return gui.PopupHandler.Menu(popup.CreateMenuOptions{Title: gui.Tr.PatchOptionsTitle, Items: menuItems})
}
func (gui *Gui) getPatchCommitIndex() int {
@@ -75,7 +77,7 @@ func (gui *Gui) getPatchCommitIndex() int {
func (gui *Gui) validateNormalWorkingTreeState() (bool, error) {
if gui.Git.Status.WorkingTreeState() != enums.REBASE_MODE_NONE {
return false, gui.createErrorPanel(gui.Tr.CantPatchWhileRebasingError)
return false, gui.PopupHandler.ErrorMsg(gui.Tr.CantPatchWhileRebasingError)
}
return true, nil
}
@@ -96,7 +98,7 @@ func (gui *Gui) handleDeletePatchFromCommit() error {
return err
}
return gui.WithWaitingStatus(gui.Tr.RebasingStatus, func() error {
return gui.PopupHandler.WithWaitingStatus(gui.Tr.RebasingStatus, func() error {
commitIndex := gui.getPatchCommitIndex()
gui.logAction(gui.Tr.Actions.RemovePatchFromCommit)
err := gui.Git.Patch.DeletePatchesFromCommit(gui.State.Commits, commitIndex)
@@ -113,7 +115,7 @@ func (gui *Gui) handleMovePatchToSelectedCommit() error {
return err
}
return gui.WithWaitingStatus(gui.Tr.RebasingStatus, func() error {
return gui.PopupHandler.WithWaitingStatus(gui.Tr.RebasingStatus, func() error {
commitIndex := gui.getPatchCommitIndex()
gui.logAction(gui.Tr.Actions.MovePatchToSelectedCommit)
err := gui.Git.Patch.MovePatchToSelectedCommit(gui.State.Commits, commitIndex, gui.State.Panels.Commits.SelectedLineIdx)
@@ -131,7 +133,7 @@ func (gui *Gui) handleMovePatchIntoWorkingTree() error {
}
pull := func(stash bool) error {
return gui.WithWaitingStatus(gui.Tr.RebasingStatus, func() error {
return gui.PopupHandler.WithWaitingStatus(gui.Tr.RebasingStatus, func() error {
commitIndex := gui.getPatchCommitIndex()
gui.logAction(gui.Tr.Actions.MovePatchIntoIndex)
err := gui.Git.Patch.MovePatchIntoIndex(gui.State.Commits, commitIndex, stash)
@@ -140,10 +142,10 @@ func (gui *Gui) handleMovePatchIntoWorkingTree() error {
}
if len(gui.trackedFiles()) > 0 {
return gui.ask(askOpts{
title: gui.Tr.MustStashTitle,
prompt: gui.Tr.MustStashWarning,
handleConfirm: func() error {
return gui.PopupHandler.Ask(popup.AskOpts{
Title: gui.Tr.MustStashTitle,
Prompt: gui.Tr.MustStashWarning,
HandleConfirm: func() error {
return pull(true)
},
})
@@ -161,7 +163,7 @@ func (gui *Gui) handlePullPatchIntoNewCommit() error {
return err
}
return gui.WithWaitingStatus(gui.Tr.RebasingStatus, func() error {
return gui.PopupHandler.WithWaitingStatus(gui.Tr.RebasingStatus, func() error {
commitIndex := gui.getPatchCommitIndex()
gui.logAction(gui.Tr.Actions.MovePatchIntoNewCommit)
err := gui.Git.Patch.PullPatchIntoNewCommit(gui.State.Commits, commitIndex)
@@ -180,9 +182,9 @@ func (gui *Gui) handleApplyPatch(reverse bool) error {
}
gui.logAction(action)
if err := gui.Git.Patch.PatchManager.ApplyPatches(reverse); err != nil {
return gui.surfaceError(err)
return gui.PopupHandler.Error(err)
}
return gui.refreshSidePanels(refreshOptions{mode: ASYNC})
return gui.refreshSidePanels(types.RefreshOptions{Mode: types.ASYNC})
}
func (gui *Gui) handleResetPatch() error {