--- a/DirectoryContentsBrowser.st Wed Oct 28 16:11:22 2009 +0100
+++ b/DirectoryContentsBrowser.st Wed Oct 28 16:11:40 2009 +0100
@@ -834,14 +834,10 @@
!DirectoryContentsBrowser methodsFor:'accessing'!
allItems
- "return the value of the instance variable 'allItems' (automatically generated)"
-
^ allItems ? #()
!
allItems:something
- "set the value of the instance variable 'allItems' (automatically generated)"
-
allItems := something.
!
@@ -1168,9 +1164,14 @@
filterBox := self filterValueBox value.
filterBox isNil ifTrue:[^ self ].
+
noOfAddedFiles ~= noOfFiles ifTrue:[
clr := Color red lightened lightened lightened.
- [ View drawingOnClosedDrawableSignal catch:[ filterBox flash ] ] fork.
+ [
+ View drawingOnClosedDrawableSignal catch:[
+ filterBox flash
+ ]
+ ] fork.
] ifFalse:[
clr := self filterBackgroundColor value.
].
@@ -2165,13 +2166,14 @@
|desc mime icon type preview|
browserItemList notEmpty ifTrue:[
- "/ update item if item properties are changed
+ "/ update item if item's properties have changed
"/ desc := self findNextVisibleItemFor:[:n| n accessFirstTime ].
"/ desc notNil ifTrue:[
"/ browser invalidateVisibleRow:desc.
"/ self debugMessage:'item properties are changed ', desc baseName.
"/ ^ true.
"/ ].
+
"/ update icon for visible items by suffix
desc := self findNextVisibleItemFor:[:n| n icon isNil ].
desc notNil ifTrue:[
@@ -2313,19 +2315,15 @@
!DirectoryContentsBrowser methodsFor:'update task'!
createItemList
-
-"/ |filterTime sortTime getAllTime|
+ "reread the whole list of items"
+
+ |rawFilteredItems|
directory notNil ifTrue:[
-"/ getAllTime := Time millisecondsToRun:[
- self allItems:self readDirectoryItems.
-"/ ].
-"/ filterTime := Time millisecondsToRun:[
- filteredItems := self evaluateFilter:(self allItems).
-"/ ].
-"/ sortTime := Time millisecondsToRun:[
- filteredItems := self sortBlockHolder value sortItemList:filteredItems.
-"/ ].
+ self allItems:self readDirectoryItems.
+ rawFilteredItems := self evaluateFilter:(self allItems).
+ filteredItems := self sortBlockHolder value sortItemList:rawFilteredItems.
+
"/ Transcript showCR:'getAllTime:', getAllTime asString.
"/ Transcript showCR:'filterTime:', filterTime asString.
"/ Transcript showCR:'sortTime:', sortTime asString.
@@ -2348,6 +2346,8 @@
!
directoryChanged
+ "reread the whole list of items"
+
|pos|
self setBrowserItemList:#().
@@ -2415,26 +2415,37 @@
!
evaluateFilter:anItemsList
-
- |showDir filterBlock newItemList noOfAddedFiles noOfFiles showFiles|
-
- newItemList := OrderedCollection new.
+ "return filtered items from anItemsList"
+
+ |showDir showHidden filterBlock newItemList noOfAddedFiles noOfFiles showFiles|
+
noOfFiles := 0.
noOfAddedFiles := 0.
+
+ showHidden := self showHiddenFiles value.
showDir := self viewDirsInContentsBrowser value.
showFiles := self viewFilesInContentsBrowser value.
filterBlock := self matchBlock.
- anItemsList size ~~ 0 ifTrue:[
- anItemsList do:[:eachItem | |isDir|
- isDir := eachItem isDirectory.
- isDir ifFalse:[noOfFiles := noOfFiles + 1].
- ((isDir and:[showDir]) or:[isDir not and:[ showFiles and:[filterBlock value:eachItem baseName]]]) ifTrue:[
- isDir ifFalse:[noOfAddedFiles := noOfAddedFiles + 1].
- newItemList add:eachItem
- ].
- ].
- ].
+ newItemList := anItemsList
+ select:[:eachItem |
+ |isDir showIt|
+
+ isDir := eachItem isDirectory.
+ isDir ifFalse:[noOfFiles := noOfFiles + 1].
+
+ showIt := isDir
+ ifTrue:[ showHidden or:[ eachItem fileName isHidden not ]]
+ ifFalse:[ showFiles and:[filterBlock
+ value:eachItem fileName
+ value:eachItem baseName]].
+
+ showIt ifTrue:[
+ isDir ifFalse:[noOfAddedFiles := noOfAddedFiles + 1].
+ ].
+ showIt
+ ].
+
self noOfAddedFiles:noOfAddedFiles noOfFiles:noOfFiles.
^ newItemList
!
@@ -3275,9 +3286,9 @@
!DirectoryContentsBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/DirectoryContentsBrowser.st,v 1.225 2009-10-16 09:57:41 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/DirectoryContentsBrowser.st,v 1.226 2009-10-28 15:11:40 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/DirectoryContentsBrowser.st,v 1.225 2009-10-16 09:57:41 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/DirectoryContentsBrowser.st,v 1.226 2009-10-28 15:11:40 cg Exp $'
! !