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)