]> code.ossystems Code Review - openembedded-core.git/commitdiff
bitbake/depexp: Factor ProgressBar into a separate class in crumbs/
authorJoshua Lock <josh@linux.intel.com>
Thu, 25 Nov 2010 15:15:10 +0000 (15:15 +0000)
committerRichard Purdie <rpurdie@linux.intel.com>
Tue, 7 Dec 2010 12:50:55 +0000 (12:50 +0000)
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>
bitbake/lib/bb/ui/crumbs/progress.py [new file with mode: 0644]
bitbake/lib/bb/ui/depexp.py

diff --git a/bitbake/lib/bb/ui/crumbs/progress.py b/bitbake/lib/bb/ui/crumbs/progress.py
new file mode 100644 (file)
index 0000000..8bd8710
--- /dev/null
@@ -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))
index 1cd58cac18c0820f1a32fc7692d1710d0bffb4ed..6fd18d1684180e9fc13294cc37c74eebcfb064c7 100644 (file)
@@ -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