summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/ui/crumbs/imagedetailspage.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/ui/crumbs/imagedetailspage.py')
-rwxr-xr-xbitbake/lib/bb/ui/crumbs/imagedetailspage.py32
1 files changed, 24 insertions, 8 deletions
diff --git a/bitbake/lib/bb/ui/crumbs/imagedetailspage.py b/bitbake/lib/bb/ui/crumbs/imagedetailspage.py
index 7f93db7ef9..833c149dbd 100755
--- a/bitbake/lib/bb/ui/crumbs/imagedetailspage.py
+++ b/bitbake/lib/bb/ui/crumbs/imagedetailspage.py
@@ -74,6 +74,7 @@ class ImageDetailsPage (HobPage):
74 self.hbox.pack_start(self.table, expand=True, fill=True, padding=15) 74 self.hbox.pack_start(self.table, expand=True, fill=True, padding=15)
75 75
76 colid = 0 76 colid = 0
77 self.line_widgets = {}
77 if icon != None: 78 if icon != None:
78 self.table.attach(icon, colid, colid + 2, 0, 1) 79 self.table.attach(icon, colid, colid + 2, 0, 1)
79 colid = colid + 2 80 colid = colid + 2
@@ -81,20 +82,31 @@ class ImageDetailsPage (HobPage):
81 self.table.attach(widget, colid, 20, 0, 1) 82 self.table.attach(widget, colid, 20, 0, 1)
82 elif varlist != None and vallist != None: 83 elif varlist != None and vallist != None:
83 for line in range(0, row): 84 for line in range(0, row):
84 self.table.attach(self.text2label(varlist[line], vallist[line]), colid, 20, line, line + 1) 85 self.line_widgets[varlist[line]] = self.text2label(varlist[line], vallist[line])
86 self.table.attach(self.line_widgets[varlist[line]], colid, 20, line, line + 1)
85 87
86 # pack the button on the right 88 # pack the button on the right
87 if button != None: 89 if button != None:
88 self.hbox.pack_end(button, expand=False, fill=False) 90 self.hbox.pack_end(button, expand=False, fill=False)
89 91
92 def update_line_widgets(self, variable, value):
93 if len(self.line_widgets) == 0:
94 return
95 if not isinstance(self.line_widgets[variable], gtk.Label):
96 return
97 self.line_widgets[variable].set_markup(self.format_line(variable, value))
98
99 def format_line(self, variable, value):
100 markup = "<span weight=\'bold\'>%s</span>" % variable
101 markup += "<span weight=\'normal\' foreground=\'#1c1c1c\' font_desc=\'14px\'>%s</span>" % value
102 return markup
103
90 def text2label(self, variable, value): 104 def text2label(self, variable, value):
91 # append the name:value to the left box 105 # append the name:value to the left box
92 # such as "Name: hob-core-minimal-variant-2011-12-15-beagleboard" 106 # such as "Name: hob-core-minimal-variant-2011-12-15-beagleboard"
93 markup = "<span weight=\'bold\'>%s</span>" % variable
94 markup += "<span weight=\'normal\' foreground=\'#1c1c1c\' font_desc=\'14px\'>%s</span>" % value
95 label = gtk.Label() 107 label = gtk.Label()
96 label.set_alignment(0.0, 0.5) 108 label.set_alignment(0.0, 0.5)
97 label.set_markup(markup) 109 label.set_markup(self.format_line(variable, value))
98 return label 110 return label
99 111
100 def __init__(self, builder): 112 def __init__(self, builder):
@@ -141,8 +153,6 @@ class ImageDetailsPage (HobPage):
141 image_addr = self.builder.parameters.image_addr 153 image_addr = self.builder.parameters.image_addr
142 image_names = self.builder.parameters.image_names 154 image_names = self.builder.parameters.image_names
143 if build_succeeded: 155 if build_succeeded:
144 image_addr = self.builder.parameters.image_addr
145 image_names = self.builder.parameters.image_names
146 machine = self.builder.configuration.curr_mach 156 machine = self.builder.configuration.curr_mach
147 base_image = self.builder.recipe_model.get_selected_image() 157 base_image = self.builder.recipe_model.get_selected_image()
148 layers = self.builder.configuration.layers 158 layers = self.builder.configuration.layers
@@ -174,6 +184,7 @@ class ImageDetailsPage (HobPage):
174 image_table = HobViewTable(self.__columns__) 184 image_table = HobViewTable(self.__columns__)
175 image_table.set_model(self.image_store) 185 image_table.set_model(self.image_store)
176 image_table.toggle_default() 186 image_table.toggle_default()
187 image_size = self._size_to_string(os.stat(os.path.join(image_addr, image_names[0])).st_size)
177 image_table.connect("toggled", self.toggled_cb) 188 image_table.connect("toggled", self.toggled_cb)
178 view_files_button = gtk.LinkButton("file://%s" % image_addr, "View files") 189 view_files_button = gtk.LinkButton("file://%s" % image_addr, "View files")
179 self.box_group_area.pack_start(self.DetailBox(widget=image_table, button=view_files_button), expand=True, fill=True) 190 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):
217 edit_packages_button.connect("clicked", self.edit_packages_button_clicked_cb) 228 edit_packages_button.connect("clicked", self.edit_packages_button_clicked_cb)
218 else: # get to this page from "My images" 229 else: # get to this page from "My images"
219 edit_packages_button = None 230 edit_packages_button = None
220 package_detail = self.DetailBox(varlist=varlist, vallist=vallist, button=edit_packages_button) 231 self.package_detail = self.DetailBox(varlist=varlist, vallist=vallist, button=edit_packages_button)
221 self.box_group_area.pack_start(package_detail, expand=False, fill=False) 232 self.box_group_area.pack_start(self.package_detail, expand=False, fill=False)
233
222 if build_succeeded: 234 if build_succeeded:
223 buttonlist = ["Build new image", "Save as template", "Run image", "Deploy image"] 235 buttonlist = ["Build new image", "Save as template", "Run image", "Deploy image"]
224 else: # get to this page from "My images" 236 else: # get to this page from "My images"
@@ -228,6 +240,9 @@ class ImageDetailsPage (HobPage):
228 240
229 self.show_all() 241 self.show_all()
230 242
243 def refresh_package_detail_box(self, image_size):
244 self.package_detail.update_line_widgets("Total image size: ", image_size)
245
231 def toggled_cb(self, table, cell, path, columnid, tree): 246 def toggled_cb(self, table, cell, path, columnid, tree):
232 model = tree.get_model() 247 model = tree.get_model()
233 if not model: 248 if not model:
@@ -239,6 +254,7 @@ class ImageDetailsPage (HobPage):
239 iter = model.iter_next(iter) 254 iter = model.iter_next(iter)
240 255
241 model[path][columnid] = True 256 model[path][columnid] = True
257 self.refresh_package_detail_box(model[path][1])
242 258
243 def create_bottom_buttons(self, buttonlist): 259 def create_bottom_buttons(self, buttonlist):
244 # Create the buttons at the bottom 260 # Create the buttons at the bottom