diff -r e15c5153e4d8 -r 7880fc48f0bb FileSelectionBrowser.st --- a/FileSelectionBrowser.st Fri Sep 25 00:11:46 1998 +0200 +++ b/FileSelectionBrowser.st Fri Sep 25 00:33:09 1998 +0200 @@ -281,11 +281,20 @@ ! fileName: aFileName + |prevDir| self valueOfFileName value: (aFileName ? '') asFilename baseName. + prevDir := directory. directory := directory ? ((aFileName ? '') asFilename asAbsoluteFilename directoryName). - "Modified: / 17.8.1998 / 10:15:54 / cg" + "/ on systems with volumes, we might have to update + "/ the root here. + (prevDir isNil + or:[directory asFilename volume ~= prevDir asFilename volume]) ifTrue:[ + self setRootForFile:directory asFilename. + ]. + + "Modified: / 24.9.1998 / 23:41:08 / cg" ! listOfFileFilters: anArray @@ -462,6 +471,7 @@ ! postBuildWith:aBuilder + |nm file| directoryView listOfFileFilters: listOfFileFilters ? #('*'). directoryView fileSelectAction: [:aFileName |self valueOfFileName value: aFileName asFilename baseName]. @@ -475,17 +485,28 @@ ((self valueOfFileName value ? 'unknown') readStream upTo: $.), '.', (fileFilter copy reverse readStream upTo: $.) reverse) ]. - self directoryTreeView selectPathname: directory ? self class lastSelection ? Filename currentDirectory asAbsoluteFilename name. + nm := directory. + nm isNil ifTrue:[ + nm := self class lastSelection. + nm isNil ifTrue:[ + nm := Filename currentDirectory asAbsoluteFilename name. + ]. + ]. + + self directoryTreeView selectPathname:nm. self directoryInputField entryCompletionBlock:[:f| self entryCompletion]. + file := self valueOfFileName value. directoryView selectionOfFile value: - (directoryView listOfFiles detect: [:row| row baseName = self valueOfFileName value] ifNone: nil). + (directoryView listOfFiles + detect: [:row | row baseName = file] + ifNone: nil). ^super postBuildWith:aBuilder - "Modified: / 24.9.1998 / 21:34:05 / cg" + "Modified: / 24.9.1998 / 23:41:29 / cg" ! ! !FileSelectionBrowser class methodsFor:'documentation'!