--- 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 $'
! !