diff --git a/Wox.Infrastructure/UserSettings/Settings.cs b/Wox.Infrastructure/UserSettings/Settings.cs index 2e8ec13417..7a040cd5ee 100644 --- a/Wox.Infrastructure/UserSettings/Settings.cs +++ b/Wox.Infrastructure/UserSettings/Settings.cs @@ -2,6 +2,7 @@ using System.Collections.ObjectModel; using System.Drawing; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using Wox.Plugin; namespace Wox.Infrastructure.UserSettings @@ -49,6 +50,17 @@ namespace Wox.Infrastructure.UserSettings public bool IgnoreHotkeysOnFullscreen { get; set; } public HttpProxy Proxy { get; set; } = new HttpProxy(); + + [JsonConverter(typeof(StringEnumConverter))] + public LastQueryMode LastQueryMode { get; set; } = LastQueryMode.Selected; + + } + + public enum LastQueryMode + { + Selected, + Empty, + Preserved } [Obsolete] diff --git a/Wox/Languages/en.xaml b/Wox/Languages/en.xaml index 93c85c83f3..47e434cd9f 100644 --- a/Wox/Languages/en.xaml +++ b/Wox/Languages/en.xaml @@ -22,6 +22,10 @@ Do not show new version notifications Remember last launch location Language + Last Query Style + Preserve Last Query + Select last Query + Empty last Query Maximum results shown Ignore hotkeys in fullscreen mode Python Directory diff --git a/Wox/Languages/zh-cn.xaml b/Wox/Languages/zh-cn.xaml index 177c2a4546..cbad578255 100644 --- a/Wox/Languages/zh-cn.xaml +++ b/Wox/Languages/zh-cn.xaml @@ -22,6 +22,10 @@ 不显示新版本提示 记住上次启动位置 语言 + 上次搜索关键字模式 + 保留上次搜索关键字 + 全选上次搜索关键字 + 清空上次搜索关键字 最大结果显示个数 全屏模式下忽略热键 Python 路径 diff --git a/Wox/MainWindow.xaml.cs b/Wox/MainWindow.xaml.cs index b9b376a13f..7f4a2f169e 100644 --- a/Wox/MainWindow.xaml.cs +++ b/Wox/MainWindow.xaml.cs @@ -68,10 +68,10 @@ namespace Wox QueryTextBox.Focus(); SetWindowPosition(); _settings.ActivateTimes++; - if (_viewModel.QueryTextSelected) + if (!_viewModel.LastQuerySelected) { QueryTextBox.SelectAll(); - _viewModel.QueryTextSelected = false; + _viewModel.LastQuerySelected = true; } } } diff --git a/Wox/SettingWindow.xaml b/Wox/SettingWindow.xaml index b7ebd1de43..296996f6b0 100644 --- a/Wox/SettingWindow.xaml +++ b/Wox/SettingWindow.xaml @@ -43,6 +43,12 @@ Checked="OnAutoStartupChecked" Unchecked="OnAutoStartupUncheck"> + + + + "); + } + + ToggleWox(); + e.Handled = true; + } } private void ToggleWox() diff --git a/Wox/ViewModel/SettingWindowViewModel.cs b/Wox/ViewModel/SettingWindowViewModel.cs index ae23776825..213ad80aa6 100644 --- a/Wox/ViewModel/SettingWindowViewModel.cs +++ b/Wox/ViewModel/SettingWindowViewModel.cs @@ -50,8 +50,30 @@ namespace Wox.ViewModel #region general - public List Languages => _translater.LoadAvailableLanguages(); + public class LastQueryMode + { + public string Display { get; set; } + public Infrastructure.UserSettings.LastQueryMode Value { get; set; } + } + public List LastQueryModes + { + get + { + List modes = new List(); + var enums = (Infrastructure.UserSettings.LastQueryMode[])Enum.GetValues(typeof(Infrastructure.UserSettings.LastQueryMode)); + foreach (var e in enums) + { + var key = $"LastQuery{e}"; + var display = _translater.GetTranslation(key); + var m = new LastQueryMode { Display = display, Value = e, }; + modes.Add(m); + } + return modes; + } + } + private Internationalization _translater => InternationalizationManager.Instance; + public List Languages => _translater.LoadAvailableLanguages(); public IEnumerable MaxResultsRange => Enumerable.Range(2, 16); #endregion