diff --git a/pkg/commands/git_commands/branch.go b/pkg/commands/git_commands/branch.go index 76b5727c734..13abbd69744 100644 --- a/pkg/commands/git_commands/branch.go +++ b/pkg/commands/git_commands/branch.go @@ -13,7 +13,7 @@ import ( type BranchCommands struct { *GitCommon - allBranchesLogCmdIndex uint8 // keeps track of current all branches log command + allBranchesLogCmdIndex int // keeps track of current all branches log command } func NewBranchCommands(gitCommon *GitCommon) *BranchCommands { @@ -278,6 +278,10 @@ func (self *BranchCommands) allBranchesLogCandidates() []string { func (self *BranchCommands) AllBranchesLogCmdObj() *oscommands.CmdObj { candidates := self.allBranchesLogCandidates() + if self.allBranchesLogCmdIndex >= len(candidates) { + self.allBranchesLogCmdIndex = 0 + } + i := self.allBranchesLogCmdIndex return self.cmd.New(str.ToArgv(candidates[i])).DontLog() } @@ -285,7 +289,13 @@ func (self *BranchCommands) AllBranchesLogCmdObj() *oscommands.CmdObj { func (self *BranchCommands) RotateAllBranchesLogIdx() { n := len(self.allBranchesLogCandidates()) i := self.allBranchesLogCmdIndex - self.allBranchesLogCmdIndex = uint8((int(i) + 1) % n) + self.allBranchesLogCmdIndex = (i + 1) % n +} + +func (self *BranchCommands) GetAllBranchesLogIdxAndCount() (int, int) { + n := len(self.allBranchesLogCandidates()) + i := self.allBranchesLogCmdIndex + return i, n } func (self *BranchCommands) IsBranchMerged(branch *models.Branch, mainBranches *MainBranches) (bool, error) { diff --git a/pkg/gui/controllers/status_controller.go b/pkg/gui/controllers/status_controller.go index 41ed5c496f2..d2c65809524 100644 --- a/pkg/gui/controllers/status_controller.go +++ b/pkg/gui/controllers/status_controller.go @@ -181,10 +181,14 @@ func (self *StatusController) showAllBranchLogs() { cmdObj := self.c.Git().Branch.AllBranchesLogCmdObj() task := types.NewRunPtyTask(cmdObj.GetCmd()) + title := self.c.Tr.LogTitle + if i, n := self.c.Git().Branch.GetAllBranchesLogIdxAndCount(); n > 1 { + title = fmt.Sprintf(self.c.Tr.LogXOfYTitle, i+1, n) + } self.c.RenderToMainViews(types.RefreshMainOpts{ Pair: self.c.MainViewPairs().Normal, Main: &types.ViewUpdateOpts{ - Title: self.c.Tr.LogTitle, + Title: title, Task: task, }, }) @@ -196,7 +200,7 @@ func (self *StatusController) switchToOrRotateAllBranchesLogs() { // A bit of a hack to ensure we only rotate to the next branch log command // if we currently are looking at a branch log. Otherwise, we should just show // the current index (if we are coming from the dashboard). - if self.c.Views().Main.Title == self.c.Tr.LogTitle { + if self.c.Views().Main.Title != self.c.Tr.StatusTitle { self.c.Git().Branch.RotateAllBranchesLogIdx() } self.showAllBranchLogs() diff --git a/pkg/i18n/english.go b/pkg/i18n/english.go index b750d8ff715..30123efaaa2 100644 --- a/pkg/i18n/english.go +++ b/pkg/i18n/english.go @@ -30,6 +30,7 @@ type TranslationSet struct { RegularMergeTooltip string NormalTitle string LogTitle string + LogXOfYTitle string CommitSummary string CredentialsUsername string CredentialsPassword string @@ -1110,6 +1111,7 @@ func EnglishTranslationSet() *TranslationSet { MergingTitle: "Main panel (merging)", NormalTitle: "Main panel (normal)", LogTitle: "Log", + LogXOfYTitle: "Log (%d of %d)", CommitSummary: "Commit summary", CredentialsUsername: "Username", CredentialsPassword: "Password",