FileOperation.st
changeset 7051 4d1e19c7a648
parent 6618 72df4c3bb723
child 7052 a4d223f8235c
--- a/FileOperation.st	Tue Aug 29 12:11:26 2006 +0200
+++ b/FileOperation.st	Tue Aug 29 12:38:25 2006 +0200
@@ -825,14 +825,15 @@
 !
 
 deleteFiles:colOfFiles confirm:confirm
-    |resources answer nFilesToDelete ask labels values fileTypeString msg lbls vals|
+    |resources answer nFilesToDelete ask labels values fileTypeString msg lbls vals dontAskForNonEmptyDirectory|
 
+    dontAskForNonEmptyDirectory := false.
     ask := confirm.
     resources := AbstractFileBrowser classResources.
 
     nFilesToDelete := colOfFiles size.
     colOfFiles do:[:filenameOrString |
-        |filename askForNonEmptyDirectory skip|
+        |filename doDelete skip|
 
         filename := filenameOrString asFilename.
 
@@ -892,34 +893,42 @@
             ].
 
             answer == #yes ifTrue:[
-                askForNonEmptyDirectory := true.
+                doDelete := true.
                 filename isSymbolicLink ifFalse:[
-                    filename isNonEmptyDirectory ifTrue:[
-                        colOfFiles size == 1 ifTrue:[
-                            lbls := #('Cancel' 'Remove').
-                            vals := #(false true).
-                        ] ifFalse:[
-                            lbls := #('Cancel All' 'Keep' 'Remove').
-                            vals := #(nil false true).
-                        ].
-                        askForNonEmptyDirectory := Dialog
-                                    confirmWithCancel:(resources 
-                                                        stringWithCRs:'Directory ''%1'' is not empty\remove anyway ?' 
-                                                        with:filename pathName allBold) 
-                                    labels:( resources array:lbls )
-                                    values:vals 
-                                    default:vals size.
-                        askForNonEmptyDirectory == nil ifTrue:[
-                            ^ self
+                    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:3.
+                            doDelete == nil ifTrue:[
+                                ^ self
+                            ].
+                            doDelete == #removeAll ifTrue:[
+                                dontAskForNonEmptyDirectory := true.
+                                doDelete := true.
+                            ].
                         ].
                     ].
                 ].
-                askForNonEmptyDirectory ifTrue:[
+                doDelete ifTrue:[
                     self deleteFile:filename.
                 ]
             ].
         ].
     ].
+
+    "Modified: / 29-08-2006 / 11:30:12 / cg"
 ! !
 
 !FileOperation::Erase methodsFor:'actions'!
@@ -1330,5 +1339,5 @@
 !FileOperation class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.71 2006-03-03 15:24:21 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.72 2006-08-29 10:38:25 cg Exp $'
 ! !