FileDialog.st
changeset 6409 b4e8b1c4c2d6
parent 6356 cff12ff7dc25
child 6462 44990c9945fc
--- a/FileDialog.st	Wed Oct 19 14:39:43 2005 +0200
+++ b/FileDialog.st	Mon Nov 07 08:38:00 2005 +0100
@@ -1430,7 +1430,7 @@
 !
 
 commonPostOpen
-    |directory rootDirectory selection lastExtent|
+    |selection lastExtent|
 
 "/     self windowGroup addPreEventHook:self.
 
@@ -1446,10 +1446,7 @@
     treeBrowser doubleClickAction:self doubleClickAction.
     treeBrowser viewFilesInDirectoryTree addDependent:self.
 
-    directory := (self directory) ? (Filename currentDirectory asAbsoluteFilename).
-    rootDirectory := directory asFilename directory.
-    treeBrowser rootHolder value:rootDirectory.
-
+    treeBrowser rootHolder value:(self initialRootDirectory).
     treeBrowser viewFilesInDirectoryTree setValue:(self viewFiles ? true).
     treeBrowser viewFilesInDirectoryTree changed.
     treeBrowser currentFileNameHolder value:(OrderedCollection with:self startFilename).
@@ -1471,6 +1468,28 @@
     self window label:self initialText.
 !
 
+initialRootDirectory
+    "returns the directory the browser is open on
+    "
+    |root|
+
+    (root := self directory) notNil ifTrue:[
+        root := root asFilename.
+
+        root isDirectory ifFalse:[
+            root := root directory.
+
+            root isDirectory ifFalse:[
+                root := nil.
+            ]
+        ]
+    ].
+    root isNil ifTrue:[
+        root := Filename currentDirectory.
+    ].
+    ^ root asAbsoluteFilename
+!
+
 postBuildFileNameField:aWidget
 
     filenameField := aWidget.
@@ -1484,6 +1503,7 @@
 postBuildTreeBrowser:aSubCanvasView
 
     treeBrowser := aSubCanvasView client.
+    treeBrowser rootHolder value:(self initialRootDirectory value).
 !
 
 postBuildWith:aBuilder    
@@ -1625,5 +1645,5 @@
 !FileDialog class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/FileDialog.st,v 1.83 2005-07-13 15:50:42 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/FileDialog.st,v 1.84 2005-11-07 07:38:00 ca Exp $'
 ! !