svnno****@sourc*****
svnno****@sourc*****
2011年 2月 24日 (木) 19:42:46 JST
Revision: 1468 http://sourceforge.jp/projects/tween/svn/view?view=rev&revision=1468 Author: syo68k Date: 2011-02-24 19:42:46 +0900 (Thu, 24 Feb 2011) Log Message: ----------- ・設定読み込みの際にタブ名に重複があると例外を起こすのを修正 ・タブ削除情報を複数持てるように。削除取り消しで削除した順番とは逆順で復活する Modified Paths: -------------- trunk/Tween/StatusDictionary.vb trunk/Tween/Tween.vb -------------- next part -------------- Modified: trunk/Tween/StatusDictionary.vb =================================================================== --- trunk/Tween/StatusDictionary.vb 2011-02-24 04:55:35 UTC (rev 1467) +++ trunk/Tween/StatusDictionary.vb 2011-02-24 10:42:46 UTC (rev 1468) @@ -449,7 +449,7 @@ Private _addedIds As List(Of Long) Private _deletedIds As New List(Of Long) Private _retweets As New Dictionary(Of Long, PostClass) - Private _removedTab As TabClass = Nothing + Private _removedTab As New Stack(Of TabClass) '発言の追加 'AddPost(複数回) -> DistributePosts -> SubmitUpdate @@ -525,20 +525,12 @@ If Not exist Then homeTab.Add(Id, _statuses(Id).IsRead, False) Next End If - If _removedTab IsNot Nothing Then _removedTab = Nothing - _removedTab = _tabs(TabName) + _removedTab.Push(_tabs(TabName)) _tabs.Remove(TabName) End SyncLock End Sub - Public Property RemovedTab() As TabClass - Get - Return _removedTab - End Get - Set(ByVal value As TabClass) - _removedTab = value - End Set - End Property + Public RemovedTab As Stack(Of TabClass) = _removedTab Public Function ContainsTab(ByVal TabText As String) As Boolean Return _tabs.ContainsKey(TabText) Modified: trunk/Tween/Tween.vb =================================================================== --- trunk/Tween/Tween.vb 2011-02-24 04:55:35 UTC (rev 1467) +++ trunk/Tween/Tween.vb 2011-02-24 10:42:46 UTC (rev 1468) @@ -1151,7 +1151,12 @@ _cfgLocal = SettingLocal.Load() Dim tabs As List(Of TabClass) = SettingTabs.Load().Tabs For Each tb As TabClass In tabs - _statuses.Tabs.Add(tb.TabName, tb) + Try + _statuses.Tabs.Add(tb.TabName, tb) + Catch ex As Exception + tb.TabName = _statuses.GetUniqueTabName() + _statuses.Tabs.Add(tb.TabName, tb) + End Try Next If _statuses.Tabs.Count = 0 Then _statuses.AddTab(DEFAULTTAB.RECENT, TabUsageType.Home, Nothing) @@ -8981,12 +8986,11 @@ End Sub Private Sub UndoRemoveTabMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles UndoRemoveTabMenuItem.Click - If _statuses.RemovedTab Is Nothing Then + If _statuses.RemovedTab.Count = 0 Then MessageBox.Show("There isn't removed tab.", "Undo", MessageBoxButtons.OK, MessageBoxIcon.Information) Exit Sub Else - Dim tb As TabClass = _statuses.RemovedTab - _statuses.RemovedTab = Nothing + Dim tb As TabClass = _statuses.RemovedTab.Pop() Dim renamed As String = tb.TabName For i As Integer = 1 To Integer.MaxValue If Not _statuses.ContainsTab(renamed) Then Exit For @@ -9293,7 +9297,7 @@ End Sub Private Sub MenuItemEdit_DropDownOpening(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItemEdit.DropDownOpening - If _statuses.RemovedTab Is Nothing Then + If _statuses.RemovedTab.Count = 0 Then UndoRemoveTabMenuItem.Enabled = False Else UndoRemoveTabMenuItem.Enabled = True