diff options
Diffstat (limited to 'bitbake/lib/bb/ui/goggle.py')
| -rw-r--r-- | bitbake/lib/bb/ui/goggle.py | 32 |
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 | |||
| 24 | from bb.ui.crumbs.runningbuild import RunningBuildTreeView, RunningBuild | 24 | from bb.ui.crumbs.runningbuild import RunningBuildTreeView, RunningBuild |
| 25 | from bb.ui.crumbs.progress import ProgressBar | 25 | from bb.ui.crumbs.progress import ProgressBar |
| 26 | 26 | ||
| 27 | import Queue | ||
| 28 | |||
| 29 | |||
| 27 | def event_handle_idle_func (eventHandler, build, pbar): | 30 | def 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 | ||
| 37 | def scroll_tv_cb (model, path, iter, view): | 40 | def 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... | ||
| 45 | def running_build_failed_cb (running_build): | ||
| 46 | pass | ||
| 47 | |||
| 48 | |||
| 49 | def running_build_succeeded_cb (running_build): | ||
| 50 | pass | ||
| 51 | |||
| 52 | |||
| 40 | class MainWindow (gtk.Window): | 53 | class 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 | |||
| 52 | def main (server, eventHandler): | 66 | def 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 | |||
