diff -r b691d1466034 -r de7a956ce23c DirectoryContentsBrowser.st --- 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 $' ! !