summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederic Back <fredericback@gmail.com>2006-10-04 11:18:03 +0000
committerFrederic Back <fredericback@gmail.com>2006-10-04 11:18:03 +0000
commit5df72aab9a1064a1b008c58d5adaf11abe85fcbb (patch)
treed6b1760e3286410c8b531937e5eb37309ab6b4e0
parente92d2f96954066db80eba10f4dfc877756321d00 (diff)
* Changed parent button size to SMALL_TOOLBAR
* Added progress bar * The progress signal now also emits the path getting parsed * Path in status bar is now relative to current path (shorter) git-svn-id: file:///home/lennart/svn/public/fring/trunk@65 d0d2c35f-0a1e-0410-abeb-dabff30a67ee
-rw-r--r--src/fringlib/fringrenderer.py2
-rw-r--r--src/fringlib/fringui.py33
-rw-r--r--src/fringlib/fringwalker.py14
3 files changed, 35 insertions, 14 deletions
diff --git a/src/fringlib/fringrenderer.py b/src/fringlib/fringrenderer.py
index 2a44f57..63b719b 100644
--- a/src/fringlib/fringrenderer.py
+++ b/src/fringlib/fringrenderer.py
@@ -82,7 +82,7 @@ class FringRenderer:
for entry in data.children:
- hasContents = entry.children != None
+ hasContents = entry.has_children()
start = last
accumulated += entry.size
diff --git a/src/fringlib/fringui.py b/src/fringlib/fringui.py
index feb609c..7a59660 100644
--- a/src/fringlib/fringui.py
+++ b/src/fringlib/fringui.py
@@ -1,5 +1,6 @@
import gtk
import cairo
+import pango
import sys
import os
@@ -65,9 +66,11 @@ class UI( gtk.Window ):
self.__init_gui()
# walk directory
- self.walker.connect("list-changed",self.__event_walker_progress)
+ self.walker.connect("list-changed",self.__event_walker_changed)
+ self.walker.connect("progress",self.__event_walker_progress)
self.walker.connect("finished", self.__event_walker_finished)
self.walker.connect("manually-stopped", lambda w: self.__show_busy_cursor(-1))
+
self.open_folder(uri)
def __init_gui(self):
@@ -108,7 +111,7 @@ class UI( gtk.Window ):
toolbar = gtk.HBox()
b = gtk.Button()
- img = gtk.image_new_from_stock(gtk.STOCK_GO_UP, gtk.ICON_SIZE_BUTTON)
+ img = gtk.image_new_from_stock(gtk.STOCK_GO_UP, gtk.ICON_SIZE_SMALL_TOOLBAR)
b.set_property("image", img)
uimanager.get_action("/MenuBar/FRing/OpenParent").connect_proxy(b)
toolbar.pack_start( b, False )
@@ -141,6 +144,14 @@ class UI( gtk.Window ):
self.label.set_padding(6, 0)
self.label.set_text("")
+ self.pbar = gtk.ProgressBar()
+ self.pbar.set_ellipsize(pango.ELLIPSIZE_END)
+
+ self.statbar = gtk.HBox()
+ #self.statbar.set_has_resize_grip(False)
+ self.statbar.pack_start(self.label)
+ self.statbar.pack_start(self.pbar,False,False,0)
+
# aligh menubar, toolbar and canvas vertically
vbox = gtk.VBox();
vbox.pack_start(menubar,False,False)
@@ -148,8 +159,8 @@ class UI( gtk.Window ):
f = gtk.Frame()
f.set_shadow_type(gtk.SHADOW_IN)
f.add(self.eventbox)
- vbox.pack_start(f)
- vbox.pack_start(self.label,False,False,6)
+ vbox.pack_start(f,True,True,3)
+ vbox.pack_start(self.statbar,False,False)
self.add(vbox)
# show everything
@@ -312,7 +323,9 @@ class UI( gtk.Window ):
self.label.set_text("")
if f:
- markup = "%s, %s, %0.1f%%" % (format_uri(f.path), pretty_size(f.sumlist.size), f.value*100)
+ path = format_uri( f.path[ len(self.uri): ] )
+ path = path[1:]
+ markup = "%s, %s, %0.1f%%" % (path, pretty_size(f.sumlist.size), f.value*100)
self.label.set_text(markup)
if f.sumlist.has_children():
@@ -333,9 +346,15 @@ class UI( gtk.Window ):
self.zoom(widget, -0.2)
def __event_walker_finished(self, widget, data):
- self.__event_walker_progress(widget, data)
+ self.__event_walker_changed(widget, data)
self.__show_busy_cursor(-1)
self.scan_active = False
+ self.pbar.set_text( _("Done") )
+
+ def __event_walker_progress(self, widget, c, total, uri):
+ self.pbar.set_sensitive(True)
+ self.pbar.set_text( _("reading %s")%uri )
+ self.pbar.set_fraction( float(c) / float(total) )
def __event_resized(self, widget, event):
r = self.eventbox.get_allocation()
@@ -350,7 +369,7 @@ class UI( gtk.Window ):
def __event_parentbutton_leave(self,widget,event):
self.label.set_text("")
- def __event_walker_progress(self,widget,data):
+ def __event_walker_changed(self,widget,data):
self.data = data
self.redraw()
diff --git a/src/fringlib/fringwalker.py b/src/fringlib/fringwalker.py
index 1bf5c68..d328627 100644
--- a/src/fringlib/fringwalker.py
+++ b/src/fringlib/fringwalker.py
@@ -15,7 +15,8 @@ class FringWalker( gobject.GObject ):
'list-changed': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT,)),
'finished': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT,)),
'manually-stopped': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, () ),
- 'progress': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_INT,gobject.TYPE_INT)),
+ 'progress': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE,
+ (gobject.TYPE_INT,gobject.TYPE_INT,gobject.TYPE_STRING)),
}
def __init__(self, sumlistcollection):
@@ -35,11 +36,11 @@ class FringWalker( gobject.GObject ):
self.thread.stopsignal = True
self.thread = None
- def _progress_fn(self, walkthread, c, l, r):
+ def _progress_fn(self, walkthread, c, l, r, currentlyScanning):
# only emit if called from the current request
if walkthread == self.thread:
gtk.gdk.threads_enter()
- self.emit("progress", c, l)
+ self.emit("progress", c, l, currentlyScanning)
self.emit("list-changed", r)
gtk.gdk.threads_leave()
@@ -94,6 +95,7 @@ class WalkThread( threading.Thread ):
""" Parse the root directory """
self.result = SumList(self.__uri_tail(self.uri), None, 0)
+ self.master._progress_fn(self, 0, 1, self.result, self.uri)
# write some debug information
starttime = time.time()
@@ -116,20 +118,20 @@ class WalkThread( threading.Thread ):
# 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
c = 0
for directory in subdirectories:
c += 1
- self.result.append_child( self.build_tree_gnomevfs(self.uri.append_path(directory)) )
+ sub = self.build_tree_gnomevfs(self.uri.append_path(directory))
+ self.result.append_child( sub )
if self.stopsignal: return
self.result.sort()
self.master.collection.set_sumlist(unicode(self.uri),self.result)
- self.master._progress_fn(self, c, len(subdirectories), self.result)
+ self.master._progress_fn(self, c, len(subdirectories), self.result, sub.name)
# emit final signal
self.master._finished_fn(self,self.result)