public sealed class TabInformations
{
//個別タブの情報をDictionaryで保持
- public TabCollection Tabs { get; } = new TabCollection();
+ public IReadOnlyTabCollection Tabs
+ => this.tabs;
+
public MuteTabModel MuteTab { get; private set; }
public ConcurrentDictionary<long, PostClass> Posts { get; } = new ConcurrentDictionary<long, PostClass>();
//発言の追加
//AddPost(複数回) -> DistributePosts -> SubmitUpdate
+ private readonly TabCollection tabs = new TabCollection();
private ConcurrentQueue<long> addQueue = new ConcurrentQueue<long>();
/// <summary>通知サウンドを再生する優先順位</summary>
public TabModel SelectedTab
=> this.Tabs[this.SelectedTabName];
+ public int SelectedTabIndex
+ => this.Tabs.IndexOf(this.SelectedTabName);
+
public List<ListElement> SubscribableLists
{
get => this._lists;
if (this.Tabs.Contains(tab.TabName))
return false;
- this.Tabs.Add(tab);
+ this.tabs.Add(tab);
tab.SetSortMode(this.SortMode, this.SortOrder);
return true;
}
}
this.RemovedTab.Push(tb);
- this.Tabs.Remove(TabName);
+ this.tabs.Remove(TabName);
}
}
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);
+ 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))
throw new ArgumentOutOfRangeException(nameof(tab));
- this.Tabs.Remove(tab);
- this.Tabs.Insert(newIndex, tab);
+ this.tabs.Remove(tab);
+ this.tabs.Insert(newIndex, tab);
}
public bool ContainsTab(string TabText)
{
var index = this.Tabs.IndexOf(Original);
var tb = this.Tabs[Original];
- this.Tabs.RemoveAt(index);
+ this.tabs.RemoveAt(index);
tb.TabName = NewName;
- this.Tabs.Insert(index, tb);
+ this.tabs.Insert(index, tb);
}
}