DirectoryContentsBrowser.st
changeset 4013 049b94940308
parent 4012 fa4418738475
child 4014 ba5e66d9b931
--- a/DirectoryContentsBrowser.st	Wed Oct 16 18:24:46 2002 +0200
+++ b/DirectoryContentsBrowser.st	Thu Oct 17 10:11:31 2002 +0200
@@ -3,11 +3,11 @@
 AbstractFileBrowser subclass:#DirectoryContentsBrowser
 	instanceVariableNames:'readDirectoryTask updateDirectoryContentsTask updateColumnsTask
 		modificationTime directory columnDescriptors iconIndex
-		fileDescriptionIndex iconExtent tableColumns currentSortOrder
-		previewIndex allItemsList currentItemList wantSelectFiles
-		updateToExternFileHolderLock updateTaskSema inDropMode
-		draggedItem canDropItem viewBrowserMenu updateContentsSelection
-		selectionInFileList contentsBrowser browserItemList'
+		fileDescriptionIndex iconExtent tableColumns previewIndex
+		allItemsList currentItemList wantSelectFiles
+		updateToExternFileHolderLock inDropMode draggedItem canDropItem
+		viewBrowserMenu updateContentsSelection selectionInFileList
+		contentsBrowser browserItemList'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'Interface-Tools-File'
@@ -898,7 +898,7 @@
 doubleClickedAt:anItemIndex
 
     self withWaitCursorDo:[
-        self enterActionFor:(self selectedItems first). "/ anItemIndex.
+        self enterActionFor:(self browserItemList at:anItemIndex). "/ anItemIndex.
     ]
 !
 
@@ -951,7 +951,7 @@
                 self updateColumnsTaskStop.  
                 browserItemList contents:anItemCollection.
                 self updateColumnsTaskStart.
-                wantSelectFiles notNil ifTrue:[
+                (wantSelectFiles notNil and:[wantSelectFiles notEmpty]) ifTrue:[
                     self selectFiles:wantSelectFiles.
                 ].
             ]
@@ -1148,14 +1148,16 @@
 !DirectoryContentsBrowser methodsFor:'directory contents'!
 
 evaluateFilter
-    |filterBlock |
+    |filterBlock showDir|
 
 
     currentItemList := OrderedCollection new.
     allItemsList size ~~ 0 ifTrue:[ 
         filterBlock := self filterBlockHolder value.
-        allItemsList do:[:aItem | 
-            (aItem isDirectory or:[filterBlock value:aItem baseName]) ifTrue:[
+        showDir := self viewDirectoriesInDirectoryContentsBrowser value.
+        allItemsList do:[:aItem | |isDir|
+            isDir := aItem isDirectory.
+            ((isDir and:[showDir]) or:[isDir not and:[filterBlock value:aItem baseName]]) ifTrue:[
                 currentItemList add:aItem 
             ]
         ].
@@ -1531,10 +1533,8 @@
     | sel|
 
     sel := browserItemList copy.
-    sel notEmpty ifTrue:[
-        sel first fileName baseName = '..' ifTrue:[
-            sel removeFirst.
-        ]
+    self viewDirectoriesInDirectoryContentsBrowser value ifTrue:[
+        sel removeIdentical:(browserItemList first) ifAbsent:[nil]
     ].
     self selectionInFileList value:sel.
 !
@@ -1582,7 +1582,7 @@
     self viewDirectoriesInDirectoryContentsBrowser value ifTrue:[
         sel removeIdentical:(browserItemList first) ifAbsent:[nil]
     ].
-    ^ self selectionInFileList value.
+    ^ sel.
 ! !
 
 !DirectoryContentsBrowser methodsFor:'startup / release'!
@@ -2548,5 +2548,5 @@
 !DirectoryContentsBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/DirectoryContentsBrowser.st,v 1.27 2002-10-16 16:24:46 penk Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/DirectoryContentsBrowser.st,v 1.28 2002-10-17 08:11:31 penk Exp $'
 ! !