From 0c3f8af4d9dc4660ef5f5e2df732dcc1db933c21 Mon Sep 17 00:00:00 2001 From: Mykhailo Pylyp Date: Fri, 5 Mar 2021 05:43:08 -0800 Subject: [PATCH] update plugins settings with changes (#10064) --- .../launcher/PowerLauncher/SettingsWatcher.cs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/modules/launcher/PowerLauncher/SettingsWatcher.cs b/src/modules/launcher/PowerLauncher/SettingsWatcher.cs index 3c8deb5b1..68641213c 100644 --- a/src/modules/launcher/PowerLauncher/SettingsWatcher.cs +++ b/src/modules/launcher/PowerLauncher/SettingsWatcher.cs @@ -75,10 +75,10 @@ namespace PowerLauncher var overloadSettings = _settingsUtils.GetSettingsOrDefault(PowerLauncherSettings.ModuleName); - if (overloadSettings.Plugins == null || !overloadSettings.Plugins.Any()) + if (overloadSettings.Plugins == null || overloadSettings.Plugins.Count() != PluginManager.AllPlugins.Count) { // Needed to be consistent with old settings - overloadSettings.Plugins = GetDefaultPluginsSettings(); + overloadSettings.Plugins = CombineWithDefaultSettings(overloadSettings.Plugins); _settingsUtils.SaveSettings(overloadSettings.ToJsonString(), PowerLauncherSettings.ModuleName); } else @@ -173,6 +173,20 @@ namespace PowerLauncher return model.ToString(); } + private static List CombineWithDefaultSettings(IEnumerable plugins) + { + var results = GetDefaultPluginsSettings().ToDictionary(x => x.Id); + foreach (var plugin in plugins) + { + if (results.ContainsKey(plugin.Id)) + { + results[plugin.Id] = plugin; + } + } + + return results.Values.ToList(); + } + private static IEnumerable GetDefaultPluginsSettings() { return PluginManager.AllPlugins.Select(x => new PowerLauncherPluginSettings()