multiple select allowed in DirectoryTreeBrowser some changes in DirectoryContentsBrowser
were necessary
--- 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 $'
! !