--- a/Tools_OrganizerCanvas.st Mon Sep 21 15:56:30 2009 +0200
+++ b/Tools_OrganizerCanvas.st Mon Sep 21 15:56:48 2009 +0200
@@ -4614,32 +4614,42 @@
!
updateCategorySelectionFromClasses
- |allEntry oldSelectedCategories categories|
+ |allEntry changedEntry oldSelectedCategories categories|
allEntry := self class nameListEntryForALL.
+ changedEntry := self class nameListEntryForChanged.
categories := Set new.
oldSelectedCategories := self selectedCategories value.
"/ category-selection feedBack;
"/ if '* all *' was in its selection, keep it (to avoid updating the classList)
- (oldSelectedCategories size > 0
- and:[oldSelectedCategories includes:allEntry]) ifTrue:[
- categories add:allEntry
+ oldSelectedCategories size > 0 ifTrue:[
+ (oldSelectedCategories includes:allEntry) ifTrue:[
+ categories add:allEntry
+ ].
+ (oldSelectedCategories includes:changedEntry) ifTrue:[
+ (oldSelectedCategories size == 1) ifTrue:[
+ "/ don't switch to category
+ ^ self
+ ].
+ categories add:changedEntry
+ ].
].
(self selectedClasses value ? #()) do:[:eachSelectedClass |
- |cat cls|
-
- cls := eachSelectedClass theNonMetaclass.
- cls isPrivate ifTrue:[
- cls := cls topOwningClass.
- ].
- cat := cls category.
- categories add:cat.
+ |cat cls|
+
+ cls := eachSelectedClass theNonMetaclass.
+ cls isPrivate ifTrue:[
+ cls := cls topOwningClass.
+ ].
+ cat := cls category.
+ categories add:cat.
].
+
(categories conform:[:each | (self selectedCategories value ? #()) includes:each]) ifFalse:[
- self selectedCategories value:categories.
+ self selectedCategories value:categories.
].
"Modified: / 18.2.2000 / 13:17:36 / cg"
@@ -4891,5 +4901,5 @@
!OrganizerCanvas class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools_OrganizerCanvas.st,v 1.35 2009-09-14 17:49:22 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools_OrganizerCanvas.st,v 1.36 2009-09-21 13:56:48 cg Exp $'
! !