From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com ([143.182.124.21]) by linuxtogo.org with esmtp (Exim 4.72) (envelope-from ) id 1S2rE4-0003RO-9N for bitbake-devel@lists.openembedded.org; Wed, 29 Feb 2012 22:38:21 +0100 Received: from azsmga001.ch.intel.com ([10.2.17.19]) by azsmga101.ch.intel.com with ESMTP; 29 Feb 2012 13:29:53 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.71,315,1320652800"; d="scan'208";a="112980012" Received: from unknown (HELO [10.255.15.102]) ([10.255.15.102]) by azsmga001.ch.intel.com with ESMTP; 29 Feb 2012 13:29:52 -0800 Message-ID: <4F4E98D0.2070209@linux.intel.com> Date: Wed, 29 Feb 2012 13:29:52 -0800 From: Joshua Lock User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.1) Gecko/20120216 Thunderbird/10.0.1 MIME-Version: 1.0 To: bitbake-devel@lists.openembedded.org References: <439e7e3c5dd2534950c63d9df57963f1a3d35944.1330523904.git.shane.wang@intel.com> <299485306af5bd05f9cd47185e2ed4fe35b4b3c4.1330523904.git.shane.wang@intel.com> In-Reply-To: <299485306af5bd05f9cd47185e2ed4fe35b4b3c4.1330523904.git.shane.wang@intel.com> Subject: Re: [PATCH 26/32] Hob: fix a bug that the image size is shown incorrectly in the image details page. X-BeenThere: bitbake-devel@lists.openembedded.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Feb 2012 21:38:21 -0000 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 29/02/12 06:15, Shane Wang wrote: > Originally, the image size shows the last item in the image tree view in the image details page. > That is not correct. We need to show the size of the image which the user chooses. > > Signed-off-by: Shane Wang Signed-off-by: Joshua Lock > --- > bitbake/lib/bb/ui/crumbs/hig.py | 2 +- > bitbake/lib/bb/ui/crumbs/imagedetailspage.py | 32 +++++++++++++++++++------ > 2 files changed, 25 insertions(+), 9 deletions(-) > > diff --git a/bitbake/lib/bb/ui/crumbs/hig.py b/bitbake/lib/bb/ui/crumbs/hig.py > index 9b96d8d..c5bd27a 100644 > --- a/bitbake/lib/bb/ui/crumbs/hig.py > +++ b/bitbake/lib/bb/ui/crumbs/hig.py > @@ -1035,6 +1035,7 @@ class ImageSelectionDialog (CrumbsDialog): > table.attach(open_button, 9, 10, 0, 1) > > self.image_table = HobViewTable(self.__columns__) > + self.image_table.set_size_request(-1, 300) > self.image_table.connect("toggled", self.toggled_cb) > self.vbox.pack_start(self.image_table, expand=True, fill=True) > > @@ -1052,7 +1053,6 @@ class ImageSelectionDialog (CrumbsDialog): > > model[path][columnid] = True > > - > def select_path_cb(self, action, parent, entry): > dialog = gtk.FileChooserDialog("", parent, > gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER, > diff --git a/bitbake/lib/bb/ui/crumbs/imagedetailspage.py b/bitbake/lib/bb/ui/crumbs/imagedetailspage.py > index 7f93db7..833c149 100755 > --- a/bitbake/lib/bb/ui/crumbs/imagedetailspage.py > +++ b/bitbake/lib/bb/ui/crumbs/imagedetailspage.py > @@ -74,6 +74,7 @@ class ImageDetailsPage (HobPage): > self.hbox.pack_start(self.table, expand=True, fill=True, padding=15) > > colid = 0 > + self.line_widgets = {} > if icon != None: > self.table.attach(icon, colid, colid + 2, 0, 1) > colid = colid + 2 > @@ -81,20 +82,31 @@ class ImageDetailsPage (HobPage): > self.table.attach(widget, colid, 20, 0, 1) > elif varlist != None and vallist != None: > for line in range(0, row): > - self.table.attach(self.text2label(varlist[line], vallist[line]), colid, 20, line, line + 1) > + self.line_widgets[varlist[line]] = self.text2label(varlist[line], vallist[line]) > + self.table.attach(self.line_widgets[varlist[line]], colid, 20, line, line + 1) > > # pack the button on the right > if button != None: > self.hbox.pack_end(button, expand=False, fill=False) > > + def update_line_widgets(self, variable, value): > + if len(self.line_widgets) == 0: > + return > + if not isinstance(self.line_widgets[variable], gtk.Label): > + return > + self.line_widgets[variable].set_markup(self.format_line(variable, value)) > + > + def format_line(self, variable, value): > + markup = "%s" % variable > + markup += "%s" % value > + return markup > + > def text2label(self, variable, value): > # append the name:value to the left box > # such as "Name: hob-core-minimal-variant-2011-12-15-beagleboard" > - markup = "%s" % variable > - markup += "%s" % value > label = gtk.Label() > label.set_alignment(0.0, 0.5) > - label.set_markup(markup) > + label.set_markup(self.format_line(variable, value)) > return label > > def __init__(self, builder): > @@ -141,8 +153,6 @@ class ImageDetailsPage (HobPage): > image_addr = self.builder.parameters.image_addr > image_names = self.builder.parameters.image_names > if build_succeeded: > - image_addr = self.builder.parameters.image_addr > - image_names = self.builder.parameters.image_names > machine = self.builder.configuration.curr_mach > base_image = self.builder.recipe_model.get_selected_image() > layers = self.builder.configuration.layers > @@ -174,6 +184,7 @@ class ImageDetailsPage (HobPage): > image_table = HobViewTable(self.__columns__) > image_table.set_model(self.image_store) > image_table.toggle_default() > + image_size = self._size_to_string(os.stat(os.path.join(image_addr, image_names[0])).st_size) > image_table.connect("toggled", self.toggled_cb) > view_files_button = gtk.LinkButton("file://%s" % image_addr, "View files") > self.box_group_area.pack_start(self.DetailBox(widget=image_table, button=view_files_button), expand=True, fill=True) > @@ -217,8 +228,9 @@ class ImageDetailsPage (HobPage): > edit_packages_button.connect("clicked", self.edit_packages_button_clicked_cb) > else: # get to this page from "My images" > edit_packages_button = None > - package_detail = self.DetailBox(varlist=varlist, vallist=vallist, button=edit_packages_button) > - self.box_group_area.pack_start(package_detail, expand=False, fill=False) > + self.package_detail = self.DetailBox(varlist=varlist, vallist=vallist, button=edit_packages_button) > + self.box_group_area.pack_start(self.package_detail, expand=False, fill=False) > + > if build_succeeded: > buttonlist = ["Build new image", "Save as template", "Run image", "Deploy image"] > else: # get to this page from "My images" > @@ -228,6 +240,9 @@ class ImageDetailsPage (HobPage): > > self.show_all() > > + def refresh_package_detail_box(self, image_size): > + self.package_detail.update_line_widgets("Total image size: ", image_size) > + > def toggled_cb(self, table, cell, path, columnid, tree): > model = tree.get_model() > if not model: > @@ -239,6 +254,7 @@ class ImageDetailsPage (HobPage): > iter = model.iter_next(iter) > > model[path][columnid] = True > + self.refresh_package_detail_box(model[path][1]) > > def create_bottom_buttons(self, buttonlist): > # Create the buttons at the bottom -- Joshua Lock Yocto Project "Johannes factotum" Intel Open Source Technology Centre