#UI_ENHANCEMENT
authorClaus Gittinger <cg@exept.de>
Sat, 02 Apr 2016 16:23:50 +0200
changeset 16238 64ea19197d95
parent 16236 5a78db3ebecc
child 16239 caea939d466b
#UI_ENHANCEMENT class: SystemBrowser changed: #findMethodsIn:inst:class:where: much faster search by avoiding useless progress notifications
SystemBrowser.st
--- a/SystemBrowser.st	Fri Apr 01 23:49:15 2016 +0200
+++ b/SystemBrowser.st	Sat Apr 02 16:23:50 2016 +0200
@@ -6181,7 +6181,7 @@
     "return all instance- (if wantInst is true) and/or classmethods (if wantClass is true) 
      from classes in aCollectionOfClasses, where aBlock evaluates to true."
 
-    |list checkedClasses checkBlock nClasses nClassesDone|
+    |list checkedClasses checkBlock nClasses nClassesDone oldPercentage newPercentage|
 
     checkedClasses := IdentitySet new.
     list := OrderedCollection new.
@@ -6211,7 +6211,8 @@
 
     nClasses := aCollectionOfClasses size.
     nClassesDone := 0.
-
+    oldPercentage := 0.
+    
     aCollectionOfClasses do:[:aClass |
         (aClass notNil and:[aClass isObsolete not]) ifTrue:[
             "
@@ -6228,7 +6229,11 @@
             ].
             nClassesDone > 5 ifTrue:[
                 "/ Processor yield
-                ProgressNotification progressPercentage:(nClassesDone / nClasses)*100.
+                newPercentage := nClassesDone * 100 // nClasses.
+                newPercentage ~= oldPercentage ifTrue:[
+                    ProgressNotification progressPercentage:newPercentage.
+                    oldPercentage := newPercentage.
+                ].
             ].
         ].
         nClassesDone := nClassesDone + 1.