Make Plugin dictionary private

This commit is contained in:
Jack251970 2025-03-30 13:59:06 +08:00
parent 63378e1898
commit 1ede69c4c1
3 changed files with 19 additions and 3 deletions

View file

@ -622,7 +622,7 @@ namespace Flow.Launcher.Core.Plugin
API.ShowMsg(API.GetTranslation("failedToRemovePluginCacheTitle"),
string.Format(API.GetTranslation("failedToRemovePluginCacheMessage"), plugin.Name));
}
Settings.Plugins.Remove(plugin.ID);
Settings.RemovePluginSettings(plugin.ID);
AllPlugins.RemoveAll(p => p.Metadata.ID == plugin.ID);
}

View file

@ -27,7 +27,7 @@ namespace Flow.Launcher.Infrastructure.UserSettings
}
}
public Dictionary<string, Plugin> Plugins { get; set; } = new Dictionary<string, Plugin>();
private Dictionary<string, Plugin> Plugins { get; set; } = new();
public void UpdatePluginSettings(List<PluginMetadata> metadatas)
{
@ -67,6 +67,21 @@ namespace Flow.Launcher.Infrastructure.UserSettings
}
}
}
public Plugin GetPluginSettings(string id)
{
if (Plugins.TryGetValue(id, out var plugin))
{
return plugin;
}
return null;
}
public Plugin RemovePluginSettings(string id)
{
Plugins.Remove(id, out var plugin);
return plugin;
}
}
public class Plugin

View file

@ -30,8 +30,9 @@ public class SettingsPanePluginsViewModel : BaseModel
.Select(plugin => new PluginViewModel
{
PluginPair = plugin,
PluginSettingsObject = _settings.PluginSettings.Plugins[plugin.Metadata.ID]
PluginSettingsObject = _settings.PluginSettings.GetPluginSettings(plugin.Metadata.ID)
})
.Where(plugin => plugin.PluginSettingsObject != null)
.ToList();
public List<PluginViewModel> FilteredPluginViewModels => PluginViewModels