update bug-fix
authorca
Mon, 02 Feb 2004 17:10:58 +0100
changeset 5474 c1f778c85ec1
parent 5473 543ceb69dc49
child 5475 b14874ad8460
update bug-fix
DirectoryContentsBrowser.st
--- 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 $'
 ! !