--- a/FileOperation.st Fri Mar 21 13:38:39 2003 +0100
+++ b/FileOperation.st Fri Mar 21 14:21:35 2003 +0100
@@ -101,28 +101,34 @@
!FileOperation methodsFor:'dialogs'!
fileExistDialogForNewFile:newFile oldFile:oldFile withCancel:aBoolean
- |msg|
+ "return true, if the file should be moved/copied.
+ Ask user if oldFile exists."
+
+ |msg oldSize newSize sameContents|
+
+ newFile exists ifFalse:[ ^ true ].
+ oldSize := oldFile fileSize.
+ newSize := newFile fileSize.
+
+ sameContents := oldSize = newSize and:[oldFile sameContentsAs:newFile].
- newFile exists ifTrue:[
- msg := 'Overwrite %1 of %2 with size %3\with %4 of %5 and with size %6 ?'.
- msg := AbstractFileBrowser classResources
- string:msg
- withArgs:(Array
- with:newFile asString allBold
- with:(newFile modificationTime printStringFormat:'%(Day)-%(mon)-%(year) %h:%m:%s')
- with:newFile fileSize
- with:oldFile asString
- with:(oldFile modificationTime printStringFormat:'%(Day)-%(mon)-%(year) %h:%m:%s')
- with:oldFile fileSize).
- msg := msg withCRs.
+ sameContents ifTrue:[
+ msg := 'Overwrite existing file:\\ %1\ size: %3 of %2\\with (same contents):\\ %4\ size: %6 of %5'.
+ ] ifFalse:[
+ msg := 'Overwrite existing file:\\ %1\ size: %3 of %2\\with:\\ %4\ size: %6 of %5'.
+ ].
- aBoolean ifTrue:[
- ^ Dialog confirmWithCancel:msg.
- ] ifFalse:[
- ^ Dialog confirm:msg.
- ].
- ].
- ^ true
+ msg := AbstractFileBrowser classResources
+ stringWithCRs:msg
+ withArgs:(Array
+ with:newFile asString allBold
+ with:(newFile modificationTime printStringFormat:'%(Day)-%(mon)-%(year) %h:%m:%s')
+ with:newSize
+ with:oldFile asString allBold
+ with:(oldFile modificationTime printStringFormat:'%(Day)-%(mon)-%(year) %h:%m:%s')
+ with:oldSize).
+
+ ^ Dialog confirm:(msg withCRs) withCancel:aBoolean.
! !
!FileOperation::Copy class methodsFor:'actions'!
@@ -196,7 +202,7 @@
!FileOperation::Copy class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.29 2003-03-18 11:26:45 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.30 2003-03-21 13:21:35 cg Exp $'
! !
!FileOperation::Copy methodsFor:'accessing'!
@@ -322,7 +328,7 @@
].
] ifFalse:[
overWriteWarning ifTrue:[
- askResult := (self fileExistDialogForNewFile:newFile oldFile:filename withCancel:true).
+ askResult := (self fileExistDialogForNewFile:newFile oldFile:filename withCancel:(aColOfSourceFiles size > 1)).
askResult isNil ifTrue:[
result := false.
^ self.
@@ -400,7 +406,7 @@
!FileOperation::Create class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.29 2003-03-18 11:26:45 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.30 2003-03-21 13:21:35 cg Exp $'
! !
!FileOperation::Create methodsFor:'accessing'!
@@ -646,7 +652,7 @@
!FileOperation::Delete class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.29 2003-03-18 11:26:45 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.30 2003-03-21 13:21:35 cg Exp $'
! !
!FileOperation::Delete methodsFor:'actions'!
@@ -680,12 +686,12 @@
deleteFiles:colOfFiles
"delete current selected files/directories
"
- |resources retVal ask size labels values fileTypeString|
+ |resources retVal ask nFilesToDelete labels values fileTypeString|
resources := AbstractFileBrowser classResources.
ask := true.
- size := colOfFiles size.
+ nFilesToDelete := colOfFiles size.
colOfFiles do:[:filenameOrString |
|filename answer doDelete|
@@ -701,20 +707,21 @@
]
].
ask ifTrue:[
- size = 1 ifTrue:[
- labels := #('Cancel' 'No' 'Yes').
- values := #(#cancel #no #yes).
+ nFilesToDelete = 1 ifTrue:[
+ labels := #('No' 'Yes').
+ values := #(#no #yes).
] ifFalse:[
labels := #('Cancel' 'No' 'Yes' 'Yes to All' ).
values := #(#cancel #no #yes #yesToAll).
].
retVal := Dialog
- confirmWithCancel:(resources string:'Really delete %1%2 ?'
- with:fileTypeString
- with:(filename asString allBold))
+ confirmWithCancel:(resources
+ stringWithCRs:'Really delete\\ %1%2 ?'
+ with:fileTypeString
+ with:(filename asString allBold))
labels:(resources array:labels)
values:values
- default:3.
+ default:(values indexOf:#no).
].
retVal == #cancel ifTrue:[
^ self.
@@ -816,7 +823,7 @@
!FileOperation::Move class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.29 2003-03-18 11:26:45 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.30 2003-03-21 13:21:35 cg Exp $'
! !
!FileOperation::Move methodsFor:'accessing'!
@@ -928,7 +935,7 @@
].
] ifFalse:[
overWriteWarning ifTrue:[
- askResult := self fileExistDialogForNewFile:newFile oldFile:filename withCancel:true.
+ askResult := self fileExistDialogForNewFile:newFile oldFile:filename withCancel:(aColOfSourceFiles size > 1).
askResult isNil ifTrue:[
result := false.
^ self.
@@ -986,7 +993,7 @@
!FileOperation::Rename class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.29 2003-03-18 11:26:45 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.30 2003-03-21 13:21:35 cg Exp $'
! !
!FileOperation::Rename methodsFor:'accessing'!
@@ -1078,5 +1085,5 @@
!FileOperation class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.29 2003-03-18 11:26:45 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.30 2003-03-21 13:21:35 cg Exp $'
! !