busy indicator
authorClaus Gittinger <cg@exept.de>
Mon, 11 Oct 2010 13:09:40 +0200
changeset 9576 4505159b2222
parent 9575 548adf8e9d98
child 9577 99f5354e0f5c
busy indicator
FileOperation.st
--- a/FileOperation.st	Mon Oct 11 13:09:17 2010 +0200
+++ b/FileOperation.st	Mon Oct 11 13:09:40 2010 +0200
@@ -1033,107 +1033,111 @@
 !
 
 deleteFiles:colOfFiles confirm:confirm
-    |resources answer nFilesToDelete ask labels values fileTypeString msg lbls vals dontAskForNonEmptyDirectory|
+    |resources answer nFilesToDelete ask labels values fileTypeString msg lbls vals dontAskForNonEmptyDirectory
+     nFilesDone|
 
     dontAskForNonEmptyDirectory := false.
     ask := confirm.
     resources := AbstractFileBrowser classResources.
 
     nFilesToDelete := colOfFiles size.
+    nFilesDone := 0.
     colOfFiles do:[:filenameOrString |
-	|filename doDelete skip|
-
-	filename := filenameOrString asFilename.
+        |filename doDelete skip|
 
-	skip := false.
-	fileTypeString := ''.
-	filename isSymbolicLink ifTrue:[
-	    fileTypeString := 'symbolic link '.
-	] ifFalse:[
-	    filename exists ifFalse:[
-		(Dialog
-		    confirm:('%1 does not exist.' bindWith:filename asString allBold)
-		    yesLabel:(resources string:'Proceed')
-		    noLabel:(resources string:'Cancel'))
-		ifFalse:[
-		    ^ self.
-		].
-		skip := true.
-	    ]
-	].
-	skip ifFalse:[
-	    ask ifTrue:[
-		nFilesToDelete = 1 ifTrue:[
-		    labels := #('No' 'Yes').
-		    values := #(#no #yes).
-		] ifFalse:[
-		    labels := #('Cancel' 'No' 'Yes' 'Yes to All' ).
-		    values := #(#cancel #no #yes #yesToAll).
-		].
-		msg := self isErase ifTrue:'Really erase' ifFalse:'Really delete'.
-		msg := msg ,
-		       (nFilesToDelete = 1
-			    ifTrue:'\\%1%2 ?'
-			    ifFalse:'\\%1%2 \\(%3 files alltogether)').
-		answer := Dialog
-		    confirmWithCancel:(resources
-					stringWithCRs:msg
-					with:fileTypeString
-					with:(filename asString allBold)
-					with:nFilesToDelete)
-		    labels:(resources array:labels)
-		    values:values
-		    default:(values indexOf:#yes).
-	    ] ifFalse:[
-		answer := #yesToAll.
-	    ].
+        filename := filenameOrString asFilename.
+        skip := false.
+        fileTypeString := ''.
+        filename isSymbolicLink ifTrue:[
+            fileTypeString := 'symbolic link '.
+        ] ifFalse:[
+            filename exists ifFalse:[
+                (Dialog
+                    confirm:('%1 does not exist.' bindWith:filename asString allBold)
+                    yesLabel:(resources string:'Proceed')
+                    noLabel:(resources string:'Cancel'))
+                ifFalse:[
+                    ^ self.
+                ].
+                skip := true.
+            ]
+        ].
+        skip ifFalse:[
+            ask ifTrue:[
+                nFilesToDelete = 1 ifTrue:[
+                    labels := #('No' 'Yes').
+                    values := #(#no #yes).
+                ] ifFalse:[
+                    labels := #('Cancel' 'No' 'Yes' 'Yes to All' ).
+                    values := #(#cancel #no #yes #yesToAll).
+                ].
+                msg := self isErase ifTrue:'Really erase' ifFalse:'Really delete'.
+                msg := msg ,
+                       (nFilesToDelete = 1
+                            ifTrue:'\\%1%2 ?'
+                            ifFalse:'\\%1%2 \\(%3 files alltogether)').
+                answer := Dialog
+                    confirmWithCancel:(resources
+                                        stringWithCRs:msg
+                                        with:fileTypeString
+                                        with:(filename asString allBold)
+                                        with:nFilesToDelete)
+                    labels:(resources array:labels)
+                    values:values
+                    default:(values indexOf:#yes).
+            ] ifFalse:[
+                answer := #yesToAll.
+            ].
 
-	    answer == #cancel ifTrue:[
-		^ self.
-	    ].
+            answer == #cancel ifTrue:[
+                ^ self.
+            ].
 
-	    answer == #yesToAll ifTrue:[
-		ask := false.
-		answer := #yes.
-	    ].
+            answer == #yesToAll ifTrue:[
+                ask := false.
+                answer := #yes.
+            ].
 
-	    answer == #yes ifTrue:[
-		doDelete := true.
-		filename isSymbolicLink ifFalse:[
-		    dontAskForNonEmptyDirectory ifFalse:[
-			filename isNonEmptyDirectory ifTrue:[
-			    colOfFiles size == 1 ifTrue:[
-				lbls := #('Cancel' 'Remove').
-				vals := #(false true).
-			    ] ifFalse:[
-				lbls := #('Cancel All' 'Keep' 'Remove' 'Remove All').
-				vals := #(nil false true #removeAll).
-			    ].
-			    doDelete := Dialog
-					confirmWithCancel:(resources
-							    stringWithCRs:'Directory ''%1'' is not empty\remove anyway ?'
-							    with:filename pathName allBold)
-					labels:( resources array:lbls )
-					values:vals
-					default:(vals indexOf:true).
-			    doDelete == nil ifTrue:[
-				^ self
-			    ].
-			    doDelete == #removeAll ifTrue:[
-				dontAskForNonEmptyDirectory := true.
-				doDelete := true.
-			    ].
-			].
-		    ].
-		].
-		doDelete ifTrue:[
-		    self deleteFile:filename.
-		]
-	    ].
-	].
+            answer == #yes ifTrue:[
+                doDelete := true.
+                filename isSymbolicLink ifFalse:[
+                    dontAskForNonEmptyDirectory ifFalse:[
+                        filename isNonEmptyDirectory ifTrue:[
+                            colOfFiles size == 1 ifTrue:[
+                                lbls := #('Cancel' 'Remove').
+                                vals := #(false true).
+                            ] ifFalse:[
+                                lbls := #('Cancel All' 'Keep' 'Remove' 'Remove All').
+                                vals := #(nil false true #removeAll).
+                            ].
+                            doDelete := Dialog
+                                        confirmWithCancel:(resources
+                                                            stringWithCRs:'Directory ''%1'' is not empty\remove anyway ?'
+                                                            with:filename pathName allBold)
+                                        labels:( resources array:lbls )
+                                        values:vals
+                                        default:(vals indexOf:true).
+                            doDelete == nil ifTrue:[
+                                ^ self
+                            ].
+                            doDelete == #removeAll ifTrue:[
+                                dontAskForNonEmptyDirectory := true.
+                                doDelete := true.
+                            ].
+                        ].
+                    ].
+                ].
+                doDelete ifTrue:[
+                    ProgressNotification progressPercentage:(nFilesDone / nFilesToDelete)*100.
+                    self deleteFile:filename.
+                    nFilesDone := nFilesDone + 1.
+                    ProgressNotification progressPercentage:(nFilesDone / nFilesToDelete)*100.
+                ]
+            ].
+        ].
     ].
 
-    "Modified: / 05-09-2006 / 11:52:35 / cg"
+    "Modified: / 11-10-2010 / 13:08:20 / cg"
 ! !
 
 !FileOperation::Erase methodsFor:'actions-basic'!
@@ -1551,9 +1555,9 @@
 !FileOperation class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.85 2010-07-09 17:14:26 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.86 2010-10-11 11:09:40 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.85 2010-07-09 17:14:26 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.86 2010-10-11 11:09:40 cg Exp $'
 ! !