private void mnuAccount_Click(object sender, EventArgs e)
{
ToolStripItem accountMenuItem = sender as ToolStripItem;
string oldAccountName = accountMenuItem.Text;
ToolStripItem timeoutMenuItem = accountMenuItem.Tag as ToolStripItem;
using (frmAccount form = new frmAccount(settings, this))
{
form.ShowRemove(true);
form.AccountName = oldAccountName;
form.Key = settings.Accounts[oldAccountName].Use(p => p);
DialogResult result = form.ShowDialog(this);
if (result == DialogResult.OK)
{
settings.Accounts.Remove(oldAccountName);
string accountName = form.AccountName;
if (String.IsNullOrEmpty(accountName) == false)
{
settings.Accounts[accountName] = new SecureString().AppendChars(form.Key);
accountMenuItem.Text = accountName;
timeoutMenuItem.Tag = accountName;
}
else
{
timeoutMenuItems.Remove(timeoutMenuItem);
var ix = contextMenu.Items.IndexOf(accountMenuItem);
contextMenu.Items.RemoveAt(ix + 2); // remove separator
contextMenu.Items.RemoveAt(ix + 1); // remove timeout password
contextMenu.Items.RemoveAt(ix); // remove account name
}
settings.SaveSettings();
settings.SaveAccounts();
}
}
}