diff options
author | Joshua Lock <josh@linux.intel.com> | 2010-11-25 15:15:10 +0000 |
---|---|---|
committer | Chris Larson <chris_larson@mentor.com> | 2010-12-08 20:07:49 -0700 |
commit | c606c9d17417dde81142688f5646e02313670d01 (patch) | |
tree | 2e8a55c2744615b20442f1037b68393cdcf06c7d /lib/bb/ui | |
parent | d2c4d0b2af43eb6b09086db1f8fe9e87e0bc6d23 (diff) | |
download | bitbake-c606c9d17417dde81142688f5646e02313670d01.tar.gz |
bitbake/depexp: Factor ProgressBar into a separate class in crumbs/
ProgressBar will be useful in other UI elements so make it it's own class.
Make ProgressBar a subclass of gtk.Dialog, rather than gtk.Window, so that we
can suggest the window manager parent the ProgressBar to the widget passed at
as parent.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Diffstat (limited to 'lib/bb/ui')
-rw-r--r-- | lib/bb/ui/crumbs/progress.py | 17 | ||||
-rw-r--r-- | lib/bb/ui/depexp.py | 19 |
2 files changed, 21 insertions, 15 deletions
diff --git a/lib/bb/ui/crumbs/progress.py b/lib/bb/ui/crumbs/progress.py new file mode 100644 index 000000000..8bd87108e --- /dev/null +++ b/lib/bb/ui/crumbs/progress.py @@ -0,0 +1,17 @@ +import gtk + +class ProgressBar(gtk.Dialog): + def __init__(self, parent): + + gtk.Dialog.__init__(self) + self.set_title("Parsing metadata, please wait...") + self.set_default_size(500, 0) + self.set_transient_for(parent) + self.set_destroy_with_parent(True) + self.progress = gtk.ProgressBar() + self.vbox.pack_start(self.progress) + self.show_all() + + def update(self, x, y): + self.progress.set_fraction(float(x)/float(y)) + self.progress.set_text("%d/%d (%2d %%)" % (x, y, x*100/y)) diff --git a/lib/bb/ui/depexp.py b/lib/bb/ui/depexp.py index 1cd58cac1..6fd18d168 100644 --- a/lib/bb/ui/depexp.py +++ b/lib/bb/ui/depexp.py @@ -21,6 +21,7 @@ import gobject import gtk import threading import xmlrpclib +from bb.ui.crumbs.progress import ProgressBar # Package Model (COL_PKG_NAME) = (0) @@ -171,18 +172,6 @@ def parse(depgraph, pkg_model, depends_model): COL_DEP_PARENT, package, COL_DEP_PACKAGE, rdepend) -class ProgressBar(gtk.Window): - def __init__(self): - - gtk.Window.__init__(self) - self.set_title("Parsing .bb files, please wait...") - self.set_default_size(500, 0) - self.connect("delete-event", gtk.main_quit) - - self.progress = gtk.ProgressBar() - self.add(self.progress) - self.show_all() - class gtkthread(threading.Thread): quit = threading.Event() def __init__(self, shutdown): @@ -217,8 +206,8 @@ def init(server, eventHandler): gtkgui.start() gtk.gdk.threads_enter() - pbar = ProgressBar() dep = DepExplorer() + pbar = ProgressBar(dep) gtk.gdk.threads_leave() while True: @@ -236,9 +225,9 @@ def init(server, eventHandler): print(("\nParsing finished. %d cached, %d parsed, %d skipped, %d masked, %d errors." % ( event.cached, event.parsed, event.skipped, event.masked, event.errors))) pbar.hide() + return gtk.gdk.threads_enter() - pbar.progress.set_fraction(float(x)/float(y)) - pbar.progress.set_text("%d/%d (%2d %%)" % (x, y, x*100/y)) + pbar.update(x, y) gtk.gdk.threads_leave() continue |