@@ -125,6 +125,7 @@ func (gui *Gui) refreshCommitsWithLimit() error {
125125 FilterPath : gui .State .Modes .Filtering .GetPath (),
126126 IncludeRebaseCommits : true ,
127127 RefName : "HEAD" ,
128+ All : gui .State .ShowWholeGitGraph ,
128129 },
129130 )
130131 if err != nil {
@@ -670,3 +671,87 @@ func (gui *Gui) handleCopySelectedCommitMessageToClipboard() error {
670671
671672 return nil
672673}
674+
675+ func (gui * Gui ) handleOpenLogMenu () error {
676+ return gui .createMenu (gui .Tr .LogMenuTitle , []* menuItem {
677+ {
678+ displayString : gui .Tr .ToggleShowGitGraphAll ,
679+ onPress : func () error {
680+ gui .State .ShowWholeGitGraph = ! gui .State .ShowWholeGitGraph
681+
682+ if gui .State .ShowWholeGitGraph {
683+ gui .State .Panels .Commits .LimitCommits = false
684+ }
685+
686+ return gui .WithWaitingStatus (gui .Tr .LcLoadingCommits , func () error {
687+ return gui .refreshSidePanels (refreshOptions {mode : SYNC , scope : []RefreshableView {COMMITS }})
688+ })
689+ },
690+ },
691+ {
692+ displayString : gui .Tr .ShowGitGraph ,
693+ opensMenu : true ,
694+ onPress : func () error {
695+ onSelect := func (value string ) {
696+ gui .Config .GetUserConfig ().Git .Log .ShowGraph = value
697+ gui .render ()
698+ }
699+ return gui .createMenu (gui .Tr .LogMenuTitle , []* menuItem {
700+ {
701+ displayString : "always" ,
702+ onPress : func () error {
703+ onSelect ("always" )
704+ return nil
705+ },
706+ },
707+ {
708+ displayString : "never" ,
709+ onPress : func () error {
710+ onSelect ("never" )
711+ return nil
712+ },
713+ },
714+ {
715+ displayString : "when maximised" ,
716+ onPress : func () error {
717+ onSelect ("when-maximised" )
718+ return nil
719+ },
720+ },
721+ }, createMenuOptions {showCancel : true })
722+ },
723+ },
724+ {
725+ displayString : gui .Tr .SortCommits ,
726+ opensMenu : true ,
727+ onPress : func () error {
728+ onSelect := func (value string ) error {
729+ gui .Config .GetUserConfig ().Git .Log .Order = value
730+ return gui .WithWaitingStatus (gui .Tr .LcLoadingCommits , func () error {
731+ return gui .refreshSidePanels (refreshOptions {mode : SYNC , scope : []RefreshableView {COMMITS }})
732+ })
733+ }
734+ return gui .createMenu (gui .Tr .LogMenuTitle , []* menuItem {
735+ {
736+ displayString : "topological (topo-order)" ,
737+ onPress : func () error {
738+ return onSelect ("topo-order" )
739+ },
740+ },
741+ {
742+ displayString : "date-order" ,
743+ onPress : func () error {
744+ return onSelect ("date-order" )
745+ },
746+ },
747+ {
748+ displayString : "author-date-order" ,
749+ onPress : func () error {
750+ return onSelect ("author-date-order" )
751+ },
752+ },
753+ }, createMenuOptions {showCancel : true })
754+ },
755+ },
756+ }, createMenuOptions {showCancel : true })
757+ }
0 commit comments