--- a/Tools_ProjectList.st Mon Sep 21 23:46:51 2009 +0200
+++ b/Tools_ProjectList.st Tue Sep 22 10:23:57 2009 +0200
@@ -477,7 +477,7 @@
makeGenerator
"return a generator which enumerates the classes from the selected project(s)."
- |selectedPackages thePackage hideUnloadedClasses|
+ |selectedPackages thePackage hideUnloadedClasses showChangedClasses|
selectedPackages := self selectedProjects value.
selectedPackages size == 0 ifTrue:[
@@ -485,6 +485,7 @@
].
selectedPackages := selectedPackages collect:[:p | p string withoutSeparators].
+ showChangedClasses := selectedPackages includes:(self class nameListEntryForChanged).
hideUnloadedClasses := self hideUnloadedClasses value.
(selectedPackages includes:(self class nameListEntryForALL)) ifTrue:[
@@ -512,8 +513,14 @@
"/ faster common case
thePackage := selectedPackages first.
- ^ Iterator on:[:whatToDo | |doInclude|
+ ^ Iterator on:[:whatToDo |
+ |changedClasses|
+
+ showChangedClasses ifTrue:[ changedClasses := ChangeSet current changedClasses ].
+
Smalltalk allClassesDo:[:cls |
+ |doInclude|
+
(hideUnloadedClasses not or:[cls isLoaded])
ifTrue:[
(cls isRealNameSpace not) ifTrue:[
@@ -522,7 +529,13 @@
cls isJavaClass ifFalse:[
doInclude := (cls methodDictionary contains:[:mthd | thePackage = mthd package])
or:[ cls class methodDictionary contains:[:mthd | thePackage = mthd package]].
- ]
+ ].
+ doInclude ifFalse:[
+ (showChangedClasses and:[ (changedClasses includes:cls theNonMetaclass)
+ or:[(changedClasses includes:cls theMetaclass)] ]) ifTrue:[
+ doInclude := true
+ ].
+ ].
].
doInclude ifTrue:[
whatToDo value:cls
@@ -533,8 +546,14 @@
]
].
- ^ Iterator on:[:whatToDo | |doInclude|
+ ^ Iterator on:[:whatToDo |
+ |changedClasses|
+
+ showChangedClasses ifTrue:[ changedClasses := ChangeSet current changedClasses ].
+
Smalltalk allClassesDo:[:cls |
+ |doInclude|
+
(hideUnloadedClasses not or:[cls isLoaded])
ifTrue:[
(cls isRealNameSpace not) ifTrue:[
@@ -543,6 +562,13 @@
cls isJavaClass ifFalse:[
doInclude := (cls methodDictionary contains:[:mthd | selectedPackages includes:mthd package])
or:[ cls class methodDictionary contains:[:mthd | selectedPackages includes:mthd package]].
+ doInclude ifFalse:[
+ (showChangedClasses and:[ (changedClasses includes:cls theNonMetaclass)
+ or:[(changedClasses includes:cls theMetaclass)] ]) ifTrue:[
+ doInclude := true
+ ].
+ ].
+
]
].
doInclude ifTrue:[
@@ -660,7 +686,7 @@
!
listOfProjects
- |allProjects|
+ |allProjects numClassesInChangeSet|
allProjects := self allShownProjects.
@@ -669,6 +695,13 @@
"/ self projectLabelHolder value:(allProjects first , ' [Project]').
self projectLabelHolder value:(LabelAndIcon icon:(self class packageIcon) string:allProjects first).
].
+
+ numClassesInChangeSet := ChangeSet current changedClasses size.
+ numClassesInChangeSet > 0 ifTrue:[
+ "/ dont include count - makeGenerator compares against the un-expanded nameListEntry (sigh - need two lists)
+ allProjects addFirst:((self class nameListEntryForChanged "bindWith:numClassesInChangeSet") allItalic).
+ ].
+
allProjects size > 1 ifTrue:[
allProjects addFirst:(self class nameListEntryForALL asText allItalic).
].
@@ -837,5 +870,5 @@
!ProjectList class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools_ProjectList.st,v 1.39 2009-09-21 08:19:52 fm Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools_ProjectList.st,v 1.40 2009-09-22 08:23:57 cg Exp $'
! !