DirectoryContentsBrowser.st
changeset 8496 de7a956ce23c
parent 8407 eabf2cc93e11
child 8533 a7c6058dc523
--- a/DirectoryContentsBrowser.st	Wed Dec 17 08:48:16 2008 +0100
+++ b/DirectoryContentsBrowser.st	Wed Dec 17 08:49:34 2008 +0100
@@ -2308,18 +2308,27 @@
 modificationCycle
 
     | oldModificationTime  desc|
-    directory notNil ifTrue:[
-        directory exists ifFalse:[
-            self directoryChangeFlag:true.
-            ^ self
-        ].
-        oldModificationTime := modificationTime.
-        modificationTime := directory modificationTime.
-        (directory notNil and:[oldModificationTime ~= directory modificationTime]) ifTrue:[
-            self wakeUpForDirectoryContentsChanged.
-        ].
+
+    directory isNil ifTrue:[^ self].
+
+    directory exists ifFalse:[
+        self directoryChangeFlag:true.
+        ^ self
+    ].
+    directory isRootDirectory ifTrue:[
+        ^ self
     ].
+
+    oldModificationTime := modificationTime.
+    modificationTime := directory modificationTime.
+
+    oldModificationTime ~= modificationTime ifTrue:[
+        self wakeUpForDirectoryContentsChanged.
+        ^ self
+    ].
+
     desc := self findNextItemFor:[:n| n hasBeenModified ].
+
     desc notNil ifTrue:[
         desc resetItem.
         browser invalidateVisibleRow:desc.
@@ -2335,7 +2344,6 @@
 "/    |filterTime sortTime getAllTime|
 
     directory notNil ifTrue:[
-        modificationTime := directory modificationTime.
 "/        getAllTime := Time millisecondsToRun:[
             self allItems:self readDirectoryItems.
 "/        ].
@@ -2385,8 +2393,8 @@
     |oldItems addItems remItems newItems newAllItems theAllItems|
 
     directory isNil ifTrue:[^ self].
-    modificationTime := directory modificationTime.
     newAllItems := self readDirectoryItems.
+    
     newAllItems size > 150 ifTrue:[ 
         self createItemList.
         ^ self
@@ -2475,10 +2483,13 @@
 readDirectoryItems
     |list contents itemClass|
 
-    list := OrderedCollection new.
-    (directory notNil and:[directory exists]) ifTrue:[ 
+    list     := OrderedCollection new.
+    contents := DirectoryContents directoryNamed:directory.
+
+    contents notEmptyOrNil ifTrue:[
         itemClass := DirectoryContentsBrowser itemClass.
-        contents := DirectoryContents directoryNamed:directory.
+        modificationTime := contents modificationTime.
+
         contents itemsDo:[:eachItem|
             list add:(itemClass forInfoItem:eachItem).
         ].
@@ -3000,6 +3011,9 @@
     |info|
 
     self isRemoteDirectory ifTrue:[^ false].
+    "/ root directories are not verified
+    fileName isRootDirectory ifTrue:[ ^ false ].
+
 
     fileInfo isNil ifTrue:[
         "first time of invokation "
@@ -3288,5 +3302,5 @@
 !DirectoryContentsBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/DirectoryContentsBrowser.st,v 1.218 2008-11-06 08:42:37 ca Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/DirectoryContentsBrowser.st,v 1.219 2008-12-17 07:49:34 ca Exp $'
 ! !