--- 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 $'
! !