Skip to content

Commit df2a00f

Browse files
authored
Merge pull request #2020 from Hosch250/sourceControlHotkey
Add SC hotkey
2 parents 17a6d16 + afa35aa commit df2a00f

File tree

13 files changed

+97
-17
lines changed

13 files changed

+97
-17
lines changed

RetailCoder.VBE/Common/Hotkeys/HotkeyInfo.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.Text;
33
using System.Windows.Forms;
4+
using Rubberduck.UI;
45

56
namespace Rubberduck.Common.Hotkeys
67
{
@@ -25,20 +26,21 @@ public override string ToString()
2526
var builder = new StringBuilder();
2627
if (_keys.HasFlag(Keys.Alt))
2728
{
28-
builder.Append(Rubberduck.UI.RubberduckUI.GeneralSettings_HotkeyAlt);
29+
builder.Append(RubberduckUI.GeneralSettings_HotkeyAlt);
2930
builder.Append('+');
3031
}
3132
if (_keys.HasFlag(Keys.Control))
3233
{
33-
builder.Append(Rubberduck.UI.RubberduckUI.GeneralSettings_HotkeyCtrl);
34+
builder.Append(RubberduckUI.GeneralSettings_HotkeyCtrl);
3435
builder.Append('+');
3536
}
3637
if (_keys.HasFlag(Keys.Shift))
3738
{
38-
builder.Append(Rubberduck.UI.RubberduckUI.GeneralSettings_HotkeyShift);
39+
builder.Append(RubberduckUI.GeneralSettings_HotkeyShift);
3940
builder.Append('+');
4041
}
41-
builder.Append(_keys & ~Modifiers);
42+
43+
builder.Append(HotkeyDisplayConverter.Convert(_keys & ~Modifiers));
4244
return builder.ToString();
4345
}
4446
}

RetailCoder.VBE/Common/RubberduckHooks.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
using Rubberduck.UI.Command;
1414
using Rubberduck.UI.Command.Refactorings;
1515
using NLog;
16+
using Rubberduck.UI;
1617

1718
namespace Rubberduck.Common
1819
{

RetailCoder.VBE/Rubberduck.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -580,6 +580,7 @@
580580
<Compile Include="Navigation\CodeExplorer\CodeExplorerMemberViewModel.cs" />
581581
<Compile Include="Navigation\CodeExplorer\CodeExplorerProjectViewModel.cs" />
582582
<Compile Include="Navigation\CodeExplorer\CodeExplorerViewModel.cs" />
583+
<Compile Include="UI\HotkeyDisplayConverter.cs" />
583584
<Compile Include="UI\Inspections\InspectionDescriptionConverter.cs" />
584585
<Compile Include="UI\Inspections\InspectionImageSourceConverter.cs" />
585586
<Compile Include="UI\Inspections\InspectionResultsControl.xaml.cs">
@@ -704,6 +705,7 @@
704705
<DesignTime>True</DesignTime>
705706
<DependentUpon>RubberduckUI.sv.resx</DependentUpon>
706707
</Compile>
708+
<Compile Include="UI\Settings\Converters\HotkeyDisplayConverter.cs" />
707709
<Compile Include="UI\Settings\Converters\AssertModeValueToTextConverter.cs" />
708710
<Compile Include="UI\Settings\Converters\DelimiterToTextConverter.cs" />
709711
<Compile Include="UI\Settings\Converters\EndOfLineCommentStyleToTextConverter.cs" />

RetailCoder.VBE/Settings/HotkeySetting.cs

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,6 @@ public string Prompt
2626
get { return RubberduckUI.ResourceManager.GetString("HotkeyDescription_" + Name, UI.Settings.Settings.Culture); }
2727
}
2828

29-
public string ToMenuHotkeyString()
30-
{
31-
return string.Format("{0}{1}{2}+{3}",
32-
HasCtrlModifier ? RubberduckUI.GeneralSettings_HotkeyCtrl : string.Empty,
33-
HasShiftModifier ? (HasCtrlModifier ? "+" : string.Empty) + RubberduckUI.GeneralSettings_HotkeyShift : string.Empty,
34-
HasAltModifier ? (HasCtrlModifier | HasShiftModifier ? "+" : string.Empty) + RubberduckUI.GeneralSettings_HotkeyAlt : string.Empty,
35-
Key1);
36-
}
37-
3829
public override string ToString()
3930
{
4031
return string.Format("{0}{1}{2}{3}",

RetailCoder.VBE/Settings/HotkeySettings.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ public class HotkeySettings : IHotkeySettings
2323
new HotkeySetting{Name=RubberduckHotkey.TestExplorer.ToString(), IsEnabled=true, HasCtrlModifier = true, HasShiftModifier = true, Key1="T" },
2424
new HotkeySetting{Name=RubberduckHotkey.RefactorMoveCloserToUsage.ToString(), IsEnabled=true, HasCtrlModifier = true, HasShiftModifier = true, Key1="C" },
2525
new HotkeySetting{Name=RubberduckHotkey.RefactorRename.ToString(), IsEnabled=true, HasCtrlModifier = true, HasShiftModifier = true, Key1="R" },
26-
new HotkeySetting{Name=RubberduckHotkey.RefactorExtractMethod.ToString(), IsEnabled=true, HasCtrlModifier = true, HasShiftModifier = true, Key1="M" }
26+
new HotkeySetting{Name=RubberduckHotkey.RefactorExtractMethod.ToString(), IsEnabled=true, HasCtrlModifier = true, HasShiftModifier = true, Key1="M" },
27+
new HotkeySetting{Name=RubberduckHotkey.SourceControl.ToString(), IsEnabled=true, HasCtrlModifier = true, HasShiftModifier = true, Key1="D6" }
2728
};
2829

2930
private HashSet<HotkeySetting> _settings;

RetailCoder.VBE/Settings/RubberduckHotkey.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,6 @@ public enum RubberduckHotkey
1313
RefactorMoveCloserToUsage,
1414
RefactorRename,
1515
RefactorExtractMethod,
16+
SourceControl
1617
}
1718
}

RetailCoder.VBE/UI/Command/ShowSourceControlPanelCommand.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System.Runtime.InteropServices;
22
using NLog;
3+
using Rubberduck.Settings;
34
using Rubberduck.UI.SourceControl;
45

56
namespace Rubberduck.UI.Command
@@ -10,7 +11,7 @@ namespace Rubberduck.UI.Command
1011
[ComVisible(false)]
1112
public class ShowSourceControlPanelCommand : CommandBase
1213
{
13-
public readonly IPresenter _presenter;
14+
private readonly IPresenter _presenter;
1415

1516
public ShowSourceControlPanelCommand(SourceControlDockablePresenter presenter) : base(LogManager.GetCurrentClassLogger())
1617
{
@@ -21,5 +22,10 @@ protected override void ExecuteImpl(object parameter)
2122
{
2223
_presenter.Show();
2324
}
25+
26+
public override RubberduckHotkey Hotkey
27+
{
28+
get { return RubberduckHotkey.SourceControl; }
29+
}
2430
}
2531
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Windows.Forms;
5+
6+
namespace Rubberduck.UI
7+
{
8+
public static class HotkeyDisplayConverter
9+
{
10+
private static readonly List<Tuple<Keys, string>> _keys = new List<Tuple<Keys, string>>
11+
{
12+
Tuple.Create(Keys.D0, "0"),
13+
Tuple.Create(Keys.D1, "1"),
14+
Tuple.Create(Keys.D2, "2"),
15+
Tuple.Create(Keys.D3, "3"),
16+
Tuple.Create(Keys.D4, "4"),
17+
Tuple.Create(Keys.D5, "5"),
18+
Tuple.Create(Keys.D6, "6"),
19+
Tuple.Create(Keys.D7, "7"),
20+
Tuple.Create(Keys.D8, "8"),
21+
Tuple.Create(Keys.D9, "9")
22+
};
23+
24+
public static string Convert(Keys value)
25+
{
26+
var tuple = _keys.SingleOrDefault(k => k.Item1 == value);
27+
return tuple == null ? value.ToString() : tuple.Item2;
28+
}
29+
30+
public static string Convert(string value)
31+
{
32+
var tuple = _keys.SingleOrDefault(k => k.Item1.ToString() == value);
33+
return tuple == null ? value : tuple.Item2;
34+
}
35+
36+
public static string ConvertBack(string value)
37+
{
38+
var tuple = _keys.SingleOrDefault(k => k.Item2 == value);
39+
return tuple == null ? value : tuple.Item1.ToString();
40+
}
41+
}
42+
}

RetailCoder.VBE/UI/RubberduckUI.Designer.cs

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

RetailCoder.VBE/UI/RubberduckUI.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1730,4 +1730,7 @@ All our stargazers, likers &amp; followers, for the warm fuzzies
17301730
<data name="CodeExplorer_Indent" xml:space="preserve">
17311731
<value>Indent</value>
17321732
</data>
1733+
<data name="HotkeyDescription_SourceControl" xml:space="preserve">
1734+
<value>Source Control</value>
1735+
</data>
17331736
</root>

0 commit comments

Comments
 (0)