# HG changeset patch # User penk # Date 1052834753 -7200 # Node ID e6fc72aac6e670ba2620299ebe71b14d7d6aeb5e # Parent 87f5116596806eb4b35b8f7163d0be8acc7c56a5 multiple select allowed in DirectoryTreeBrowser some changes in DirectoryContentsBrowser were necessary diff -r 87f511659680 -r e6fc72aac6e6 AbstractFileBrowser.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 $' ! ! diff -r 87f511659680 -r e6fc72aac6e6 DirectoryContentsBrowser.st --- 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 $' ! ! diff -r 87f511659680 -r e6fc72aac6e6 DirectoryTreeBrowser.st --- 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 $' ! !