added a "show definitions only" filter (menu)
authorClaus Gittinger <cg@exept.de>
Wed, 19 Feb 2014 14:19:46 +0100
changeset 13970 d280c182f218
parent 13969 ef8a4e6cbfd7
child 13971 0ba7ad1a3ec2
added a "show definitions only" filter (menu)
Tools__ChangeList.st
--- a/Tools__ChangeList.st	Wed Feb 19 14:19:40 2014 +0100
+++ b/Tools__ChangeList.st	Wed Feb 19 14:19:46 2014 +0100
@@ -30,7 +30,7 @@
 BrowserListWithFilter subclass:#ChangeList
 	instanceVariableNames:'listHolder showRemovedHolder showSameHolder showTimestampHolder
 		allowRemoveHolder allowAcceptHolder scrollToBottom applyAction
-		showConflictsOnlyHolder'
+		showConflictsOnlyHolder showDefinitionsOnlyHolder'
 	classVariableNames:'LastSelectionConditionString'
 	poolDictionaries:''
 	category:'Interface-Browsers-ChangeSet'
@@ -451,8 +451,8 @@
         #showSameHolder
         #showTimestampHolder
         #showConflictsOnlyHolder
+        #showDefinitionsOnlyHolder
       ).
-
 ! !
 
 !ChangeList methodsFor:'accessing'!
@@ -653,6 +653,35 @@
     ].
 !
 
+showDefinitionsOnlyHolder
+    "return/create the 'showDefinitionsOnlyHolder' value holder (automatically generated)"
+
+    showDefinitionsOnlyHolder isNil ifTrue:[
+        showDefinitionsOnlyHolder := ValueHolder with: true.
+        showDefinitionsOnlyHolder addDependent: self.
+    ].
+    ^ showDefinitionsOnlyHolder
+!
+
+showDefinitionsOnlyHolder:something
+    "set the 'showDefinitionsOnlyHolder' value holder (automatically generated)"
+
+    |oldValue newValue|
+
+    showDefinitionsOnlyHolder notNil ifTrue:[
+        oldValue := showDefinitionsOnlyHolder value.
+        showDefinitionsOnlyHolder removeDependent:self.
+    ].
+    showDefinitionsOnlyHolder := something.
+    showDefinitionsOnlyHolder notNil ifTrue:[
+        showDefinitionsOnlyHolder addDependent:self.
+    ].
+    newValue := showDefinitionsOnlyHolder value.
+    oldValue ~~ newValue ifTrue:[
+        self update:#value with:newValue from:showDefinitionsOnlyHolder.
+    ].
+!
+
 showRemovedHolder
     "return/create the 'showRemovedHolder' value holder (automatically generated)"
 
@@ -775,6 +804,9 @@
     sender == showConflictsOnlyHolder ifTrue:[
         self updateList
     ].
+    sender == showDefinitionsOnlyHolder ifTrue:[
+        self updateList
+    ].
 
     ^super update: aspect with: param from: sender
 
@@ -1167,7 +1199,8 @@
 !
 
 updateList
-    |inGenerator changeset firstLineShown oldSel newList newSel |
+    |inGenerator changeset firstLineShown oldSel newList newSel|
+
     self withWaitCursorDo:[
         inGenerator := self inGeneratorHolder value.
         listView notNil ifTrue:[
@@ -1178,18 +1211,22 @@
         oldSel := self selection.
 
         changeset := inGenerator isNil ifTrue:[ #() ] ifFalse:[ inGenerator ].
-        self showConflictsOnlyHolder value ifTrue:[
-            newList := changeset select: [:chg | chg isConflict ].
+        self showDefinitionsOnlyHolder value ifTrue:[
+            newList := changeset select: [:chg | chg isOrContainsClassDefinitionChange ].
         ] ifFalse:[
-            | showRemoved showSame |
+            self showConflictsOnlyHolder value ifTrue:[
+                newList := changeset select: [:chg | chg isConflict ].
+            ] ifFalse:[
+                | showRemoved showSame |
 
-            showRemoved := self showRemovedHolder value.
-            showSame := self showSameHolder value.
+                showRemoved := self showRemovedHolder value.
+                showSame := self showSameHolder value.
 
-            newList := changeset select: [:chg | 
-                           (showRemoved or:[ chg removed not ])
-                               and:[showSame or:[chg delta ~~ #=]]
-                       ].
+                newList := changeset select: [:chg | 
+                               (showRemoved or:[ chg removed not ])
+                                   and:[showSame or:[chg delta ~~ #=]]
+                           ].
+            ].
         ].
 "/ OLD CODE
 "/        newList := changeset
@@ -1334,30 +1371,33 @@
 !
 
 children
+    |app addIf showRemoved showSame|
 
     children isNil ifTrue:[
         change isCompositeChange ifTrue:[
+            app := self application.
+
             children := OrderedCollection new: change changes size.
-            self application showConflictsOnlyHolder value ifTrue:[
-                change changes do:[:chg|
-                    (chg isConflict) ifTrue:[
-                        children add: ((self application listEntryFor: chg) parent: self)
-                    ]
-                ].
+            app showDefinitionsOnlyHolder value ifTrue:[
+                addIf := [:chg | chg isOrContainsClassDefinitionChange].
             ] ifFalse:[
-                |showRemoved showSame|
+                app showConflictsOnlyHolder value ifTrue:[
+                    addIf := [:chg | chg isConflict].
+                ] ifFalse:[
+                    showRemoved := app showRemovedHolder value.
+                    showSame := app showSameHolder value.
 
-                showRemoved := self application showRemovedHolder value.
-                showSame := self application showSameHolder value.
-
-                change changes do:[:chg|
-                    ((showRemoved or:[ chg removed not ])
-                        and:[showSame or:[chg delta ~~ #=]]) 
-                            ifTrue:[
-                                children add: ((self application listEntryFor: chg) parent: self)
-                            ]
-                ].
-            ]
+                    addIf := [:chg | 
+                                ((showRemoved or:[ chg removed not ])
+                                and:[showSame or:[chg delta ~~ #=]])
+                             ].
+                ]
+            ].
+            change changes do:[:chg|
+                (addIf value:chg) ifTrue:[
+                    children add: ((app listEntryFor: chg) parent: self)
+                ]
+            ].
         ] ifFalse:[
             children :=  #()
         ]
@@ -1543,14 +1583,14 @@
 !ChangeList class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.30 2014-02-14 00:24:33 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.31 2014-02-19 13:19:46 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.30 2014-02-14 00:24:33 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.31 2014-02-19 13:19:46 cg Exp $'
 !
 
 version_SVN
-    ^ '$Id: Tools__ChangeList.st,v 1.30 2014-02-14 00:24:33 cg Exp $'
+    ^ '$Id: Tools__ChangeList.st,v 1.31 2014-02-19 13:19:46 cg Exp $'
 ! !