[Tween-svn] [1468] ・設定読み込みの際にタブ名に重複があると例外を起こすのを修正

Back to archive index

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



Tween-svn メーリングリストの案内
Back to archive index