*** empty log message ***
authorClaus Gittinger <cg@exept.de>
Fri, 05 Aug 2005 12:05:11 +0200
changeset 6374 f9bed8385350
parent 6373 16fb0a500e0d
child 6375 b4f3981447a7
*** empty log message ***
AbstractFileBrowser.st
DirectoryContentsBrowser.st
FileOperation.st
--- 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 $'
 ! !