Marcel Taeumel uploaded a new version of Tools to project The Trunk: http://source.squeak.org/trunk/Tools-mt.1235.mcz
==================== Summary ====================
Name: Tools-mt.1235 Author: mt Time: 5 October 2023, 10:28:11.042807 am UUID: 81a8a9b8-417d-9245-827e-0dbb0449c568 Ancestors: Tools-mt.1234
In TreeBrowser, fixes performance issue with "-- all --" class/system category.
=============== Diff against Tools-mt.1234 ===============
Item was changed: ----- Method: TreeBrowser>>allClassesInCategory (in category 'class tree - support') ----- allClassesInCategory "Answer a list of all class objects in the selected system category." self hasSystemCategorySelected ifFalse: [^ #()]. + self isShowingAllClasses ifTrue: [^ #() "See #classChildren:. No support for #updateTreesIfNeeded."]. self isHierarchy ifTrue: [^ self allClassesForHierarchy]. ^ self class showAllClassesInPackage ifFalse: [self defaultClassList collect: [:className | self environment classNamed: className] thenSelect: [:classOrNil | classOrNil notNil "guard environment"]] ifTrue: [PackageOrganizer default packageNamed: selectedSystemCategory ifPresent: [:pkg | pkg classes] ifAbsent: [self defaultClassList collect: [:className | self environment classNamed: className] thenSelect: [:classOrNil | classOrNil notNil "guard environment"]]]!
Item was changed: ----- Method: TreeBrowser>>allClassesInCategoryAndOther (in category 'class tree - support') ----- allClassesInCategoryAndOther "Like #allClassesInCategory, but adds missing inner classes for a complete-looking inheritance tree." | allClasses roots more | + extraClasses := #(). + self hasSystemCategorySelected ifFalse: [^ #()]. + self isShowingAllClasses ifTrue: [^ #() "See #classChildren:. No support for #updateTreesIfNeeded."]. self isHierarchy ifTrue: [^ self allClassesForHierarchy]. + - allClasses := self allClassesInCategory. roots := self classRootsFrom: allClasses. "See #classRoots for the widget callback" more := Set new. "Which inner classes to add?" roots do: [:inner | roots do: [:outer | (inner inheritsFrom: outer) ifTrue: [ | addMore | addMore := true. inner allSuperclassesDo: [:missing | (addMore := addMore and: [missing ~~ outer]) ifTrue: [more add: missing] ]] ]]. self flag: #ugly. "mt: This is an unexpected side effect and clashes with how #updateTreesIfNeeded works... yet, it does not send a superfluous changed event to the view..." extraClasses := more asArray. ^ more ifEmpty: [allClasses] ifNotEmpty: [allClasses, more asArray]!
squeak-dev@lists.squeakfoundation.org