From 4c5a046bc0c228c06f491b33d42eaff969dd07af Mon Sep 17 00:00:00 2001 From: Devin Stiert Date: Mon, 20 Apr 2015 20:32:10 -0400 Subject: [PATCH 1/6] Add max depth and suffixes per program source --- .../Wox.Plugin.Program/AddProgramSource.xaml | 35 +++ .../AddProgramSource.xaml.cs | 60 ++++ .../Wox.Plugin.Program/ProgramSetting.xaml | 16 +- .../Wox.Plugin.Program/ProgramSetting.xaml.cs | 16 +- Plugins/Wox.Plugin.Program/ProgramSource.cs | 2 + .../ProgramSources/FileSystemProgramSource.cs | 25 +- .../Wox.Plugin.Program.csproj | 295 +++++++++--------- 7 files changed, 284 insertions(+), 165 deletions(-) create mode 100644 Plugins/Wox.Plugin.Program/AddProgramSource.xaml create mode 100644 Plugins/Wox.Plugin.Program/AddProgramSource.xaml.cs diff --git a/Plugins/Wox.Plugin.Program/AddProgramSource.xaml b/Plugins/Wox.Plugin.Program/AddProgramSource.xaml new file mode 100644 index 0000000000..29d59a669c --- /dev/null +++ b/Plugins/Wox.Plugin.Program/AddProgramSource.xaml @@ -0,0 +1,35 @@ + + + + + + + + + + @@ -28,7 +32,7 @@ - + diff --git a/Plugins/Wox.Plugin.Program/ProgramSetting.xaml.cs b/Plugins/Wox.Plugin.Program/ProgramSetting.xaml.cs index f07126dfbf..3558c85146 100644 --- a/Plugins/Wox.Plugin.Program/ProgramSetting.xaml.cs +++ b/Plugins/Wox.Plugin.Program/ProgramSetting.xaml.cs @@ -22,6 +22,8 @@ namespace Wox.Plugin.Program private void Setting_Loaded(object sender, RoutedEventArgs e) { programSourceView.ItemsSource = ProgramStorage.Instance.ProgramSources; + StartMenuEnabled.IsChecked = ProgramStorage.Instance.EnableStartMenuSource; + RegistryEnabled.IsChecked = ProgramStorage.Instance.EnableRegistrySource; } private void ReIndexing() @@ -130,5 +132,19 @@ namespace Wox.Plugin.Program } } } + + private void StartMenuEnabled_Click(object sender, RoutedEventArgs e) + { + ProgramStorage.Instance.EnableStartMenuSource = StartMenuEnabled.IsChecked ?? false; + ProgramStorage.Instance.Save(); + ReIndexing(); + } + + private void RegistryEnabled_Click(object sender, RoutedEventArgs e) + { + ProgramStorage.Instance.EnableRegistrySource = RegistryEnabled.IsChecked ?? false; + ProgramStorage.Instance.Save(); + ReIndexing(); + } } } \ No newline at end of file diff --git a/Plugins/Wox.Plugin.Program/ProgramStorage.cs b/Plugins/Wox.Plugin.Program/ProgramStorage.cs index d6607c768c..a274237f87 100644 --- a/Plugins/Wox.Plugin.Program/ProgramStorage.cs +++ b/Plugins/Wox.Plugin.Program/ProgramStorage.cs @@ -6,6 +6,7 @@ using System.Reflection; using System.Text; using Newtonsoft.Json; using Wox.Infrastructure.Storage; +using System.ComponentModel; namespace Wox.Plugin.Program { @@ -17,6 +18,14 @@ namespace Wox.Plugin.Program [JsonProperty] public string ProgramSuffixes { get; set; } + [JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)] + [DefaultValue(true)] + public bool EnableStartMenuSource { get; set; } + + [JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)] + [DefaultValue(true)] + public bool EnableRegistrySource { get; set; } + protected override string ConfigFolder { get { return Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); } @@ -25,6 +34,8 @@ namespace Wox.Plugin.Program protected override ProgramStorage LoadDefault() { ProgramSources = new List(); + EnableStartMenuSource = true; + EnableRegistrySource = true; return this; } diff --git a/Plugins/Wox.Plugin.Program/Programs.cs b/Plugins/Wox.Plugin.Program/Programs.cs index fad46efa3f..d6a3a35183 100644 --- a/Plugins/Wox.Plugin.Program/Programs.cs +++ b/Plugins/Wox.Plugin.Program/Programs.cs @@ -28,6 +28,7 @@ namespace Wox.Plugin.Program public List Query(Query query) { + var fuzzyMather = FuzzyMatcher.Create(query.Search); List returnList = programs.Where(o => MatchProgram(o, fuzzyMather)).ToList(); returnList.ForEach(ScoreFilter); @@ -97,11 +98,11 @@ namespace Wox.Plugin.Program if (ProgramStorage.Instance.ProgramSources != null && ProgramStorage.Instance.ProgramSources.Count(o => o.Enabled) > 0) { - programSources.AddRange(ProgramStorage.Instance.ProgramSources.Where(o => o.Enabled)); + programSources.AddRange(ProgramStorage.Instance.ProgramSources); } sources.Clear(); - programSources.ForEach(source => + foreach(var source in programSources.Where(o => o.Enabled)) { Type sourceClass; if (SourceTypes.TryGetValue(source.Type, out sourceClass)) @@ -114,7 +115,7 @@ namespace Wox.Plugin.Program sources.Add(programSource); } } - }); + } var tempPrograms = new List(); foreach (var source in sources) @@ -145,19 +146,19 @@ namespace Wox.Plugin.Program list.Add(new ProgramSource() { BonusPoints = 0, - Enabled = true, + Enabled = ProgramStorage.Instance.EnableStartMenuSource, Type = "CommonStartMenuProgramSource" }); list.Add(new ProgramSource() { BonusPoints = 0, - Enabled = true, + Enabled = ProgramStorage.Instance.EnableStartMenuSource, Type = "UserStartMenuProgramSource" }); list.Add(new ProgramSource() { BonusPoints = -10, - Enabled = true, + Enabled = ProgramStorage.Instance.EnableRegistrySource, Type = "AppPathsProgramSource" }); return list; From 40f58d7054c1f33ac2b33aaf4288bd14a905f413 Mon Sep 17 00:00:00 2001 From: Devin Stiert Date: Sat, 2 May 2015 10:17:42 -0400 Subject: [PATCH 5/6] Support editing --- .../Wox.Plugin.Program/AddProgramSource.xaml | 20 +++------- .../AddProgramSource.xaml.cs | 40 ++++++++++++++----- .../Wox.Plugin.Program/ProgramSetting.xaml.cs | 17 ++++---- 3 files changed, 43 insertions(+), 34 deletions(-) diff --git a/Plugins/Wox.Plugin.Program/AddProgramSource.xaml b/Plugins/Wox.Plugin.Program/AddProgramSource.xaml index 29d59a669c..85e58e916b 100644 --- a/Plugins/Wox.Plugin.Program/AddProgramSource.xaml +++ b/Plugins/Wox.Plugin.Program/AddProgramSource.xaml @@ -8,28 +8,20 @@ Height="180" WindowStartupLocation="CenterScreen" d:DesignHeight="400" d:DesignWidth="300"> - - - - - - - - + + - + - +