summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorShane Wang <shane.wang@intel.com>2012-03-12 20:47:06 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-03-20 15:21:33 +0000
commitc4017bc518d31b58e988d4b51ea9e0a33acf9bc9 (patch)
tree6586261d37e7ece412a3fc6fc293459ae0a51d81 /bitbake
parent88bbc0ce562aa80d2b98c8b48d79a612b47ca852 (diff)
downloadpoky-c4017bc518d31b58e988d4b51ea9e0a33acf9bc9.tar.gz
Hob: use HobNotebook to implement a notebook in build details page
This patch is to use HobNotebook we defined to implement the notebook in the build details page. (From Poky rev: 792c5eb29cf44d9ef559ae59802327fb1bb2cb3c) (Bitbake rev: d51ad20aa00f2af6c7174910b31523fff0e5a639) Signed-off-by: Liming An <limingx.l.an@intel.com> Signed-off-by: Shane Wang <shane.wang@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rwxr-xr-xbitbake/lib/bb/ui/crumbs/builddetailspage.py30
-rw-r--r--bitbake/lib/bb/ui/crumbs/runningbuild.py65
2 files changed, 90 insertions, 5 deletions
diff --git a/bitbake/lib/bb/ui/crumbs/builddetailspage.py b/bitbake/lib/bb/ui/crumbs/builddetailspage.py
index 8b75ca08bf..63d2c7b329 100755
--- a/bitbake/lib/bb/ui/crumbs/builddetailspage.py
+++ b/bitbake/lib/bb/ui/crumbs/builddetailspage.py
@@ -22,8 +22,10 @@
22 22
23import gtk 23import gtk
24from bb.ui.crumbs.progressbar import HobProgressBar 24from bb.ui.crumbs.progressbar import HobProgressBar
25from bb.ui.crumbs.hobwidget import hic 25from bb.ui.crumbs.hobwidget import hic, HobNotebook
26from bb.ui.crumbs.runningbuild import RunningBuildTreeView 26from bb.ui.crumbs.runningbuild import RunningBuildTreeView
27from bb.ui.crumbs.runningbuild import BuildConfigurationTreeView
28from bb.ui.crumbs.runningbuild import BuildFailureTreeView
27from bb.ui.crumbs.hobpages import HobPage 29from bb.ui.crumbs.hobpages import HobPage
28 30
29# 31#
@@ -49,11 +51,29 @@ class BuildDetailsPage (HobPage):
49 self.stop_button.connect("clicked", self.stop_button_clicked_cb) 51 self.stop_button.connect("clicked", self.stop_button_clicked_cb)
50 self.progress_box.pack_end(self.stop_button, expand=False, fill=False) 52 self.progress_box.pack_end(self.stop_button, expand=False, fill=False)
51 53
54 self.notebook = HobNotebook()
55 self.config_tv = BuildConfigurationTreeView()
56 self.config_model = self.builder.handler.build.model.config_model()
57 self.config_tv.set_model(self.config_model)
58 self.scrolled_view_config = gtk.ScrolledWindow ()
59 self.scrolled_view_config.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
60 self.scrolled_view_config.add(self.config_tv)
61 self.notebook.append_page(self.scrolled_view_config, gtk.Label("Build Configuration"))
62
63 self.failure_tv = BuildFailureTreeView()
64 self.failure_model = self.builder.handler.build.model.failure_model()
65 self.failure_tv.set_model(self.failure_model)
66 self.scrolled_view_failure = gtk.ScrolledWindow ()
67 self.scrolled_view_failure.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
68 self.scrolled_view_failure.add(self.failure_tv)
69 self.notebook.append_page(self.scrolled_view_failure, gtk.Label("Issues"))
70
52 self.build_tv = RunningBuildTreeView(readonly=True) 71 self.build_tv = RunningBuildTreeView(readonly=True)
53 self.build_tv.set_model(self.builder.handler.build.model) 72 self.build_tv.set_model(self.builder.handler.build.model)
54 self.scrolled_view = gtk.ScrolledWindow () 73 self.scrolled_view_build = gtk.ScrolledWindow ()
55 self.scrolled_view.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) 74 self.scrolled_view_build.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
56 self.scrolled_view.add(self.build_tv) 75 self.scrolled_view_build.add(self.build_tv)
76 self.notebook.append_page(self.scrolled_view_build, gtk.Label("Log"))
57 77
58 self.button_box = gtk.HBox(False, 6) 78 self.button_box = gtk.HBox(False, 6)
59 self.back_button = gtk.LinkButton("Go back to Image Configuration screen", "<< Back to image configuration") 79 self.back_button = gtk.LinkButton("Go back to Image Configuration screen", "<< Back to image configuration")
@@ -86,7 +106,7 @@ class BuildDetailsPage (HobPage):
86 self.progress_bar.reset() 106 self.progress_bar.reset()
87 self.vbox.pack_start(self.progress_box, expand=False, fill=False) 107 self.vbox.pack_start(self.progress_box, expand=False, fill=False)
88 108
89 self.vbox.pack_start(self.scrolled_view, expand=True, fill=True) 109 self.vbox.pack_start(self.notebook, expand=True, fill=True)
90 110
91 self.box_group_area.pack_end(self.button_box, expand=False, fill=False) 111 self.box_group_area.pack_end(self.button_box, expand=False, fill=False)
92 self.show_all() 112 self.show_all()
diff --git a/bitbake/lib/bb/ui/crumbs/runningbuild.py b/bitbake/lib/bb/ui/crumbs/runningbuild.py
index 10ca394061..6e6aac9855 100644
--- a/bitbake/lib/bb/ui/crumbs/runningbuild.py
+++ b/bitbake/lib/bb/ui/crumbs/runningbuild.py
@@ -25,6 +25,7 @@ import logging
25import time 25import time
26import urllib 26import urllib
27import urllib2 27import urllib2
28import pango
28from bb.ui.crumbs.hobcolor import HobColors 29from bb.ui.crumbs.hobcolor import HobColors
29 30
30class RunningBuildModel (gtk.TreeStore): 31class RunningBuildModel (gtk.TreeStore):
@@ -40,6 +41,32 @@ class RunningBuildModel (gtk.TreeStore):
40 gobject.TYPE_STRING, 41 gobject.TYPE_STRING,
41 gobject.TYPE_INT) 42 gobject.TYPE_INT)
42 43
44 def config_model_filter(self, model, it):
45 msg = model.get(it, self.COL_MESSAGE)[0]
46 if msg == None or type(msg) != str:
47 return False
48 if msg.startswith("\nOE Build Configuration:\n"):
49 return True
50 return False
51
52 def failure_model_filter(self, model, it):
53 color = model.get(it, self.COL_COLOR)[0]
54 if color == None:
55 return False
56 if color == HobColors.ERROR:
57 return True
58 return False
59
60 def config_model(self):
61 model = self.filter_new()
62 model.set_visible_func(self.config_model_filter)
63 return model
64
65 def failure_model(self):
66 model = self.filter_new()
67 model.set_visible_func(self.failure_model_filter)
68 return model
69
43class RunningBuild (gobject.GObject): 70class RunningBuild (gobject.GObject):
44 __gsignals__ = { 71 __gsignals__ = {
45 'build-started' : (gobject.SIGNAL_RUN_LAST, 72 'build-started' : (gobject.SIGNAL_RUN_LAST,
@@ -376,3 +403,41 @@ class RunningBuildTreeView (gtk.TreeView):
376 message = model.get(it, model.COL_MESSAGE)[0] 403 message = model.get(it, model.COL_MESSAGE)[0]
377 404
378 self._add_to_clipboard(message) 405 self._add_to_clipboard(message)
406
407
408class BuildConfigurationTreeView(gtk.TreeView):
409
410 def __init__ (self):
411 gtk.TreeView.__init__(self)
412 self.set_rules_hint(False)
413 self.set_headers_visible(False)
414 self.set_property("hover-expand", True)
415 self.get_selection().set_mode(gtk.SELECTION_SINGLE)
416
417 # The message of the build.
418 self.message_renderer = gtk.CellRendererText ()
419 self.message_column = gtk.TreeViewColumn ("Message", self.message_renderer, text=RunningBuildModel.COL_MESSAGE, background=RunningBuildModel.COL_COLOR)
420 font = self.get_style().font_desc
421 font.set_size(pango.SCALE * 13)
422 self.message_renderer.set_property('font-desc', font)
423 self.append_column (self.message_column)
424
425
426class BuildFailureTreeView(gtk.TreeView):
427
428 def __init__ (self):
429 gtk.TreeView.__init__(self)
430 self.set_rules_hint(False)
431 self.set_headers_visible(False)
432 self.get_selection().set_mode(gtk.SELECTION_SINGLE)
433
434 # The icon that indicates whether we're building or failed.
435 renderer = gtk.CellRendererPixbuf ()
436 col = gtk.TreeViewColumn ("Status", renderer)
437 col.add_attribute (renderer, "icon-name", RunningBuildModel.COL_ICON)
438 self.append_column (col)
439
440 # The message of the build.
441 self.message_renderer = gtk.CellRendererText ()
442 self.message_column = gtk.TreeViewColumn ("Message", self.message_renderer, text=RunningBuildModel.COL_MESSAGE, background=RunningBuildModel.COL_COLOR)
443 self.append_column (self.message_column)