From 94e2a104ece703d8fa6046ea0fcf9a51ae1930e3 Mon Sep 17 00:00:00 2001 From: Liming An Date: Thu, 2 Aug 2012 19:06:01 +0800 Subject: bitbake: Hob: log for Hob and allow users to show logs after successful build If users build images in Hob, record logs and allow users to retrieve the lo after successful build. The logs are generated if and only if: - users do "just bake" - users do "build image" after "build packages" - users do "build packages" only [YOCTO #1991] (Bitbake rev: 291289787bb042b99f0599babc2d67c220aadb87) Signed-off-by: Shane Wang Signed-off-by: Liming An Signed-off-by: Richard Purdie --- bitbake/lib/bb/ui/crumbs/imagedetailspage.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'bitbake/lib/bb/ui/crumbs/imagedetailspage.py') diff --git a/bitbake/lib/bb/ui/crumbs/imagedetailspage.py b/bitbake/lib/bb/ui/crumbs/imagedetailspage.py index 596fb851ec..40eb7a4540 100755 --- a/bitbake/lib/bb/ui/crumbs/imagedetailspage.py +++ b/bitbake/lib/bb/ui/crumbs/imagedetailspage.py @@ -33,7 +33,7 @@ from bb.ui.crumbs.hig import CrumbsDialog class ImageDetailsPage (HobPage): class DetailBox (gtk.EventBox): - def __init__(self, widget = None, varlist = None, vallist = None, icon = None, button = None, color = HobColors.LIGHT_GRAY): + def __init__(self, widget = None, varlist = None, vallist = None, icon = None, button = None, button2=None, color = HobColors.LIGHT_GRAY): gtk.EventBox.__init__(self) # set color @@ -72,7 +72,11 @@ class ImageDetailsPage (HobPage): self.table.attach(self.line_widgets[varlist[index]], colid, 20, row, row + 1) # pack the button on the right if button: - self.hbox.pack_end(button, expand=False, fill=False) + self.bbox = gtk.VBox() + self.bbox.pack_start(button, expand=True, fill=True) + if button2: + self.bbox.pack_start(button2, expand=True, fill=True) + self.hbox.pack_end(self.bbox, expand=False, fill=False) def update_line_widgets(self, variable, value): if len(self.line_widgets) == 0: @@ -164,8 +168,10 @@ class ImageDetailsPage (HobPage): base_image = self.builder.recipe_model.get_selected_image() layers = self.builder.configuration.layers pkg_num = "%s" % len(self.builder.package_model.get_selected_packages()) + log_file = self.builder.current_logfile else: pkg_num = "N/A" + log_file = None # remove for button_id, button in self.button_ids.items(): @@ -243,11 +249,17 @@ class ImageDetailsPage (HobPage): view_files_button = HobAltButton("View files") view_files_button.connect("clicked", self.view_files_clicked_cb, image_addr) view_files_button.set_tooltip_text("Open the directory containing the image files") - self.image_detail = self.DetailBox(varlist=varlist, vallist=vallist, button=view_files_button) + view_log_button = None + if log_file: + view_log_button = HobAltButton("View log") + view_log_button.connect("clicked", self.view_log_clicked_cb, log_file) + view_log_button.set_tooltip_text("Open the building log files") + self.image_detail = self.DetailBox(varlist=varlist, vallist=vallist, button=view_files_button, button2=view_log_button) self.box_group_area.pack_start(self.image_detail, expand=False, fill=True) # The default kernel box for the qemu images self.sel_kernel = "" + self.kernel_detail = None if 'qemu' in image_name: self.sel_kernel = self.get_kernel_file_name() @@ -315,12 +327,16 @@ class ImageDetailsPage (HobPage): self.box_group_area.pack_start(self.details_bottom_buttons, expand=False, fill=False) self.show_all() - if not is_runnable: + if self.kernel_detail and (not is_runnable): self.kernel_detail.hide() def view_files_clicked_cb(self, button, image_addr): subprocess.call("xdg-open /%s" % image_addr, shell=True) + def view_log_clicked_cb(self, button, log_file): + if log_file: + os.system("xdg-open /%s" % log_file) + def refresh_package_detail_box(self, image_size): self.package_detail.update_line_widgets("Total image size: ", image_size) -- cgit v1.2.3-54-g00ecf