[Tween-svn] [1437] 自分がイベントソースになっているイベントを通知するかどうかを各イベントごとに設定可能にした

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2011年 2月 3日 (木) 21:54:11 JST


Revision: 1437
          http://sourceforge.jp/projects/tween/svn/view?view=rev&revision=1437
Author:   syo68k
Date:     2011-02-03 21:54:10 +0900 (Thu, 03 Feb 2011)

Log Message:
-----------
自分がイベントソースになっているイベントを通知するかどうかを各イベントごとに設定可能にした

Modified Paths:
--------------
    trunk/Tween/AppendSettingDialog.Designer.vb
    trunk/Tween/AppendSettingDialog.resx
    trunk/Tween/AppendSettingDialog.vb
    trunk/Tween/Setting/SettingCommon.vb
    trunk/Tween/Tween.vb


-------------- next part --------------
Modified: trunk/Tween/AppendSettingDialog.Designer.vb
===================================================================
--- trunk/Tween/AppendSettingDialog.Designer.vb	2011-02-03 08:09:59 UTC (rev 1436)
+++ trunk/Tween/AppendSettingDialog.Designer.vb	2011-02-03 12:54:10 UTC (rev 1437)
@@ -352,6 +352,7 @@
         Me.CheckUserUpdateEvent.Checked = True
         Me.CheckUserUpdateEvent.CheckState = System.Windows.Forms.CheckState.Checked
         Me.CheckUserUpdateEvent.Name = "CheckUserUpdateEvent"
+        Me.CheckUserUpdateEvent.ThreeState = True
         Me.CheckUserUpdateEvent.UseVisualStyleBackColor = True
         '
         'Label35
@@ -379,6 +380,7 @@
         Me.CheckListCreatedEvent.Checked = True
         Me.CheckListCreatedEvent.CheckState = System.Windows.Forms.CheckState.Checked
         Me.CheckListCreatedEvent.Name = "CheckListCreatedEvent"
+        Me.CheckListCreatedEvent.ThreeState = True
         Me.CheckListCreatedEvent.UseVisualStyleBackColor = True
         '
         'CheckBlockEvent
@@ -387,6 +389,7 @@
         Me.CheckBlockEvent.Checked = True
         Me.CheckBlockEvent.CheckState = System.Windows.Forms.CheckState.Checked
         Me.CheckBlockEvent.Name = "CheckBlockEvent"
+        Me.CheckBlockEvent.ThreeState = True
         Me.CheckBlockEvent.UseVisualStyleBackColor = True
         '
         'CheckForceEventNotify
@@ -403,6 +406,7 @@
         Me.CheckListMemberRemovedEvent.Checked = True
         Me.CheckListMemberRemovedEvent.CheckState = System.Windows.Forms.CheckState.Checked
         Me.CheckListMemberRemovedEvent.Name = "CheckListMemberRemovedEvent"
+        Me.CheckListMemberRemovedEvent.ThreeState = True
         Me.CheckListMemberRemovedEvent.UseVisualStyleBackColor = True
         '
         'CheckListMemberAddedEvent
@@ -411,6 +415,7 @@
         Me.CheckListMemberAddedEvent.Checked = True
         Me.CheckListMemberAddedEvent.CheckState = System.Windows.Forms.CheckState.Checked
         Me.CheckListMemberAddedEvent.Name = "CheckListMemberAddedEvent"
+        Me.CheckListMemberAddedEvent.ThreeState = True
         Me.CheckListMemberAddedEvent.UseVisualStyleBackColor = True
         '
         'CheckFollowEvent
@@ -419,6 +424,7 @@
         Me.CheckFollowEvent.Checked = True
         Me.CheckFollowEvent.CheckState = System.Windows.Forms.CheckState.Checked
         Me.CheckFollowEvent.Name = "CheckFollowEvent"
+        Me.CheckFollowEvent.ThreeState = True
         Me.CheckFollowEvent.UseVisualStyleBackColor = True
         '
         'CheckUnfavoritesEvent
@@ -427,6 +433,7 @@
         Me.CheckUnfavoritesEvent.Checked = True
         Me.CheckUnfavoritesEvent.CheckState = System.Windows.Forms.CheckState.Checked
         Me.CheckUnfavoritesEvent.Name = "CheckUnfavoritesEvent"
+        Me.CheckUnfavoritesEvent.ThreeState = True
         Me.CheckUnfavoritesEvent.UseVisualStyleBackColor = True
         '
         'CheckFavoritesEvent
@@ -435,6 +442,7 @@
         Me.CheckFavoritesEvent.Checked = True
         Me.CheckFavoritesEvent.CheckState = System.Windows.Forms.CheckState.Checked
         Me.CheckFavoritesEvent.Name = "CheckFavoritesEvent"
+        Me.CheckFavoritesEvent.ThreeState = True
         Me.CheckFavoritesEvent.UseVisualStyleBackColor = True
         '
         'CheckEventNotify

Modified: trunk/Tween/AppendSettingDialog.resx
===================================================================
--- trunk/Tween/AppendSettingDialog.resx	2011-02-03 08:09:59 UTC (rev 1436)
+++ trunk/Tween/AppendSettingDialog.resx	2011-02-03 12:54:10 UTC (rev 1437)
@@ -264,7 +264,7 @@
     <value>True</value>
   </data>
   <data name="CheckUserUpdateEvent.Location" type="System.Drawing.Point, System.Drawing">
-    <value>40, 162</value>
+    <value>40, 145</value>
   </data>
   <data name="CheckUserUpdateEvent.Size" type="System.Drawing.Size, System.Drawing">
     <value>189, 16</value>
@@ -366,7 +366,7 @@
     <value>True</value>
   </data>
   <data name="CheckListCreatedEvent.Location" type="System.Drawing.Point, System.Drawing">
-    <value>40, 145</value>
+    <value>40, 162</value>
   </data>
   <data name="CheckListCreatedEvent.Size" type="System.Drawing.Size, System.Drawing">
     <value>134, 16</value>

Modified: trunk/Tween/AppendSettingDialog.vb
===================================================================
--- trunk/Tween/AppendSettingDialog.vb	2011-02-03 08:09:59 UTC (rev 1436)
+++ trunk/Tween/AppendSettingDialog.vb	2011-02-03 12:54:10 UTC (rev 1437)
@@ -133,6 +133,7 @@
     Private _curPanel As Panel = Nothing
     Private _MyEventNotifyEnabled As Boolean
     Private _MyEventNotifyFlag As EVENTTYPE
+    Private _isMyEventNotifyFlag As EVENTTYPE
     Private _MyForceEventNotify As Boolean
     Private _MyFavEventUnread As Boolean
     Private _MyTranslateLanguage As String
@@ -331,7 +332,7 @@
             _MyRetweetNoConfirm = CheckRetweetNoConfirm.Checked
             _MyLimitBalloon = CheckBalloonLimit.Checked
             _MyEventNotifyEnabled = CheckEventNotify.Checked
-            _MyEventNotifyFlag = GetEventNotifyFlag()
+            GetEventNotifyFlag(_MyEventNotifyFlag, _isMyEventNotifyFlag)
             _MyForceEventNotify = CheckForceEventNotify.Checked
             _MyFavEventUnread = CheckFavEventUnread.Checked
             _MyTranslateLanguage = (New Google).GetLanguageEnumFromIndex(ComboBoxTranslateLanguage.SelectedIndex)
@@ -587,7 +588,7 @@
         CheckRetweetNoConfirm.Checked = _MyRetweetNoConfirm
         CheckBalloonLimit.Checked = _MyLimitBalloon
 
-        ApplyEventNotifyFlag(_MyEventNotifyEnabled, _MyEventNotifyFlag)
+        ApplyEventNotifyFlag(_MyEventNotifyEnabled, _MyEventNotifyFlag, _isMyEventNotifyFlag)
         CheckForceEventNotify.Checked = _MyForceEventNotify
         CheckFavEventUnread.Checked = _MyFavEventUnread
         ComboBoxTranslateLanguage.SelectedIndex = (New Google).GetIndexFromLanguageEnum(_MyTranslateLanguage)
@@ -1992,6 +1993,15 @@
         End Set
     End Property
 
+    Public Property IsMyEventNotifyFlag As EVENTTYPE
+        Get
+            Return _isMyEventNotifyFlag
+        End Get
+        Set(ByVal value As EVENTTYPE)
+            _isMyEventNotifyFlag = value
+        End Set
+    End Property
+
     Public Property ForceEventNotify As Boolean
         Get
             Return _MyForceEventNotify
@@ -2457,79 +2467,74 @@
     End Sub
 
     Private Sub CheckEventNotify_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
-                    Handles CheckEventNotify.CheckedChanged, CheckFavoritesEvent.CheckedChanged, _
-                            CheckUnfavoritesEvent.CheckedChanged, CheckFollowEvent.CheckedChanged, _
-                            CheckListMemberAddedEvent.CheckedChanged, CheckListMemberRemovedEvent.CheckedChanged, _
-                            CheckListCreatedEvent.CheckedChanged, CheckUserUpdateEvent.CheckedChanged
+                    Handles CheckEventNotify.CheckedChanged, CheckFavoritesEvent.CheckStateChanged, _
+                            CheckUnfavoritesEvent.CheckStateChanged, CheckFollowEvent.CheckStateChanged, _
+                            CheckListMemberAddedEvent.CheckStateChanged, CheckListMemberRemovedEvent.CheckStateChanged, _
+                            CheckListCreatedEvent.CheckStateChanged, CheckUserUpdateEvent.CheckStateChanged
         _MyEventNotifyEnabled = CheckEventNotify.Checked
-        _MyEventNotifyFlag = GetEventNotifyFlag()
-        ApplyEventNotifyFlag(_MyEventNotifyEnabled, _MyEventNotifyFlag)
+        GetEventNotifyFlag(_MyEventNotifyFlag, _isMyEventNotifyFlag)
+        ApplyEventNotifyFlag(_MyEventNotifyEnabled, _MyEventNotifyFlag, _isMyEventNotifyFlag)
     End Sub
 
-    Private Function GetEventNotifyFlag() As EVENTTYPE
-        Dim evt As EVENTTYPE = EVENTTYPE.None
+    Private Class EventCheckboxTblElement
+        Public CheckBox As CheckBox
+        Public Type As EVENTTYPE
+    End Class
 
-        If CheckFavoritesEvent.Checked Then
-            evt = evt Or EVENTTYPE.Favorite
-        End If
+    Private Function GetEventCheckboxTable() As EventCheckboxTblElement()
 
-        If CheckUnfavoritesEvent.Checked Then
-            evt = evt Or EVENTTYPE.Unfavorite
-        End If
+        Static _eventCheckboxTable As EventCheckboxTblElement() = {
+            New EventCheckboxTblElement With {.CheckBox = CheckFavoritesEvent, .Type = EVENTTYPE.Favorite},
+            New EventCheckboxTblElement With {.CheckBox = CheckUnfavoritesEvent, .Type = EVENTTYPE.Unfavorite},
+            New EventCheckboxTblElement With {.CheckBox = CheckFollowEvent, .Type = EVENTTYPE.Follow},
+            New EventCheckboxTblElement With {.CheckBox = CheckListMemberAddedEvent, .Type = EVENTTYPE.ListMemberAdded},
+            New EventCheckboxTblElement With {.CheckBox = CheckListMemberRemovedEvent, .Type = EVENTTYPE.ListMemberRemoved},
+            New EventCheckboxTblElement With {.CheckBox = CheckBlockEvent, .Type = EVENTTYPE.Block},
+            New EventCheckboxTblElement With {.CheckBox = CheckUserUpdateEvent, .Type = EVENTTYPE.UserUpdate},
+            New EventCheckboxTblElement With {.CheckBox = CheckListCreatedEvent, .Type = EVENTTYPE.ListCreated}
+        }
 
-        If CheckFollowEvent.Checked Then
-            evt = evt Or EVENTTYPE.Follow
-        End If
+        Return _eventCheckboxTable
+    End Function
+    
+    Private Sub GetEventNotifyFlag(ByRef eventnotifyflag As EVENTTYPE, ByRef isMyeventnotifyflag As EVENTTYPE)
+        Dim evt As EVENTTYPE = EVENTTYPE.None
+        Dim myevt As EVENTTYPE = EVENTTYPE.None
 
-        If CheckListMemberAddedEvent.Checked Then
-            evt = evt Or EVENTTYPE.ListMemberAdded
-        End If
+        For Each tbl As EventCheckboxTblElement In GetEventCheckboxTable()
+            Select Case tbl.CheckBox.CheckState
+                Case CheckState.Checked
+                    evt = evt Or tbl.Type
+                    myevt = myevt Or tbl.Type
+                Case CheckState.Indeterminate
+                    evt = evt Or tbl.Type
+                Case CheckState.Unchecked
+                    '
+            End Select
+        Next
+        eventnotifyflag = evt
+        isMyeventnotifyflag = myevt
+    End Sub
 
-        If CheckListMemberRemovedEvent.Checked Then
-            evt = evt Or EVENTTYPE.ListMemberRemoved
-        End If
+    Private Sub ApplyEventNotifyFlag(ByVal rootEnabled As Boolean, ByVal eventnotifyflag As EVENTTYPE, ByVal isMyeventnotifyflag As EVENTTYPE)
+        Dim evt = eventnotifyflag
+        Dim myevt = isMyeventnotifyflag
 
-        If CheckBlockEvent.Checked Then
-            evt = evt Or EVENTTYPE.Block
-        End If
-
-        If CheckUserUpdateEvent.Checked Then
-            evt = evt Or EVENTTYPE.UserUpdate
-        End If
-
-        If CheckListCreatedEvent.Checked Then
-            evt = evt Or EVENTTYPE.ListCreated
-        End If
-
-        Return evt
-    End Function
-
-    Private Sub ApplyEventNotifyFlag(ByVal rootEnabled As Boolean, ByVal evt As EVENTTYPE)
         CheckEventNotify.Checked = rootEnabled
 
-        CheckFavoritesEvent.Checked = CBool(evt And EVENTTYPE.Favorite)
-        CheckFavoritesEvent.Enabled = rootEnabled
+        For Each tbl As EventCheckboxTblElement In GetEventCheckboxTable()
+            If CBool(evt And tbl.Type) Then
+                If CBool(myevt And tbl.Type) Then
+                    tbl.CheckBox.CheckState = CheckState.Checked
+                Else
+                    tbl.CheckBox.CheckState = CheckState.Indeterminate
+                End If
+            Else
+                tbl.CheckBox.CheckState = CheckState.Unchecked
+            End If
+            tbl.CheckBox.Enabled = rootEnabled
+        Next
 
-        CheckUnfavoritesEvent.Checked = CBool(evt And EVENTTYPE.Unfavorite)
-        CheckUnfavoritesEvent.Enabled = rootEnabled
-
-        CheckFollowEvent.Checked = CBool(evt And EVENTTYPE.Follow)
-        CheckFollowEvent.Enabled = rootEnabled
-
-        CheckListMemberAddedEvent.Checked = CBool(evt And EVENTTYPE.ListMemberAdded)
-        CheckListMemberAddedEvent.Enabled = rootEnabled
-
-        CheckListMemberRemovedEvent.Checked = CBool(evt And EVENTTYPE.ListMemberRemoved)
-        CheckListMemberRemovedEvent.Enabled = rootEnabled
-
-        CheckBlockEvent.Checked = CBool(evt And EVENTTYPE.Block)
-        CheckBlockEvent.Enabled = rootEnabled
-
-        CheckListCreatedEvent.Checked = CBool(evt And EVENTTYPE.ListCreated)
-        CheckListCreatedEvent.Enabled = rootEnabled
-
-        CheckUserUpdateEvent.Checked = CBool(evt And EVENTTYPE.UserUpdate)
-        CheckUserUpdateEvent.Enabled = rootEnabled
     End Sub
 
     Private Sub CheckForceEventNotify_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckForceEventNotify.CheckedChanged

Modified: trunk/Tween/Setting/SettingCommon.vb
===================================================================
--- trunk/Tween/Setting/SettingCommon.vb	2011-02-03 08:09:59 UTC (rev 1436)
+++ trunk/Tween/Setting/SettingCommon.vb	2011-02-03 12:54:10 UTC (rev 1437)
@@ -97,7 +97,8 @@
     Public IconSize As IconSizes = IconSizes.Icon16
     Public NewAllPop As Boolean = True
     Public EventNotifyEnabled As Boolean = True
-    Public EventNotifyFlag As EVENTTYPE = EVENTTYPE.ALL
+    Public EventNotifyFlag As EVENTTYPE = EVENTTYPE.All
+    Public IsMyEventNotifyFlag As EVENTTYPE = EVENTTYPE.All
     Public ForceEventNotify As Boolean = True
     Public FavEventUnread As Boolean = True
     Public TranslateLanguage As String = My.Resources.TranslateDefaultLanguage

Modified: trunk/Tween/Tween.vb
===================================================================
--- trunk/Tween/Tween.vb	2011-02-03 08:09:59 UTC (rev 1436)
+++ trunk/Tween/Tween.vb	2011-02-03 12:54:10 UTC (rev 1437)
@@ -693,6 +693,7 @@
         SettingDialog.LimitBalloon = _cfgCommon.LimitBalloon
         SettingDialog.EventNotifyEnabled = _cfgCommon.EventNotifyEnabled
         SettingDialog.EventNotifyFlag = _cfgCommon.EventNotifyFlag
+        SettingDialog.IsMyEventNotifyFlag = _cfgCommon.IsMyEventNotifyFlag
         SettingDialog.ForceEventNotify = _cfgCommon.ForceEventNotify
         SettingDialog.FavEventUnread = _cfgCommon.FavEventUnread
         SettingDialog.TranslateLanguage = _cfgCommon.TranslateLanguage
@@ -1370,9 +1371,17 @@
         Return BalloonRequired(New Twitter.FormattedEvent With {.Eventtype = EVENTTYPE.None})
     End Function
 
+    Private Function IsEventNotifyAsEventType(ByVal type As EVENTTYPE) As Boolean
+        Return SettingDialog.EventNotifyEnabled AndAlso CBool(type And SettingDialog.EventNotifyFlag) OrElse type = EVENTTYPE.None
+    End Function
+
+    Private Function IsMyEventNotityAsEventType(ByVal ev As Twitter.FormattedEvent) As Boolean
+        Return If(CBool(ev.Eventtype And SettingDialog.IsMyEventNotifyFlag), True, Not ev.IsMe)
+    End Function
+
     Private Overloads Function BalloonRequired(ByVal ev As Twitter.FormattedEvent) As Boolean
         If (
-            (SettingDialog.EventNotifyEnabled AndAlso CBool(ev.Eventtype And SettingDialog.EventNotifyFlag) OrElse ev.Eventtype = EVENTTYPE.None) AndAlso
+            IsEventNotifyAsEventType(ev.Eventtype) AndAlso IsMyEventNotityAsEventType(ev) AndAlso
             (NewPostPopMenuItem.Checked OrElse (SettingDialog.ForceEventNotify AndAlso ev.Eventtype <> EVENTTYPE.None)) AndAlso
             Not _initial AndAlso
             (
@@ -5918,6 +5927,7 @@
             _cfgCommon.LimitBalloon = SettingDialog.LimitBalloon
             _cfgCommon.EventNotifyEnabled = SettingDialog.EventNotifyEnabled
             _cfgCommon.EventNotifyFlag = SettingDialog.EventNotifyFlag
+            _cfgCommon.IsMyEventNotifyFlag = SettingDialog.IsMyEventNotifyFlag
             _cfgCommon.ForceEventNotify = SettingDialog.ForceEventNotify
             _cfgCommon.FavEventUnread = SettingDialog.FavEventUnread
             _cfgCommon.TranslateLanguage = SettingDialog.TranslateLanguage
@@ -9922,7 +9932,7 @@
         'サウンド再生
         Dim snd As String = SettingDialog.EventSoundFile
         If Not _initial AndAlso SettingDialog.PlaySound AndAlso snd <> "" Then
-            If CBool(ev.Eventtype And SettingDialog.EventNotifyFlag) Then
+            If CBool(ev.Eventtype And SettingDialog.EventNotifyFlag) AndAlso IsMyEventNotityAsEventType(ev) Then
                 Try
                     Dim dir As String = My.Application.Info.DirectoryPath
                     If Directory.Exists(Path.Combine(dir, "Sounds")) Then



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