#FEATURE by exept
class: DirectoryTreeBrowser
changed:
#selectFiles:
#selectedFilenameDirectories
#selectionChanged
--- a/DirectoryTreeBrowser.st Wed Aug 21 16:56:21 2019 +0200
+++ b/DirectoryTreeBrowser.st Wed Aug 21 17:23:34 2019 +0200
@@ -864,7 +864,7 @@
self viewFilesInDirectoryTree value ifFalse:[
(self currentFilesAreInSameDirectory
and:[sel size == 1 and:[self currentSelectedObjects notEmpty]]) ifTrue:[
- currentFileDir := self getDirWithoutFileName:(self currentSelectedObjects first).
+ currentFileDir := self class getDirectoryOf:(self currentSelectedObjects first).
sel first = currentFileDir ifTrue:[
^ self.
].
@@ -1178,7 +1178,10 @@
|root items directory item newRoot rootDir|
- aColOfFileOrDirectory isEmpty ifTrue:[ self selectItems:#()].
+ aColOfFileOrDirectory isEmpty ifTrue:[
+ self selectItems:#().
+ ^ self.
+ ].
root := self fileList root.
root notNil ifTrue:[ rootDir := root fileName asAbsoluteFilename ].
@@ -1189,8 +1192,8 @@
item := self fileList findLastForFile:eachFile inRoot:root directory:rootDir.
item isNil ifTrue:[
"/ set a new root directory
- newRoot := self commonPrefixOfSelectedFiles.
- newRoot := self getDirWithoutFileName:newRoot.
+ newRoot := self commonPrefixOfFiles:(aColOfFileOrDirectory collect:[:each | each directory]).
+ newRoot := self class getDirectoryOf:newRoot.
newRoot := newRoot pathName.
newRoot ~= self rootHolder value ifTrue:[
self rootHolder value:newRoot.
@@ -1267,7 +1270,7 @@
selectedFilenameDirectories
^ self selectedItems
- collect:[:item | self getDirWithoutFileName:(item fileName)]
+ collect:[:item | self class getDirectoryOf:(item fileName)]
as:Set
!