summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/ui
diff options
context:
space:
mode:
authorJoshua Lock <josh@linux.intel.com>2010-11-25 15:15:10 +0000
committerRichard Purdie <rpurdie@linux.intel.com>2010-12-07 12:50:55 +0000
commit1307d64286802dbaa1d58260cc50200d5f49f92c (patch)
tree333e6c8d85154bdf1fc9b7aff86a8c8b5dd3b2bf /bitbake/lib/bb/ui
parent8cbaa9f0d98caf82a4e698abf24edc1c1a3122b2 (diff)
downloadpoky-1307d64286802dbaa1d58260cc50200d5f49f92c.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 'bitbake/lib/bb/ui')
-rw-r--r--bitbake/lib/bb/ui/crumbs/progress.py17
-rw-r--r--bitbake/lib/bb/ui/depexp.py19
2 files changed, 21 insertions, 15 deletions
diff --git a/bitbake/lib/bb/ui/crumbs/progress.py b/bitbake/lib/bb/ui/crumbs/progress.py
new file mode 100644
index 0000000000..8bd87108e6
--- /dev/null
+++ b/bitbake/lib/bb/ui/crumbs/progress.py
@@ -0,0 +1,17 @@
1import gtk
2
3class ProgressBar(gtk.Dialog):
4 def __init__(self, parent):
5
6 gtk.Dialog.__init__(self)
7 self.set_title("Parsing metadata, please wait...")
8 self.set_default_size(500, 0)
9 self.set_transient_for(parent)
10 self.set_destroy_with_parent(True)
11 self.progress = gtk.ProgressBar()
12 self.vbox.pack_start(self.progress)
13 self.show_all()
14
15 def update(self, x, y):
16 self.progress.set_fraction(float(x)/float(y))
17 self.progress.set_text("%d/%d (%2d %%)" % (x, y, x*100/y))
diff --git a/bitbake/lib/bb/ui/depexp.py b/bitbake/lib/bb/ui/depexp.py
index 1cd58cac18..6fd18d1684 100644
--- a/bitbake/lib/bb/ui/depexp.py
+++ b/bitbake/lib/bb/ui/depexp.py
@@ -21,6 +21,7 @@ import gobject
21import gtk 21import gtk
22import threading 22import threading
23import xmlrpclib 23import xmlrpclib
24from bb.ui.crumbs.progress import ProgressBar
24 25
25# Package Model 26# Package Model
26(COL_PKG_NAME) = (0) 27(COL_PKG_NAME) = (0)
@@ -171,18 +172,6 @@ def parse(depgraph, pkg_model, depends_model):
171 COL_DEP_PARENT, package, 172 COL_DEP_PARENT, package,
172 COL_DEP_PACKAGE, rdepend) 173 COL_DEP_PACKAGE, rdepend)
173 174
174class ProgressBar(gtk.Window):
175 def __init__(self):
176
177 gtk.Window.__init__(self)
178 self.set_title("Parsing .bb files, please wait...")
179 self.set_default_size(500, 0)
180 self.connect("delete-event", gtk.main_quit)
181
182 self.progress = gtk.ProgressBar()
183 self.add(self.progress)
184 self.show_all()
185
186class gtkthread(threading.Thread): 175class gtkthread(threading.Thread):
187 quit = threading.Event() 176 quit = threading.Event()
188 def __init__(self, shutdown): 177 def __init__(self, shutdown):
@@ -217,8 +206,8 @@ def init(server, eventHandler):
217 gtkgui.start() 206 gtkgui.start()
218 207
219 gtk.gdk.threads_enter() 208 gtk.gdk.threads_enter()
220 pbar = ProgressBar()
221 dep = DepExplorer() 209 dep = DepExplorer()
210 pbar = ProgressBar(dep)
222 gtk.gdk.threads_leave() 211 gtk.gdk.threads_leave()
223 212
224 while True: 213 while True:
@@ -236,9 +225,9 @@ def init(server, eventHandler):
236 print(("\nParsing finished. %d cached, %d parsed, %d skipped, %d masked, %d errors." 225 print(("\nParsing finished. %d cached, %d parsed, %d skipped, %d masked, %d errors."
237 % ( event.cached, event.parsed, event.skipped, event.masked, event.errors))) 226 % ( event.cached, event.parsed, event.skipped, event.masked, event.errors)))
238 pbar.hide() 227 pbar.hide()
228 return
239 gtk.gdk.threads_enter() 229 gtk.gdk.threads_enter()
240 pbar.progress.set_fraction(float(x)/float(y)) 230 pbar.update(x, y)
241 pbar.progress.set_text("%d/%d (%2d %%)" % (x, y, x*100/y))
242 gtk.gdk.threads_leave() 231 gtk.gdk.threads_leave()
243 continue 232 continue
244 233