multiple select allowed in DirectoryTreeBrowser some changes in DirectoryContentsBrowser
authorpenk
Tue, 13 May 2003 16:05:53 +0200
changeset 4881 e6fc72aac6e6
parent 4880 87f511659680
child 4882 3d047bde8f8c
multiple select allowed in DirectoryTreeBrowser some changes in DirectoryContentsBrowser were necessary
AbstractFileBrowser.st
DirectoryContentsBrowser.st
DirectoryTreeBrowser.st
--- a/AbstractFileBrowser.st	Tue May 13 14:57:34 2003 +0200
+++ b/AbstractFileBrowser.st	Tue May 13 16:05:53 2003 +0200
@@ -2694,7 +2694,6 @@
 !
 
 notify:aString
-aString = 'nil' ifTrue:[self halt].
     self notifyChannel value:aString
 !
 
@@ -3584,7 +3583,7 @@
 renameSelection
     "rename the selected file(s)"
 
-    self renameFiles:(self currentFileNameHolder value copy)
+    self renameFiles:(self currentFileNameHolder value deepCopy)
 ! !
 
 !AbstractFileBrowser methodsFor:'menu accessing'!
@@ -5509,7 +5508,7 @@
 
 currentFilesAreInSameDirectory
 
-    ^ (self currentDirectories value size == 1).
+    ^ self parentDirectoriesOfCurrentFiles size < 2
 !
 
 currentFilesHasDirectories
@@ -5619,6 +5618,11 @@
         ]
     ].
     ^ nil
+!
+
+parentDirectoriesOfCurrentFiles
+
+    ^ (self currentFileNameHolder value collect:[:file | file directory]) asSet 
 ! !
 
 !AbstractFileBrowser methodsFor:'selection'!
@@ -6171,5 +6175,5 @@
 !AbstractFileBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.142 2003-05-13 12:57:25 penk Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.143 2003-05-13 14:05:53 penk Exp $'
 ! !
--- a/DirectoryContentsBrowser.st	Tue May 13 14:57:34 2003 +0200
+++ b/DirectoryContentsBrowser.st	Tue May 13 16:05:53 2003 +0200
@@ -1092,7 +1092,7 @@
 currentFileNameHolderChanged
     "filename changed
     "
-    |newDir currentDir aColOfFiles|
+    |newDir currentDir aColOfFiles parents|
 
     aColOfFiles := self currentFileNameHolder value.
     (aColOfFiles isEmpty or:[self currentFilesAreInSameDirectory not]) ifTrue:[
@@ -1102,8 +1102,15 @@
     aColOfFiles size == 1 ifTrue:[
         self startDiskUsageInfoProcess.
     ].
-
-    newDir := self currentDirectories value first.
+    parents := self parentDirectoriesOfCurrentFiles.
+    parents size ~= 1 ifTrue:[ ^ self].
+    ((aColOfFiles size = 1) and:[aColOfFiles first isDirectory]) ifTrue:[
+        "/ only one directory is selected newDir is this directory
+        newDir := aColOfFiles first.
+    ] ifFalse:[
+        "/ set newDir to the parents dir
+        newDir := parents first.
+    ].
     currentDir := self directory.
     newDir = currentDir ifTrue:[
         self selectFiles:aColOfFiles.
@@ -2819,5 +2826,5 @@
 !DirectoryContentsBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/DirectoryContentsBrowser.st,v 1.105 2003-05-13 12:57:12 penk Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/DirectoryContentsBrowser.st,v 1.106 2003-05-13 14:04:59 penk Exp $'
 ! !
--- a/DirectoryTreeBrowser.st	Tue May 13 14:57:34 2003 +0200
+++ b/DirectoryTreeBrowser.st	Tue May 13 16:05:53 2003 +0200
@@ -726,7 +726,7 @@
 
     sel := self selectedFiles.
     (self viewFilesInDirectoryTree value not) ifTrue:[
-        (self currentFilesAreInSameDirectory and:[sel size == 1]) ifTrue:[
+        (self currentFilesAreInSameDirectory and:[sel size == 1 and:[self currentFileNameHolder value notEmpty]]) ifTrue:[
             currentFileDir := self getDirWithoutFileName:(self currentFileNameHolder value first).
             (sel first = currentFileDir) ifTrue:[
                 ^ self.
@@ -1190,6 +1190,9 @@
 
 postOpen
 
+    self windowGroup application class == FileBrowserV2 ifTrue:[
+        self multipleSelect:true.
+    ].
     self rootHolderChanged.
     self currentFileNameHolderChangedForCommon.
     self currentFileNameHolderChanged.
@@ -1238,5 +1241,5 @@
 !DirectoryTreeBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/DirectoryTreeBrowser.st,v 1.63 2003-05-07 14:40:03 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/DirectoryTreeBrowser.st,v 1.64 2003-05-13 14:05:07 penk Exp $'
 ! !