ST/X Bug 830 - Private class in private class list of SystemBrowser
authorClaus Gittinger <cg@exept.de>
Mon, 22 Sep 2008 17:10:10 +0200
changeset 8274 31eb11f780e7
parent 8273 ab37b03883e0
child 8275 cfc1193bd6b3
ST/X Bug 830 - Private class in private class list of SystemBrowser
Tools_ClassList.st
--- a/Tools_ClassList.st	Mon Sep 22 13:31:21 2008 +0200
+++ b/Tools_ClassList.st	Mon Sep 22 17:10:10 2008 +0200
@@ -1080,8 +1080,12 @@
                         (classFilterBlock isNil
                         or:[(classFilterBlock value:cls)]) ifTrue:[
                             classesAlready add:cls.
+
                             (owner := cls owningClass) notNil ifTrue:[
-                                bucket := privateClassesPerClass at:owner ifAbsentPut:[SortedCollection new sortBlock:[:a :b | (a name ? '?') < (b name ? '?')] ].
+                                bucket := privateClassesPerClass 
+                                                at:owner 
+                                                ifAbsentPut:[SortedCollection new 
+                                                                sortBlock:[:a :b | (a name ? '?') < (b name ? '?')] ].
                                 bucket add:cls.
                             ] ifFalse:[
                                 classesOrdered add:cls.
@@ -1095,8 +1099,14 @@
 
     "/ are there any private classes, for which the owner is not in the list ?
     privateClassesPerClass keysAndValuesDo:[:eachOwnerClass :privateClasses|
-        (classesOrdered includes:eachOwnerClass) ifFalse:[
-            classesOrdered addAll:privateClasses
+        (classesAlready includes:eachOwnerClass) ifFalse:[
+            classesOrdered add:eachOwnerClass.
+            classesAlready add:eachOwnerClass.
+"/            privateClasses do:[:privateClass |
+"/                (classesOrdered includes:privateClass) ifFalse:[
+"/                    classesOrdered add:privateClass.
+"/                ].
+"/            ].
         ].
     ].
 
@@ -1118,6 +1128,7 @@
                 |bucket|
 
                 stream nextPut:eachClass.
+
                 bucket := privateClassesPerClass at:eachClass ifAbsent:nil.
                 bucket notNil ifTrue:[
                     bucket do:action.
@@ -1194,28 +1205,10 @@
     ].
 
     "/ namespace
-    indent := 0.
     indent := (nm count:[:char | char == $:]) // 2.
     indent > 0 ifTrue:[
         indent := indent * self indentPerPrivacyLevel.
-        indent <= 12 ifTrue:[
-            indentString := #(
-                         ' '
-                         '  '
-                         '   '
-                         '    '
-                         '     '
-                         '      '
-                         '       '
-                         '        '
-                         '         '
-                         '          '
-                         '           '
-                         '            '
-                       ) at:indent.
-        ] ifFalse:[
-            indentString := String new:indent withAll:Character space.
-        ].
+        indentString := String new:indent withAll:Character space.
         nm := indentString , '::' , aClass nameWithoutPrefix
     ].
     ^ nm
@@ -1224,9 +1217,6 @@
 !
 
 nameListForClasses:aClassList
-    "only reconstruct the names - class list & selection remains
-     unschanged. Invoked when the organizerMode mode changes"
-
     |orgMode namespaces showNamespaces fullNameList nameList
      filteredPackages filteredNameSpaces classesInCangeSet classesInRemoteChangeSet
      classNamesInChangeSet classNamesInRemoteChangeSet|
@@ -1355,8 +1345,8 @@
 !
 
 reconstructNameList
-    "only reconstruct the names - class list & selection remains
-     unschanged. Invoked when the organizerMode mode changes"
+    "only reconstruct the names - class list & selection remains unschanged.
+     Invoked when the organizerMode mode changes"
 
     |prevMode listView oldNameList newNameList sav|
 
@@ -1672,5 +1662,5 @@
 !ClassList class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.36 2008-09-05 08:53:01 mb Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.37 2008-09-22 15:10:10 cg Exp $'
 ! !