private void _ButtonDefault_Click(object sender, EventArgs e) { _ButtonDefault.Enabled = false; var accountPanels = this.Parent.Controls.All().Where(o => o is AccountPanel); Account defaultAccount = Config.Current.Accounts.Where(o => o.Default).FirstOrDefault(); AccountPanel defaultAccountPanel = accountPanels.Where(o => (o as AccountPanel).Account.Default).FirstOrDefault() as AccountPanel; Forms.Preferences form = this.ParentForm as Forms.Preferences; PreferencesButton buttonAccounts = form._ButtonGroup.Controls.Find("_ButtonAccounts", true)[0] as PreferencesButton; PreferencesButtonItem thisItem = buttonAccounts.ButtonItems.All().Where(o => o.AssociatedPanel == this).FirstOrDefault(); PreferencesButtonItem defaultItem = buttonAccounts.ButtonItems.All().Where(o => o.ButtonText == defaultAccount.FullAddress).FirstOrDefault(); defaultAccount.Default = false; Account.Default = true; _ButtonDefault.Enabled = false; defaultAccountPanel.DefaultButton.Enabled = true; thisItem.Font = new Font(thisItem.Font, FontStyle.Bold); defaultItem.Font = new Font(defaultItem.Font, FontStyle.Regular); }
private void SetMailtoState() { if (_CheckMailto.Checked) { Account defaultAccount = Config.Current.Accounts.Where(o => o.HandlesMailto).FirstOrDefault(); if (defaultAccount != null) { defaultAccount.HandlesMailto = false; } Account.HandlesMailto = true; foreach (Control control in this.Parent.Controls) { if (!(control is AccountPanel)) { continue; } AccountPanel panel = (AccountPanel)control; if (panel == this) { continue; } // really stupid flag hack so that unchecking the other checkboxes for other accounts doesn't trigger the (un/)register process. panel._CheckMailto.Enabled = false; panel._CheckMailto.Checked = false; panel._CheckMailto.Enabled = true; } } else { Account.HandlesMailto = false; } }