From 03ad44ccf9bd1fdbc2fd89adb494289d5623d47f Mon Sep 17 00:00:00 2001 From: Frederic Back Date: Tue, 3 Oct 2006 11:02:22 +0000 Subject: * Put sumlists in a central repository. Load from memory if a path is already walked. git-svn-id: file:///home/lennart/svn/public/fring/trunk@62 d0d2c35f-0a1e-0410-abeb-dabff30a67ee --- src/fringlib/fringwalker.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'src/fringlib/fringwalker.py') diff --git a/src/fringlib/fringwalker.py b/src/fringlib/fringwalker.py index 28cda4b..1bf5c68 100644 --- a/src/fringlib/fringwalker.py +++ b/src/fringlib/fringwalker.py @@ -18,10 +18,11 @@ class FringWalker( gobject.GObject ): 'progress': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_INT,gobject.TYPE_INT)), } - def __init__(self): + def __init__(self, sumlistcollection): gobject.GObject.__init__(self) self.thread = None self.showhidden = True + self.collection = sumlistcollection def walk(self,uri): self.stop() @@ -83,7 +84,10 @@ class WalkThread( threading.Thread ): result.append_child( SumList(d.name, None, d.size) ) except StopIteration: pass - if recursionlvl <= self.max_recursion_sort: result.sort_by_size() + if recursionlvl <= self.max_recursion_sort: + result.sort_by_size() + self.master.collection.set_sumlist(unicode(uri),result) + return result def run(self): @@ -110,6 +114,8 @@ class WalkThread( threading.Thread ): except StopIteration: pass # emit an intermediate version to fill up the screen while waiting + self.result.sort() + self.master.collection.set_sumlist(unicode(self.uri),self.result) self.master._progress_fn(self, 0, len(subdirectories), self.result) # walk the subdirectories @@ -119,12 +125,11 @@ class WalkThread( threading.Thread ): self.result.append_child( self.build_tree_gnomevfs(self.uri.append_path(directory)) ) if self.stopsignal: return + self.result.sort() + self.master.collection.set_sumlist(unicode(self.uri),self.result) - # emit an intermediate version after each directory self.master._progress_fn(self, c, len(subdirectories), self.result) - - self.result.sort() # emit final signal self.master._finished_fn(self,self.result) -- cgit