OpenTween.TweenMain.RefreshTimeline C# (CSharp) Method

RefreshTimeline() private method

private RefreshTimeline ( ) : void
return void
        private void RefreshTimeline()
        {
            var curTabModel = this._statuses.Tabs[this._curTab.Text];

            // 現在表示中のタブのスクロール位置を退避
            var curListScroll = this.SaveListViewScroll(this._curList, curTabModel);

            // 各タブのリスト上の選択位置などを退避
            var listSelections = this.SaveListViewSelection();

            //更新確定
            PostClass[] notifyPosts;
            string soundFile;
            int addCount;
            bool newMentionOrDm;
            bool isDelete;
            addCount = _statuses.SubmitUpdate(out soundFile, out notifyPosts, out newMentionOrDm, out isDelete);

            if (MyCommon._endingFlag) return;

            // リストに反映&選択状態復元
            foreach (var tabPage in this.ListTab.TabPages.Cast<TabPage>())
            {
                var listView = (DetailsListView)tabPage.Tag;
                var tabModel = this._statuses.Tabs[tabPage.Text];

                if (listView.VirtualListSize != tabModel.AllCount || isDelete)
                {
                    using (ControlTransaction.Update(listView))
                    {
                        if (listView == this._curList)
                            this.PurgeListViewItemCache();

                        // リスト件数更新
                        listView.VirtualListSize = tabModel.AllCount;

                        // 選択位置などを復元
                        this.RestoreListViewSelection(listView, tabModel, listSelections[tabModel.TabName]);
                    }
                }
            }

            if (addCount > 0)
            {
                if (this._cfgCommon.TabIconDisp)
                {
                    foreach (var tabPage in this.ListTab.TabPages.Cast<TabPage>())
                    {
                        var tabModel = this._statuses.Tabs[tabPage.Text];
                        if (tabModel.UnreadCount > 0 && tabPage.ImageIndex != 0)
                            tabPage.ImageIndex = 0; // 未読アイコン
                    }
                }
                else
                {
                    this.ListTab.Refresh();
                }
            }

            // スクロール位置を復元
            this.RestoreListViewScroll(this._curList, curTabModel, curListScroll);

            //新着通知
            NotifyNewPosts(notifyPosts, soundFile, addCount, newMentionOrDm);

            SetMainWindowTitle();
            if (!StatusLabelUrl.Text.StartsWith("http", StringComparison.Ordinal)) SetStatusLabelUrl();

            HashSupl.AddRangeItem(tw.GetHashList());

        }
TweenMain