--- a/Tools__ClassList.st Fri Apr 22 06:41:59 2016 +0200
+++ b/Tools__ClassList.st Sat Apr 23 06:56:00 2016 +0200
@@ -17,7 +17,8 @@
instanceVariableNames:'classList classNameList meta lastSelectedClasses
selectedClassNameIndices currentNamespace hidePrivateClasses
unloadedClassesColor markApplicationsHolder classFilterBlock
- sortByNameAndInheritance outGeneratorHolderForMethods'
+ sortByNameAndInheritance outGeneratorHolderForMethods
+ addOwnerClasses'
classVariableNames:''
poolDictionaries:''
category:'Interface-Browsers-New'
@@ -233,6 +234,24 @@
!ClassList methodsFor:'aspects'!
+addOwnerClasses
+ addOwnerClasses isNil ifTrue:[
+ addOwnerClasses := ValueHolder with:true.
+ addOwnerClasses addDependent:self.
+ ].
+ ^ addOwnerClasses.
+!
+
+addOwnerClasses:aValueHolder
+ addOwnerClasses notNil ifTrue:[
+ addOwnerClasses removeDependent:self
+ ].
+ addOwnerClasses := aValueHolder.
+ addOwnerClasses notNil ifTrue:[
+ addOwnerClasses addDependent:self
+ ].
+!
+
classLabelHolder
^ self pseudoListLabelHolder
!
@@ -1257,7 +1276,7 @@
(nameFilter isNil
or:[ (nameFilterIncludesMatchCharacters not and:[ cls name asLowercase startsWith:lcNameFilter])
or:[ (nameFilterIncludesMatchCharacters and:[nameFilter match:cls name ignoreCase:true]) ]]) ifTrue:[
- (owner := cls owningClass) notNil ifTrue:[
+ ((owner := cls owningClass) notNil and:[self addOwnerClasses value]) ifTrue:[
bucket := privateClassesPerClass
at:owner
ifAbsentPut:[SortedCollection new
@@ -1388,7 +1407,7 @@
or:[self isClass:cls shownWithPackageFilter:packageFilter]) ifTrue:[
(classesAlready includes:cls) ifFalse:[
classesAlready add:cls.
- (owner := cls owningClass) notNil ifTrue:[
+ ((owner := cls owningClass) notNil and:[self addOwnerClasses value]) ifTrue:[
(classesAlready includes:owner) ifFalse:[
classesAlready add:owner.
classes add:owner.