Skip to content

Commit

Permalink
FormBrowse: let the user add fetch/pull custom icons in the toolbar
Browse files Browse the repository at this point in the history
  • Loading branch information
pmiossec committed Oct 27, 2022
1 parent 4d96462 commit ce3ae45
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 1 deletion.
2 changes: 1 addition & 1 deletion GitUI/CommandsDialogs/BrowseDialog/FormBrowseMenus.cs
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ private static void CreateToolStripSubMenus(ToolStrip senderToolStrip, ToolStrip

return;

bool IsVisibleByDefault(string buttonKey) => !buttonKey.Contains(FilterToolBar.ReflogButtonName);
bool IsVisibleByDefault(string buttonKey) => !buttonKey.Contains(FilterToolBar.ReflogButtonName) && !buttonKey.Contains(FormBrowse.FetchPullToolbarShortcutsPrefix);
static void SaveVisibilitySetting(string key, bool visible, bool defaultValue = true)
=> AppSettings.SetBool(toolbarSettingsPrefix + key, visible == defaultValue ? null : visible);
static bool LoadVisibilitySetting(string key, bool defaultValue = true)
Expand Down
33 changes: 33 additions & 0 deletions GitUI/CommandsDialogs/FormBrowse.InitMenusAndToolbars.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ partial class FormBrowse
{
// This file is dedicated to init logic for FormBrowse menus and toolbars

internal const string FetchPullToolbarShortcutsPrefix = "pull_shortcut_";

private void InitMenusAndToolbars(string? revFilter, string? pathFilter)
{
commandsToolStripMenuItem.DropDownOpening += CommandsToolStripMenuItem_DropDownOpening;
Expand Down Expand Up @@ -44,6 +46,8 @@ private void InitMenusAndToolbars(string? revFilter, string? pathFilter)
branchToolStripMenuItem,
}.ForEach(ColorHelper.AdaptImageLightness);

InsertFetchPullShortcuts();

if (!EnvUtils.RunningOnWindows())
{
toolStripSeparator6.Visible = false;
Expand Down Expand Up @@ -139,6 +143,35 @@ void WorkaroundToolbarLocationBug()
}
}

private void InsertFetchPullShortcuts()
{
var i = ToolStripMain.Items.IndexOf(toolStripButtonPull);
ToolStripMain.Items.Insert(i++, CreateCorrespondingToolbarButton(fetchToolStripMenuItem));
ToolStripMain.Items.Insert(i++, CreateCorrespondingToolbarButton(fetchAllToolStripMenuItem));
ToolStripMain.Items.Insert(i++, CreateCorrespondingToolbarButton(fetchPruneAllToolStripMenuItem));
ToolStripMain.Items.Insert(i++, CreateCorrespondingToolbarButton(mergeToolStripMenuItem));
ToolStripMain.Items.Insert(i++, CreateCorrespondingToolbarButton(rebaseToolStripMenuItem1));
ToolStripMain.Items.Insert(i++, CreateCorrespondingToolbarButton(pullToolStripMenuItem1));

ToolStripButton CreateCorrespondingToolbarButton(ToolStripMenuItem toolStripMenuItem)
{
string toolTipText = toolStripMenuItem.Text.Replace("&", string.Empty);
ToolStripButton duplicateToolStripMenuItem = new()
{
Image = toolStripMenuItem.Image,
ImageTransparentColor = toolStripMenuItem.ImageTransparentColor,
Name = FetchPullToolbarShortcutsPrefix + toolStripMenuItem.Name,
Size = toolStripMenuItem.Size,
Text = toolTipText,
ToolTipText = toolTipText,
DisplayStyle = ToolStripItemDisplayStyle.Image,
};

duplicateToolStripMenuItem.Click += (_, _) => toolStripMenuItem.PerformClick();
return duplicateToolStripMenuItem;
}
}

private void FillNextPullActionAsDefaultToolStripMenuItems()
{
var setDefaultPullActionDropDown = (ToolStripDropDownMenu)setDefaultPullButtonActionToolStripMenuItem.DropDown;
Expand Down

0 comments on commit ce3ae45

Please sign in to comment.