--- a/AbstractFileBrowser.st Fri Aug 05 11:34:33 2005 +0200
+++ b/AbstractFileBrowser.st Fri Aug 05 12:05:11 2005 +0200
@@ -3383,16 +3383,18 @@
!
copyFiles:aColOfSourceFiles to:aDirectory
- |copy|
+ |copy result|
self withWaitCursorDo:[
copy := FileOperation copyFiles:aColOfSourceFiles to:aDirectory.
- copy result ifFalse:[
+ copy result ifTrue:[
+ result := Dictionary withKeys:(copy collectionOfCopiedFiles) andValues:(copy collectionOfNewFiles).
+ ] ifFalse:[
self notify:copy errorString.
].
self updateCurrentDirectory.
].
- ^ copy collectionOfCopiedFiles
+ ^ result
!
copyOrMoveDialog:aCollectionOfFiles for:aDestinationDirectory
@@ -3747,12 +3749,15 @@
].
].
copiedFiles := self copyFiles:(buffer files) to:destination.
- thisIsAFileMoveOperation ifTrue:[
- self deleteFiles:copiedFiles confirm:false.
- ].
- "/ select those pasted files.
-self halt.
- self currentFileNameHolder value:buffer files.
+ copiedFiles notEmptyOrNil ifTrue:[
+ thisIsAFileMoveOperation ifTrue:[
+ self deleteFiles:(copiedFiles keys) confirm:false.
+ ].
+
+ "/ select those pasted files.
+ self updateCurrentDirectory:true.
+ self currentFileNameHolder value:copiedFiles values.
+ ]
!
renameFile:aFile
@@ -6799,5 +6804,5 @@
!AbstractFileBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.304 2005-08-05 09:34:33 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.305 2005-08-05 10:04:57 cg Exp $'
! !
--- a/DirectoryContentsBrowser.st Fri Aug 05 11:34:33 2005 +0200
+++ b/DirectoryContentsBrowser.st Fri Aug 05 12:05:11 2005 +0200
@@ -20,7 +20,7 @@
directoryChangeFlag directoryContentsChangeFlag filterChangeFlag
sortBlockChangeFlag isBusy changeSema filteredItems allItems
diskUsageInfo diskUsageUpdateProcess multipleSelect
- doubleClickAction'
+ doubleClickAction updateCycleSemaphore'
classVariableNames:'Debug'
poolDictionaries:''
category:'Interface-Tools-File'
@@ -1130,6 +1130,8 @@
self flushRememberedDiskUsageInfo.
].
self startDiskUsageInfoProcess.
+
+ updateCycleSemaphore wait.
!
doUpdateDirectoryContents
@@ -1142,6 +1144,8 @@
self flushRememberedDiskUsageInfo.
].
self startDiskUsageInfoProcess.
+
+ updateCycleSemaphore wait.
!
doubleClickedAt:anItemIndex
@@ -1748,7 +1752,7 @@
initialize
changeSema := Semaphore new.
-
+ updateCycleSemaphore := Semaphore new.
super initialize.
! !
@@ -2519,6 +2523,7 @@
].
] ensure:[
self isBusy:false.
+ updateCycleSemaphore signalIf
].
"/ Transcript showCR:'STOP'.
! !
@@ -2526,7 +2531,6 @@
!DirectoryContentsBrowser methodsFor:'update task trigger'!
wakeUp
-
changeSema signal.
!
@@ -3199,5 +3203,5 @@
!DirectoryContentsBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/DirectoryContentsBrowser.st,v 1.181 2005-07-14 08:50:22 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/DirectoryContentsBrowser.st,v 1.182 2005-08-05 10:05:03 cg Exp $'
! !
--- a/FileOperation.st Fri Aug 05 11:34:33 2005 +0200
+++ b/FileOperation.st Fri Aug 05 12:05:11 2005 +0200
@@ -20,7 +20,7 @@
!
FileOperation subclass:#Copy
- instanceVariableNames:'colOfCopiedFiles'
+ instanceVariableNames:'copiedFiles newFiles'
classVariableNames:''
poolDictionaries:''
privateIn:FileOperation
@@ -48,7 +48,7 @@
!
FileOperation subclass:#Move
- instanceVariableNames:'colOfMovedFiles'
+ instanceVariableNames:'movedFiles'
classVariableNames:''
poolDictionaries:''
privateIn:FileOperation
@@ -302,10 +302,17 @@
!
collectionOfCopiedFiles
- colOfCopiedFiles isNil ifTrue:[
- colOfCopiedFiles := OrderedCollection new.
+ copiedFiles isNil ifTrue:[
+ copiedFiles := OrderedCollection new.
].
- ^ colOfCopiedFiles
+ ^ copiedFiles
+!
+
+collectionOfNewFiles
+ newFiles isNil ifTrue:[
+ newFiles := OrderedCollection new.
+ ].
+ ^ newFiles
! !
!FileOperation::Copy methodsFor:'actions'!
@@ -383,7 +390,7 @@
!
copyFiles:aColOfSourceFiles to:aDirectory withOverWriteWarning:overWriteWarning copyFileIfSame:copy
- |newFile suffix fileString sourceIsDirectory overWriteExisting|
+ |newFile suffix fileString sourceIsDirectory doCopy|
(aDirectory exists) ifFalse:[
Dialog warn:'Can''t copy to non-existing directory ', aDirectory asString.
@@ -395,10 +402,11 @@
result := false.
^ self
].
- aColOfSourceFiles do:[: filename |
+
+ aColOfSourceFiles do:[:filename |
newFile := aDirectory construct:(filename baseName).
sourceIsDirectory := filename isDirectory.
- overWriteExisting := true.
+ doCopy := true.
(newFile exists) ifTrue:[
((newFile asString = filename asString) and:[copy]) ifTrue:[
[newFile exists] whileTrue:[
@@ -411,8 +419,8 @@
].
] ifFalse:[
overWriteWarning ifTrue:[
- overWriteExisting := (self fileExistsDialogForNewFile:newFile oldFile:filename withCancel:(aColOfSourceFiles size > 1) withRemoveIfSame:false).
- overWriteExisting isNil ifTrue:[
+ doCopy := (self fileExistsDialogForNewFile:newFile oldFile:filename withCancel:(aColOfSourceFiles size > 1) withRemoveIfSame:false).
+ doCopy isNil ifTrue:[
" abort pressed "
result := false.
^ self.
@@ -420,7 +428,7 @@
]
].
].
- overWriteExisting ifTrue:[
+ doCopy ifTrue:[
Error handle:[:ex|
"was not able to copy it"
result := false.
@@ -442,7 +450,8 @@
filename copyTo:newFile.
].
].
- self collectionOfCopiedFiles add:filename
+ self collectionOfCopiedFiles add:filename.
+ self collectionOfNewFiles add:newFile.
]
].
DirectoryContents flushCachedDirectoryFor:aDirectory.
@@ -1009,10 +1018,10 @@
!
collectionOfMovedFiles
- colOfMovedFiles isNil ifTrue:[
- colOfMovedFiles := OrderedCollection new.
+ movedFiles isNil ifTrue:[
+ movedFiles := OrderedCollection new.
].
- ^ colOfMovedFiles
+ ^ movedFiles
! !
!FileOperation::Move methodsFor:'actions'!
@@ -1321,5 +1330,5 @@
!FileOperation class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.69 2005-08-05 09:34:24 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.70 2005-08-05 10:05:11 cg Exp $'
! !