mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-06-11 03:32:46 +08:00
initial work, added github to setting,
change update manage from static created log folder prop for log class
This commit is contained in:
parent
4cf3cff74d
commit
49b85d150c
@ -16,18 +16,23 @@ using Wox.Infrastructure.Logger;
|
|||||||
|
|
||||||
namespace Wox.Core
|
namespace Wox.Core
|
||||||
{
|
{
|
||||||
public static class Updater
|
public class Updater
|
||||||
{
|
{
|
||||||
private static readonly Internationalization Translater = InternationalizationManager.Instance;
|
public string GitHubRepository { get; }
|
||||||
|
|
||||||
public static async Task UpdateApp()
|
public Updater(string gitHubRepository)
|
||||||
|
{
|
||||||
|
GitHubRepository = gitHubRepository;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task UpdateApp()
|
||||||
{
|
{
|
||||||
UpdateManager m;
|
UpdateManager m;
|
||||||
UpdateInfo u;
|
UpdateInfo u;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
m = await GitHubUpdateManager(Constant.Repository);
|
m = await GitHubUpdateManager(GitHubRepository);
|
||||||
}
|
}
|
||||||
catch (Exception e) when (e is HttpRequestException || e is WebException || e is SocketException)
|
catch (Exception e) when (e is HttpRequestException || e is WebException || e is SocketException)
|
||||||
{
|
{
|
||||||
@ -66,8 +71,8 @@ namespace Wox.Core
|
|||||||
await m.ApplyReleases(u);
|
await m.ApplyReleases(u);
|
||||||
await m.CreateUninstallerRegistryEntry();
|
await m.CreateUninstallerRegistryEntry();
|
||||||
|
|
||||||
var newVersionTips = Translater.GetTranslation("newVersionTips");
|
var newVersionTips = this.NewVersinoTips(fr.Version.ToString());
|
||||||
newVersionTips = string.Format(newVersionTips, fr.Version);
|
|
||||||
MessageBox.Show(newVersionTips);
|
MessageBox.Show(newVersionTips);
|
||||||
Log.Info($"|Updater.UpdateApp|Update success:{newVersionTips}");
|
Log.Info($"|Updater.UpdateApp|Update success:{newVersionTips}");
|
||||||
}
|
}
|
||||||
@ -90,7 +95,7 @@ namespace Wox.Core
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// https://github.com/Squirrel/Squirrel.Windows/blob/master/src/Squirrel/UpdateManager.Factory.cs
|
/// https://github.com/Squirrel/Squirrel.Windows/blob/master/src/Squirrel/UpdateManager.Factory.cs
|
||||||
private static async Task<UpdateManager> GitHubUpdateManager(string repository)
|
private async Task<UpdateManager> GitHubUpdateManager(string repository)
|
||||||
{
|
{
|
||||||
var uri = new Uri(repository);
|
var uri = new Uri(repository);
|
||||||
var api = $"https://api.github.com/repos{uri.AbsolutePath}/releases";
|
var api = $"https://api.github.com/repos{uri.AbsolutePath}/releases";
|
||||||
@ -109,7 +114,7 @@ namespace Wox.Core
|
|||||||
return manager;
|
return manager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string NewVersinoTips(string version)
|
public string NewVersinoTips(string version)
|
||||||
{
|
{
|
||||||
var translater = InternationalizationManager.Instance;
|
var translater = InternationalizationManager.Instance;
|
||||||
var tips = string.Format(translater.GetTranslation("newVersionTips"), version);
|
var tips = string.Format(translater.GetTranslation("newVersionTips"), version);
|
||||||
|
@ -13,6 +13,16 @@ namespace Wox.Infrastructure.Http
|
|||||||
{
|
{
|
||||||
private const string UserAgent = @"Mozilla/5.0 (Trident/7.0; rv:11.0) like Gecko";
|
private const string UserAgent = @"Mozilla/5.0 (Trident/7.0; rv:11.0) like Gecko";
|
||||||
|
|
||||||
|
static Http()
|
||||||
|
{
|
||||||
|
// need to be added so it would work on a win10 machine
|
||||||
|
ServicePointManager.Expect100Continue = true;
|
||||||
|
ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls
|
||||||
|
| SecurityProtocolType.Tls11
|
||||||
|
| SecurityProtocolType.Tls12
|
||||||
|
| SecurityProtocolType.Ssl3;
|
||||||
|
}
|
||||||
|
|
||||||
public static HttpProxy Proxy { private get; set; }
|
public static HttpProxy Proxy { private get; set; }
|
||||||
public static IWebProxy WebProxy()
|
public static IWebProxy WebProxy()
|
||||||
{
|
{
|
||||||
|
@ -164,7 +164,7 @@ namespace Wox.Infrastructure.Image
|
|||||||
}
|
}
|
||||||
catch (System.Exception e)
|
catch (System.Exception e)
|
||||||
{
|
{
|
||||||
Log.Exception($"|ImageLoader.Load|Failed to get thumbnail for {path}", e);
|
// Log.Exception($"|ImageLoader.Load|Failed to get thumbnail for {path}", e);
|
||||||
type = ImageType.Error;
|
type = ImageType.Error;
|
||||||
image = ImageCache[Constant.ErrorIcon];
|
image = ImageCache[Constant.ErrorIcon];
|
||||||
ImageCache[path] = image;
|
ImageCache[path] = image;
|
||||||
|
@ -29,7 +29,6 @@ namespace Wox.Infrastructure
|
|||||||
public static readonly string DataDirectory = DetermineDataDirectory();
|
public static readonly string DataDirectory = DetermineDataDirectory();
|
||||||
public static readonly string PluginsDirectory = Path.Combine(DataDirectory, Plugins);
|
public static readonly string PluginsDirectory = Path.Combine(DataDirectory, Plugins);
|
||||||
public static readonly string PreinstalledDirectory = Path.Combine(ProgramDirectory, Plugins);
|
public static readonly string PreinstalledDirectory = Path.Combine(ProgramDirectory, Plugins);
|
||||||
public const string Repository = "https://github.com/Wox-launcher/Wox";
|
|
||||||
public const string Issue = "https://github.com/Wox-launcher/Wox/issues/new";
|
public const string Issue = "https://github.com/Wox-launcher/Wox/issues/new";
|
||||||
public static readonly string Version = FileVersionInfo.GetVersionInfo(Assembly.Location.NonNull()).ProductVersion;
|
public static readonly string Version = FileVersionInfo.GetVersionInfo(Assembly.Location.NonNull()).ProductVersion;
|
||||||
|
|
||||||
|
@ -1,7 +1,19 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<configuration>
|
<configuration>
|
||||||
<!--https://msdn.microsoft.com/en-us/library/dd409252(v=vs.110).aspx-->
|
<!--https://msdn.microsoft.com/en-us/library/dd409252(v=vs.110).aspx-->
|
||||||
|
<configSections>
|
||||||
|
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
|
||||||
|
<section name="Wox.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
||||||
|
</sectionGroup>
|
||||||
|
</configSections>
|
||||||
<runtime>
|
<runtime>
|
||||||
<loadFromRemoteSources enabled="true"/>
|
<loadFromRemoteSources enabled="true"/>
|
||||||
</runtime>
|
</runtime>
|
||||||
|
<applicationSettings>
|
||||||
|
<Wox.Properties.Settings>
|
||||||
|
<setting name="GithubRepo" serializeAs="String">
|
||||||
|
<value>https://github.com/Wox-launcher/Wox</value>
|
||||||
|
</setting>
|
||||||
|
</Wox.Properties.Settings>
|
||||||
|
</applicationSettings>
|
||||||
</configuration>
|
</configuration>
|
@ -25,6 +25,7 @@ namespace Wox
|
|||||||
private Settings _settings;
|
private Settings _settings;
|
||||||
private MainViewModel _mainVM;
|
private MainViewModel _mainVM;
|
||||||
private SettingWindowViewModel _settingsVM;
|
private SettingWindowViewModel _settingsVM;
|
||||||
|
private readonly Updater _updater = new Updater(Wox.Properties.Settings.Default.GithubRepo);
|
||||||
|
|
||||||
[STAThread]
|
[STAThread]
|
||||||
public static void Main()
|
public static void Main()
|
||||||
@ -50,7 +51,7 @@ namespace Wox
|
|||||||
|
|
||||||
ImageLoader.Initialize();
|
ImageLoader.Initialize();
|
||||||
|
|
||||||
_settingsVM = new SettingWindowViewModel();
|
_settingsVM = new SettingWindowViewModel(_updater);
|
||||||
_settings = _settingsVM.Settings;
|
_settings = _settingsVM.Settings;
|
||||||
|
|
||||||
Alphabet.Initialize(_settings);
|
Alphabet.Initialize(_settings);
|
||||||
@ -111,12 +112,12 @@ namespace Wox
|
|||||||
var timer = new Timer(1000 * 60 * 60 * 5);
|
var timer = new Timer(1000 * 60 * 60 * 5);
|
||||||
timer.Elapsed += async (s, e) =>
|
timer.Elapsed += async (s, e) =>
|
||||||
{
|
{
|
||||||
await Updater.UpdateApp();
|
await _updater.UpdateApp();
|
||||||
};
|
};
|
||||||
timer.Start();
|
timer.Start();
|
||||||
|
|
||||||
// check updates on startup
|
// check updates on startup
|
||||||
await Updater.UpdateApp();
|
await _updater.UpdateApp();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
11
Wox/Properties/Settings.Designer.cs
generated
11
Wox/Properties/Settings.Designer.cs
generated
@ -12,7 +12,7 @@ namespace Wox.Properties {
|
|||||||
|
|
||||||
|
|
||||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.3.0.0")]
|
||||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||||
|
|
||||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||||
@ -22,5 +22,14 @@ namespace Wox.Properties {
|
|||||||
return defaultInstance;
|
return defaultInstance;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Configuration.DefaultSettingValueAttribute("https://github.com/Wox-launcher/Wox")]
|
||||||
|
public string GithubRepo {
|
||||||
|
get {
|
||||||
|
return ((string)(this["GithubRepo"]));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
<SettingsFile xmlns="uri:_settings" CurrentProfile="(Default)">
|
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="Wox.Properties" GeneratedClassName="Settings">
|
||||||
<Profiles>
|
<Profiles />
|
||||||
<Profile Name="(Default)" />
|
<Settings>
|
||||||
</Profiles>
|
<Setting Name="GithubRepo" Type="System.String" Scope="Application">
|
||||||
<Settings />
|
<Value Profile="(Default)">https://github.com/Wox-launcher/Wox</Value>
|
||||||
|
</Setting>
|
||||||
|
</Settings>
|
||||||
</SettingsFile>
|
</SettingsFile>
|
@ -23,7 +23,7 @@ namespace Wox
|
|||||||
|
|
||||||
private void SetException(Exception exception)
|
private void SetException(Exception exception)
|
||||||
{
|
{
|
||||||
string path = Path.Combine(Constant.DataDirectory, Log.DirectoryName, Constant.Version);
|
string path = Log.CurrentLogDirectory;
|
||||||
var directory = new DirectoryInfo(path);
|
var directory = new DirectoryInfo(path);
|
||||||
var log = directory.GetFiles().OrderByDescending(f => f.LastWriteTime).First();
|
var log = directory.GetFiles().OrderByDescending(f => f.LastWriteTime).First();
|
||||||
|
|
||||||
|
@ -260,53 +260,16 @@ namespace Wox
|
|||||||
#region Proxy
|
#region Proxy
|
||||||
|
|
||||||
private void OnTestProxyClick(object sender, RoutedEventArgs e)
|
private void OnTestProxyClick(object sender, RoutedEventArgs e)
|
||||||
{
|
{ // TODO: change to command
|
||||||
if (string.IsNullOrEmpty(_settings.Proxy.Server))
|
var msg = _viewModel.TestProxy();
|
||||||
{
|
MessageBox.Show(msg); // TODO: add message box service
|
||||||
MessageBox.Show(InternationalizationManager.Instance.GetTranslation("serverCantBeEmpty"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (_settings.Proxy.Port <= 0)
|
|
||||||
{
|
|
||||||
MessageBox.Show(InternationalizationManager.Instance.GetTranslation("portCantBeEmpty"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Infrastructure.Constant.Repository);
|
|
||||||
if (string.IsNullOrEmpty(_settings.Proxy.UserName) || string.IsNullOrEmpty(_settings.Proxy.Password))
|
|
||||||
{
|
|
||||||
request.Proxy = new WebProxy(_settings.Proxy.Server, _settings.Proxy.Port);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
request.Proxy = new WebProxy(_settings.Proxy.Server, _settings.Proxy.Port)
|
|
||||||
{
|
|
||||||
Credentials = new NetworkCredential(_settings.Proxy.UserName, _settings.Proxy.Password)
|
|
||||||
};
|
|
||||||
}
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var response = (HttpWebResponse)request.GetResponse();
|
|
||||||
if (response.StatusCode == HttpStatusCode.OK)
|
|
||||||
{
|
|
||||||
MessageBox.Show(InternationalizationManager.Instance.GetTranslation("proxyIsCorrect"));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
MessageBox.Show(InternationalizationManager.Instance.GetTranslation("proxyConnectFailed"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
MessageBox.Show(InternationalizationManager.Instance.GetTranslation("proxyConnectFailed"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private async void OnCheckUpdates(object sender, RoutedEventArgs e)
|
private async void OnCheckUpdates(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
await Updater.UpdateApp();
|
_viewModel.UpdateApp(); // TODO: change to command
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnRequestNavigate(object sender, RequestNavigateEventArgs e)
|
private void OnRequestNavigate(object sender, RequestNavigateEventArgs e)
|
||||||
|
28
Wox/Settings.cs
Normal file
28
Wox/Settings.cs
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
namespace Wox.Properties {
|
||||||
|
|
||||||
|
|
||||||
|
// This class allows you to handle specific events on the settings class:
|
||||||
|
// The SettingChanging event is raised before a setting's value is changed.
|
||||||
|
// The PropertyChanged event is raised after a setting's value is changed.
|
||||||
|
// The SettingsLoaded event is raised after the setting values are loaded.
|
||||||
|
// The SettingsSaving event is raised before the setting values are saved.
|
||||||
|
internal sealed partial class Settings {
|
||||||
|
|
||||||
|
public Settings() {
|
||||||
|
// // To add event handlers for saving and changing settings, uncomment the lines below:
|
||||||
|
//
|
||||||
|
// this.SettingChanging += this.SettingChangingEventHandler;
|
||||||
|
//
|
||||||
|
// this.SettingsSaving += this.SettingsSavingEventHandler;
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) {
|
||||||
|
// Add code to handle the SettingChangingEvent event here.
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) {
|
||||||
|
// Add code to handle the SettingsSaving event here.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -2,6 +2,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Net;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
@ -20,10 +21,12 @@ namespace Wox.ViewModel
|
|||||||
{
|
{
|
||||||
public class SettingWindowViewModel : BaseModel
|
public class SettingWindowViewModel : BaseModel
|
||||||
{
|
{
|
||||||
|
private readonly Updater _updater;
|
||||||
private readonly WoxJsonStorage<Settings> _storage;
|
private readonly WoxJsonStorage<Settings> _storage;
|
||||||
|
|
||||||
public SettingWindowViewModel()
|
public SettingWindowViewModel(Updater updater)
|
||||||
{
|
{
|
||||||
|
_updater = updater;
|
||||||
_storage = new WoxJsonStorage<Settings>();
|
_storage = new WoxJsonStorage<Settings>();
|
||||||
Settings = _storage.Load();
|
Settings = _storage.Load();
|
||||||
Settings.PropertyChanged += (s, e) =>
|
Settings.PropertyChanged += (s, e) =>
|
||||||
@ -39,6 +42,10 @@ namespace Wox.ViewModel
|
|||||||
|
|
||||||
public Settings Settings { get; set; }
|
public Settings Settings { get; set; }
|
||||||
|
|
||||||
|
public async void UpdateApp()
|
||||||
|
{
|
||||||
|
await _updater.UpdateApp();
|
||||||
|
}
|
||||||
|
|
||||||
public void Save()
|
public void Save()
|
||||||
{
|
{
|
||||||
@ -88,6 +95,50 @@ namespace Wox.ViewModel
|
|||||||
public List<Language> Languages => _translater.LoadAvailableLanguages();
|
public List<Language> Languages => _translater.LoadAvailableLanguages();
|
||||||
public IEnumerable<int> MaxResultsRange => Enumerable.Range(2, 16);
|
public IEnumerable<int> MaxResultsRange => Enumerable.Range(2, 16);
|
||||||
|
|
||||||
|
public string TestProxy()
|
||||||
|
{
|
||||||
|
var proxyServer = Settings.Proxy.Server;
|
||||||
|
var proxyUserName = Settings.Proxy.UserName;
|
||||||
|
if (string.IsNullOrEmpty(proxyServer))
|
||||||
|
{
|
||||||
|
return InternationalizationManager.Instance.GetTranslation("serverCantBeEmpty");
|
||||||
|
}
|
||||||
|
if (Settings.Proxy.Port <= 0)
|
||||||
|
{
|
||||||
|
return InternationalizationManager.Instance.GetTranslation("portCantBeEmpty");
|
||||||
|
}
|
||||||
|
|
||||||
|
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(_updater.GitHubRepository);
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(proxyUserName) || string.IsNullOrEmpty(Settings.Proxy.Password))
|
||||||
|
{
|
||||||
|
request.Proxy = new WebProxy(proxyServer, Settings.Proxy.Port);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
request.Proxy = new WebProxy(proxyServer, Settings.Proxy.Port)
|
||||||
|
{
|
||||||
|
Credentials = new NetworkCredential(proxyUserName, Settings.Proxy.Password)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var response = (HttpWebResponse)request.GetResponse();
|
||||||
|
if (response.StatusCode == HttpStatusCode.OK)
|
||||||
|
{
|
||||||
|
return InternationalizationManager.Instance.GetTranslation("proxyIsCorrect");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return InternationalizationManager.Instance.GetTranslation("proxyConnectFailed");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return InternationalizationManager.Instance.GetTranslation("proxyConnectFailed");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region plugin
|
#region plugin
|
||||||
@ -220,7 +271,7 @@ namespace Wox.ViewModel
|
|||||||
},
|
},
|
||||||
new Result
|
new Result
|
||||||
{
|
{
|
||||||
Title = $"Open Source: {Constant.Repository}",
|
Title = $"Open Source: {_updater.GitHubRepository}",
|
||||||
SubTitle = "Please star it!"
|
SubTitle = "Please star it!"
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -330,8 +381,8 @@ namespace Wox.ViewModel
|
|||||||
|
|
||||||
#region about
|
#region about
|
||||||
|
|
||||||
public static string Github => Constant.Repository;
|
public string Github => _updater.GitHubRepository;
|
||||||
public static string ReleaseNotes => @"https://github.com/Wox-launcher/Wox/releases/latest";
|
public string ReleaseNotes => _updater.GitHubRepository + @"/releases/latest";
|
||||||
public static string Version => Constant.Version;
|
public static string Version => Constant.Version;
|
||||||
public string ActivatedTimes => string.Format(_translater.GetTranslation("about_activate_times"), Settings.ActivateTimes);
|
public string ActivatedTimes => string.Format(_translater.GetTranslation("about_activate_times"), Settings.ActivateTimes);
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -165,6 +165,7 @@
|
|||||||
<Compile Include="ResultListBox.xaml.cs">
|
<Compile Include="ResultListBox.xaml.cs">
|
||||||
<DependentUpon>ResultListBox.xaml</DependentUpon>
|
<DependentUpon>ResultListBox.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Settings.cs" />
|
||||||
<Compile Include="Storage\HistoryItem.cs" />
|
<Compile Include="Storage\HistoryItem.cs" />
|
||||||
<Compile Include="Storage\QueryHistory.cs" />
|
<Compile Include="Storage\QueryHistory.cs" />
|
||||||
<Compile Include="Storage\TopMostRecord.cs" />
|
<Compile Include="Storage\TopMostRecord.cs" />
|
||||||
|
Loading…
Reference in New Issue
Block a user