diff -r 7c050515edb6 -r 73c4f82ca456 Tools__ClassList.st --- 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.