private IEnumerable <MenuCommand> CreateViewMenuCommands() { var resultList = new List <MenuCommand>(); // the next three MenuCommands just reuse (the currently rather // convoluted) logic from RevisionGrid. // After refactoring the three items should be added to RevisionGrid // as done with "ShowRemoteBranches" and not via RevisionGrid.Designer.cs { var menuCommand = new MenuCommand(); menuCommand.Name = "ShowAllBranches"; menuCommand.Text = "Show all branches"; menuCommand.ShortcutKeyDisplayString = GetShortcutKeyDisplayStringFromRevisionGridIfAvailable(GitUI.RevisionGrid.Commands.ShowAllBranches); menuCommand.ExecuteAction = () => _revisionGrid.ShowAllBranches_ToolStripMenuItemClick(null, null); menuCommand.IsCheckedFunc = () => _revisionGrid.ShowAllBranches_ToolStripMenuItemChecked; resultList.Add(menuCommand); } { var menuCommand = new MenuCommand(); menuCommand.Name = "ShowCurrentBranchOnly"; menuCommand.Text = "Show current branch only"; menuCommand.ShortcutKeyDisplayString = GetShortcutKeyDisplayStringFromRevisionGridIfAvailable(GitUI.RevisionGrid.Commands.ShowCurrentBranchOnly); menuCommand.ExecuteAction = () => _revisionGrid.ShowCurrentBranchOnly_ToolStripMenuItemClick(null, null); menuCommand.IsCheckedFunc = () => _revisionGrid.ShowCurrentBranchOnly_ToolStripMenuItemChecked; resultList.Add(menuCommand); } { var menuCommand = new MenuCommand(); menuCommand.Name = "ShowFilteredBranches"; menuCommand.Text = "Show filtered branches"; menuCommand.ShortcutKeyDisplayString = GetShortcutKeyDisplayStringFromRevisionGridIfAvailable(GitUI.RevisionGrid.Commands.ShowFilteredBranches); menuCommand.ExecuteAction = () => _revisionGrid.ShowFilteredBranches_ToolStripMenuItemClick(null, null); menuCommand.IsCheckedFunc = () => _revisionGrid.ShowFilteredBranches_ToolStripMenuItemChecked; resultList.Add(menuCommand); } resultList.Add(MenuCommand.CreateSeparator()); { var menuCommand = new MenuCommand(); menuCommand.Name = "ShowRemoteBranches"; menuCommand.Text = "Show remote branches"; menuCommand.ShortcutKeyDisplayString = GetShortcutKeyDisplayStringFromRevisionGridIfAvailable(GitUI.RevisionGrid.Commands.ShowRemoteBranches); menuCommand.ExecuteAction = () => _revisionGrid.ShowRemoteBranches_ToolStripMenuItemClick(null, null); menuCommand.IsCheckedFunc = () => AppSettings.ShowRemoteBranches; resultList.Add(menuCommand); } resultList.Add(MenuCommand.CreateSeparator()); { var menuCommand = new MenuCommand(); menuCommand.Name = "ShowSuperprojectTags"; menuCommand.Text = "Show superproject tags"; menuCommand.ExecuteAction = () => _revisionGrid.ShowSuperprojectTags_ToolStripMenuItemClick(null, null); menuCommand.IsCheckedFunc = () => AppSettings.ShowSuperprojectTags; resultList.Add(menuCommand); } { var menuCommand = new MenuCommand(); menuCommand.Name = "ShowSuperprojectBranches"; menuCommand.Text = "Show superproject branches"; menuCommand.ExecuteAction = () => _revisionGrid.ShowSuperprojectBranches_ToolStripMenuItemClick(null, null); menuCommand.IsCheckedFunc = () => AppSettings.ShowSuperprojectBranches; resultList.Add(menuCommand); } { var menuCommand = new MenuCommand(); menuCommand.Name = "ShowSuperprojectRemoteBranches"; menuCommand.Text = "Show superproject remote branches"; menuCommand.ExecuteAction = () => _revisionGrid.ShowSuperprojectRemoteBranches_ToolStripMenuItemClick(null, null); menuCommand.IsCheckedFunc = () => AppSettings.ShowSuperprojectRemoteBranches; resultList.Add(menuCommand); } resultList.Add(MenuCommand.CreateSeparator()); { var menuCommand = new MenuCommand(); menuCommand.Name = "showRevisionGraphToolStripMenuItem"; menuCommand.Text = "Show revision graph"; menuCommand.ExecuteAction = () => _revisionGrid.ShowRevisionGraph_ToolStripMenuItemClick(null, null); menuCommand.IsCheckedFunc = () => _revisionGrid.IsGraphLayout(); resultList.Add(menuCommand); } { var menuCommand = new MenuCommand(); menuCommand.Name = "drawNonrelativesGrayToolStripMenuItem"; menuCommand.Text = "Draw non relatives gray"; menuCommand.ExecuteAction = () => _revisionGrid.DrawNonrelativesGray_ToolStripMenuItemClick(null, null); menuCommand.IsCheckedFunc = () => AppSettings.RevisionGraphDrawNonRelativesGray; resultList.Add(menuCommand); } { var menuCommand = new MenuCommand(); menuCommand.Name = "orderRevisionsByDateToolStripMenuItem"; menuCommand.Text = "Order revisions by date"; menuCommand.ExecuteAction = () => _revisionGrid.OrderRevisionsByDate_ToolStripMenuItemClick(null, null); menuCommand.IsCheckedFunc = () => AppSettings.OrderRevisionByDate; resultList.Add(menuCommand); } { var menuCommand = new MenuCommand(); menuCommand.Name = "showAuthorDateToolStripMenuItem"; menuCommand.Text = "Show author date"; menuCommand.ExecuteAction = () => _revisionGrid.ShowAuthorDate_ToolStripMenuItemClick(null, null); menuCommand.IsCheckedFunc = () => AppSettings.ShowAuthorDate; resultList.Add(menuCommand); } { var menuCommand = new MenuCommand(); menuCommand.Name = "showRelativeDateToolStripMenuItem"; menuCommand.Text = "Show relative date"; menuCommand.ExecuteAction = () => _revisionGrid.ShowRelativeDate_ToolStripMenuItemClick(null, null); menuCommand.IsCheckedFunc = () => AppSettings.RelativeDate; resultList.Add(menuCommand); } { var menuCommand = new MenuCommand(); menuCommand.Name = "showMergeCommitsToolStripMenuItem"; menuCommand.Text = "Show merge commits"; menuCommand.ShortcutKeyDisplayString = GetShortcutKeyDisplayStringFromRevisionGridIfAvailable(GitUI.RevisionGrid.Commands.ToggleShowMergeCommits); menuCommand.ExecuteAction = () => _revisionGrid.ShowMergeCommits_ToolStripMenuItemClick(null, null); menuCommand.IsCheckedFunc = () => AppSettings.ShowMergeCommits; resultList.Add(menuCommand); } { var menuCommand = new MenuCommand(); menuCommand.Name = "showTagsToolStripMenuItem"; menuCommand.Text = "Show tags"; menuCommand.ExecuteAction = () => _revisionGrid.ShowTags_ToolStripMenuItemClick(null, null); menuCommand.IsCheckedFunc = () => AppSettings.ShowTags; resultList.Add(menuCommand); } { var menuCommand = new MenuCommand(); menuCommand.Name = "showIdsToolStripMenuItem"; menuCommand.Text = "Show SHA1"; menuCommand.ExecuteAction = () => _revisionGrid.ShowIds_ToolStripMenuItemClick(null, null); menuCommand.IsCheckedFunc = () => AppSettings.ShowIds; resultList.Add(menuCommand); } { var menuCommand = new MenuCommand(); menuCommand.Name = "showGitNotesToolStripMenuItem"; menuCommand.Text = "Show git notes"; menuCommand.ExecuteAction = () => _revisionGrid.ShowGitNotes_ToolStripMenuItemClick(null, null); menuCommand.IsCheckedFunc = () => AppSettings.ShowGitNotes; resultList.Add(menuCommand); } { var menuCommand = new MenuCommand(); menuCommand.Name = "showIsMessageMultilineToolStripMenuItem"; menuCommand.Text = "Show indicator for multiline message"; menuCommand.ExecuteAction = () => { AppSettings.ShowIndicatorForMultilineMessage = !AppSettings.ShowIndicatorForMultilineMessage; _revisionGrid.ForceRefreshRevisions(); }; menuCommand.IsCheckedFunc = () => AppSettings.ShowIndicatorForMultilineMessage; resultList.Add(menuCommand); } resultList.Add(MenuCommand.CreateSeparator()); { var menuCommand = new MenuCommand(); menuCommand.Name = "ToggleHighlightSelectedBranch"; menuCommand.Text = "Highlight selected branch (until refresh)"; menuCommand.ShortcutKeyDisplayString = GetShortcutKeyDisplayStringFromRevisionGridIfAvailable(GitUI.RevisionGrid.Commands.ToggleHighlightSelectedBranch); menuCommand.ExecuteAction = () => _revisionGrid.ExecuteCommand(GitUI.RevisionGrid.Commands.ToggleHighlightSelectedBranch); resultList.Add(menuCommand); } { var menuCommand = new MenuCommand(); menuCommand.Name = "ToggleRevisionCardLayout"; menuCommand.Text = "Change commit view layout"; menuCommand.ShortcutKeyDisplayString = GetShortcutKeyDisplayStringFromRevisionGridIfAvailable(GitUI.RevisionGrid.Commands.ToggleRevisionCardLayout); menuCommand.ExecuteAction = () => _revisionGrid.ToggleRevisionCardLayout(); resultList.Add(menuCommand); } resultList.Add(MenuCommand.CreateSeparator()); { var menuCommand = new MenuCommand(); menuCommand.Name = "showFirstParent"; menuCommand.Text = "Show first parents"; menuCommand.Image = global::GitUI.Properties.Resources.IconShowFirstParent; menuCommand.ShortcutKeyDisplayString = GetShortcutKeyDisplayStringFromRevisionGridIfAvailable(GitUI.RevisionGrid.Commands.ShowFirstParent); menuCommand.ExecuteAction = () => _revisionGrid.ShowFirstParent_ToolStripMenuItemClick(null, null); menuCommand.IsCheckedFunc = () => AppSettings.ShowFirstParent; resultList.Add(menuCommand); } { var menuCommand = new MenuCommand(); menuCommand.Name = "filterToolStripMenuItem"; menuCommand.Text = "Set advanced filter"; menuCommand.Image = global::GitUI.Properties.Resources.IconFilter; menuCommand.ShortcutKeyDisplayString = GetShortcutKeyDisplayStringFromRevisionGridIfAvailable(GitUI.RevisionGrid.Commands.RevisionFilter); menuCommand.ExecuteAction = () => _revisionGrid.FilterToolStripMenuItemClick(null, null); resultList.Add(menuCommand); } { var menuCommand = new MenuCommand(); menuCommand.Name = "ToggleLeftPanel"; menuCommand.Text = "Toggle left panel"; menuCommand.ExecuteAction = () => _revisionGrid.OnToggleLeftPanelRequested(); resultList.Add(menuCommand); } return(resultList); }