#UI_ENHANCEMENT
class: SystemBrowser
changed: #findMethodsIn:inst:class:where:
much faster search by avoiding useless progress notifications
--- 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.