on #compareAndCompress - ask only once for each unloaded class
authorStefan Vogel <sv@exept.de>
Sat, 15 Mar 2008 19:12:45 +0100
changeset 8026 48f053eed5b8
parent 8025 33e306c26e0f
child 8027 a187f0a31331
on #compareAndCompress - ask only once for each unloaded class
ChangesBrowser.st
--- a/ChangesBrowser.st	Fri Mar 14 11:23:46 2008 +0100
+++ b/ChangesBrowser.st	Sat Mar 15 19:12:45 2008 +0100
@@ -20,7 +20,8 @@
 		tabSpec autoUpdate editingClassSource lastSearchType
 		lastSearchString applyInOriginalNameSpace lastSaveFileName
 		readOnly enforcedPackage enforcedNameSpace updateChangeSet
-		showingDiffs diffViewBox autoloadAsRequired encodingIfKnown'
+		showingDiffs diffViewBox autoloadAsRequired
+		classesNotToBeAutoloaded encodingIfKnown'
 	classVariableNames:'CompressSnapshotInfo NoColoring ShowWarningDialogs
 		DefaultAutoCompare DefaultShowingDiffs'
 	poolDictionaries:''
@@ -1259,6 +1260,7 @@
             ].
         ].
     updateChangeSet := true "false" asValue.
+    classesNotToBeAutoloaded := Set new.
 
     "
       checkBlock is executed by the Processor.
@@ -1527,6 +1529,9 @@
     cls isLoaded ifTrue:[
         ^ true.
     ].
+    (classesNotToBeAutoloaded includes:cls) ifTrue:[
+        ^ false.
+    ].
 
     autoloadAsRequired value == true ifTrue:[
         answer := true
@@ -1536,23 +1541,20 @@
                     with:cls name allBold)).
     ].
 
-    answer == true ifTrue:[
-        Autoload autoloadFailedSignal handle:[:ex |
-            AbortOperationRequest raise.
-            ^ false
-        ] do:[
+    answer isNil ifTrue:[
+        "cancel the operation"
+        AbortAllOperationRequest raise.
+        "not reached"
+    ].
+
+    answer ifTrue:[
+        Autoload autoloadFailedSignal catch:[
             ^ cls autoload isLoaded
         ]
     ].
 
-    answer isNil ifTrue:[
-        "cancel the operation"
-        AbortAllOperationRequest raiseRequest.
-        ^ false.
-    ].
-
-    "cancel operation for this change, (but possibly continue with others)"
-    AbortOperationRequest raiseRequest.
+    classesNotToBeAutoloaded add:cls.
+
     ^ false.
 !
 
@@ -3143,7 +3145,6 @@
             ] ifFalse:[
                 self information:outcome.
             ]
-"/        Transcript showCR:outcome.
         ].
     ].
     ^ isSame.
@@ -4238,14 +4239,15 @@
 !
 
 doCompare
-    "compare change with current system version
-     - give a note in transcript"
+    "compare change with current system version"
+
+    classesNotToBeAutoloaded removeAll.
 
     self withSingleSelectedChangeDo:[:changeNr |
-	self withExecuteCursorDo:[
-	    self compareChange:changeNr
-	].
-	self newLabel:''
+        self withExecuteCursorDo:[
+            self compareChange:changeNr
+        ].
+        self newLabel:''
     ].
 
     "Modified: 24.2.1996 / 19:37:19 / cg"
@@ -4256,30 +4258,30 @@
 
     |toDelete|
 
+    classesNotToBeAutoloaded removeAll.
     toDelete := OrderedCollection new.
     self withExecuteCursorDo:[
-	1 to:self numberOfChanges do:[:changeNr |
-	    [
-		(self compareChange:changeNr showResult:false) == true ifTrue:[
-		    toDelete add:changeNr
-		]
-	    ] on:AbortOperationRequest do:[:ex|  "ignore unloaded clases" ]
-	].
+        1 to:self numberOfChanges do:[:changeNr |
+            (self compareChange:changeNr showResult:false) == true ifTrue:[
+                toDelete add:changeNr
+            ]
+        ].
     ].
 
     toDelete reverseDo:[:changeNr |
-	self silentDeleteChange:changeNr.
+        self silentDeleteChange:changeNr.
     ].
     self setChangeList.
     "
      scroll back a bit, if we are left way behind the list
     "
     changeListView firstLineShown > self numberOfChanges ifTrue:[
-	changeListView makeLineVisible:self numberOfChanges
+        changeListView makeLineVisible:self numberOfChanges
     ].
     self clearCodeView.
 
-    self newLabel:''
+    self newLabel:''.
+    classesNotToBeAutoloaded removeAll.
 !
 
 doCompress
@@ -5988,5 +5990,5 @@
 !ChangesBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.374 2008-03-09 20:25:07 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.375 2008-03-15 18:12:45 stefan Exp $'
 ! !