*** empty log message ***
authorClaus Gittinger <cg@exept.de>
Thu, 13 Feb 2003 17:13:28 +0100
changeset 4556 f58fa5209587
parent 4555 21b055fba619
child 4557 8aa2be8c22bd
*** empty log message ***
DirectoryContentsBrowser.st
--- a/DirectoryContentsBrowser.st	Thu Feb 13 13:12:12 2003 +0100
+++ b/DirectoryContentsBrowser.st	Thu Feb 13 17:13:28 2003 +0100
@@ -2261,6 +2261,27 @@
     ^ nil "/ unknown - for now.
 !
 
+isDiskUsageInfoStillValid:infoForDirectory
+    |diskUsageRememberTime infoTimestamp infoKiloBytes infoMegaBytes|
+
+    diskUsageRememberTime := 30.
+
+    infoTimestamp := infoForDirectory key.
+    infoKiloBytes := infoForDirectory value.
+    infoMegaBytes := infoKiloBytes // 1024.
+
+    "/ only update info every 30 seconds
+    "/ plus another second for every 5 megabytes
+    "/ (i.e. for 100 mb, keep info for 50seconds)
+
+    diskUsageRememberTime := diskUsageRememberTime + (infoMegaBytes / 5). "/ another second for every megabyte
+
+    (AbsoluteTime now - infoTimestamp) > diskUsageRememberTime ifTrue:[
+        ^ false
+    ].
+    ^ true
+!
+
 showDiskUsageInfoFor:aDirectory as:kiloBytes
     |kbString|
 
@@ -2271,7 +2292,7 @@
 !
 
 startDiskUsageInfoProcessFor:selectedFile
-    |directory diskUsageRememberTime dirPath infoForDirectory infoTimestamp infoValue|
+    |directory dirPath infoForDirectory infoValue|
 
     self showDiskUsageHolder value ifFalse:[^ self].
 
@@ -2285,19 +2306,14 @@
         directory := selectedFile directory
     ].
 
-    diskUsageRememberTime := 30.
-
     dirPath := directory pathName.
     diskUsageInfo isNil ifTrue:[
         diskUsageInfo := Dictionary new.
     ].
     infoForDirectory := diskUsageInfo at:dirPath ifAbsent:nil.
     infoForDirectory notNil ifTrue:[
-        infoTimestamp := infoForDirectory key.
-        infoValue := infoForDirectory value.
-
-        (AbsoluteTime now - infoTimestamp) > diskUsageRememberTime ifTrue:[
-            infoValue := nil.    
+        (self isDiskUsageInfoStillValid:infoForDirectory) ifTrue:[
+            infoValue := infoForDirectory value.
         ].
     ].
 
@@ -2847,5 +2863,5 @@
 !DirectoryContentsBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/DirectoryContentsBrowser.st,v 1.77 2003-02-13 12:11:55 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/DirectoryContentsBrowser.st,v 1.78 2003-02-13 16:13:28 cg Exp $'
 ! !