示例#1
0
        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;
        }
示例#2
0
        public PluginManager(IDependencyInjector container, IEnumerable <IPluginMeta> metas, PluginManagerSettings settings, ISettings gloabalSettings)
        {
            _container = container;
            _settings  = settings;

            ApplyMigration(settings, gloabalSettings);

            _enabledPlugins = _settings.EnabledPlugins;
            Plugins         = metas;
        }
示例#3
0
        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();
        }