--- a/DirectoryContentsBrowser.st Mon Feb 02 14:57:52 2004 +0100
+++ b/DirectoryContentsBrowser.st Mon Feb 02 17:10:58 2004 +0100
@@ -2219,13 +2219,14 @@
oldItems := filteredItems copy.
addItems := OrderedCollection new.
remItems := OrderedCollection new.
- filteredItems size == 0 ifTrue:[
+
+ oldItems isEmptyOrNil ifTrue:[
remItems := oldItems.
] ifFalse:[
"/ MERGE WITH CURRENT CONTENTS
oldItems copy do:[:anOldItem|
"/ remove no longer valid files
- (newItems detectLast:[:aNewItem| aNewItem = anOldItem] ifNone:nil) isNil ifTrue:[
+ (newItems includes:anOldItem) ifFalse:[
remItems add:anOldItem.
oldItems removeIdentical:anOldItem
]
@@ -2233,19 +2234,19 @@
].
"/ add new files
newItems do:[:aNewItem|
- (oldItems detect:[:anOldItem| anOldItem = aNewItem] ifNone:nil) isNil ifTrue:[
+ (oldItems includes:aNewItem) ifFalse:[
addItems add:aNewItem.
]
].
- theAllItems := self allItems.
- remItems notEmpty ifTrue:[
- theAllItems removeAll:remItems
- ].
- addItems do:[: aNewItem |
- (theAllItems includes:aNewItem) not ifTrue:[
- theAllItems add:aNewItem.
- ]
- ].
+"/ theAllItems := self allItems.
+"/ remItems notEmpty ifTrue:[
+"/ theAllItems removeAll:remItems
+"/ ].
+"/ addItems do:[: aNewItem |
+"/ (theAllItems includes:aNewItem) not ifTrue:[
+"/ theAllItems add:aNewItem.
+"/ ]
+"/ ].
self
enqueueMessage:#value
@@ -2331,47 +2332,6 @@
].
!
-updateBlock
-
- ^ [ : timeOut |
-"/ Transcript showCR:'START'.
- self isBusy:true.
- [
- self directoryChangeFlag ifTrue:[
- self directoryChangeFlag:false.
- self debugMessage:'directoryChanged'.
- self directoryChanged.
- ].
- self directoryContentsChangeFlag ifTrue:[
- self directoryContentsChangeFlag:false.
- self debugMessage:'directoryContentsChanged'.
- self directoryContentsChanged.
- ].
- self filterChangeFlag ifTrue:[
- self filterChangeFlag:false.
- self debugMessage:'filterChanged'.
- self filterChanged.
- ].
- self sortBlockChangeFlag ifTrue:[
- self sortBlockChangeFlag:false.
- self debugMessage:'sortBlockChanged'.
- self sortBlockChanged.
- ].
- timeOut ifTrue:[
- self debugMessage:'evaluate modification'.
- self modificationCycle
- ].
- self updateColumnsCycle ifTrue:[
- self debugMessage:'next time another columns update'.
- self changeSema signal
- ].
- ] ensure:[
- self isBusy:false.
- ].
-"/ Transcript showCR:'STOP'.
- ]
-!
-
updateStep
AbortSignal handle:[
self debugMessage:'got an abort signal'.
@@ -2389,12 +2349,51 @@
or:[self sortBlockChangeFlag
or:[self directoryChangeFlag]]) ifTrue:[
self withCursor:Cursor execute do:[
- self updateBlock value:timedOut.
+ self updateWithTimeout:timedOut.
]
] ifFalse:[
- self updateBlock value:timedOut.
+ self updateWithTimeout:timedOut.
]
]
+!
+
+updateWithTimeout:timeOut
+
+"/ Transcript showCR:'START'.
+ self isBusy:true.
+ [
+ self directoryChangeFlag ifTrue:[
+ self directoryChangeFlag:false.
+ self debugMessage:'directoryChanged'.
+ self directoryChanged.
+ ].
+ self directoryContentsChangeFlag ifTrue:[
+ self directoryContentsChangeFlag:false.
+ self debugMessage:'directoryContentsChanged'.
+ self directoryContentsChanged.
+ ].
+ self filterChangeFlag ifTrue:[
+ self filterChangeFlag:false.
+ self debugMessage:'filterChanged'.
+ self filterChanged.
+ ].
+ self sortBlockChangeFlag ifTrue:[
+ self sortBlockChangeFlag:false.
+ self debugMessage:'sortBlockChanged'.
+ self sortBlockChanged.
+ ].
+ timeOut ifTrue:[
+ self debugMessage:'evaluate modification'.
+ self modificationCycle
+ ].
+ self updateColumnsCycle ifTrue:[
+ self debugMessage:'next time another columns update'.
+ self changeSema signal
+ ].
+ ] ensure:[
+ self isBusy:false.
+ ].
+"/ Transcript showCR:'STOP'.
! !
!DirectoryContentsBrowser methodsFor:'update task trigger'!
@@ -2407,6 +2406,7 @@
wakeUpForDirectoryChanged
self isBusy ifTrue:[
+ self isBusy:false.
updateTask interruptWith:[AbortSignal raise].
].
self directoryChangeFlag:true.
@@ -3101,5 +3101,5 @@
!DirectoryContentsBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/DirectoryContentsBrowser.st,v 1.147 2004-01-20 11:18:41 penk Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/DirectoryContentsBrowser.st,v 1.148 2004-02-02 16:10:58 ca Exp $'
! !