diff --git a/Deploy/Nuget/pack.ps1 b/Deploy/Nuget/pack.ps1 index f1c75556a6..27fd679165 100644 --- a/Deploy/Nuget/pack.ps1 +++ b/Deploy/Nuget/pack.ps1 @@ -1,7 +1,7 @@ $root = (split-path -parent $MyInvocation.MyCommand.Definition) + '\..\..' Write-Host $root $version = [System.Reflection.Assembly]::LoadFile("$root\Output\Release\Wox.Plugin.dll").GetName().Version -$versionStr = "{0}.{1}.{2}" -f ($version.Major, $version.Minor, $version.Build) +$versionStr = "{0}.{1}.{2}.{3}" -f ($version.Major, $version.Minor, $version.Build, $version.Revision) Write-Host "Setting .nuspec version tag to $versionStr" diff --git a/Wox/SettingWindow.xaml b/Wox/SettingWindow.xaml index 21e8fc252c..1ab4866c0f 100644 --- a/Wox/SettingWindow.xaml +++ b/Wox/SettingWindow.xaml @@ -309,5 +309,26 @@ + + + + + + + + + + + + Website: + + + Version: + + + + + + diff --git a/Wox/SettingWindow.xaml.cs b/Wox/SettingWindow.xaml.cs index adefc2c006..e17b02d53a 100644 --- a/Wox/SettingWindow.xaml.cs +++ b/Wox/SettingWindow.xaml.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Configuration; using System.Diagnostics; using System.IO; using System.Linq; @@ -15,6 +16,7 @@ using Wox.Plugin; using Wox.Helper; using Wox.Plugin.SystemPlugins; using Wox.PluginLoader; +using Wox.Update; using Application = System.Windows.Forms.Application; using File = System.IO.File; using MessageBox = System.Windows.MessageBox; @@ -221,6 +223,21 @@ namespace Wox #endregion + #region About + + tbVersion.Text = ConfigurationManager.AppSettings["version"]; + Release newRelease = new UpdateChecker().CheckUpgrade(); + if (newRelease == null) + { + tbNewVersionAvailable.Visibility = Visibility.Collapsed; + } + else + { + tbNewVersionAvailable.Text = newRelease.version + " available"; + } + + #endregion + settingsLoaded = true; } @@ -698,5 +715,19 @@ namespace Wox MessageBox.Show("Proxy connect failed."); } } + + private void tbWebsite_MouseUp(object sender, MouseButtonEventArgs e) + { + Process.Start("http://www.getwox.com"); + } + + private void tbNewVersionAvailable_MouseUp(object sender, MouseButtonEventArgs e) + { + Release newRelease = new UpdateChecker().CheckUpgrade(); + if (newRelease != null) + { + Process.Start("http://www.getwox.com/release/" + newRelease.version); + } + } } } diff --git a/Wox/Update/UpdateChecker.cs b/Wox/Update/UpdateChecker.cs index a66c6e50e1..e8410191e9 100644 --- a/Wox/Update/UpdateChecker.cs +++ b/Wox/Update/UpdateChecker.cs @@ -13,16 +13,19 @@ namespace Wox.Update { public class UpdateChecker { - private string updateURL = "https://api.getwox.com/release/latest/"; + private const string updateURL = "https://api.getwox.com/release/latest/"; + private static Release newRelease; + private static bool checkedUpdate = false; /// /// If new release is available, then return the new release /// otherwise, return null /// /// - public Release CheckUpgrade() + public Release CheckUpgrade(bool forceCheck = false) { - Release release = null; + if (checkedUpdate && !forceCheck) return newRelease; + HttpWebResponse response = HttpRequest.CreateGetHttpResponse(updateURL, HttpProxy.Instance); Stream s = response.GetResponseStream(); if (s != null) @@ -31,20 +34,20 @@ namespace Wox.Update string json = reader.ReadToEnd(); try { - release = JsonConvert.DeserializeObject(json); + newRelease = JsonConvert.DeserializeObject(json); } catch { - return null; } } - if (!IsNewerThanCurrent(release)) + if (!IsNewerThanCurrent(newRelease)) { - return null; + newRelease = null; } - return release; + checkedUpdate = true; + return newRelease; } private bool IsNewerThanCurrent(Release release)