Пример #1
0
        private void SaveRecentBDROM(string bdromPath, bool isSuccessfulScan)
        {
            var recentFiles = _preferenceManager.Preferences.RecentFiles;

            if (!recentFiles.RememberRecentFiles)
            {
                return;
            }
            if (recentFiles.SaveOnlyOnSuccessfulScan && !isSuccessfulScan)
            {
                return;
            }
            _preferenceManager.UpdatePreferences(prefs => prefs.RecentFiles.AddBDROM(bdromPath));
        }
Пример #2
0
        private Type InitPlugin([CanBeNull] Type prevPluginType, [NotNull] IPlugin plugin)
        {
            var curPluginInterfaces = plugin.GetType().GetInterfaces().Except(new[] { typeof(IPlugin) });
            var curPluginType       = curPluginInterfaces.FirstOrDefault(type => type.GetInterfaces().Contains(typeof(IPlugin)));

            if (prevPluginType != null && prevPluginType != curPluginType)
            {
                pluginsToolStripMenuItem.DropDownItems.Add("-");
            }

            var iconImage16 = plugin.Icon != null ? new Icon(plugin.Icon, new Size(16, 16)).ToBitmap() : null;
            var pluginItem  = new ToolStripMenuItem(plugin.Name)
            {
                Image = iconImage16, Tag = plugin
            };

            var enabledItem = new ToolStripMenuItem("Enabled")
            {
                CheckOnClick = true, Name = PluginEnabledMenuItemName
            };

            enabledItem.Click += delegate
            {
                if (plugin is IDiscReaderPlugin)
                {
                    _controller.PluginsByType.OfType <IDiscReaderPlugin>()
                    .ForEach(readerPlugin => readerPlugin.Enabled = readerPlugin == plugin);
                }
                else
                {
                    plugin.Enabled = enabledItem.Checked;
                    _preferenceManager.UpdatePreferences(prefs =>
                                                         prefs.Plugins.SetPluginEnabled(plugin.AssemblyInfo.Guid,
                                                                                        plugin.Enabled));
                }
                AutoCheckPluginMenu();
            };

            pluginItem.DropDownItems.Add(enabledItem);

            if (plugin.EditPreferences != null)
            {
                pluginItem.DropDownItems.Add(new ToolStripMenuItem("Preferences...", null,
                                                                   (sender, args) =>
                                                                   EditPreferences(plugin)));
            }

            pluginItem.DropDownItems.Add("-");

            pluginItem.DropDownItems.Add(
                new ToolStripMenuItem(string.Format("Run order: {0}", plugin.RunOrder))
            {
                Enabled = false
            });
            pluginItem.DropDownItems.Add(
                new ToolStripMenuItem(string.Format("Version {0}", plugin.AssemblyInfo.Version))
            {
                Enabled = false
            });
            pluginItem.DropDownItems.Add(
                new ToolStripMenuItem(string.Format("Built on {0}", plugin.AssemblyInfo.BuildDate))
            {
                Enabled = false
            });

            pluginsToolStripMenuItem.DropDownItems.Add(pluginItem);

            return(curPluginType);
        }