public PluginManagerSettingWindow(IPluginManager plugins, PluginManagerSettings settings, ISettings globalSettings, ISettingManager settingManager) { _settings = settings; _settings.DeferChanges(); _settingManager = settingManager; globalSettings.PropertyChanged += _globalSettings_PropertyChanged; _enabledPlugins = _settings.EnabledPlugins; Plugins = new List <PluginViewModel>(); foreach (var pluginMeta in plugins.CustomPlugins) { Plugins.Add(new PluginViewModel { Title = pluginMeta.Title, Enabled = _enabledPlugins.Contains(pluginMeta.Id), Id = pluginMeta.Id }); } InitializeComponent(); PluginList.ItemsSource = Plugins; DataContext = this; }
public PluginManager(IDependencyInjector container, IEnumerable <IPluginMeta> metas, PluginManagerSettings settings, ISettings gloabalSettings) { _container = container; _settings = settings; ApplyMigration(settings, gloabalSettings); _enabledPlugins = _settings.EnabledPlugins; Plugins = metas; }
private static void ApplyMigration(PluginManagerSettings settings, ISettings gloabalSettings) { var migrations = new List <Tuple <string, string> > { Tuple.Create("Minimize to tray", "SystemTray") }; var enabled = settings.EnabledPlugins; foreach (var migration in migrations) { if (enabled.Contains(migration.Item1)) { enabled.Remove(migration.Item1); enabled.Add(migration.Item2); } } settings.EnabledPlugins = enabled; gloabalSettings.Save(); }