--- a/Tools_ClassCategoryList.st Mon Sep 21 15:11:31 2009 +0200
+++ b/Tools_ClassCategoryList.st Mon Sep 21 15:56:13 2009 +0200
@@ -513,7 +513,7 @@
makeGenerator
"return a generator which enumerates the classes from the selected category."
- |cats hideUnloadedClasses allName nameSpaceFilter packageFilter|
+ |cats hideUnloadedClasses allName nameSpaceFilter packageFilter showChangedClasses|
cats := self selectedCategoriesStrings.
cats size == 0 ifTrue:[
@@ -528,6 +528,8 @@
]
].
+ showChangedClasses := cats includes:(self class nameListEntryForChanged).
+
hideUnloadedClasses := self hideUnloadedClasses value ? false.
nameSpaceFilter := self nameSpaceFilter value.
nameSpaceFilter notNil ifTrue:[
@@ -572,12 +574,17 @@
].
^ Iterator on:[:whatToDo |
- Smalltalk allClassesDo:[:cls | |cat|
+ Smalltalk allClassesDo:[:cls |
+ |cat|
+
(hideUnloadedClasses not or:[cls isLoaded])
ifTrue:[
(cls isRealNameSpace not) ifTrue:[
cat := cls category ? '* no category *'.
- (cats includes:cat) ifTrue:[
+ ((cats includes:cat)
+ or:[showChangedClasses
+ and:[ (ChangeSet current changedClasses includes:cls theNonMetaclass)
+ or:[(ChangeSet current changedClasses includes:cls theMetaclass)] ]]) ifTrue:[
(nameSpaceFilter isNil
or:[self isClass:cls shownWithNameSpaceFilter:nameSpaceFilter]) ifTrue:[
(packageFilter isNil
@@ -615,7 +622,7 @@
listOfCategories
|categories hideUnloadedClasses generator nameSpaceFilter packageFilter allName
categoriesWithExtensions categoriesWithChangedCode categoriesWithRemoteChangedCode
- classesInChangeSet classesInRemoteChangeSet|
+ classesInChangeSet classesInRemoteChangeSet numClassesInChangeSet numClasses|
allName := self class nameListEntryForALL.
@@ -629,6 +636,8 @@
(packageFilter includes:allName) ifTrue:[packageFilter := nil].
].
+ numClasses := 0.
+
categories := Set new.
categoriesWithExtensions := Set new.
categoriesWithChangedCode := Set new.
@@ -652,6 +661,8 @@
or:[self isClass:cls shownWithNameSpaceFilter:nameSpaceFilter]) ifTrue:[
(packageFilter isNil
or:[self isClass:cls shownWithPackageFilter:packageFilter]) ifTrue:[
+ numClasses := numClasses + 1.
+
cat := cls category ? '* no category *'.
cat isString ifFalse:[self halt:'oops - strange category'].
categories add:cat.
@@ -706,12 +717,20 @@
]
]
].
- categories size == 1 ifTrue:[
- self classCategoryLabelHolder value:(categories first)
+
+ numClassesInChangeSet := ChangeSet current changedClasses size.
+ numClassesInChangeSet > 0 ifTrue:[
+ "/ dont include count - makeGenerator compares against the un-expanded nameListEntry (sigh - need two lists)
+ categories addFirst:((self class nameListEntryForChanged "bindWith:numClassesInChangeSet") allItalic).
].
- categories size == 0 ifFalse:[
- categories addFirst:(self class nameListEntryForALL allItalic).
+
+ categories size > 0 ifTrue:[
+ categories size == 1 ifTrue:[
+ self classCategoryLabelHolder value:(categories first)
+ ].
+ categories addFirst:((self class nameListEntryForALL "WithCount bindWith:numClasses") allItalic).
].
+
^ categories
"Created: / 05-02-2000 / 13:42:12 / cg"
@@ -862,5 +881,5 @@
!ClassCategoryList class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassCategoryList.st,v 1.22 2009-09-15 08:33:17 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassCategoryList.st,v 1.23 2009-09-21 13:56:13 cg Exp $'
! !