/// <summary> /// 加载一个默认的 插件, 如果存在的话! TODO /// </summary> private static void InitDefaultQTConfigPlugin() { ///////////// add default plugin by qwop 2012-07-10//////////////// // the program data 's default plugin. string defaultQtConfigPath = Environment.GetEnvironmentVariable("ProgramData") + @"\QTTabBar\QTQuick.dll"; string turnOffRepeatPath = Environment.GetEnvironmentVariable("ProgramData") + @"\QTTabBar\TurnOffRepeat.dll"; List <string> lists = new List <string>(); if (File.Exists(defaultQtConfigPath)) { // plugin. /* Config.BBar.ActivePluginIDs = new string[] { "QTConfig1.0.0.0(9CD80883)+Qwop.QTConfigPluginButton" }; * Config.BBar.ButtonIndexes = QTUtility.IsXP * ? new int[] { 1, 2, 0, 3, 4, 5, 0, 6, 7, 0, 11, 13, 12, 14, 15, 0, 65536, 9, 20 } * : new System.Int32[] { 3, 4, 5, 0, 6, 7, 0, 17, 11, 12, 14, 15, 13, 0, 65536, 9, 19, 10 }; */ // List<string> lists = new string[] { defaultQtConfigPath }.ToList(); lists.Add(defaultQtConfigPath); } if (File.Exists(turnOffRepeatPath)) { lists.Add(turnOffRepeatPath); } if (lists.Count > 0) { PluginManager.SavePluginAssemblyPaths(lists); } }
/// <summary> /// 加载一个默认的 插件, 如果存在的话! TODO /// </summary> private static void InitDefaultQTConfigPlugin() { ///////////// add default plugin by qwop 2012-07-10//////////////// // the program data 's default plugin. string defaultQtConfigPath = Environment.GetEnvironmentVariable("ProgramData") + @"\QTTabBar\QTQuick.dll"; string turnOffRepeatPath = Environment.GetEnvironmentVariable("ProgramData") + @"\QTTabBar\TurnOffRepeat.dll"; string[] plugins = new string[] { Environment.GetEnvironmentVariable("ProgramData") + @"\QTTabBar\QTQuick.dll", Environment.GetEnvironmentVariable("ProgramData") + @"\QTTabBar\TurnOffRepeat.dll", Environment.GetEnvironmentVariable("ProgramData") + @"\QTTabBar\CreateNewItem.dll", Environment.GetEnvironmentVariable("ProgramData") + @"\QTTabBar\FolderTreeButton.dll", Environment.GetEnvironmentVariable("ProgramData") + @"\QTTabBar\Memo.dll", Environment.GetEnvironmentVariable("ProgramData") + @"\QTTabBar\MigemoLoader.dll", Environment.GetEnvironmentVariable("ProgramData") + @"\QTTabBar\QTClock.dll", Environment.GetEnvironmentVariable("ProgramData") + @"\QTTabBar\QTFileTools.dll", Environment.GetEnvironmentVariable("ProgramData") + @"\QTTabBar\QTViewModeButton.dll", Environment.GetEnvironmentVariable("ProgramData") + @"\QTTabBar\QTWindowManager.dll", // Environment.GetEnvironmentVariable("ProgramData") + @"\QTTabBar\SampleSplitButton.dll", Environment.GetEnvironmentVariable("ProgramData") + @"\QTTabBar\ShowStatusBar.dll" }; List <string> lists = new List <string>(); foreach (string plugin in plugins) { if (File.Exists(plugin)) { lists.Add(plugin); } } /* Config.BBar.ActivePluginIDs = new string[] { "QTConfig1.0.0.0(9CD80883)+Qwop.QTConfigPluginButton" }; * Config.BBar.ButtonIndexes = QTUtility.IsXP * ? new int[] { 1, 2, 0, 3, 4, 5, 0, 6, 7, 0, 11, 13, 12, 14, 15, 0, 65536, 9, 20 } * : new System.Int32[] { 3, 4, 5, 0, 6, 7, 0, 17, 11, 12, 14, 15, 13, 0, 65536, 9, 19, 10 }; */ /* * if (File.Exists(defaultQtConfigPath)) * { * // plugin. * * * // List<string> lists = new string[] { defaultQtConfigPath }.ToList(); * lists.Add(defaultQtConfigPath); * } * * * if (File.Exists(turnOffRepeatPath)) * { * lists.Add(turnOffRepeatPath); * } */ if (lists.Count > 0) { PluginManager.SavePluginAssemblyPaths(lists); } }
public override void CommitConfig() { HashSet <string> paths = new HashSet <string>(); HashSet <PluginAssembly> toDispose = new HashSet <PluginAssembly>(); // Don't dispose the assemblies here. That will be done by the plugin manager // when the plugins are unloaded. for (int i = 0; i < CurrentPlugins.Count; ++i) { if (CurrentPlugins[i].UninstallOnClose) { CurrentPlugins[i].Enabled = false; CurrentPlugins.RemoveAt(i--); } } List <string> enabled = new List <string>(); foreach (PluginEntry entry in CurrentPlugins) { paths.Add(entry.PluginAssembly.Path); if (entry.DisableOnClose) { entry.Enabled = false; } else if (entry.EnableOnClose) { entry.Enabled = true; } else if (entry.InstallOnClose) { entry.Enabled = true; toDispose.Add(entry.PluginAssembly); // Newly installed PluginAssemblies are loaded by the options dialog. // They will also be loaded by the PluginManager, so we have to // dispose of the ones we loaded here. } entry.EnableOnClose = entry.DisableOnClose = entry.InstallOnClose = false; if (entry.Enabled) { enabled.Add(entry.PluginID); } } WorkingConfig.plugin.Enabled = enabled.ToArray(); foreach (PluginAssembly asm in toDispose) { asm.Dispose(); } PluginManager.SavePluginAssemblyPaths(paths.ToList()); // Entries are invalid now, some assemblies may have been Disposed. CurrentPlugins = new ObservableCollection <PluginEntry>(); }