private bool disposedValue = false; // To detect redundant calls public TrayIconController(IPluginManager pluginManager, ISettingsProvider settingsProvider, IPlayerStateHistoryRecorder playerStateRecorder, IAutorunManager autorunManager) { trayIcon = CreateTrayIcon(); this.pluginManager = pluginManager; this.playerStateRecorder = playerStateRecorder; this.settingsProvider = settingsProvider; this.autorunManager = autorunManager; }
private void SettingsForm_Load(object sender, EventArgs e) { currentSettings = Provider.Settings.Clone(); // Will check passed properties for null here as they are not yet set in constructor var generalSettingsControl = new GeneralSettingsControl() { PlayerStateRecorder = PlayerStateRecorder ?? throw new ArgumentNullException("MessageBroker"), GlobalSettings = currentSettings ?? throw new ArgumentNullException("Settings"), Plugins = Plugins ?? throw new ArgumentNullException("Plugins"), AutorunManager = AutorunManager ?? throw new ArgumentNullException("AutorunManager"), Dock = DockStyle.Fill }; settingsControls.Add("General", generalSettingsControl); settingsCategoriesListView.Items.Add("General"); foreach (var plugin in Plugins) { try { var control = plugin.GetPluginSettingsControl(currentSettings); if (control == null) { continue; } control.Dock = DockStyle.Fill; control.PerformLayout(); settingsControls.Add(plugin.PluginName, control); } catch (Exception ex) { Log.Error(ex, "Error loading plugin {0}", plugin.PluginId); } } foreach (string category in settingsControls.Keys.OrderBy(x => x)) { if (category != "General") { settingsCategoriesListView.Items.Add(category); } } settingsCategoriesListView.SelectedIndices.Add(0); }