private async void SettingStripMenuItem_Click(object sender, EventArgs e)
{
// 設定画面表示前のユーザー情報
var oldUser = new { tw.AccessToken, tw.AccessTokenSecret, tw.Username, tw.UserId };
var oldIconSz = this._cfgCommon.IconSize;
if (ShowSettingDialog() == DialogResult.OK)
{
lock (_syncObject)
{
tw.RestrictFavCheck = this._cfgCommon.RestrictFavCheck;
tw.ReadOwnPost = this._cfgCommon.ReadOwnPost;
ShortUrl.Instance.DisableExpanding = !this._cfgCommon.TinyUrlResolve;
ShortUrl.Instance.BitlyId = this._cfgCommon.BilyUser;
ShortUrl.Instance.BitlyKey = this._cfgCommon.BitlyPwd;
TwitterApiConnection.RestApiHost = this._cfgCommon.TwitterApiHost;
Networking.DefaultTimeout = TimeSpan.FromSeconds(this._cfgCommon.DefaultTimeOut);
Networking.UploadImageTimeout = TimeSpan.FromSeconds(this._cfgCommon.UploadImageTimeout);
Networking.SetWebProxy(this._cfgLocal.ProxyType,
this._cfgLocal.ProxyAddress, this._cfgLocal.ProxyPort,
this._cfgLocal.ProxyUser, this._cfgLocal.ProxyPassword);
Networking.ForceIPv4 = this._cfgCommon.ForceIPv4;
ImageSelector.Reset(tw, this.tw.Configuration);
try
{
if (this._cfgCommon.TabIconDisp)
{
ListTab.DrawItem -= ListTab_DrawItem;
ListTab.DrawMode = TabDrawMode.Normal;
ListTab.ImageList = this.TabImage;
}
else
{
ListTab.DrawItem -= ListTab_DrawItem;
ListTab.DrawItem += ListTab_DrawItem;
ListTab.DrawMode = TabDrawMode.OwnerDrawFixed;
ListTab.ImageList = null;
}
}
catch (Exception ex)
{
ex.Data["Instance"] = "ListTab(TabIconDisp)";
ex.Data["IsTerminatePermission"] = false;
throw;
}
try
{
if (!this._cfgCommon.UnreadManage)
{
ReadedStripMenuItem.Enabled = false;
UnreadStripMenuItem.Enabled = false;
if (this._cfgCommon.TabIconDisp)
{
foreach (TabPage myTab in ListTab.TabPages)
{
myTab.ImageIndex = -1;
}
}
}
else
{
ReadedStripMenuItem.Enabled = true;
UnreadStripMenuItem.Enabled = true;
}
}
catch (Exception ex)
{
ex.Data["Instance"] = "ListTab(UnreadManage)";
ex.Data["IsTerminatePermission"] = false;
throw;
}
// タブの表示位置の決定
SetTabAlignment();
SplitContainer1.IsPanelInverted = !this._cfgCommon.StatusAreaAtBottom;
var imgazyobizinet = ThumbnailGenerator.ImgAzyobuziNetInstance;
imgazyobizinet.Enabled = this._cfgCommon.EnableImgAzyobuziNet;
imgazyobizinet.DisabledInDM = this._cfgCommon.ImgAzyobuziNetDisabledInDM;
this.PlaySoundMenuItem.Checked = this._cfgCommon.PlaySound;
this.PlaySoundFileMenuItem.Checked = this._cfgCommon.PlaySound;
_fntUnread = this._cfgLocal.FontUnread;
_clUnread = this._cfgLocal.ColorUnread;
_fntReaded = this._cfgLocal.FontRead;
_clReaded = this._cfgLocal.ColorRead;
_clFav = this._cfgLocal.ColorFav;
_clOWL = this._cfgLocal.ColorOWL;
_clRetweet = this._cfgLocal.ColorRetweet;
_fntDetail = this._cfgLocal.FontDetail;
_clDetail = this._cfgLocal.ColorDetail;
_clDetailLink = this._cfgLocal.ColorDetailLink;
_clDetailBackcolor = this._cfgLocal.ColorDetailBackcolor;
_clSelf = this._cfgLocal.ColorSelf;
_clAtSelf = this._cfgLocal.ColorAtSelf;
_clTarget = this._cfgLocal.ColorTarget;
_clAtTarget = this._cfgLocal.ColorAtTarget;
_clAtFromTarget = this._cfgLocal.ColorAtFromTarget;
_clAtTo = this._cfgLocal.ColorAtTo;
_clListBackcolor = this._cfgLocal.ColorListBackcolor;
_clInputBackcolor = this._cfgLocal.ColorInputBackcolor;
_clInputFont = this._cfgLocal.ColorInputFont;
_fntInputFont = this._cfgLocal.FontInputFont;
_brsBackColorMine.Dispose();
_brsBackColorAt.Dispose();
_brsBackColorYou.Dispose();
_brsBackColorAtYou.Dispose();
_brsBackColorAtFromTarget.Dispose();
_brsBackColorAtTo.Dispose();
_brsBackColorNone.Dispose();
_brsBackColorMine = new SolidBrush(_clSelf);
_brsBackColorAt = new SolidBrush(_clAtSelf);
_brsBackColorYou = new SolidBrush(_clTarget);
_brsBackColorAtYou = new SolidBrush(_clAtTarget);
_brsBackColorAtFromTarget = new SolidBrush(_clAtFromTarget);
_brsBackColorAtTo = new SolidBrush(_clAtTo);
_brsBackColorNone = new SolidBrush(_clListBackcolor);
try
{
if (StatusText.Focused) StatusText.BackColor = _clInputBackcolor;
StatusText.Font = _fntInputFont;
StatusText.ForeColor = _clInputFont;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
try
{
InitDetailHtmlFormat();
}
catch (Exception ex)
{
ex.Data["Instance"] = "Font";
ex.Data["IsTerminatePermission"] = false;
throw;
}
try
{
foreach (TabPage tb in ListTab.TabPages)
{
if (this._cfgCommon.TabIconDisp)
{
if (_statuses.Tabs[tb.Text].UnreadCount == 0)
tb.ImageIndex = -1;
else
tb.ImageIndex = 0;
}
}
}
catch (Exception ex)
{
ex.Data["Instance"] = "ListTab(TabIconDisp no2)";
ex.Data["IsTerminatePermission"] = false;
throw;
}
try
{
var oldIconCol = _iconCol;
if (this._cfgCommon.IconSize != oldIconSz)
ApplyListViewIconSize(this._cfgCommon.IconSize);
foreach (TabPage tp in ListTab.TabPages)
{
DetailsListView lst = (DetailsListView)tp.Tag;
using (ControlTransaction.Update(lst))
{
lst.GridLines = this._cfgCommon.ShowGrid;
lst.Font = _fntReaded;
lst.BackColor = _clListBackcolor;
if (_iconCol != oldIconCol)
ResetColumns(lst);
}
}
}
catch (Exception ex)
{
ex.Data["Instance"] = "ListView(IconSize)";
ex.Data["IsTerminatePermission"] = false;
throw;
}
SetMainWindowTitle();
SetNotifyIconText();
this.PurgeListViewItemCache();
_curList?.Refresh();
ListTab.Refresh();
_hookGlobalHotkey.UnregisterAllOriginalHotkey();
if (this._cfgCommon.HotkeyEnabled)
{
///グローバルホットキーの登録。設定で変更可能にするかも
HookGlobalHotkey.ModKeys modKey = HookGlobalHotkey.ModKeys.None;
if ((this._cfgCommon.HotkeyModifier & Keys.Alt) == Keys.Alt)
modKey |= HookGlobalHotkey.ModKeys.Alt;
if ((this._cfgCommon.HotkeyModifier & Keys.Control) == Keys.Control)
modKey |= HookGlobalHotkey.ModKeys.Ctrl;
if ((this._cfgCommon.HotkeyModifier & Keys.Shift) == Keys.Shift)
modKey |= HookGlobalHotkey.ModKeys.Shift;
if ((this._cfgCommon.HotkeyModifier & Keys.LWin) == Keys.LWin)
modKey |= HookGlobalHotkey.ModKeys.Win;
_hookGlobalHotkey.RegisterOriginalHotkey(this._cfgCommon.HotkeyKey, this._cfgCommon.HotkeyValue, modKey);
}
if (this._cfgCommon.IsUseNotifyGrowl) gh.RegisterGrowl();
try
{
StatusText_TextChanged(null, null);
}
catch (Exception)
{
}
}
}
else
{
// キャンセル時は Twitter クラスの認証情報を画面表示前の状態に戻す
this.tw.Initialize(oldUser.AccessToken, oldUser.AccessTokenSecret, oldUser.Username, oldUser.UserId);
}
Twitter.AccountState = MyCommon.ACCOUNT_STATE.Valid;
this.TopMost = this._cfgCommon.AlwaysTop;
SaveConfigsAll(false);
if (tw.Username != oldUser.Username)
await this.doGetFollowersMenu();
}