changed: #updateList
authorClaus Gittinger <cg@exept.de>
Thu, 18 Aug 2011 02:20:52 +0200
changeset 10580 05d94191950a
parent 10579 89bb79eaee8e
child 10581 a516ba666335
changed: #updateList slight update speedup
Tools_ClassCategoryList.st
--- a/Tools_ClassCategoryList.st	Thu Aug 18 02:16:52 2011 +0200
+++ b/Tools_ClassCategoryList.st	Thu Aug 18 02:20:52 2011 +0200
@@ -829,27 +829,39 @@
     oldList := (self categoryList value) ? #().
     (newList sameContentsAs:oldList whenComparedWith:[:a :b | a sameStringAndEmphasisAs: b]) 
     ifFalse:[
-	oldSelection size > 0 ifTrue:[
-	    selectedCategoriesHolder removeDependent:self.
-	    selectedCategoriesHolder value:#().
-	    selectedCategoriesHolder addDependent:self.
-	].
-	categoryList value:newList.
+        "/ a real change, or only emphasis ?
+        (newList sameContentsAs:oldList whenComparedWith:[:a :b | a asString string = b asString string]) ifTrue:[
+            "/ a real change
+            oldSelection size > 0 ifTrue:[
+                selectedCategoriesHolder removeDependent:self.
+                selectedCategoriesHolder value:#().
+                selectedCategoriesHolder addDependent:self.
+            ].
+            categoryList value:newList.
 
-	oldSelection size > 0 ifTrue:[
-	    newSelection := oldSelection select:[:cat | newList includes:cat].
-	    selectedCategoriesHolder value:newSelection.
-	]
+            oldSelection size > 0 ifTrue:[
+                newSelection := oldSelection select:[:cat | newList includes:cat].
+                selectedCategoriesHolder value:newSelection.
+            ]
+        ] ifFalse:[
+            "/ only emphasis
+            categoryList value:newList.
+
+            "/ in case the same categories are present, but classes have changed ...
+            (prevClasses isNil or:[(classes identicalContentsAs:prevClasses) not]) ifTrue:[
+                self updateOutputGenerator.
+            ]
+        ]
     ] ifTrue:[
-	"/ in case the same categories are present, but classes have changed ...
-	(prevClasses isNil or:[(classes identicalContentsAs:prevClasses) not]) ifTrue:[
-	    self updateOutputGenerator.
-	]
+        "/ in case the same categories are present, but classes have changed ...
+        (prevClasses isNil or:[(classes identicalContentsAs:prevClasses) not]) ifTrue:[
+            self updateOutputGenerator.
+        ]
     ].
     listValid := true.
 
-    "Created: / 5.2.2000 / 13:42:13 / cg"
-    "Modified: / 18.8.2000 / 15:52:22 / cg"
+    "Created: / 05-02-2000 / 13:42:13 / cg"
+    "Modified: / 17-08-2011 / 09:52:13 / cg"
 ! !
 
 !ClassCategoryList methodsFor:'setup'!
@@ -891,9 +903,9 @@
 !ClassCategoryList class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassCategoryList.st,v 1.31 2011-07-20 18:18:57 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassCategoryList.st,v 1.32 2011-08-18 00:20:52 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassCategoryList.st,v 1.31 2011-07-20 18:18:57 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassCategoryList.st,v 1.32 2011-08-18 00:20:52 cg Exp $'
 ! !