diff --git a/Plugins/Wox.Plugin.Program/AddProgramSource.xaml.cs b/Plugins/Wox.Plugin.Program/AddProgramSource.xaml.cs index 063e1166a6..a8b090b86e 100644 --- a/Plugins/Wox.Plugin.Program/AddProgramSource.xaml.cs +++ b/Plugins/Wox.Plugin.Program/AddProgramSource.xaml.cs @@ -54,7 +54,7 @@ namespace Wox.Plugin.Program { Location = Directory.Text, }; - _settings.ProgramSources.Add(source); + _settings.ProgramSources.Insert(0, source); } else { diff --git a/Plugins/Wox.Plugin.Program/Main.cs b/Plugins/Wox.Plugin.Program/Main.cs index 880e881c92..bdeb46576a 100644 --- a/Plugins/Wox.Plugin.Program/Main.cs +++ b/Plugins/Wox.Plugin.Program/Main.cs @@ -137,6 +137,19 @@ namespace Wox.Plugin.Program Task.WaitAll(t1, t2); } + public static void AddLoadedApplicationsToSettings() + { + _win32s + .Where(t1 => !_settings.ProgramSources.Any(x => x.Name == t1.Name)) + .ToList() + .ForEach(t1 => _settings.ProgramSources.Add(new Settings.ProgramSource (){Name = t1.Name, Location = t1.ParentDirectory })); + + _uwps + .Where(t1 => !_settings.ProgramSources.Any(x => x.Name == t1.DisplayName)) + .ToList() + .ForEach(t1 => _settings.ProgramSources.Add(new Settings.ProgramSource() { Name = t1.DisplayName, Location = t1.Package.Location })); + } + public Control CreateSettingPanel() { return new ProgramSetting(_context, _settings); diff --git a/Plugins/Wox.Plugin.Program/ProgramSetting.xaml b/Plugins/Wox.Plugin.Program/ProgramSetting.xaml index 2636e349f4..f1aa7ae609 100644 --- a/Plugins/Wox.Plugin.Program/ProgramSetting.xaml +++ b/Plugins/Wox.Plugin.Program/ProgramSetting.xaml @@ -25,6 +25,13 @@ Drop="programSourceView_Drop" > + + + + + + + @@ -44,6 +51,7 @@