diff -r 4d211e45f7b4 -r b30d103a8bc9 FileOperation.st --- 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 $' ! !