Skip to content

Commit 45c8155

Browse files
authored
Merge branch 'next' into next
2 parents 3066512 + 2c8016f commit 45c8155

35 files changed

+528
-110
lines changed

RetailCoder.VBE/App.cs

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@
1313
using System.Globalization;
1414
using System.Linq;
1515
using System.Windows.Forms;
16+
using Rubberduck.UI.Command;
1617
using Rubberduck.UI.Command.MenuItems.CommandBars;
1718
using Rubberduck.VBEditor.SafeComWrappers.Abstract;
19+
using Rubberduck.VersionCheck;
1820

1921
namespace Rubberduck
2022
{
@@ -28,6 +30,8 @@ public sealed class App : IDisposable
2830
private readonly IAppMenu _appMenus;
2931
private readonly RubberduckCommandBar _stateBar;
3032
private readonly IRubberduckHooks _hooks;
33+
private readonly IVersionCheck _version;
34+
private readonly CommandBase _checkVersionCommand;
3135

3236
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
3337

@@ -39,7 +43,9 @@ public App(IVBE vbe,
3943
IGeneralConfigService configService,
4044
IAppMenu appMenus,
4145
RubberduckCommandBar stateBar,
42-
IRubberduckHooks hooks)
46+
IRubberduckHooks hooks,
47+
IVersionCheck version,
48+
CommandBase checkVersionCommand)
4349
{
4450
_vbe = vbe;
4551
_messageBox = messageBox;
@@ -49,6 +55,8 @@ public App(IVBE vbe,
4955
_appMenus = appMenus;
5056
_stateBar = stateBar;
5157
_hooks = hooks;
58+
_version = version;
59+
_checkVersionCommand = checkVersionCommand;
5260

5361
_hooks.MessageReceived += _hooks_MessageReceived;
5462
_configService.SettingsChanged += _configService_SettingsChanged;
@@ -158,6 +166,11 @@ public void Startup()
158166
_stateBar.SetStatusLabelCaption(ParserState.Pending);
159167
_stateBar.EvaluateCanExecute(_parser.State);
160168
UpdateLoggingLevel();
169+
170+
if (_config.UserSettings.GeneralSettings.CheckVersion)
171+
{
172+
_checkVersionCommand.Execute(null);
173+
}
161174
}
162175

163176
public void Shutdown()
@@ -229,8 +242,8 @@ private void CheckForLegacyIndenterSettings()
229242

230243
private void LogRubberduckSart()
231244
{
232-
var version = GetType().Assembly.GetName().Version.ToString();
233-
GlobalDiagnosticsContext.Set("RubberduckVersion", version);
245+
var version = _version.CurrentVersion;
246+
GlobalDiagnosticsContext.Set("RubberduckVersion", version.ToString());
234247
var headers = new List<string>
235248
{
236249
string.Format("Rubberduck version {0} loading:", version),

RetailCoder.VBE/Extension.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ private void InitializeAddIn()
172172
{
173173
splash = new Splash
174174
{
175+
// note: IVersionCheck.CurrentVersion could return this string.
175176
Version = string.Format("version {0}", Assembly.GetExecutingAssembly().GetName().Version)
176177
};
177178
splash.Show();

RetailCoder.VBE/Root/RubberduckModule.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ public override void Load()
7070
Bind<TestExplorerModel>().ToSelf().InSingletonScope();
7171
Bind<IOperatingSystem>().To<WindowsOperatingSystem>().InSingletonScope();
7272

73+
Bind<CommandBase>().To<VersionCheckCommand>().WhenInjectedExactlyInto<App>();
7374
BindCodeInspectionTypes();
7475

7576
var assemblies = new[]

RetailCoder.VBE/Rubberduck.csproj

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,10 @@
232232
<Reference Include="extensibility, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
233233
<EmbedInteropTypes>True</EmbedInteropTypes>
234234
</Reference>
235+
<Reference Include="HtmlAgilityPack, Version=1.4.9.5, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
236+
<HintPath>..\packages\HtmlAgilityPack.1.4.9.5\lib\Net45\HtmlAgilityPack.dll</HintPath>
237+
<Private>True</Private>
238+
</Reference>
235239
<Reference Include="ICSharpCode.AvalonEdit">
236240
<HintPath>..\packages\AvalonEdit.5.0.3\lib\Net40\ICSharpCode.AvalonEdit.dll</HintPath>
237241
</Reference>
@@ -281,6 +285,7 @@
281285
<Reference Include="System.Core" />
282286
<Reference Include="System.Data" />
283287
<Reference Include="System.Drawing" />
288+
<Reference Include="System.Net.Http" />
284289
<Reference Include="System.Printing" />
285290
<Reference Include="System.Runtime.Serialization" />
286291
<Reference Include="System.Windows.Forms" />
@@ -493,6 +498,7 @@
493498
<Compile Include="UI\CodeExplorer\Commands\AddClassModuleCommand.cs" />
494499
<Compile Include="UI\CodeExplorer\Commands\AddStdModuleCommand.cs" />
495500
<Compile Include="UI\CodeExplorer\Commands\AddTestModuleCommand.cs" />
501+
<Compile Include="VersionCheck\IVersionCheck.cs" />
496502
<Compile Include="UI\Command\MenuItems\CommandBars\AppCommandBarBase.cs" />
497503
<Compile Include="UI\Command\MenuItems\CommandBars\ContextSelectionLabelMenuItem.cs" />
498504
<Compile Include="UI\Command\MenuItems\CommandBars\IContextFormatter.cs" />
@@ -507,6 +513,7 @@
507513
<Compile Include="UI\Command\MenuItems\RegexAssistantCommand.cs" />
508514
<Compile Include="UI\Command\MenuItems\RegexAssistantCommandMenuItem.cs" />
509515
<Compile Include="UI\Command\MenuItems\ParentMenus\ToolsParentMenu.cs" />
516+
<Compile Include="UI\Command\VersionCheckCommand.cs" />
510517
<Compile Include="UI\Controls\BindableTextEditor.cs" />
511518
<Compile Include="UI\Controls\LinkButton.xaml.cs">
512519
<DependentUpon>LinkButton.xaml</DependentUpon>

RetailCoder.VBE/Settings/GeneralSettings.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ public interface IGeneralSettings
99
{
1010
DisplayLanguageSetting Language { get; set; }
1111
bool ShowSplash { get; set; }
12+
bool CheckVersion { get; set; }
1213
bool SmartIndenterPrompted { get; set; }
1314
bool AutoSaveEnabled { get; set; }
1415
int AutoSavePeriod { get; set; }
@@ -21,6 +22,7 @@ public class GeneralSettings : IGeneralSettings, IEquatable<GeneralSettings>
2122
{
2223
public DisplayLanguageSetting Language { get; set; }
2324
public bool ShowSplash { get; set; }
25+
public bool CheckVersion { get; set; }
2426
public bool SmartIndenterPrompted { get; set; }
2527
public bool AutoSaveEnabled { get; set; }
2628
public int AutoSavePeriod { get; set; }
@@ -51,6 +53,7 @@ public GeneralSettings()
5153
{
5254
Language = new DisplayLanguageSetting("en-US");
5355
ShowSplash = true;
56+
CheckVersion = true;
5457
SmartIndenterPrompted = false;
5558
AutoSaveEnabled = false;
5659
AutoSavePeriod = 10;
@@ -63,6 +66,7 @@ public bool Equals(GeneralSettings other)
6366
return other != null &&
6467
Language.Equals(other.Language) &&
6568
ShowSplash == other.ShowSplash &&
69+
CheckVersion == other.CheckVersion &&
6670
SmartIndenterPrompted == other.SmartIndenterPrompted &&
6771
AutoSaveEnabled == other.AutoSaveEnabled &&
6872
AutoSavePeriod == other.AutoSavePeriod &&

RetailCoder.VBE/UI/About/AboutControl.xaml

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -65,19 +65,11 @@
6565
FontWeight="SemiBold"
6666
FontSize="10" />
6767
<TextBlock FontSize="10"
68-
xml:space="preserve">Code Review Stack Exchange
69-
JetBrains ReSharper Community Team
68+
xml:space="preserve">JetBrains ReSharper Community Team
69+
Code Review Stack Exchange
7070
Stack Overflow
7171
</TextBlock>
72-
73-
<TextBlock Text="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=AboutWindow_BlogsHeader}"
74-
FontWeight="SemiBold"
75-
FontSize="10" />
76-
<TextBlock FontSize="10"
77-
xml:space="preserve">Michal Krzych (vba4all.com)
78-
Knjname developer blog (clockahead.blogspot.jp)
79-
</TextBlock>
80-
72+
8173
<TextBlock Text="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=AboutWindow_ContributorsHeader}"
8274
FontWeight="SemiBold"
8375
FontSize="10" />
@@ -86,7 +78,7 @@ Knjname developer blog (clockahead.blogspot.jp)
8678
Andrew Jackson
8779
Andrin Meier
8880
Bruno Costa
89-
Carlos J. Quintero (MZ-Tools articles &amp; help with VBE API)
81+
Carlos J. Quintero (MZ-Tools)
9082
@Comintern
9183
@daFreeMan
9284
@Duga SE chat bot
@@ -95,13 +87,14 @@ Frank Van Heeswijk
9587
Gareth Leachman
9688
@Heslacher
9789
Jeroen Vannevel
90+
Michal Krzych (vba4all.com)
9891
@mjolka
9992
Philip Wales
100-
Rob Bovey
93+
Rob Bovey (Smart Indenter)
10194
Ross McLean
10295
Ross Knudsen
10396
Simon Forsberg
104-
Stephen Bullen
97+
Stephen Bullen (Smart Indenter)
10598
</TextBlock>
10699

107100
<TextBlock Text="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=AboutWindow_GeneralThanks}"

RetailCoder.VBE/UI/About/AboutControlViewModel.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,24 @@
33
using System.Reflection;
44
using NLog;
55
using Rubberduck.UI.Command;
6+
using Rubberduck.VersionCheck;
67

78
namespace Rubberduck.UI.About
89
{
910
public class AboutControlViewModel
1011
{
12+
private readonly IVersionCheck _version;
13+
14+
public AboutControlViewModel(IVersionCheck version)
15+
{
16+
_version = version;
17+
}
18+
1119
public string Version
1220
{
1321
get
1422
{
15-
var name = Assembly.GetExecutingAssembly().GetName();
16-
return string.Format(RubberduckUI.Rubberduck_AboutBuild, name.Version, name.ProcessorArchitecture);
23+
return string.Format(RubberduckUI.Rubberduck_AboutBuild, _version.CurrentVersion);
1724
}
1825
}
1926

RetailCoder.VBE/UI/About/AboutDialog.Designer.cs

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

RetailCoder.VBE/UI/About/AboutDialog.cs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ public AboutDialog()
88
{
99
InitializeComponent();
1010

11-
ViewModel = new AboutControlViewModel();
11+
// todo: inject these dependencies?
12+
ViewModel = new AboutControlViewModel(new VersionCheck.VersionCheck());
1213
}
1314

1415
private AboutControlViewModel _viewModel;
@@ -22,10 +23,6 @@ private AboutControlViewModel ViewModel
2223
}
2324
}
2425

25-
private void AboutDialog_Load(object sender, System.EventArgs e)
26-
{
27-
28-
}
2926
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
3027
{
3128
if (keyData == Keys.Escape)

RetailCoder.VBE/UI/About/AboutDialog.resx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,4 +139,4 @@
139139
AAAABwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAQAAACMAAAA/AAAAP4DAAD+BwAA
140140
</value>
141141
</data>
142-
</root>
142+
</root>

0 commit comments

Comments
 (0)