summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/ui/goggle.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/ui/goggle.py')
-rw-r--r--bitbake/lib/bb/ui/goggle.py32
1 files changed, 28 insertions, 4 deletions
diff --git a/bitbake/lib/bb/ui/goggle.py b/bitbake/lib/bb/ui/goggle.py
index 40923ba88d..3c6a014dc2 100644
--- a/bitbake/lib/bb/ui/goggle.py
+++ b/bitbake/lib/bb/ui/goggle.py
@@ -24,19 +24,32 @@ import xmlrpclib
24from bb.ui.crumbs.runningbuild import RunningBuildTreeView, RunningBuild 24from bb.ui.crumbs.runningbuild import RunningBuildTreeView, RunningBuild
25from bb.ui.crumbs.progress import ProgressBar 25from bb.ui.crumbs.progress import ProgressBar
26 26
27import Queue
28
29
27def event_handle_idle_func (eventHandler, build, pbar): 30def event_handle_idle_func (eventHandler, build, pbar):
28 31
29 # Consume as many messages as we can in the time available to us 32 # Consume as many messages as we can in the time available to us
30 event = eventHandler.getEvent() 33 event = eventHandler.getEvent()
31 while event: 34 while event:
32 build.handle_event (event, pbar)
33 event = eventHandler.getEvent() 35 event = eventHandler.getEvent()
36 build.handle_event (event, pbar)
34 37
35 return True 38 return True
36 39
37def scroll_tv_cb (model, path, iter, view): 40def scroll_tv_cb (model, path, iter, view):
38 view.scroll_to_cell (path) 41 view.scroll_to_cell (path)
39 42
43
44# @todo hook these into the GUI so the user has feedback...
45def running_build_failed_cb (running_build):
46 pass
47
48
49def running_build_succeeded_cb (running_build):
50 pass
51
52
40class MainWindow (gtk.Window): 53class MainWindow (gtk.Window):
41 def __init__ (self): 54 def __init__ (self):
42 gtk.Window.__init__ (self, gtk.WINDOW_TOPLEVEL) 55 gtk.Window.__init__ (self, gtk.WINDOW_TOPLEVEL)
@@ -49,6 +62,7 @@ class MainWindow (gtk.Window):
49 self.set_default_size(640, 480) 62 self.set_default_size(640, 480)
50 scrolled_window.add (self.cur_build_tv) 63 scrolled_window.add (self.cur_build_tv)
51 64
65
52def main (server, eventHandler): 66def main (server, eventHandler):
53 gobject.threads_init() 67 gobject.threads_init()
54 gtk.gdk.threads_init() 68 gtk.gdk.threads_init()
@@ -61,9 +75,11 @@ def main (server, eventHandler):
61 running_build = RunningBuild () 75 running_build = RunningBuild ()
62 window.cur_build_tv.set_model (running_build.model) 76 window.cur_build_tv.set_model (running_build.model)
63 running_build.model.connect("row-inserted", scroll_tv_cb, window.cur_build_tv) 77 running_build.model.connect("row-inserted", scroll_tv_cb, window.cur_build_tv)
78 running_build.connect ("build-succeeded", running_build_succeeded_cb)
79 running_build.connect ("build-failed", running_build_failed_cb)
80
64 try: 81 try:
65 cmdline = server.runCommand(["getCmdLineAction"]) 82 cmdline = server.runCommand(["getCmdLineAction"])
66 print(cmdline)
67 if not cmdline: 83 if not cmdline:
68 return 1 84 return 1
69 ret = server.runCommand(cmdline) 85 ret = server.runCommand(cmdline)
@@ -76,10 +92,18 @@ def main (server, eventHandler):
76 92
77 # Use a timeout function for probing the event queue to find out if we 93 # Use a timeout function for probing the event queue to find out if we
78 # have a message waiting for us. 94 # have a message waiting for us.
79 gobject.timeout_add (200, 95 gobject.timeout_add (100,
80 event_handle_idle_func, 96 event_handle_idle_func,
81 eventHandler, 97 eventHandler,
82 running_build, 98 running_build,
83 pbar) 99 pbar)
84 100
85 gtk.main() 101 try:
102 gtk.main()
103 except EnvironmentError as ioerror:
104 # ignore interrupted io
105 if ioerror.args[0] == 4:
106 pass
107 finally:
108 server.runCommand(["stateStop"])
109