diff --git a/Plugins/Wox.Plugin.Program/ProgramSetting.xaml b/Plugins/Wox.Plugin.Program/ProgramSetting.xaml
index 7004ccb873..1a273232ad 100644
--- a/Plugins/Wox.Plugin.Program/ProgramSetting.xaml
+++ b/Plugins/Wox.Plugin.Program/ProgramSetting.xaml
@@ -12,7 +12,11 @@
-
+
+
+ Index Start Menu
+ Index Registry
+
@@ -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;