From 90db796f42404906d44eefc5ca7bfd1f92516de8 Mon Sep 17 00:00:00 2001 From: Stefan Haller Date: Tue, 11 Jun 2024 13:37:55 +0200 Subject: [PATCH] Add DisabledReason for rebase options when not rebasing or merging --- pkg/gui/controllers/global_controller.go | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/pkg/gui/controllers/global_controller.go b/pkg/gui/controllers/global_controller.go index 6fa6fefef..2d7f796a5 100644 --- a/pkg/gui/controllers/global_controller.go +++ b/pkg/gui/controllers/global_controller.go @@ -35,11 +35,12 @@ func (self *GlobalController) GetKeybindings(opts types.KeybindingsOpts) []*type OpensMenu: true, }, { - Key: opts.GetKey(opts.Config.Universal.CreateRebaseOptionsMenu), - Handler: opts.Guards.NoPopupPanel(self.c.Helpers().MergeAndRebase.CreateRebaseOptionsMenu), - Description: self.c.Tr.ViewMergeRebaseOptions, - Tooltip: self.c.Tr.ViewMergeRebaseOptionsTooltip, - OpensMenu: true, + Key: opts.GetKey(opts.Config.Universal.CreateRebaseOptionsMenu), + Handler: opts.Guards.NoPopupPanel(self.c.Helpers().MergeAndRebase.CreateRebaseOptionsMenu), + Description: self.c.Tr.ViewMergeRebaseOptions, + Tooltip: self.c.Tr.ViewMergeRebaseOptionsTooltip, + OpensMenu: true, + GetDisabledReason: self.canShowRebaseOptions, }, { Key: opts.GetKey(opts.Config.Universal.Refresh), @@ -191,3 +192,12 @@ func (self *GlobalController) escape() error { func (self *GlobalController) toggleWhitespace() error { return (&ToggleWhitespaceAction{c: self.c}).Call() } + +func (self *GlobalController) canShowRebaseOptions() *types.DisabledReason { + if self.c.Model().WorkingTreeStateAtLastCommitRefresh.None() { + return &types.DisabledReason{ + Text: self.c.Tr.NotMergingOrRebasing, + } + } + return nil +}