}
}
- public void ReplaceTab(TabModel tab)
- {
- if (!this.ContainsTab(tab.TabName))
- throw new ArgumentOutOfRangeException(nameof(tab));
-
- var index = this.tabs.IndexOf(tab);
- this.tabs.RemoveAt(index);
- this.tabs.Insert(index, tab);
- }
-
public void MoveTab(int newIndex, TabModel tab)
{
if (!this.ContainsTab(tab))
<data name="TweenAboutBox_LoadText2"><value>Version {0}</value></data>
<data name="TweenMain_LoadText1"><value>Failed to add tab.</value></data>
<data name="Unauthorized"><value>You are not authorized.</value></data>
+ <data name="UndoRemovedTab_DuplicateError"><value>Failed to undo the removed tab. A tab with the same name as "{0}" exists.</value></data>
<data name="UnhandledExceptionText1"><value>**** Error Log: {0} ****</value></data>
<data name="UnhandledExceptionText10"><value>Error</value></data>
<data name="UnhandledExceptionText11"><value>Administrator authority:</value></data>
<data name="TweenAboutBox_LoadText2"><value>バージョン {0}</value></data>
<data name="TweenMain_LoadText1"><value>タブ作成エラー</value></data>
<data name="Unauthorized"><value>You are not authorized.</value></data>
+ <data name="UndoRemovedTab_DuplicateError"><value>削除したタブの取消に失敗しました。「{0}」と同じ名前のタブが存在します</value></data>
<data name="UnhandledExceptionText1"><value>**** エラー ログ: {0} ****</value></data>
<data name="UnhandledExceptionText10"><value>エラー発生</value></data>
<data name="UnhandledExceptionText11"><value>Administrator権限:</value></data>
else
{
var tb = this.statuses.RemovedTab.Pop();
- if (tb.TabType == MyCommon.TabUsageType.Related)
+ if (this.statuses.ContainsTab(tb.TabName))
{
- var relatedTab = this.statuses.GetTabByType(MyCommon.TabUsageType.Related);
- if (relatedTab != null)
- {
- // 関連発言なら既存のタブを置き換える
- tb.TabName = relatedTab.TabName;
- this.ClearTab(tb.TabName, false);
-
- this.statuses.ReplaceTab(tb);
-
- var tabIndex = this.statuses.Tabs.IndexOf(tb);
- this.ListTab.SelectedIndex = tabIndex;
- }
- else
- {
- const string TabName = "Related Tweets";
- var renamed = TabName;
- for (var i = 2; i <= 100; i++)
- {
- if (!this.statuses.ContainsTab(renamed))
- break;
- renamed = TabName + i;
- }
- tb.TabName = renamed;
-
- this.statuses.AddTab(tb);
- this.AddNewTab(tb, startup: false);
-
- var tabIndex = this.statuses.Tabs.Count - 1;
- this.ListTab.SelectedIndex = tabIndex;
- }
+ var message = string.Format(Properties.Resources.UndoRemovedTab_DuplicateError, tb.TabName);
+ MessageBox.Show(this, message, ApplicationSettings.ApplicationName, MessageBoxButtons.OK, MessageBoxIcon.Error);
+ this.statuses.RemovedTab.Push(tb);
+ return;
}
- else
- {
- var renamed = tb.TabName;
- for (var i = 1; i < int.MaxValue; i++)
- {
- if (!this.statuses.ContainsTab(renamed))
- break;
- renamed = tb.TabName + "(" + i + ")";
- }
- tb.TabName = renamed;
- this.statuses.AddTab(tb);
- this.AddNewTab(tb, startup: false);
+ this.statuses.AddTab(tb);
+ this.AddNewTab(tb, startup: false);
+
+ var tabIndex = this.statuses.Tabs.Count - 1;
+ this.ListTab.SelectedIndex = tabIndex;
- var tabIndex = this.statuses.Tabs.Count - 1;
- this.ListTab.SelectedIndex = tabIndex;
- }
this.SaveConfigsTabs();
}
}