{
public partial class TweenMain : OTBaseForm
{
- private readonly HttpClient http;
-
//各種設定
private Size _mySize; //画面サイズ
private Point _myLoc; //画面位置
private bool _waitLists = false;
private BackgroundWorker[] _bw = new BackgroundWorker[20];
private BackgroundWorker _bwFollower;
- private InternetSecurityManager SecurityManager;
private int UnreadCounter = -1;
private int UnreadAtCounter = -1;
private class GetWorkerResult
{
public string retMsg = ""; //処理結果詳細メッセージ。エラー時に値がセットされる
- public int page; //取得対象ページ番号
- public int endPage = 0; //取得終了ページ番号(継続可能ならインクリメントされて返る。pageと比較して継続判定)
public MyCommon.WORKERTYPE type; //処理種別
- public Dictionary<string, Image> imgs = null; //新規取得したアイコンイメージ
public string tName = ""; //Fav追加・削除時のタブ名
- public List<long> ids = null; //Fav追加・削除時のID
public List<long> sIds = null; //Fav追加・削除成功分のID
public bool newDM = false;
public int addCount;
private class GetWorkerArg
{
public int page; //処理対象ページ番号
- public int endPage; //処理終了ページ番号(起動時の読み込みページ数。通常時はpageと同じ値をセット)
public MyCommon.WORKERTYPE type; //処理種別
- public string url = ""; //URLをブラウザで開くときのアドレス
public PostingStatus status = new PostingStatus(); //発言POST時の発言内容
public List<long> ids; //Fav追加・削除時のItemIndex
public List<long> sIds; //Fav追加・削除成功分のItemIndex
}
}
- private void TweenMain_Disposed(object sender, EventArgs e)
+ private bool disposed = false;
+
+ /// <summary>
+ /// 使用中のリソースをすべてクリーンアップします。
+ /// </summary>
+ /// <param name="disposing">マネージ リソースが破棄される場合 true、破棄されない場合は false です。</param>
+ protected override void Dispose(bool disposing)
{
- //後始末
- SettingDialog.Dispose();
- SearchDialog.Dispose();
- fltDialog.Dispose();
- UrlDialog.Dispose();
- if (NIconAt != null) NIconAt.Dispose();
- if (NIconAtRed != null) NIconAtRed.Dispose();
- if (NIconAtSmoke != null) NIconAtSmoke.Dispose();
- if (NIconRefresh[0] != null) NIconRefresh[0].Dispose();
- if (NIconRefresh[1] != null) NIconRefresh[1].Dispose();
- if (NIconRefresh[2] != null) NIconRefresh[2].Dispose();
- if (NIconRefresh[3] != null) NIconRefresh[3].Dispose();
- if (TabIcon != null) TabIcon.Dispose();
- if (MainIcon != null) MainIcon.Dispose();
- if (ReplyIcon != null) ReplyIcon.Dispose();
- if (ReplyIconBlink != null) ReplyIconBlink.Dispose();
- _listViewImageList.Dispose();
- _brsHighLight.Dispose();
- if (_brsBackColorMine != null) _brsBackColorMine.Dispose();
- if (_brsBackColorAt != null) _brsBackColorAt.Dispose();
- if (_brsBackColorYou != null) _brsBackColorYou.Dispose();
- if (_brsBackColorAtYou != null) _brsBackColorAtYou.Dispose();
- if (_brsBackColorAtFromTarget != null) _brsBackColorAtFromTarget.Dispose();
- if (_brsBackColorAtTo != null) _brsBackColorAtTo.Dispose();
- if (_brsBackColorNone != null) _brsBackColorNone.Dispose();
- if (_brsDeactiveSelection != null) _brsDeactiveSelection.Dispose();
- //sf.Dispose();
- sfTab.Dispose();
- foreach (BackgroundWorker bw in _bw)
- {
- if (bw != null)
- bw.Dispose();
- }
- if (_bwFollower != null)
- {
- _bwFollower.Dispose();
- }
- this._apiGauge.Dispose();
- if (IconCache != null)
- {
- this.IconCache.CancelAsync();
- this.IconCache.Dispose();
- }
+ base.Dispose(disposing);
- this.http.Dispose();
+ if (this.disposed)
+ return;
+
+ if (disposing)
+ {
+ if (this.components != null)
+ this.components.Dispose();
+
+ //後始末
+ SettingDialog.Dispose();
+ SearchDialog.Dispose();
+ fltDialog.Dispose();
+ UrlDialog.Dispose();
+ if (NIconAt != null) NIconAt.Dispose();
+ if (NIconAtRed != null) NIconAtRed.Dispose();
+ if (NIconAtSmoke != null) NIconAtSmoke.Dispose();
+ if (NIconRefresh[0] != null) NIconRefresh[0].Dispose();
+ if (NIconRefresh[1] != null) NIconRefresh[1].Dispose();
+ if (NIconRefresh[2] != null) NIconRefresh[2].Dispose();
+ if (NIconRefresh[3] != null) NIconRefresh[3].Dispose();
+ if (TabIcon != null) TabIcon.Dispose();
+ if (MainIcon != null) MainIcon.Dispose();
+ if (ReplyIcon != null) ReplyIcon.Dispose();
+ if (ReplyIconBlink != null) ReplyIconBlink.Dispose();
+ _listViewImageList.Dispose();
+ _brsHighLight.Dispose();
+ if (_brsBackColorMine != null) _brsBackColorMine.Dispose();
+ if (_brsBackColorAt != null) _brsBackColorAt.Dispose();
+ if (_brsBackColorYou != null) _brsBackColorYou.Dispose();
+ if (_brsBackColorAtYou != null) _brsBackColorAtYou.Dispose();
+ if (_brsBackColorAtFromTarget != null) _brsBackColorAtFromTarget.Dispose();
+ if (_brsBackColorAtTo != null) _brsBackColorAtTo.Dispose();
+ if (_brsBackColorNone != null) _brsBackColorNone.Dispose();
+ if (_brsDeactiveSelection != null) _brsDeactiveSelection.Dispose();
+ //sf.Dispose();
+ sfTab.Dispose();
+ foreach (BackgroundWorker bw in _bw)
+ {
+ if (bw != null)
+ bw.Dispose();
+ }
+ if (_bwFollower != null)
+ {
+ _bwFollower.Dispose();
+ }
+ this._apiGauge.Dispose();
+ if (IconCache != null)
+ {
+ this.IconCache.CancelAsync();
+ this.IconCache.Dispose();
+ }
+
+ if (this.thumbnailTokenSource != null)
+ this.thumbnailTokenSource.Dispose();
+
+ this.itemCacheLock.Dispose();
+ this.tw.Dispose();
+ this._hookGlobalHotkey.Dispose();
+ }
// 終了時にRemoveHandlerしておかないとメモリリークする
// http://msdn.microsoft.com/ja-jp/library/microsoft.win32.systemevents.powermodechanged.aspx
Microsoft.Win32.SystemEvents.PowerModeChanged -= SystemEvents_PowerModeChanged;
+
+ this.disposed = true;
}
private void LoadIcon(ref Icon IconInstance, string FileName)
//Win32Api.SetProxy(HttpConnection.ProxyType.Specified, "127.0.0.1", 8080, "user", "pass")
- SecurityManager = new InternetSecurityManager(PostBrowser);
+ new InternetSecurityManager(PostBrowser);
this.PostBrowser.AllowWebBrowserDrop = false; // COMException を回避するため、ActiveX の初期化が終わってから設定する
MyCommon.TwitterApiInfo.AccessLimitUpdated += TwitterApiStatus_AccessLimitUpdated;
////設定読み出し
LoadConfig();
- ThumbnailGenerator.InitializeGenerator(this.http);
+ ThumbnailGenerator.InitializeGenerator();
var imgazyobizinet = ThumbnailGenerator.ImgAzyobuziNetInstance;
imgazyobizinet.Enabled = this._cfgCommon.EnableImgAzyobuziNet;
sfTab.Alignment = StringAlignment.Center;
sfTab.LineAlignment = StringAlignment.Center;
+ //不正値チェック
+ if (!MyApplication.StartupOptions.ContainsKey("nolimit"))
+ {
+ if (this._cfgCommon.TimelinePeriod < 15 && this._cfgCommon.TimelinePeriod > 0)
+ this._cfgCommon.TimelinePeriod = 15;
+
+ if (this._cfgCommon.ReplyPeriod < 15 && this._cfgCommon.ReplyPeriod > 0)
+ this._cfgCommon.ReplyPeriod = 15;
+
+ if (this._cfgCommon.DMPeriod < 15 && this._cfgCommon.DMPeriod > 0)
+ this._cfgCommon.DMPeriod = 15;
+
+ if (this._cfgCommon.PubSearchPeriod < 30 && this._cfgCommon.PubSearchPeriod > 0)
+ this._cfgCommon.PubSearchPeriod = 30;
+
+ if (this._cfgCommon.UserTimelinePeriod < 15 && this._cfgCommon.UserTimelinePeriod > 0)
+ this._cfgCommon.UserTimelinePeriod = 15;
+
+ if (this._cfgCommon.ListsPeriod < 15 && this._cfgCommon.ListsPeriod > 0)
+ this._cfgCommon.ListsPeriod = 15;
+ }
+
//設定画面への反映
+ this.SettingDialog.LoadConfig(this._cfgCommon, this._cfgLocal);
HttpTwitter.TwitterUrl = _cfgCommon.TwitterUrl;
SettingDialog.TwitterApiUrl = _cfgCommon.TwitterUrl;
SettingDialog.UserAccounts = _cfgCommon.UserAccounts;
- SettingDialog.TimelinePeriodInt = _cfgCommon.TimelinePeriod;
- SettingDialog.ReplyPeriodInt = _cfgCommon.ReplyPeriod;
- SettingDialog.DMPeriodInt = _cfgCommon.DMPeriod;
- SettingDialog.PubSearchPeriodInt = _cfgCommon.PubSearchPeriod;
- SettingDialog.UserTimelinePeriodInt = _cfgCommon.UserTimelinePeriod;
- SettingDialog.ListsPeriodInt = _cfgCommon.ListsPeriod;
- //不正値チェック
- if (!MyApplication.StartupOptions.ContainsKey("nolimit"))
- {
- if (SettingDialog.TimelinePeriodInt < 15 && SettingDialog.TimelinePeriodInt > 0) SettingDialog.TimelinePeriodInt = 15;
- if (SettingDialog.ReplyPeriodInt < 15 && SettingDialog.ReplyPeriodInt > 0) SettingDialog.ReplyPeriodInt = 15;
- if (SettingDialog.DMPeriodInt < 15 && SettingDialog.DMPeriodInt > 0) SettingDialog.DMPeriodInt = 15;
- if (SettingDialog.PubSearchPeriodInt < 30 && SettingDialog.PubSearchPeriodInt > 0) SettingDialog.PubSearchPeriodInt = 30;
- if (SettingDialog.UserTimelinePeriodInt < 15 && SettingDialog.UserTimelinePeriodInt > 0) SettingDialog.UserTimelinePeriodInt = 15;
- if (SettingDialog.ListsPeriodInt < 15 && SettingDialog.ListsPeriodInt > 0) SettingDialog.ListsPeriodInt = 15;
- }
-
- //起動時読み込み分を既読にするか。trueなら既読として処理
- SettingDialog.Readed = _cfgCommon.Read;
//新着取得時のリストスクロールをするか。trueならスクロールしない
ListLockMenuItem.Checked = _cfgCommon.ListLock;
this.LockListFileMenuItem.Checked = _cfgCommon.ListLock;
- SettingDialog.IconSz = _cfgCommon.IconSize;
- //文末ステータス
- SettingDialog.Status = _cfgLocal.StatusText;
- //未読管理。trueなら未読管理する
- SettingDialog.UnreadManage = _cfgCommon.UnreadManage;
//サウンド再生(タブ別設定より優先)
- SettingDialog.PlaySound = _cfgCommon.PlaySound;
- PlaySoundMenuItem.Checked = SettingDialog.PlaySound;
- this.PlaySoundFileMenuItem.Checked = SettingDialog.PlaySound;
- //片思い表示。trueなら片思い表示する
- SettingDialog.OneWayLove = _cfgCommon.OneWayLove;
- //フォント&文字色&背景色
- SettingDialog.FontUnread = _fntUnread;
- SettingDialog.ColorUnread = _clUnread;
- SettingDialog.FontReaded = _fntReaded;
- SettingDialog.ColorReaded = _clReaded;
- SettingDialog.ColorFav = _clFav;
- SettingDialog.ColorOWL = _clOWL;
- SettingDialog.ColorRetweet = _clRetweet;
- SettingDialog.FontDetail = _fntDetail;
- SettingDialog.ColorDetail = _clDetail;
- SettingDialog.ColorDetailLink = _clDetailLink;
- SettingDialog.ColorDetailBackcolor = _clDetailBackcolor;
- SettingDialog.ColorSelf = _clSelf;
- SettingDialog.ColorAtSelf = _clAtSelf;
- SettingDialog.ColorTarget = _clTarget;
- SettingDialog.ColorAtTarget = _clAtTarget;
- SettingDialog.ColorAtFromTarget = _clAtFromTarget;
- SettingDialog.ColorAtTo = _clAtTo;
- SettingDialog.ColorListBackcolor = _clListBackcolor;
- SettingDialog.ColorInputBackcolor = _clInputBackcolor;
- SettingDialog.ColorInputFont = _clInputFont;
- SettingDialog.FontInputFont = _fntInputFont;
+ this.PlaySoundMenuItem.Checked = this._cfgCommon.PlaySound;
+ this.PlaySoundFileMenuItem.Checked = this._cfgCommon.PlaySound;
SettingDialog.NameBalloon = _cfgCommon.NameBalloon;
- SettingDialog.PostCtrlEnter = _cfgCommon.PostCtrlEnter;
- SettingDialog.PostShiftEnter = _cfgCommon.PostShiftEnter;
SettingDialog.CountApi = _cfgCommon.CountApi;
SettingDialog.CountApiReply = _cfgCommon.CountApiReply;
if (SettingDialog.CountApi < 20 || SettingDialog.CountApi > 200) SettingDialog.CountApi = 60;
if (SettingDialog.CountApiReply < 20 || SettingDialog.CountApiReply > 200) SettingDialog.CountApiReply = 40;
- SettingDialog.BrowserPath = _cfgLocal.BrowserPath;
SettingDialog.PostAndGet = _cfgCommon.PostAndGet;
- SettingDialog.UseRecommendStatus = _cfgLocal.UseRecommendStatus;
SettingDialog.DispUsername = _cfgCommon.DispUsername;
- SettingDialog.CloseToExit = _cfgCommon.CloseToExit;
- SettingDialog.MinimizeToTray = _cfgCommon.MinimizeToTray;
SettingDialog.DispLatestPost = _cfgCommon.DispLatestPost;
- SettingDialog.SortOrderLock = _cfgCommon.SortOrderLock;
- SettingDialog.ViewTabBottom = _cfgCommon.ViewTabBottom;
SettingDialog.TinyUrlResolve = _cfgCommon.TinyUrlResolve;
SettingDialog.SelectedProxyType = _cfgLocal.ProxyType;
SettingDialog.ProxyUser = _cfgLocal.ProxyUser;
SettingDialog.ProxyPassword = _cfgLocal.ProxyPassword;
- SettingDialog.StartupVersion = _cfgCommon.StartupVersion;
- SettingDialog.StartupFollowers = _cfgCommon.StartupFollowers;
- SettingDialog.RestrictFavCheck = _cfgCommon.RestrictFavCheck;
SettingDialog.AlwaysTop = _cfgCommon.AlwaysTop;
SettingDialog.UrlConvertAuto = false;
//SettingDialog.UrlConvertAuto = _cfgCommon.UrlConvertAuto;
- SettingDialog.UseUnreadStyle = _cfgCommon.UseUnreadStyle;
SettingDialog.DefaultTimeOut = _cfgCommon.DefaultTimeOut;
- SettingDialog.RetweetNoConfirm = _cfgCommon.RetweetNoConfirm;
- SettingDialog.PlaySound = _cfgCommon.PlaySound;
- SettingDialog.DateTimeFormat = _cfgCommon.DateTimeFormat;
SettingDialog.LimitBalloon = _cfgCommon.LimitBalloon;
SettingDialog.EventNotifyEnabled = _cfgCommon.EventNotifyEnabled;
SettingDialog.EventNotifyFlag = _cfgCommon.EventNotifyFlag;
SettingDialog.AutoShortUrlFirst = _cfgCommon.AutoShortUrlFirst;
SettingDialog.TabIconDisp = _cfgCommon.TabIconDisp;
SettingDialog.ReplyIconState = _cfgCommon.ReplyIconState;
- SettingDialog.ReadOwnPost = _cfgCommon.ReadOwnPost;
- SettingDialog.GetFav = _cfgCommon.GetFav;
- SettingDialog.ReadOldPosts = _cfgCommon.ReadOldPosts;
SettingDialog.BitlyUser = _cfgCommon.BilyUser;
SettingDialog.BitlyPwd = _cfgCommon.BitlyPwd;
- SettingDialog.ShowGrid = _cfgCommon.ShowGrid;
SettingDialog.Language = _cfgCommon.Language;
- SettingDialog.UseAtIdSupplement = _cfgCommon.UseAtIdSupplement;
- SettingDialog.UseHashSupplement = _cfgCommon.UseHashSupplement;
SettingDialog.PreviewEnable = _cfgCommon.PreviewEnable;
SettingDialog.StatusAreaAtBottom = _cfgCommon.StatusAreaAtBottom;
AtIdSupl = new AtIdSupplement(SettingAtIdList.Load().AtIdList, "@");
//Regex statregex = new Regex("^0*");
SettingDialog.RecommendStatusText = " [TWNv" + Regex.Replace(MyCommon.FileVersion.Replace(".", ""), "^0*", "") + "]";
- //書式指定文字列エラーチェック
- try
- {
- if (DateTime.Now.ToString(SettingDialog.DateTimeFormat).Length == 0)
- {
- // このブロックは絶対に実行されないはず
- // 変換が成功した場合にLengthが0にならない
- SettingDialog.DateTimeFormat = "yyyy/MM/dd H:mm:ss";
- }
- }
- catch (FormatException)
- {
- // FormatExceptionが発生したら初期値を設定 (=yyyy/MM/dd H:mm:ssとみなされる)
- SettingDialog.DateTimeFormat = "yyyy/MM/dd H:mm:ss";
- }
-
SettingDialog.Nicoms = _cfgCommon.Nicoms;
- SettingDialog.HotkeyEnabled = _cfgCommon.HotkeyEnabled;
- SettingDialog.HotkeyMod = _cfgCommon.HotkeyModifier;
- SettingDialog.HotkeyKey = _cfgCommon.HotkeyKey;
- SettingDialog.HotkeyValue = _cfgCommon.HotkeyValue;
SettingDialog.BlinkNewMentions = _cfgCommon.BlinkNewMentions;
SettingDialog.UserTimelineCountApi = _cfgCommon.UserTimelineCountApi;
SettingDialog.ListCountApi = _cfgCommon.ListCountApi;
- SettingDialog.UserstreamStartup = _cfgCommon.UserstreamStartup;
- SettingDialog.UserstreamPeriodInt = _cfgCommon.UserstreamPeriod;
- SettingDialog.OpenUserTimeline = _cfgCommon.OpenUserTimeline;
- SettingDialog.ListDoubleClickAction = _cfgCommon.ListDoubleClickAction;
SettingDialog.UserAppointUrl = _cfgCommon.UserAppointUrl;
- SettingDialog.HideDuplicatedRetweets = _cfgCommon.HideDuplicatedRetweets;
SettingDialog.EnableImgAzyobuziNet = _cfgCommon.EnableImgAzyobuziNet;
SettingDialog.ImgAzyobuziNetDisabledInDM = _cfgCommon.ImgAzyobuziNetDisabledInDM;
SettingDialog.MapThumbnailHeight = _cfgCommon.MapThumbnailHeight;
SettingDialog.MapThumbnailWidth = _cfgCommon.MapThumbnailWidth;
SettingDialog.MapThumbnailZoom = _cfgCommon.MapThumbnailZoom;
- SettingDialog.IsListStatusesIncludeRts = _cfgCommon.IsListsIncludeRts;
- SettingDialog.TabMouseLock = _cfgCommon.TabMouseLock;
SettingDialog.IsRemoveSameEvent = _cfgCommon.IsRemoveSameEvent;
SettingDialog.IsNotifyUseGrowl = _cfgCommon.IsUseNotifyGrowl;
_initial = true;
+ Networking.Initialize();
+
//アイコンリスト作成
- this.IconCache = new ImageCache(this.http);
+ this.IconCache = new ImageCache();
bool saveRequired = false;
bool firstRun = false;
//新しい設定を反映
//フォント&文字色&背景色保持
- _fntUnread = SettingDialog.FontUnread;
- _clUnread = SettingDialog.ColorUnread;
- _fntReaded = SettingDialog.FontReaded;
- _clReaded = SettingDialog.ColorReaded;
- _clFav = SettingDialog.ColorFav;
- _clOWL = SettingDialog.ColorOWL;
- _clRetweet = SettingDialog.ColorRetweet;
- _fntDetail = SettingDialog.FontDetail;
- _clDetail = SettingDialog.ColorDetail;
- _clDetailLink = SettingDialog.ColorDetailLink;
- _clDetailBackcolor = SettingDialog.ColorDetailBackcolor;
- _clSelf = SettingDialog.ColorSelf;
- _clAtSelf = SettingDialog.ColorAtSelf;
- _clTarget = SettingDialog.ColorTarget;
- _clAtTarget = SettingDialog.ColorAtTarget;
- _clAtFromTarget = SettingDialog.ColorAtFromTarget;
- _clAtTo = SettingDialog.ColorAtTo;
- _clListBackcolor = SettingDialog.ColorListBackcolor;
- _clInputBackcolor = SettingDialog.ColorInputBackcolor;
- _clInputFont = SettingDialog.ColorInputFont;
- _fntInputFont = SettingDialog.FontInputFont;
+ _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;
//他の設定項目は、随時設定画面で保持している値を読み出して使用
}
InitDetailHtmlFormat();
- if (SettingDialog.HotkeyEnabled)
+ if (this._cfgCommon.HotkeyEnabled)
{
//////グローバルホットキーの登録
HookGlobalHotkey.ModKeys modKey = HookGlobalHotkey.ModKeys.None;
- if ((SettingDialog.HotkeyMod & Keys.Alt) == Keys.Alt) modKey = modKey | HookGlobalHotkey.ModKeys.Alt;
- if ((SettingDialog.HotkeyMod & Keys.Control) == Keys.Control) modKey = modKey | HookGlobalHotkey.ModKeys.Ctrl;
- if ((SettingDialog.HotkeyMod & Keys.Shift) == Keys.Shift) modKey = modKey | HookGlobalHotkey.ModKeys.Shift;
- if ((SettingDialog.HotkeyMod & Keys.LWin) == Keys.LWin) modKey = modKey | HookGlobalHotkey.ModKeys.Win;
+ 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(SettingDialog.HotkeyKey, SettingDialog.HotkeyValue, modKey);
+ _hookGlobalHotkey.RegisterOriginalHotkey(this._cfgCommon.HotkeyKey, this._cfgCommon.HotkeyValue, modKey);
}
//Twitter用通信クラス初期化
- HttpConnection.InitializeConnection(SettingDialog.DefaultTimeOut,
- SettingDialog.SelectedProxyType,
- SettingDialog.ProxyAddress,
- SettingDialog.ProxyPort,
- SettingDialog.ProxyUser,
- SettingDialog.ProxyPassword);
-
- tw.RestrictFavCheck = SettingDialog.RestrictFavCheck;
- tw.ReadOwnPost = SettingDialog.ReadOwnPost;
+ Networking.DefaultTimeout = TimeSpan.FromSeconds(this.SettingDialog.DefaultTimeOut);
+ Networking.SetWebProxy(this.SettingDialog.SelectedProxyType,
+ this.SettingDialog.ProxyAddress, this.SettingDialog.ProxyPort,
+ this.SettingDialog.ProxyUser, this.SettingDialog.ProxyPassword);
+
+ tw.RestrictFavCheck = this._cfgCommon.RestrictFavCheck;
+ tw.ReadOwnPost = this._cfgCommon.ReadOwnPost;
ShortUrl.Instance.DisableExpanding = !SettingDialog.TinyUrlResolve;
ShortUrl.Instance.BitlyId = SettingDialog.BitlyUser;
ShortUrl.Instance.BitlyKey = SettingDialog.BitlyPwd;
}
MultiLineMenuItem.Checked = _cfgLocal.StatusMultiline;
//this.Tween_ClientSizeChanged(this, null);
- PlaySoundMenuItem.Checked = SettingDialog.PlaySound;
- this.PlaySoundFileMenuItem.Checked = SettingDialog.PlaySound;
+ this.PlaySoundMenuItem.Checked = this._cfgCommon.PlaySound;
+ this.PlaySoundFileMenuItem.Checked = this._cfgCommon.PlaySound;
//入力欄
StatusText.Font = _fntInputFont;
StatusText.ForeColor = _clInputFont;
SplitContainer1.IsPanelInverted = !SettingDialog.StatusAreaAtBottom;
//全新着通知のチェック状態により、Reply&DMの新着通知有効無効切り替え(タブ別設定にするため削除予定)
- if (SettingDialog.UnreadManage == false)
+ if (this._cfgCommon.UnreadManage == false)
{
ReadedStripMenuItem.Enabled = false;
UnreadStripMenuItem.Enabled = false;
_statuses.SortMode = mode;
////////////////////////////////////////////////////////////////////////////////
- ApplyListViewIconSize(SettingDialog.IconSz);
-
- tw.TinyUrlResolve = SettingDialog.TinyUrlResolve;
+ ApplyListViewIconSize(this._cfgCommon.IconSize);
StatusLabel.Text = Properties.Resources.Form1_LoadText1; //画面右下の状態表示を変更
StatusLabelUrl.Text = ""; //画面左下のリンク先URL表示部を初期化
{
tab.TabType = MyCommon.TabUsageType.UserDefined;
}
- if (!AddNewTab(tab.TabName, true, tab.TabType, tab.ListInfo)) throw new Exception(Properties.Resources.TweenMain_LoadText1);
+ if (!AddNewTab(tab.TabName, true, tab.TabType, tab.ListInfo))
+ throw new TabException(Properties.Resources.TweenMain_LoadText1);
}
this.JumpReadOpMenuItem.ShortcutKeyDisplayString = "Space";
CopyURLMenuItem.ShortcutKeyDisplayString = "Ctrl+Shift+C";
CopyUserIdStripMenuItem.ShortcutKeyDisplayString = "Shift+Alt+C";
- if (SettingDialog.MinimizeToTray == false || this.WindowState != FormWindowState.Minimized)
+ if (!this._cfgCommon.MinimizeToTray || this.WindowState != FormWindowState.Minimized)
{
this.Visible = true;
}
private void LoadConfig()
{
_cfgCommon = SettingCommon.Load();
+ SettingCommon.Instance = this._cfgCommon;
if (_cfgCommon.UserAccounts == null || _cfgCommon.UserAccounts.Count == 0)
{
_cfgCommon.UserAccounts = new List<UserAccount>();
}
}
- private void TimerInterval_Changed(object sender, AppendSettingDialog.IntervalChangedEventArgs e) //Handles SettingDialog.IntervalChanged
+ private void TimerInterval_Changed(object sender, IntervalChangedEventArgs e) //Handles SettingDialog.IntervalChanged
{
if (!TimerTimeline.Enabled) return;
ResetTimers = e;
}
- private AppendSettingDialog.IntervalChangedEventArgs ResetTimers = new AppendSettingDialog.IntervalChangedEventArgs();
+ private IntervalChangedEventArgs ResetTimers = new IntervalChangedEventArgs();
private static int homeCounter = 0;
private static int mentionCounter = 0;
Interlocked.Increment(ref refreshFollowers);
////タイマー初期化
- if (ResetTimers.Timeline || homeCounter <= 0 && SettingDialog.TimelinePeriodInt > 0)
+ if (ResetTimers.Timeline || homeCounter <= 0 && this._cfgCommon.TimelinePeriod > 0)
{
- Interlocked.Exchange(ref homeCounter, SettingDialog.TimelinePeriodInt);
- if (!tw.IsUserstreamDataReceived && !ResetTimers.Timeline) GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, 0, "");
+ Interlocked.Exchange(ref homeCounter, this._cfgCommon.TimelinePeriod);
+ if (!tw.IsUserstreamDataReceived && !ResetTimers.Timeline) GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, "");
ResetTimers.Timeline = false;
}
- if (ResetTimers.Reply || mentionCounter <= 0 && SettingDialog.ReplyPeriodInt > 0)
+ if (ResetTimers.Reply || mentionCounter <= 0 && this._cfgCommon.ReplyPeriod > 0)
{
- Interlocked.Exchange(ref mentionCounter, SettingDialog.ReplyPeriodInt);
- if (!tw.IsUserstreamDataReceived && !ResetTimers.Reply) GetTimeline(MyCommon.WORKERTYPE.Reply, 1, 0, "");
+ Interlocked.Exchange(ref mentionCounter, this._cfgCommon.ReplyPeriod);
+ if (!tw.IsUserstreamDataReceived && !ResetTimers.Reply) GetTimeline(MyCommon.WORKERTYPE.Reply, 1, "");
ResetTimers.Reply = false;
}
- if (ResetTimers.DirectMessage || dmCounter <= 0 && SettingDialog.DMPeriodInt > 0)
+ if (ResetTimers.DirectMessage || dmCounter <= 0 && this._cfgCommon.DMPeriod > 0)
{
- Interlocked.Exchange(ref dmCounter, SettingDialog.DMPeriodInt);
- if (!tw.IsUserstreamDataReceived && !ResetTimers.DirectMessage) GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, 1, 0, "");
+ Interlocked.Exchange(ref dmCounter, this._cfgCommon.DMPeriod);
+ if (!tw.IsUserstreamDataReceived && !ResetTimers.DirectMessage) GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, 1, "");
ResetTimers.DirectMessage = false;
}
- if (ResetTimers.PublicSearch || pubSearchCounter <= 0 && SettingDialog.PubSearchPeriodInt > 0)
+ if (ResetTimers.PublicSearch || pubSearchCounter <= 0 && this._cfgCommon.PubSearchPeriod > 0)
{
- Interlocked.Exchange(ref pubSearchCounter, SettingDialog.PubSearchPeriodInt);
- if (!ResetTimers.PublicSearch) GetTimeline(MyCommon.WORKERTYPE.PublicSearch, 1, 0, "");
+ Interlocked.Exchange(ref pubSearchCounter, this._cfgCommon.PubSearchPeriod);
+ if (!ResetTimers.PublicSearch) GetTimeline(MyCommon.WORKERTYPE.PublicSearch, 1, "");
ResetTimers.PublicSearch = false;
}
- if (ResetTimers.UserTimeline || userTimelineCounter <= 0 && SettingDialog.UserTimelinePeriodInt > 0)
+ if (ResetTimers.UserTimeline || userTimelineCounter <= 0 && this._cfgCommon.UserTimelinePeriod > 0)
{
- Interlocked.Exchange(ref userTimelineCounter, SettingDialog.UserTimelinePeriodInt);
- if (!ResetTimers.UserTimeline) GetTimeline(MyCommon.WORKERTYPE.UserTimeline, 1, 0, "");
+ Interlocked.Exchange(ref userTimelineCounter, this._cfgCommon.UserTimelinePeriod);
+ if (!ResetTimers.UserTimeline) GetTimeline(MyCommon.WORKERTYPE.UserTimeline, 1, "");
ResetTimers.UserTimeline = false;
}
- if (ResetTimers.Lists || listsCounter <= 0 && SettingDialog.ListsPeriodInt > 0)
+ if (ResetTimers.Lists || listsCounter <= 0 && this._cfgCommon.ListsPeriod > 0)
{
- Interlocked.Exchange(ref listsCounter, SettingDialog.ListsPeriodInt);
- if (!ResetTimers.Lists) GetTimeline(MyCommon.WORKERTYPE.List, 1, 0, "");
+ Interlocked.Exchange(ref listsCounter, this._cfgCommon.ListsPeriod);
+ if (!ResetTimers.Lists) GetTimeline(MyCommon.WORKERTYPE.List, 1, "");
ResetTimers.Lists = false;
}
- if (ResetTimers.UserStream || usCounter <= 0 && SettingDialog.UserstreamPeriodInt > 0)
+ if (ResetTimers.UserStream || usCounter <= 0 && this._cfgCommon.UserstreamPeriod > 0)
{
- Interlocked.Exchange(ref usCounter, SettingDialog.UserstreamPeriodInt);
+ Interlocked.Exchange(ref usCounter, this._cfgCommon.UserstreamPeriod);
if (this._isActiveUserstream) RefreshTimeline(true);
ResetTimers.UserStream = false;
}
{
Interlocked.Exchange(ref refreshFollowers, 0);
doGetFollowersMenu();
- GetTimeline(MyCommon.WORKERTYPE.NoRetweetIds, 0, 0, "");
- GetTimeline(MyCommon.WORKERTYPE.Configuration, 0, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.NoRetweetIds, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Configuration, 0, "");
}
if (osResumed)
{
{
osResumed = false;
Interlocked.Exchange(ref ResumeWait, 0);
- GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, 0, "");
- GetTimeline(MyCommon.WORKERTYPE.Reply, 1, 0, "");
- GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, 1, 0, "");
- GetTimeline(MyCommon.WORKERTYPE.PublicSearch, 1, 0, "");
- GetTimeline(MyCommon.WORKERTYPE.UserTimeline, 1, 0, "");
- GetTimeline(MyCommon.WORKERTYPE.List, 1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, "");
+ GetTimeline(MyCommon.WORKERTYPE.Reply, 1, "");
+ GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, 1, "");
+ GetTimeline(MyCommon.WORKERTYPE.PublicSearch, 1, "");
+ GetTimeline(MyCommon.WORKERTYPE.UserTimeline, 1, "");
+ GetTimeline(MyCommon.WORKERTYPE.List, 1, "");
doGetFollowersMenu();
- GetTimeline(MyCommon.WORKERTYPE.Configuration, 0, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Configuration, 0, "");
}
}
}
//アイコン描画不具合あり?
}
this.SelectListItem(lst,
- _statuses.IndexOf(tab.Text, selId[tab.Text]),
- _statuses.IndexOf(tab.Text, focusedId[tab.Text]));
+ tabInfo.IndexOf(selId[tab.Text]),
+ tabInfo.IndexOf(focusedId[tab.Text]));
}
}
if (tabInfo.UnreadCount > 0)
if (MyCommon._endingFlag) return;
foreach (TabPage tab in ListTab.TabPages)
{
- DetailsListView lst = (DetailsListView)tab.Tag;
+ var lst = (DetailsListView)tab.Tag;
+ var tabInfo = _statuses.Tabs[tab.Text];
if (lst.SelectedIndices.Count > 0 && lst.SelectedIndices.Count < 61)
{
- selId.Add(tab.Text, _statuses.GetId(tab.Text, lst.SelectedIndices));
+ selId.Add(tab.Text, tabInfo.GetId(lst.SelectedIndices));
}
else
{
var fIds = new long[2]; // 0 = focus, 1 = selection mark
var item = lst.FocusedItem;
- fIds[0] = (item != null) ? _statuses.GetId(tab.Text, item.Index) : -2;
+ fIds[0] = (item != null) ? tabInfo.GetId(item.Index) : -2;
var mIdx = lst.SelectionMark;
- fIds[1] = (mIdx > -1) ? _statuses.GetId(tab.Text, mIdx) : -2;
+ fIds[1] = (mIdx > -1) ? tabInfo.GetId(mIdx) : -2;
focusedId.Add(tab.Text, fIds);
}
!SettingDialog.LimitBalloon
)
) &&
- !Win32Api.IsScreenSaverRunning())
+ !NativeMethods.IsScreenSaverRunning())
{
return true;
}
{
if (notifyPosts != null &&
notifyPosts.Length > 0 &&
- this.SettingDialog.ReadOwnPost &&
+ this._cfgCommon.ReadOwnPost &&
notifyPosts.All((post) => { return post.UserId == tw.UserId || post.ScreenName == tw.Username; }))
{
return;
}
//サウンド再生
- if (!_initial && SettingDialog.PlaySound && !string.IsNullOrEmpty(soundFile))
+ if (!_initial && this._cfgCommon.PlaySound && !string.IsNullOrEmpty(soundFile))
{
try
{
//mentions新着時に画面ブリンク
if (!_initial && SettingDialog.BlinkNewMentions && newMentions && Form.ActiveForm == null)
{
- Win32Api.FlashMyWindow(this.Handle, Win32Api.FlashSpecification.FlashTray, 3);
+ NativeMethods.FlashMyWindow(this.Handle, NativeMethods.FlashSpecification.FlashTray, 3);
}
}
this.PushSelectPostChain();
- if (SettingDialog.UnreadManage) _statuses.SetReadAllTab(true, _curTab.Text, _curItemIndex);
+ if (this._cfgCommon.UnreadManage) _statuses.SetReadAllTab(true, _curTab.Text, _curItemIndex);
//キャッシュの書き換え
ChangeCacheStyleRead(true, _curItemIndex); //既読へ(フォント、文字色)
private void ChangeCacheStyleRead(bool Read, int Index)
{
+ var tabInfo = _statuses.Tabs[_curTab.Text];
//Read:true=既読 false=未読
//未読管理していなかったら既読として扱う
- if (!_statuses.Tabs[_curTab.Text].UnreadManage ||
- !SettingDialog.UnreadManage) Read = true;
+ if (!tabInfo.UnreadManage ||
+ !this._cfgCommon.UnreadManage) Read = true;
//対象の特定
ListViewItem itm = null;
if (itm == null || post == null)
{
itm = ((DetailsListView)_curTab.Tag).Items[Index];
- post = _statuses[_curTab.Text, Index];
+ post = tabInfo[Index];
}
ChangeItemStyleRead(Read, itm, post, ((DetailsListView)_curTab.Tag));
cl = _clFav;
else if (Post.RetweetedId != null)
cl = _clRetweet;
- else if (Post.IsOwl && (Post.IsDm || SettingDialog.OneWayLove))
+ else if (Post.IsOwl && (Post.IsDm || this._cfgCommon.OneWayLove))
cl = _clOWL;
- else if (Read || !SettingDialog.UseUnreadStyle)
+ else if (Read || !this._cfgCommon.UseUnreadStyle)
cl = _clReaded;
else
cl = _clUnread;
if (DList == null || Item.Index == -1)
{
Item.ForeColor = cl;
- if (SettingDialog.UseUnreadStyle)
+ if (this._cfgCommon.UseUnreadStyle)
Item.Font = fnt;
}
else
{
DList.Update();
- if (SettingDialog.UseUnreadStyle)
+ if (this._cfgCommon.UseUnreadStyle)
DList.ChangeItemFontAndColor(Item.Index, cl, fnt);
else
DList.ChangeItemForeColor(Item.Index, cl);
StatusText.SelectionStart = StatusText.Text.Length;
GetWorkerArg args = new GetWorkerArg();
args.page = 0;
- args.endPage = 0;
args.type = MyCommon.WORKERTYPE.PostMessage;
CheckReplyTo(StatusText.Text);
bool isCutOff = false;
bool isRemoveFooter = MyCommon.IsKeyDown(Keys.Shift);
- if (StatusText.Multiline && !SettingDialog.PostCtrlEnter)
+ if (StatusText.Multiline && !this._cfgCommon.PostCtrlEnter)
{
//複数行でEnter投稿の場合、Ctrlも押されていたらフッタ付加しない
isRemoveFooter = MyCommon.IsKeyDown(Keys.Control);
}
- if (SettingDialog.PostShiftEnter)
+ if (this._cfgCommon.PostShiftEnter)
{
isRemoveFooter = MyCommon.IsKeyDown(Keys.Control);
}
}
if (!isRemoveFooter)
{
- if (SettingDialog.UseRecommendStatus)
+ if (this._cfgLocal.UseRecommendStatus)
// 推奨ステータスを使用する
footer += SettingDialog.RecommendStatusText;
else
// テキストボックスに入力されている文字列を使用する
- footer += " " + SettingDialog.Status.Trim();
+ footer += " " + this._cfgLocal.StatusText.Trim();
}
}
args.status.status = header + StatusText.Text + footer;
private void TweenMain_FormClosing(object sender, FormClosingEventArgs e)
{
- if (!SettingDialog.CloseToExit && e.CloseReason == CloseReason.UserClosing && MyCommon._endingFlag == false)
+ if (!this._cfgCommon.CloseToExit && e.CloseReason == CloseReason.UserClosing && MyCommon._endingFlag == false)
{
//_endingFlag=false:フォームの×ボタン
e.Cancel = true;
string ret = "";
GetWorkerResult rslt = new GetWorkerResult();
- bool read = !SettingDialog.UnreadManage;
- if (_initial && SettingDialog.UnreadManage) read = SettingDialog.Readed;
+ bool read = !this._cfgCommon.UnreadManage;
+ if (_initial && this._cfgCommon.UnreadManage) read = this._cfgCommon.Read;
GetWorkerArg args = (GetWorkerArg)e.Argument;
bw.ReportProgress(50, MakeStatusMessage(args, false));
ret = tw.GetTimelineApi(read, args.type, args.page == -1, _initial);
//新着時未読クリア
- if (string.IsNullOrEmpty(ret) && args.type == MyCommon.WORKERTYPE.Timeline && SettingDialog.ReadOldPosts)
+ if (string.IsNullOrEmpty(ret) && args.type == MyCommon.WORKERTYPE.Timeline && this._cfgCommon.ReadOldPosts)
_statuses.SetRead();
//振り分け
rslt.addCount = _statuses.DistributePosts();
rslt.retMsg = ret;
rslt.type = args.type;
rslt.tName = args.tName;
- if (args.type == MyCommon.WORKERTYPE.DirectMessegeRcv ||
- args.type == MyCommon.WORKERTYPE.DirectMessegeSnt ||
- args.type == MyCommon.WORKERTYPE.Reply ||
- args.type == MyCommon.WORKERTYPE.Timeline ||
- args.type == MyCommon.WORKERTYPE.Favorites)
- {
- rslt.page = args.page - 1; //値が正しいか後でチェック。10ページ毎の継続確認
- }
e.Result = rslt;
}
_waitReply = false;
if (rslt.newDM && !_initial)
{
- GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, 1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, 1, "");
}
break;
case MyCommon.WORKERTYPE.Favorites:
{
GetWorkerArg args = new GetWorkerArg();
args.page = 0;
- args.endPage = 0;
args.type = MyCommon.WORKERTYPE.PostMessage;
args.status = rslt.status;
RunAsync(args);
}
}
}
- if (rslt.retMsg.Length == 0 && SettingDialog.PostAndGet)
+ if (rslt.retMsg.Length == 0 && this._cfgCommon.PostAndGet)
{
if (_isActiveUserstream)
{
}
else
{
- GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, "");
}
}
break;
_postTimestamps.RemoveAt(i);
}
}
- if (!_isActiveUserstream && SettingDialog.PostAndGet) GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, 0, "");
+ if (!_isActiveUserstream && this._cfgCommon.PostAndGet) GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, "");
}
break;
case MyCommon.WORKERTYPE.Follower:
private static Dictionary<MyCommon.WORKERTYPE, DateTime> lastTime = new Dictionary<MyCommon.WORKERTYPE, DateTime>();
- private void GetTimeline(MyCommon.WORKERTYPE WkType, int fromPage, int toPage, string tabName)
+ private void GetTimeline(MyCommon.WORKERTYPE WkType, int fromPage, string tabName)
{
if (!this.IsNetworkAvailable()) return;
//非同期実行引数設定
GetWorkerArg args = new GetWorkerArg();
args.page = fromPage;
- args.endPage = toPage;
args.type = WkType;
args.tName = tabName;
private void MyList_MouseDoubleClick(object sender, MouseEventArgs e)
{
- switch (SettingDialog.ListDoubleClickAction)
+ switch (this._cfgCommon.ListDoubleClickAction)
{
case 0:
MakeReplyOrDirectStatus();
private void MyList_ColumnClick(object sender, ColumnClickEventArgs e)
{
- if (SettingDialog.SortOrderLock) return;
+ if (this._cfgCommon.SortOrderLock) return;
IdComparerClass.ComparerMode mode = IdComparerClass.ComparerMode.Id;
if (_iconCol)
{
{
using (ControlTransaction.Update(this._curList))
{
- if (SettingDialog.UnreadManage)
+ if (this._cfgCommon.UnreadManage)
{
foreach (int idx in _curList.SelectedIndices)
{
{
using (ControlTransaction.Update(this._curList))
{
- if (SettingDialog.UnreadManage)
+ if (this._cfgCommon.UnreadManage)
{
foreach (int idx in _curList.SelectedIndices)
{
switch (_statuses.Tabs[_curTab.Text].TabType)
{
case MyCommon.TabUsageType.Mentions:
- GetTimeline(MyCommon.WORKERTYPE.Reply, 1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Reply, 1, "");
break;
case MyCommon.TabUsageType.DirectMessage:
- GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, 1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, 1, "");
break;
case MyCommon.TabUsageType.Favorites:
- GetTimeline(MyCommon.WORKERTYPE.Favorites, 1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Favorites, 1, "");
break;
//case MyCommon.TabUsageType.Profile:
//// TODO
//// TODO
TabClass tb = _statuses.Tabs[_curTab.Text];
if (string.IsNullOrEmpty(tb.SearchWords)) return;
- GetTimeline(MyCommon.WORKERTYPE.PublicSearch, 1, 0, _curTab.Text);
+ GetTimeline(MyCommon.WORKERTYPE.PublicSearch, 1, _curTab.Text);
break;
case MyCommon.TabUsageType.UserTimeline:
- GetTimeline(MyCommon.WORKERTYPE.UserTimeline, 1, 0, _curTab.Text);
+ GetTimeline(MyCommon.WORKERTYPE.UserTimeline, 1, _curTab.Text);
break;
case MyCommon.TabUsageType.Lists:
//// TODO
TabClass tab = _statuses.Tabs[_curTab.Text];
if (tab.ListInfo == null || tab.ListInfo.Id == 0) return;
- GetTimeline(MyCommon.WORKERTYPE.List, 1, 0, _curTab.Text);
+ GetTimeline(MyCommon.WORKERTYPE.List, 1, _curTab.Text);
break;
default:
- GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, "");
break;
}
}
else
{
- GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, "");
}
}
switch (_statuses.Tabs[_curTab.Text].TabType)
{
case MyCommon.TabUsageType.Mentions:
- GetTimeline(MyCommon.WORKERTYPE.Reply, -1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Reply, -1, "");
break;
case MyCommon.TabUsageType.DirectMessage:
- GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, -1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, -1, "");
break;
case MyCommon.TabUsageType.Favorites:
- GetTimeline(MyCommon.WORKERTYPE.Favorites, -1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Favorites, -1, "");
break;
case MyCommon.TabUsageType.Profile:
//// TODO
// TODO
TabClass tb = _statuses.Tabs[_curTab.Text];
if (string.IsNullOrEmpty(tb.SearchWords)) return;
- GetTimeline(MyCommon.WORKERTYPE.PublicSearch, -1, 0, _curTab.Text);
+ GetTimeline(MyCommon.WORKERTYPE.PublicSearch, -1, _curTab.Text);
break;
case MyCommon.TabUsageType.UserTimeline:
- GetTimeline(MyCommon.WORKERTYPE.UserTimeline, -1, 0, _curTab.Text);
+ GetTimeline(MyCommon.WORKERTYPE.UserTimeline, -1, _curTab.Text);
break;
case MyCommon.TabUsageType.Lists:
//// TODO
TabClass tab = _statuses.Tabs[_curTab.Text];
if (tab.ListInfo == null || tab.ListInfo.Id == 0) return;
- GetTimeline(MyCommon.WORKERTYPE.List, -1, 0, _curTab.Text);
+ GetTimeline(MyCommon.WORKERTYPE.List, -1, _curTab.Text);
break;
default:
- GetTimeline(MyCommon.WORKERTYPE.Timeline, -1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Timeline, -1, "");
break;
}
}
else
{
- GetTimeline(MyCommon.WORKERTYPE.Timeline, -1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Timeline, -1, "");
}
}
{
DialogResult result;
string uid = tw.Username.ToLower();
- var oldIconSz = SettingDialog.IconSz;
try
{
{
lock (_syncObject)
{
- tw.TinyUrlResolve = SettingDialog.TinyUrlResolve;
- tw.RestrictFavCheck = SettingDialog.RestrictFavCheck;
- tw.ReadOwnPost = SettingDialog.ReadOwnPost;
+ var oldIconSz = this._cfgCommon.IconSize;
+
+ this.SettingDialog.SaveConfig(this._cfgCommon, this._cfgLocal);
+
+ tw.RestrictFavCheck = this._cfgCommon.RestrictFavCheck;
+ tw.ReadOwnPost = this._cfgCommon.ReadOwnPost;
ShortUrl.Instance.DisableExpanding = !SettingDialog.TinyUrlResolve;
ShortUrl.Instance.BitlyId = SettingDialog.BitlyUser;
ShortUrl.Instance.BitlyKey = SettingDialog.BitlyPwd;
HttpTwitter.TwitterUrl = _cfgCommon.TwitterUrl;
- HttpConnection.InitializeConnection(SettingDialog.DefaultTimeOut,
- SettingDialog.SelectedProxyType,
- SettingDialog.ProxyAddress,
- SettingDialog.ProxyPort,
- SettingDialog.ProxyUser,
- SettingDialog.ProxyPassword);
+ Networking.DefaultTimeout = TimeSpan.FromSeconds(this.SettingDialog.DefaultTimeOut);
+ Networking.SetWebProxy(this.SettingDialog.SelectedProxyType,
+ this.SettingDialog.ProxyAddress, this.SettingDialog.ProxyPort,
+ this.SettingDialog.ProxyUser, this.SettingDialog.ProxyPassword);
ImageSelector.Reset(tw, SettingDialog.TwitterConfiguration);
try
{
- if (!SettingDialog.UnreadManage)
+ if (!this._cfgCommon.UnreadManage)
{
ReadedStripMenuItem.Enabled = false;
UnreadStripMenuItem.Enabled = false;
imgazyobizinet.Enabled = this.SettingDialog.EnableImgAzyobuziNet;
imgazyobizinet.DisabledInDM = this.SettingDialog.ImgAzyobuziNetDisabledInDM;
- PlaySoundMenuItem.Checked = SettingDialog.PlaySound;
- this.PlaySoundFileMenuItem.Checked = SettingDialog.PlaySound;
- _fntUnread = SettingDialog.FontUnread;
- _clUnread = SettingDialog.ColorUnread;
- _fntReaded = SettingDialog.FontReaded;
- _clReaded = SettingDialog.ColorReaded;
- _clFav = SettingDialog.ColorFav;
- _clOWL = SettingDialog.ColorOWL;
- _clRetweet = SettingDialog.ColorRetweet;
- _fntDetail = SettingDialog.FontDetail;
- _clDetail = SettingDialog.ColorDetail;
- _clDetailLink = SettingDialog.ColorDetailLink;
- _clDetailBackcolor = SettingDialog.ColorDetailBackcolor;
- _clSelf = SettingDialog.ColorSelf;
- _clAtSelf = SettingDialog.ColorAtSelf;
- _clTarget = SettingDialog.ColorTarget;
- _clAtTarget = SettingDialog.ColorAtTarget;
- _clAtFromTarget = SettingDialog.ColorAtFromTarget;
- _clAtTo = SettingDialog.ColorAtTo;
- _clListBackcolor = SettingDialog.ColorListBackcolor;
- _clInputBackcolor = SettingDialog.ColorInputBackcolor;
- _clInputFont = SettingDialog.ColorInputFont;
- _fntInputFont = SettingDialog.FontInputFont;
+ 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();
try
{
- _statuses.SetUnreadManage(SettingDialog.UnreadManage);
+ _statuses.SetUnreadManage(this._cfgCommon.UnreadManage);
}
catch (Exception ex)
{
{
var oldIconCol = _iconCol;
- if (SettingDialog.IconSz != oldIconSz)
- ApplyListViewIconSize(SettingDialog.IconSz);
+ if (this._cfgCommon.IconSize != oldIconSz)
+ ApplyListViewIconSize(this._cfgCommon.IconSize);
foreach (TabPage tp in ListTab.TabPages)
{
using (ControlTransaction.Update(lst))
{
- lst.GridLines = SettingDialog.ShowGrid;
+ lst.GridLines = this._cfgCommon.ShowGrid;
lst.Font = _fntReaded;
lst.BackColor = _clListBackcolor;
ListTab.Refresh();
_hookGlobalHotkey.UnregisterAllOriginalHotkey();
- if (SettingDialog.HotkeyEnabled)
+ if (this._cfgCommon.HotkeyEnabled)
{
///グローバルホットキーの登録。設定で変更可能にするかも
HookGlobalHotkey.ModKeys modKey = HookGlobalHotkey.ModKeys.None;
- if ((SettingDialog.HotkeyMod & Keys.Alt) == Keys.Alt) modKey = modKey | HookGlobalHotkey.ModKeys.Alt;
- if ((SettingDialog.HotkeyMod & Keys.Control) == Keys.Control) modKey = modKey | HookGlobalHotkey.ModKeys.Ctrl;
- if ((SettingDialog.HotkeyMod & Keys.Shift) == Keys.Shift) modKey = modKey | HookGlobalHotkey.ModKeys.Shift;
- if ((SettingDialog.HotkeyMod & Keys.LWin) == Keys.LWin) modKey = modKey | HookGlobalHotkey.ModKeys.Win;
+ 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(SettingDialog.HotkeyKey, SettingDialog.HotkeyValue, modKey);
+ _hookGlobalHotkey.RegisterOriginalHotkey(this._cfgCommon.HotkeyKey, this._cfgCommon.HotkeyValue, modKey);
}
if (uid != tw.Username) this.doGetFollowersMenu();
/// </summary>
private void SetTabAlignment()
{
- var newAlignment = SettingDialog.ViewTabBottom ? TabAlignment.Bottom : TabAlignment.Top;
+ var newAlignment = this._cfgCommon.ViewTabBottom ? TabAlignment.Bottom : TabAlignment.Top;
if (ListTab.Alignment == newAlignment) return;
//現在の選択状態を退避
foreach (TabPage tab in ListTab.TabPages)
{
DetailsListView lst = (DetailsListView)tab.Tag;
+ TabClass tabInfo = _statuses.Tabs[tab.Text];
using (ControlTransaction.Update(lst))
{
this.SelectListItem(lst,
- _statuses.IndexOf(tab.Text, selId[tab.Text]),
- _statuses.IndexOf(tab.Text, focusedId[tab.Text]));
+ tabInfo.IndexOf(selId[tab.Text]),
+ tabInfo.IndexOf(focusedId[tab.Text]));
}
}
}
if (m.Success && IsTwitterId(m.Result("${ScreenName}")))
{
// Ctrlを押しながらリンクをクリックした場合は設定と逆の動作をする
- if (SettingDialog.OpenUserTimeline)
+ if (this._cfgCommon.OpenUserTimeline)
{
if (MyCommon.IsKeyDown(Keys.Control))
OpenUriAsync(e.Url.OriginalString);
SaveConfigsTabs();
//検索実行
- GetTimeline(MyCommon.WORKERTYPE.UserTimeline, 1, 0, tabName);
+ GetTimeline(MyCommon.WORKERTYPE.UserTimeline, 1, tabName);
}
public bool AddNewTab(string tabName, bool startup, MyCommon.TabUsageType tabType, ListElement listInfo = null)
_listCustom.Font = _fntReaded;
_listCustom.BackColor = _clListBackcolor;
- _listCustom.GridLines = SettingDialog.ShowGrid;
+ _listCustom.GridLines = this._cfgCommon.ShowGrid;
_listCustom.AllowDrop = true;
_listCustom.SmallImageList = _listViewImageList;
{
//タブのD&D
- if (!SettingDialog.TabMouseLock && e.Button == MouseButtons.Left && _tabDrag)
+ if (!this._cfgCommon.TabMouseLock && e.Button == MouseButtons.Left && _tabDrag)
{
string tn = "";
Rectangle dragEnableRectangle = new Rectangle((int)(_tabMouseDownPoint.X - (SystemInformation.DragSize.Width / 2)), (int)(_tabMouseDownPoint.Y - (SystemInformation.DragSize.Height / 2)), SystemInformation.DragSize.Width, SystemInformation.DragSize.Height);
{
if (e.KeyChar == '@')
{
- if (!SettingDialog.UseAtIdSupplement) return;
+ if (!this._cfgCommon.UseAtIdSupplement) return;
//@マーク
int cnt = AtIdSupl.ItemCount;
ShowSuplDialog(StatusText, AtIdSupl);
}
else if (e.KeyChar == '#')
{
- if (!SettingDialog.UseHashSupplement) return;
+ if (!this._cfgCommon.UseHashSupplement) return;
ShowSuplDialog(StatusText, HashSupl);
e.Handled = true;
}
int pLen = 140 - statusText.Length;
if (this.NotifyIcon1 == null || !this.NotifyIcon1.Visible) return pLen;
- if ((isAuto && !MyCommon.IsKeyDown(Keys.Control) && SettingDialog.PostShiftEnter) ||
- (isAuto && !MyCommon.IsKeyDown(Keys.Shift) && !SettingDialog.PostShiftEnter) ||
+ if ((isAuto && !MyCommon.IsKeyDown(Keys.Control) && this._cfgCommon.PostShiftEnter) ||
+ (isAuto && !MyCommon.IsKeyDown(Keys.Shift) && !this._cfgCommon.PostShiftEnter) ||
(!isAuto && isAddFooter))
{
- if (SettingDialog.UseRecommendStatus)
+ if (this._cfgLocal.UseRecommendStatus)
pLen -= SettingDialog.RecommendStatusText.Length;
- else if (SettingDialog.Status.Length > 0)
- pLen -= SettingDialog.Status.Length + 1;
+ else if (this._cfgLocal.StatusText.Length > 0)
+ pLen -= this._cfgLocal.StatusText.Length + 1;
}
if (!string.IsNullOrEmpty(HashMgr.UseHash))
{
this.itemCacheLock.EnterWriteLock();
try
{
+ var tabInfo = _statuses.Tabs[_curTab.Text];
+
//キャッシュ要求(要求範囲±30を作成)
StartIndex -= 30;
if (StartIndex < 0) StartIndex = 0;
EndIndex += 30;
- if (EndIndex >= _statuses.Tabs[_curTab.Text].AllCount) EndIndex = _statuses.Tabs[_curTab.Text].AllCount - 1;
- _postCache = _statuses[_curTab.Text, StartIndex, EndIndex]; //配列で取得
+ if (EndIndex >= tabInfo.AllCount) EndIndex = tabInfo.AllCount - 1;
+ _postCache = tabInfo[StartIndex, EndIndex]; //配列で取得
_itemCacheIndex = StartIndex;
_itemCache = new ListViewItem[0] {};
string[] sitem= {"",
Post.Nickname,
Post.IsDeleted ? "(DELETED)" : Post.TextSingleLine,
- Post.CreatedAt.ToString(SettingDialog.DateTimeFormat),
+ Post.CreatedAt.ToString(this._cfgCommon.DateTimeFormat),
Post.ScreenName,
"",
mk.ToString(),
string[] sitem = {"",
Post.Nickname,
Post.IsDeleted ? "(DELETED)" : Post.TextSingleLine,
- Post.CreatedAt.ToString(SettingDialog.DateTimeFormat),
+ Post.CreatedAt.ToString(this._cfgCommon.DateTimeFormat),
Post.ScreenName + Environment.NewLine + "(RT:" + Post.RetweetedBy + ")",
"",
mk.ToString(),
Post.Source};
itm = new ImageListViewItem(sitem, this.IconCache, Post.ImageUrl);
}
- itm.StateImageIndex = Post.StateIndex;
+ itm.StateIndex = Post.StateIndex;
bool read = Post.IsRead;
//未読管理していなかったら既読として扱う
- if (!_statuses.Tabs[Tab.Text].UnreadManage || !SettingDialog.UnreadManage) read = true;
+ if (!_statuses.Tabs[Tab.Text].UnreadManage || !this._cfgCommon.UnreadManage) read = true;
ChangeItemStyleRead(read, itm, Post, null);
if (Tab.Equals(_curTab)) ColorizeList(itm, Index);
return itm;
//iconRect.Offset(0, Math.Max(0, (itemRect.Height - realIconSize.Height) / 2));
}
- if (item.StateImageIndex > -1)
+ if (item.StateIndex > -1)
{
Rectangle stateRect = Rectangle.Intersect(new Rectangle(new Point(iconRect.X + realIconSize.Width + 2, iconRect.Y), realStateSize), itemRect);
if (stateRect.Width > 0)
{
//e.Graphics.FillRectangle(Brushes.White, stateRect);
//e.Graphics.InterpolationMode = Drawing2D.InterpolationMode.High;
- e.Graphics.DrawImage(this.PostStateImageList.Images[item.StateImageIndex], stateRect);
+ e.Graphics.DrawImage(this.PostStateImageList.Images[item.StateIndex], stateRect);
}
}
}
var versionInfoUrl = new Uri(ApplicationSettings.VersionInfoUrl + "?" +
DateTime.Now.ToString("yyMMddHHmmss") + Environment.TickCount);
- var responseText = await this.http.GetStringAsync(versionInfoUrl)
+ var responseText = await Networking.Http.GetStringAsync(versionInfoUrl)
.ConfigureAwait(false);
// 改行2つで前後パートを分割(前半がバージョン番号など、後半が詳細テキスト)
DispSelectedPost(false);
}
- private static PostClass displaypost = new PostClass();
+ private PostClass displayPost = new PostClass();
/// <summary>
/// サムネイルの表示処理を表すタスク
if (_curList.SelectedIndices.Count == 0 || _curPost == null)
return;
- if (!forceupdate && _curPost.Equals(displaypost))
+ var oldDisplayPost = this.displayPost;
+ this.displayPost = this._curPost;
+
+ if (!forceupdate && this._curPost.Equals(oldDisplayPost))
return;
- displaypost = _curPost;
if (displayItem != null)
{
displayItem.ImageDownloaded -= this.DisplayItemImage_Downloaded;
displayItem = (ImageListViewItem)_curList.Items[_curList.SelectedIndices[0]];
displayItem.ImageDownloaded += this.DisplayItemImage_Downloaded;
- string dTxt = createDetailHtml(_curPost.IsDeleted ? "(DELETED)" : _curPost.Text);
- if (_curPost.IsDm)
- {
- SourceLinkLabel.Tag = null;
- SourceLinkLabel.Text = "";
- }
- else
+ using (ControlTransaction.Update(this.TableLayoutPanel1))
{
- Match mc = Regex.Match(_curPost.SourceHtml, "<a href=\"(?<sourceurl>.+?)\"");
- if (mc.Success)
+ var sourceText = "";
+ string sourceUrl = null;
+ if (!_curPost.IsDm)
{
- string src = mc.Groups["sourceurl"].Value;
- SourceLinkLabel.Tag = mc.Groups["sourceurl"].Value;
- mc = Regex.Match(src, "^https?://");
- if (!mc.Success)
+ var mc = Regex.Match(_curPost.SourceHtml, "<a href=\"(?<sourceurl>.+?)\"");
+ if (mc.Success)
{
- src = src.Insert(0, "https://twitter.com");
+ var src = mc.Groups["sourceurl"].Value;
+ if (Regex.IsMatch(src, "^https?://"))
+ sourceUrl = src;
+ else
+ sourceUrl = "https://twitter.com/" + src;
}
- SourceLinkLabel.Tag = src;
- }
- else
- {
- SourceLinkLabel.Tag = null;
+
+ if (_curPost.Source != null)
+ sourceText = _curPost.Source;
}
- if (string.IsNullOrEmpty(_curPost.Source))
+ SourceLinkLabel.Text = sourceText;
+ SourceLinkLabel.Tag = sourceUrl;
+ SourceLinkLabel.TabStop = false; // Text を更新すると勝手に true にされる
+
+ string nameText;
+ if (_curPost.IsDm)
{
- SourceLinkLabel.Text = "";
- //SourceLinkLabel.Visible = false;
+ if (_curPost.IsOwl)
+ nameText = "DM FROM <- ";
+ else
+ nameText = "DM TO -> ";
}
else
{
- SourceLinkLabel.Text = _curPost.Source;
- //SourceLinkLabel.Visible = true;
+ nameText = "";
}
- }
- SourceLinkLabel.TabStop = false;
+ nameText += _curPost.ScreenName + "/" + _curPost.Nickname;
+ if (_curPost.RetweetedId != null)
+ nameText += " (RT:" + _curPost.RetweetedBy + ")";
- if (_statuses.Tabs[_curTab.Text].TabType == MyCommon.TabUsageType.DirectMessage && !_curPost.IsOwl)
- {
- NameLabel.Text = "DM TO -> ";
- }
- else if (_statuses.Tabs[_curTab.Text].TabType == MyCommon.TabUsageType.DirectMessage)
- {
- NameLabel.Text = "DM FROM <- ";
- }
- else
- {
- NameLabel.Text = "";
- }
- NameLabel.Text += _curPost.ScreenName + "/" + _curPost.Nickname;
- NameLabel.Tag = _curPost.ScreenName;
- if (!string.IsNullOrEmpty(_curPost.RetweetedBy))
- {
- NameLabel.Text += " (RT:" + _curPost.RetweetedBy + ")";
- }
+ NameLabel.Text = nameText;
+ NameLabel.Tag = _curPost.ScreenName;
- this.ClearUserPicture();
+ var nameForeColor = SystemColors.ControlText;
+ if (_curPost.IsOwl && (this._cfgCommon.OneWayLove || _curPost.IsDm))
+ nameForeColor = this._clOWL;
+ if (_curPost.RetweetedId != null)
+ nameForeColor = this._clRetweet;
+ if (_curPost.IsFav)
+ nameForeColor = this._clFav;
+ NameLabel.ForeColor = nameForeColor;
- if (!string.IsNullOrEmpty(_curPost.ImageUrl))
- {
- var image = IconCache.TryGetFromCache(_curPost.ImageUrl);
- try
+ this.ClearUserPicture();
+
+ if (!string.IsNullOrEmpty(_curPost.ImageUrl))
{
- UserPicture.Image = image != null ? image.Clone() : null;
+ var image = IconCache.TryGetFromCache(_curPost.ImageUrl);
+ try
+ {
+ UserPicture.Image = image != null ? image.Clone() : null;
+ }
+ catch (Exception)
+ {
+ UserPicture.ShowErrorImage();
+ }
}
- catch (Exception)
+
+ DateTimeLabel.Text = _curPost.CreatedAt.ToString();
+
+ if (DumpPostClassToolStripMenuItem.Checked)
{
- UserPicture.ShowErrorImage();
- }
- }
+ StringBuilder sb = new StringBuilder(512);
- NameLabel.ForeColor = System.Drawing.SystemColors.ControlText;
- DateTimeLabel.Text = _curPost.CreatedAt.ToString();
- if (_curPost.IsOwl && (SettingDialog.OneWayLove || _statuses.Tabs[_curTab.Text].TabType == MyCommon.TabUsageType.DirectMessage)) NameLabel.ForeColor = _clOWL;
- if (_curPost.RetweetedId != null) NameLabel.ForeColor = _clRetweet;
- if (_curPost.IsFav) NameLabel.ForeColor = _clFav;
-
- if (DumpPostClassToolStripMenuItem.Checked)
- {
- StringBuilder sb = new StringBuilder(512);
-
- sb.Append("-----Start PostClass Dump<br>");
- sb.AppendFormat("TextFromApi : {0}<br>", _curPost.TextFromApi);
- sb.AppendFormat("(PlainText) : <xmp>{0}</xmp><br>", _curPost.TextFromApi);
- sb.AppendFormat("StatusId : {0}<br>", _curPost.StatusId.ToString());
- //sb.AppendFormat("ImageIndex : {0}<br>", _curPost.ImageIndex.ToString());
- sb.AppendFormat("ImageUrl : {0}<br>", _curPost.ImageUrl);
- sb.AppendFormat("InReplyToStatusId : {0}<br>", _curPost.InReplyToStatusId.ToString());
- sb.AppendFormat("InReplyToUser : {0}<br>", _curPost.InReplyToUser);
- sb.AppendFormat("IsDM : {0}<br>", _curPost.IsDm.ToString());
- sb.AppendFormat("IsFav : {0}<br>", _curPost.IsFav.ToString());
- sb.AppendFormat("IsMark : {0}<br>", _curPost.IsMark.ToString());
- sb.AppendFormat("IsMe : {0}<br>", _curPost.IsMe.ToString());
- sb.AppendFormat("IsOwl : {0}<br>", _curPost.IsOwl.ToString());
- sb.AppendFormat("IsProtect : {0}<br>", _curPost.IsProtect.ToString());
- sb.AppendFormat("IsRead : {0}<br>", _curPost.IsRead.ToString());
- sb.AppendFormat("IsReply : {0}<br>", _curPost.IsReply.ToString());
-
- foreach (string nm in _curPost.ReplyToList)
- {
- sb.AppendFormat("ReplyToList : {0}<br>", nm);
- }
-
- sb.AppendFormat("ScreenName : {0}<br>", _curPost.ScreenName);
- sb.AppendFormat("NickName : {0}<br>", _curPost.Nickname);
- sb.AppendFormat("Text : {0}<br>", _curPost.Text);
- sb.AppendFormat("(PlainText) : <xmp>{0}</xmp><br>", _curPost.Text);
- sb.AppendFormat("CreatedAt : {0}<br>", _curPost.CreatedAt.ToString());
- sb.AppendFormat("Source : {0}<br>", _curPost.Source);
- sb.AppendFormat("UserId : {0}<br>", _curPost.UserId);
- sb.AppendFormat("FilterHit : {0}<br>", _curPost.FilterHit);
- sb.AppendFormat("RetweetedBy : {0}<br>", _curPost.RetweetedBy);
- sb.AppendFormat("RetweetedId : {0}<br>", _curPost.RetweetedId);
- sb.AppendFormat("SearchTabName : {0}<br>", _curPost.RelTabName);
- sb.Append("-----End PostClass Dump<br>");
-
- PostBrowser.Visible = false;
- PostBrowser.DocumentText = detailHtmlFormatHeader + sb.ToString() + detailHtmlFormatFooter;
- PostBrowser.Visible = true;
- }
- else
- {
- try
+ sb.Append("-----Start PostClass Dump<br>");
+ sb.AppendFormat("TextFromApi : {0}<br>", _curPost.TextFromApi);
+ sb.AppendFormat("(PlainText) : <xmp>{0}</xmp><br>", _curPost.TextFromApi);
+ sb.AppendFormat("StatusId : {0}<br>", _curPost.StatusId.ToString());
+ //sb.AppendFormat("ImageIndex : {0}<br>", _curPost.ImageIndex.ToString());
+ sb.AppendFormat("ImageUrl : {0}<br>", _curPost.ImageUrl);
+ sb.AppendFormat("InReplyToStatusId : {0}<br>", _curPost.InReplyToStatusId.ToString());
+ sb.AppendFormat("InReplyToUser : {0}<br>", _curPost.InReplyToUser);
+ sb.AppendFormat("IsDM : {0}<br>", _curPost.IsDm.ToString());
+ sb.AppendFormat("IsFav : {0}<br>", _curPost.IsFav.ToString());
+ sb.AppendFormat("IsMark : {0}<br>", _curPost.IsMark.ToString());
+ sb.AppendFormat("IsMe : {0}<br>", _curPost.IsMe.ToString());
+ sb.AppendFormat("IsOwl : {0}<br>", _curPost.IsOwl.ToString());
+ sb.AppendFormat("IsProtect : {0}<br>", _curPost.IsProtect.ToString());
+ sb.AppendFormat("IsRead : {0}<br>", _curPost.IsRead.ToString());
+ sb.AppendFormat("IsReply : {0}<br>", _curPost.IsReply.ToString());
+
+ foreach (string nm in _curPost.ReplyToList)
+ {
+ sb.AppendFormat("ReplyToList : {0}<br>", nm);
+ }
+
+ sb.AppendFormat("ScreenName : {0}<br>", _curPost.ScreenName);
+ sb.AppendFormat("NickName : {0}<br>", _curPost.Nickname);
+ sb.AppendFormat("Text : {0}<br>", _curPost.Text);
+ sb.AppendFormat("(PlainText) : <xmp>{0}</xmp><br>", _curPost.Text);
+ sb.AppendFormat("CreatedAt : {0}<br>", _curPost.CreatedAt.ToString());
+ sb.AppendFormat("Source : {0}<br>", _curPost.Source);
+ sb.AppendFormat("UserId : {0}<br>", _curPost.UserId);
+ sb.AppendFormat("FilterHit : {0}<br>", _curPost.FilterHit);
+ sb.AppendFormat("RetweetedBy : {0}<br>", _curPost.RetweetedBy);
+ sb.AppendFormat("RetweetedId : {0}<br>", _curPost.RetweetedId);
+ sb.AppendFormat("SearchTabName : {0}<br>", _curPost.RelTabName);
+ sb.Append("-----End PostClass Dump<br>");
+
+ PostBrowser.DocumentText = detailHtmlFormatHeader + sb.ToString() + detailHtmlFormatFooter;
+ }
+ else
{
- if (PostBrowser.DocumentText != dTxt)
+ // 同じIDのツイートであれば WebBrowser とサムネイルの更新を行わない
+ // (同一ツイートの RT は文面が同じであるため同様に更新しない)
+ if (_curPost.StatusId != oldDisplayPost.StatusId)
{
- PostBrowser.Visible = false;
- PostBrowser.DocumentText = dTxt;
+ this.PostBrowser.DocumentText =
+ this.createDetailHtml(_curPost.IsDeleted ? "(DELETED)" : _curPost.Text);
+
+ this.PostBrowser.Document.Window.ScrollTo(0, 0);
this.SplitContainer3.Panel2Collapsed = true;
{
var oldTokenSource = this.thumbnailTokenSource;
- oldTokenSource.Cancel();
+ var cancelTask = Task.Run(() => oldTokenSource.Cancel());
- this.thumbnailTask.ContinueWith(_ => oldTokenSource.Dispose());
+ Task.WhenAll(this.thumbnailTask, cancelTask)
+ .ContinueWith(_ => oldTokenSource.Dispose(), TaskScheduler.Default);
}
this.thumbnailTokenSource = new CancellationTokenSource();
}
}
}
- catch (System.Runtime.InteropServices.COMException)
- {
- //原因不明
- }
- catch (UriFormatException)
- {
- PostBrowser.DocumentText = dTxt;
- }
- finally
- {
- PostBrowser.Visible = true;
- }
}
}
DoRefresh();
return true;
case Keys.F6:
- GetTimeline(MyCommon.WORKERTYPE.Reply, 1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Reply, 1, "");
return true;
case Keys.F7:
- GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, 1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, 1, "");
return true;
}
if (Focused != FocusedControl.StatusText)
DoRefreshMore();
return true;
case Keys.F6:
- GetTimeline(MyCommon.WORKERTYPE.Reply, -1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Reply, -1, "");
return true;
case Keys.F7:
- GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, -1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, -1, "");
return true;
}
//フォーカスStatusText以外
if (tags.Count > 0)
{
if (forward)
- tags[0].ScrollTop += SettingDialog.FontDetail.Height;
+ tags[0].ScrollTop += this._fntDetail.Height;
else
- tags[0].ScrollTop -= SettingDialog.FontDetail.Height;
+ tags[0].ScrollTop -= this._fntDetail.Height;
}
}
if (tags.Count > 0)
{
if (forward)
- tags[0].ScrollTop += PostBrowser.ClientRectangle.Height - SettingDialog.FontDetail.Height;
+ tags[0].ScrollTop += PostBrowser.ClientRectangle.Height - this._fntDetail.Height;
else
- tags[0].ScrollTop -= PostBrowser.ClientRectangle.Height - SettingDialog.FontDetail.Height;
+ tags[0].ScrollTop -= PostBrowser.ClientRectangle.Height - this._fntDetail.Height;
}
}
private void SaveConfigsAtId()
{
- if (_ignoreConfigSave || !SettingDialog.UseAtIdSupplement && AtIdSupl == null) return;
+ if (_ignoreConfigSave || !this._cfgCommon.UseAtIdSupplement && AtIdSupl == null) return;
_modifySettingAtId = false;
SettingAtIdList cfgAtId = new SettingAtIdList(AtIdSupl.GetItemList());
_cfgCommon.Token = tw.AccessToken;
_cfgCommon.TokenSecret = tw.AccessTokenSecret;
_cfgCommon.UserAccounts = SettingDialog.UserAccounts;
- _cfgCommon.UserstreamStartup = SettingDialog.UserstreamStartup;
- _cfgCommon.UserstreamPeriod = SettingDialog.UserstreamPeriodInt;
- _cfgCommon.TimelinePeriod = SettingDialog.TimelinePeriodInt;
- _cfgCommon.ReplyPeriod = SettingDialog.ReplyPeriodInt;
- _cfgCommon.DMPeriod = SettingDialog.DMPeriodInt;
- _cfgCommon.PubSearchPeriod = SettingDialog.PubSearchPeriodInt;
- _cfgCommon.ListsPeriod = SettingDialog.ListsPeriodInt;
- _cfgCommon.UserTimelinePeriod = SettingDialog.UserTimelinePeriodInt;
- _cfgCommon.Read = SettingDialog.Readed;
- _cfgCommon.IconSize = SettingDialog.IconSz;
- _cfgCommon.UnreadManage = SettingDialog.UnreadManage;
- _cfgCommon.PlaySound = SettingDialog.PlaySound;
- _cfgCommon.OneWayLove = SettingDialog.OneWayLove;
_cfgCommon.NameBalloon = SettingDialog.NameBalloon;
- _cfgCommon.PostCtrlEnter = SettingDialog.PostCtrlEnter;
- _cfgCommon.PostShiftEnter = SettingDialog.PostShiftEnter;
_cfgCommon.CountApi = SettingDialog.CountApi;
_cfgCommon.CountApiReply = SettingDialog.CountApiReply;
- _cfgCommon.PostAndGet = SettingDialog.PostAndGet;
_cfgCommon.DispUsername = SettingDialog.DispUsername;
- _cfgCommon.MinimizeToTray = SettingDialog.MinimizeToTray;
- _cfgCommon.CloseToExit = SettingDialog.CloseToExit;
_cfgCommon.DispLatestPost = SettingDialog.DispLatestPost;
- _cfgCommon.SortOrderLock = SettingDialog.SortOrderLock;
- _cfgCommon.ViewTabBottom = SettingDialog.ViewTabBottom;
_cfgCommon.TinyUrlResolve = SettingDialog.TinyUrlResolve;
- _cfgCommon.StartupVersion = SettingDialog.StartupVersion;
- _cfgCommon.StartupFollowers = SettingDialog.StartupFollowers;
- _cfgCommon.RestrictFavCheck = SettingDialog.RestrictFavCheck;
_cfgCommon.AlwaysTop = SettingDialog.AlwaysTop;
_cfgCommon.UrlConvertAuto = SettingDialog.UrlConvertAuto;
- _cfgCommon.UseUnreadStyle = SettingDialog.UseUnreadStyle;
- _cfgCommon.DateTimeFormat = SettingDialog.DateTimeFormat;
_cfgCommon.DefaultTimeOut = SettingDialog.DefaultTimeOut;
- _cfgCommon.RetweetNoConfirm = SettingDialog.RetweetNoConfirm;
_cfgCommon.LimitBalloon = SettingDialog.LimitBalloon;
_cfgCommon.EventNotifyEnabled = SettingDialog.EventNotifyEnabled;
_cfgCommon.EventNotifyFlag = SettingDialog.EventNotifyFlag;
_cfgCommon.AutoShortUrlFirst = SettingDialog.AutoShortUrlFirst;
_cfgCommon.TabIconDisp = SettingDialog.TabIconDisp;
_cfgCommon.ReplyIconState = SettingDialog.ReplyIconState;
- _cfgCommon.ReadOwnPost = SettingDialog.ReadOwnPost;
- _cfgCommon.GetFav = SettingDialog.GetFav;
_cfgCommon.IsMonospace = SettingDialog.IsMonospace;
if (IdeographicSpaceToSpaceToolStripMenuItem != null &&
IdeographicSpaceToSpaceToolStripMenuItem.IsDisposed == false)
{
_cfgCommon.WideSpaceConvert = this.IdeographicSpaceToSpaceToolStripMenuItem.Checked;
}
- _cfgCommon.ReadOldPosts = SettingDialog.ReadOldPosts;
_cfgCommon.BilyUser = SettingDialog.BitlyUser;
_cfgCommon.BitlyPwd = SettingDialog.BitlyPwd;
- _cfgCommon.ShowGrid = SettingDialog.ShowGrid;
- _cfgCommon.UseAtIdSupplement = SettingDialog.UseAtIdSupplement;
- _cfgCommon.UseHashSupplement = SettingDialog.UseHashSupplement;
_cfgCommon.PreviewEnable = SettingDialog.PreviewEnable;
_cfgCommon.StatusAreaAtBottom = SettingDialog.StatusAreaAtBottom;
_cfgCommon.Language = SettingDialog.Language;
_cfgCommon.HashIsPermanent = HashMgr.IsPermanent;
_cfgCommon.HashIsNotAddToAtReply = HashMgr.IsNotAddToAtReply;
_cfgCommon.TwitterUrl = SettingDialog.TwitterApiUrl;
- _cfgCommon.HotkeyEnabled = SettingDialog.HotkeyEnabled;
- _cfgCommon.HotkeyModifier = SettingDialog.HotkeyMod;
- _cfgCommon.HotkeyKey = SettingDialog.HotkeyKey;
- _cfgCommon.HotkeyValue = SettingDialog.HotkeyValue;
_cfgCommon.BlinkNewMentions = SettingDialog.BlinkNewMentions;
if (ToolStripFocusLockMenuItem != null &&
ToolStripFocusLockMenuItem.IsDisposed == false)
_cfgCommon.UserTimelineCountApi = SettingDialog.UserTimelineCountApi;
_cfgCommon.TrackWord = tw.TrackWord;
_cfgCommon.AllAtReply = tw.AllAtReply;
- _cfgCommon.OpenUserTimeline = SettingDialog.OpenUserTimeline;
_cfgCommon.ListCountApi = SettingDialog.ListCountApi;
_cfgCommon.UseImageService = ImageSelector.ServiceIndex;
_cfgCommon.UseImageServiceName = ImageSelector.ServiceName;
- _cfgCommon.ListDoubleClickAction = SettingDialog.ListDoubleClickAction;
_cfgCommon.UserAppointUrl = SettingDialog.UserAppointUrl;
- _cfgCommon.HideDuplicatedRetweets = SettingDialog.HideDuplicatedRetweets;
_cfgCommon.EnableImgAzyobuziNet = SettingDialog.EnableImgAzyobuziNet;
_cfgCommon.ImgAzyobuziNetDisabledInDM = SettingDialog.ImgAzyobuziNetDisabledInDM;
_cfgCommon.MapThumbnailProvider = SettingDialog.MapThumbnailProvider;
_cfgCommon.MapThumbnailHeight = SettingDialog.MapThumbnailHeight;
_cfgCommon.MapThumbnailWidth = SettingDialog.MapThumbnailWidth;
_cfgCommon.MapThumbnailZoom = SettingDialog.MapThumbnailZoom;
- _cfgCommon.IsListsIncludeRts = SettingDialog.IsListStatusesIncludeRts;
- _cfgCommon.TabMouseLock = SettingDialog.TabMouseLock;
_cfgCommon.IsRemoveSameEvent = SettingDialog.IsRemoveSameEvent;
_cfgCommon.IsUseNotifyGrowl = SettingDialog.IsNotifyUseGrowl;
_cfgLocal.PreviewDistance = _mySpDis3;
_cfgLocal.StatusMultiline = StatusText.Multiline;
_cfgLocal.StatusTextHeight = _mySpDis2;
- _cfgLocal.StatusText = SettingDialog.Status;
_cfgLocal.FontUnread = _fntUnread;
_cfgLocal.ColorUnread = _clUnread;
_cfgLocal.ColorInputFont = _clInputFont;
_cfgLocal.FontInputFont = _fntInputFont;
- _cfgLocal.BrowserPath = SettingDialog.BrowserPath;
- _cfgLocal.UseRecommendStatus = SettingDialog.UseRecommendStatus;
_cfgLocal.ProxyType = SettingDialog.SelectedProxyType;
_cfgLocal.ProxyAddress = SettingDialog.ProxyAddress;
_cfgLocal.ProxyPort = SettingDialog.ProxyPort;
private void ListTab_MouseDown(object sender, MouseEventArgs e)
{
- if (SettingDialog.TabMouseLock) return;
+ if (this._cfgCommon.TabMouseLock) return;
Point cpos = new Point(e.X, e.Y);
if (e.Button == MouseButtons.Left)
{
{
ListTab.SelectedIndex = ListTab.TabPages.Count - 1;
ListTabSelect(ListTab.TabPages[ListTab.TabPages.Count - 1]);
- GetTimeline(MyCommon.WORKERTYPE.List, 1, 0, tabName);
+ GetTimeline(MyCommon.WORKERTYPE.List, 1, tabName);
}
}
}
bool _NewLine = false;
bool _Post = false;
- if (SettingDialog.PostCtrlEnter) //Ctrl+Enter投稿時
+ if (this._cfgCommon.PostCtrlEnter) //Ctrl+Enter投稿時
{
if (StatusText.Multiline)
{
}
}
- else if (SettingDialog.PostShiftEnter) //SHift+Enter投稿時
+ else if (this._cfgCommon.PostShiftEnter) //SHift+Enter投稿時
{
if (StatusText.Multiline)
{
else
{
Match m = Regex.Match(openUrlStr, "^https?://twitter.com/(#!/)?(?<ScreenName>[a-zA-Z0-9_]+)$");
- if (SettingDialog.OpenUserTimeline && m.Success && IsTwitterId(m.Result("${ScreenName}")))
+ if (this._cfgCommon.OpenUserTimeline && m.Success && IsTwitterId(m.Result("${ScreenName}")))
this.AddNewTabForUserTimeline(m.Result("${ScreenName}"));
else
OpenUriAsync(openUrlStr);
UnreadAtCounter = urat;
slbl.AppendFormat(Properties.Resources.SetStatusLabelText1, tur, tal, ur, al, urat, _postTimestamps.Count, _favTimestamps.Count, _tlCount);
- if (SettingDialog.TimelinePeriodInt == 0)
+ if (this._cfgCommon.TimelinePeriod == 0)
{
slbl.Append(Properties.Resources.SetStatusLabelText2);
}
else
{
- slbl.Append(SettingDialog.TimelinePeriodInt.ToString() + Properties.Resources.SetStatusLabelText3);
+ slbl.Append(this._cfgCommon.TimelinePeriod + Properties.Resources.SetStatusLabelText3);
}
return slbl.ToString();
}
// 本当にリプライ先指定すべきかどうかの判定
m = Regex.Matches(StatusText, "(^|[ -/:-@[-^`{-~])(?<id>@[a-zA-Z0-9_]+)");
- if (SettingDialog.UseAtIdSupplement)
+ if (this._cfgCommon.UseAtIdSupplement)
{
int bCnt = AtIdSupl.ItemCount;
foreach (Match mid in m)
private void TweenMain_Resize(object sender, EventArgs e)
{
- if (!_initialLayout && SettingDialog.MinimizeToTray && WindowState == FormWindowState.Minimized)
+ if (!_initialLayout && this._cfgCommon.MinimizeToTray && WindowState == FormWindowState.Minimized)
{
this.Visible = false;
}
this.PlaySoundFileMenuItem.Checked = PlaySoundMenuItem.Checked;
if (PlaySoundMenuItem.Checked)
{
- SettingDialog.PlaySound = true;
+ this._cfgCommon.PlaySound = true;
}
else
{
- SettingDialog.PlaySound = false;
+ this._cfgCommon.PlaySound = false;
}
_modifySettingCommon = true;
}
try
{
- var configBrowserPath = SettingDialog.BrowserPath;
+ var configBrowserPath = this._cfgLocal.BrowserPath;
if (!string.IsNullOrEmpty(configBrowserPath))
{
if (configBrowserPath.StartsWith("\"") && configBrowserPath.Length > 2 && configBrowserPath.IndexOf("\"", 2) > -1)
MenuItemUserStream.Enabled = true;
StopToolStripMenuItem.Text = "&Start";
StopToolStripMenuItem.Enabled = true;
- if (SettingDialog.UserstreamStartup) tw.StartUserStream();
+ if (this._cfgCommon.UserstreamStartup) tw.StartUserStream();
}
private async void TweenMain_Shown(object sender, EventArgs e)
if (this.IsNetworkAvailable())
{
this.RefreshMuteUserIdsAsync();
- GetTimeline(MyCommon.WORKERTYPE.BlockIds, 0, 0, "");
- GetTimeline(MyCommon.WORKERTYPE.NoRetweetIds, 0, 0, "");
- if (SettingDialog.StartupFollowers)
+ GetTimeline(MyCommon.WORKERTYPE.BlockIds, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.NoRetweetIds, 0, "");
+ if (this._cfgCommon.StartupFollowers)
{
- GetTimeline(MyCommon.WORKERTYPE.Follower, 0, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Follower, 0, "");
}
- GetTimeline(MyCommon.WORKERTYPE.Configuration, 0, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Configuration, 0, "");
StartUserStream();
_waitTimeline = true;
- GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, 1, "");
+ GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, "");
_waitReply = true;
- GetTimeline(MyCommon.WORKERTYPE.Reply, 1, 1, "");
+ GetTimeline(MyCommon.WORKERTYPE.Reply, 1, "");
_waitDm = true;
- GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, 1, 1, "");
- if (SettingDialog.GetFav)
+ GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, 1, "");
+ if (this._cfgCommon.GetFav)
{
_waitFav = true;
- GetTimeline(MyCommon.WORKERTYPE.Favorites, 1, 1, "");
+ GetTimeline(MyCommon.WORKERTYPE.Favorites, 1, "");
}
_waitPubSearch = true;
- GetTimeline(MyCommon.WORKERTYPE.PublicSearch, 1, 0, ""); //tabname="":全タブ
+ GetTimeline(MyCommon.WORKERTYPE.PublicSearch, 1, ""); //tabname="":全タブ
_waitUserTimeline = true;
- GetTimeline(MyCommon.WORKERTYPE.UserTimeline, 1, 0, ""); //tabname="":全タブ
+ GetTimeline(MyCommon.WORKERTYPE.UserTimeline, 1, ""); //tabname="":全タブ
_waitLists = true;
- GetTimeline(MyCommon.WORKERTYPE.List, 1, 0, ""); //tabname="":全タブ
+ GetTimeline(MyCommon.WORKERTYPE.List, 1, ""); //tabname="":全タブ
var i = 0;
while (this.IsInitialRead())
if (ApplicationSettings.VersionInfoUrl != null)
{
//バージョンチェック(引数:起動時チェックの場合はtrue・・・チェック結果のメッセージを表示しない)
- if (SettingDialog.StartupVersion)
+ if (this._cfgCommon.StartupVersion)
await this.CheckNewVersion(true);
}
else
}
// 取得失敗の場合は再試行する
- if (!tw.GetFollowersSuccess && SettingDialog.StartupFollowers)
- GetTimeline(MyCommon.WORKERTYPE.Follower, 0, 0, "");
+ if (!tw.GetFollowersSuccess && this._cfgCommon.StartupFollowers)
+ GetTimeline(MyCommon.WORKERTYPE.Follower, 0, "");
// 取得失敗の場合は再試行する
if (!tw.GetNoRetweetSuccess)
- GetTimeline(MyCommon.WORKERTYPE.NoRetweetIds, 0, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.NoRetweetIds, 0, "");
// 取得失敗の場合は再試行する
if (SettingDialog.TwitterConfiguration.PhotoSizeLimit == 0)
- GetTimeline(MyCommon.WORKERTYPE.Configuration, 0, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Configuration, 0, "");
// 権限チェック read/write権限(xAuthで取得したトークン)の場合は再認証を促す
if (MyCommon.TwitterApiInfo.AccessLevel == TwitterApiAccessLevel.ReadWrite)
private void doGetFollowersMenu()
{
- GetTimeline(MyCommon.WORKERTYPE.Follower, 1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Follower, 1, "");
DispSelectedPost(true);
}
_DoFavRetweetFlags = false;
return;
}
- if (!SettingDialog.RetweetNoConfirm)
+ if (!this._cfgCommon.RetweetNoConfirm)
{
string Questiontext = Properties.Resources.RetweetQuestion1;
if (_DoFavRetweetFlags) Questiontext = Properties.Resources.FavoritesRetweetQuestionText2;
public string id = "";
public bool isFollowing = false;
public bool isFollowed = false;
- public bool isError = false;
public FriendshipInfo(string id)
{
this.id = id;
if (!string.IsNullOrEmpty(rt))
{
if (string.IsNullOrEmpty(result)) result = rt;
- fInfo.isError = true;
}
}
e.Result = result;
TabClass tb = _statuses.Tabs[tbName];
ComboBox cmb = (ComboBox)pnl.Controls["comboSearch"];
ComboBox cmbLang = (ComboBox)pnl.Controls["comboLang"];
- ComboBox cmbusline = (ComboBox)pnl.Controls["comboUserline"];
cmb.Text = cmb.Text.Trim();
// 検索式演算子 OR についてのみ大文字しか認識しないので強制的に大文字とする
bool Quote = false;
SaveConfigsTabs(); //検索条件の保存
}
- GetTimeline(MyCommon.WORKERTYPE.PublicSearch, 1, 0, tbName);
+ GetTimeline(MyCommon.WORKERTYPE.PublicSearch, 1, tbName);
((DetailsListView)ListTab.SelectedTab.Tag).Focus();
}
private HookGlobalHotkey _hookGlobalHotkey;
public TweenMain()
{
- this.http = MyCommon.CreateHttpClient();
_hookGlobalHotkey = new HookGlobalHotkey(this);
// この呼び出しは、Windows フォーム デザイナで必要です。
this.gh.NotifyClicked += GrowlHelper_Callback;
// メイリオフォント指定時にタブの最小幅が広くなる問題の対策
- this.ListTab.HandleCreated += (s, e) => Win32Api.SetMinTabWidth((TabControl)s, 40);
+ this.ListTab.HandleCreated += (s, e) => NativeMethods.SetMinTabWidth((TabControl)s, 40);
this._apiGauge = new ToolStripAPIGauge();
this._apiGauge.BorderSides = ToolStripStatusLabelBorderSides.Right;
private void SelectMedia_DragEnter(DragEventArgs e)
{
- if (ImageSelector.HasUploadableService(((string[])e.Data.GetData(DataFormats.FileDrop, false))[0]))
+ if (ImageSelector.HasUploadableService(((string[])e.Data.GetData(DataFormats.FileDrop, false))[0], true))
{
e.Effect = DragDropEffects.Copy;
return;
}
}
- this.GetTimeline(MyCommon.WORKERTYPE.Related, 1, 1, tabName);
+ this.GetTimeline(MyCommon.WORKERTYPE.Related, 1, tabName);
}
private void CacheInfoMenuItem_Click(object sender, EventArgs e)
#region "Userstream"
private bool _isActiveUserstream = false;
- private void tw_PostDeleted(long id)
+ private void tw_PostDeleted(object sender, PostDeletedEventArgs e)
{
try
{
{
Invoke((Action) (() =>
{
- _statuses.RemovePostReserve(id);
- if (_curTab != null && _statuses.Tabs[_curTab.Text].Contains(id))
+ _statuses.RemovePostReserve(e.StatusId);
+ if (_curTab != null && _statuses.Tabs[_curTab.Text].Contains(e.StatusId))
{
this.PurgeListViewItemCache();
((DetailsListView)_curTab.Tag).Update();
- if (_curPost != null && _curPost.StatusId == id) DispSelectedPost(true);
+ if (_curPost != null && _curPost.StatusId == e.StatusId) DispSelectedPost(true);
}
}));
return;
}
}
- private void tw_NewPostFromStream()
+ private void tw_NewPostFromStream(object sender, EventArgs e)
{
- if (SettingDialog.ReadOldPosts)
+ if (this._cfgCommon.ReadOldPosts)
{
_statuses.SetRead(); //新着時未読クリア
}
//before = Now;
}
- if (SettingDialog.UserstreamPeriodInt > 0) return;
+ if (this._cfgCommon.UserstreamPeriod > 0) return;
try
{
}
}
- private void tw_UserStreamStarted()
+ private void tw_UserStreamStarted(object sender, EventArgs e)
{
this._isActiveUserstream = true;
try
{
if (InvokeRequired && !IsDisposed)
{
- Invoke(new MethodInvoker(tw_UserStreamStarted));
+ Invoke((Action)(() => this.tw_UserStreamStarted(sender, e)));
return;
}
}
StatusLabel.Text = "UserStream Started.";
}
- private void tw_UserStreamStopped()
+ private void tw_UserStreamStopped(object sender, EventArgs e)
{
this._isActiveUserstream = false;
try
{
if (InvokeRequired && !IsDisposed)
{
- Invoke(new MethodInvoker(tw_UserStreamStopped));
+ Invoke((Action)(() => this.tw_UserStreamStopped(sender, e)));
return;
}
}
StatusLabel.Text = "UserStream Stopped.";
}
- private void tw_UserStreamEventArrived(Twitter.FormattedEvent ev)
+ private void tw_UserStreamEventArrived(object sender, UserStreamEventReceivedEventArgs e)
{
try
{
if (InvokeRequired && !IsDisposed)
{
- Invoke(new Action<Twitter.FormattedEvent>(tw_UserStreamEventArrived), ev);
+ Invoke((Action)(() => this.tw_UserStreamEventArrived(sender, e)));
return;
}
}
{
return;
}
+ var ev = e.EventData;
StatusLabel.Text = "Event: " + ev.Event;
//if (ev.Event == "favorite")
//{
//サウンド再生
string snd = SettingDialog.EventSoundFile;
- if (!_initial && SettingDialog.PlaySound && !string.IsNullOrEmpty(snd))
+ if (!_initial && this._cfgCommon.PlaySound && !string.IsNullOrEmpty(snd))
{
if ((ev.Eventtype & SettingDialog.EventNotifyFlag) != 0 && IsMyEventNotityAsEventType(ev))
{
if (string.IsNullOrEmpty(str))
return;
- var bing = new Bing(this.http);
+ var bing = new Bing();
try
{
var translatedText = await bing.TranslateAsync(str,
langFrom: null,
langTo: this.SettingDialog.TranslateLanguage);
- this.PostBrowser.DocumentText = translatedText;
+ this.PostBrowser.DocumentText = this.createDetailHtml(translatedText);
}
catch (HttpRequestException e)
{
private void ContextMenuColumnHeader_Opening(object sender, CancelEventArgs e)
{
- this.IconSizeNoneToolStripMenuItem.Checked = SettingDialog.IconSz == MyCommon.IconSizes.IconNone;
- this.IconSize16ToolStripMenuItem.Checked = SettingDialog.IconSz == MyCommon.IconSizes.Icon16;
- this.IconSize24ToolStripMenuItem.Checked = SettingDialog.IconSz == MyCommon.IconSizes.Icon24;
- this.IconSize48ToolStripMenuItem.Checked = SettingDialog.IconSz == MyCommon.IconSizes.Icon48;
- this.IconSize48_2ToolStripMenuItem.Checked = SettingDialog.IconSz == MyCommon.IconSizes.Icon48_2;
+ this.IconSizeNoneToolStripMenuItem.Checked = this._cfgCommon.IconSize == MyCommon.IconSizes.IconNone;
+ this.IconSize16ToolStripMenuItem.Checked = this._cfgCommon.IconSize == MyCommon.IconSizes.Icon16;
+ this.IconSize24ToolStripMenuItem.Checked = this._cfgCommon.IconSize == MyCommon.IconSizes.Icon24;
+ this.IconSize48ToolStripMenuItem.Checked = this._cfgCommon.IconSize == MyCommon.IconSizes.Icon48;
+ this.IconSize48_2ToolStripMenuItem.Checked = this._cfgCommon.IconSize == MyCommon.IconSizes.Icon48_2;
- this.LockListSortOrderToolStripMenuItem.Checked = SettingDialog.SortOrderLock;
+ this.LockListSortOrderToolStripMenuItem.Checked = this._cfgCommon.SortOrderLock;
}
private void IconSizeNoneToolStripMenuItem_Click(object sender, EventArgs e)
private void ChangeListViewIconSize(MyCommon.IconSizes iconSize)
{
- if (SettingDialog.IconSz == iconSize) return;
+ if (this._cfgCommon.IconSize == iconSize) return;
var oldIconCol = _iconCol;
- SettingDialog.IconSz = iconSize;
+ this._cfgCommon.IconSize = iconSize;
ApplyListViewIconSize(iconSize);
if (_iconCol != oldIconCol)
private void LockListSortToolStripMenuItem_Click(object sender, EventArgs e)
{
var state = this.LockListSortOrderToolStripMenuItem.Checked;
- if (SettingDialog.SortOrderLock == state) return;
+ if (this._cfgCommon.SortOrderLock == state) return;
- SettingDialog.SortOrderLock = state;
+ this._cfgCommon.SortOrderLock = state;
_modifySettingCommon = true;
}