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.py20
1 files changed, 18 insertions, 2 deletions
diff --git a/bitbake/lib/bb/ui/crumbs/imagedetailspage.py b/bitbake/lib/bb/ui/crumbs/imagedetailspage.py
index 4b0e7498cd..a02ab610c0 100755
--- a/bitbake/lib/bb/ui/crumbs/imagedetailspage.py
+++ b/bitbake/lib/bb/ui/crumbs/imagedetailspage.py
@@ -27,6 +27,7 @@ from bb.ui.crumbs.hobwidget import hic, HobViewTable, HobAltButton, HobButton
27from bb.ui.crumbs.hobpages import HobPage 27from bb.ui.crumbs.hobpages import HobPage
28import subprocess 28import subprocess
29from bb.ui.crumbs.hig.crumbsdialog import CrumbsDialog 29from bb.ui.crumbs.hig.crumbsdialog import CrumbsDialog
30from bb.ui.crumbs.hig.saveimagedialog import SaveImageDialog
30 31
31# 32#
32# ImageDetailsPage 33# ImageDetailsPage
@@ -259,7 +260,7 @@ class ImageDetailsPage (HobPage):
259 self.build_result = self.BuildDetailBox(varlist=varlist, vallist=vallist, icon=icon, color=color) 260 self.build_result = self.BuildDetailBox(varlist=varlist, vallist=vallist, icon=icon, color=color)
260 self.box_group_area.pack_start(self.build_result, expand=False, fill=False) 261 self.box_group_area.pack_start(self.build_result, expand=False, fill=False)
261 262
262 self.buttonlist = ["Build new image", "Run image", "Deploy image"] 263 self.buttonlist = ["Build new image", "Save image recipe", "Run image", "Deploy image"]
263 264
264 # Name 265 # Name
265 self.image_store = [] 266 self.image_store = []
@@ -340,7 +341,7 @@ class ImageDetailsPage (HobPage):
340 self.setting_detail = None 341 self.setting_detail = None
341 if self.build_succeeded: 342 if self.build_succeeded:
342 vallist.append(machine) 343 vallist.append(machine)
343 if base_image == self.builder.recipe_model.__custom_image__: 344 if self.builder.recipe_model.is_custom_image():
344 if self.builder.configuration.initial_selected_image == self.builder.recipe_model.__custom_image__: 345 if self.builder.configuration.initial_selected_image == self.builder.recipe_model.__custom_image__:
345 base_image ="New image recipe" 346 base_image ="New image recipe"
346 else: 347 else:
@@ -579,6 +580,13 @@ class ImageDetailsPage (HobPage):
579 created = True 580 created = True
580 is_runnable = True 581 is_runnable = True
581 582
583 name = "Save image recipe"
584 if name in buttonlist and self.builder.recipe_model.is_custom_image():
585 save_button = HobAltButton("Save image recipe")
586 button_id = save_button.connect("clicked", self.save_button_clicked_cb)
587 self.button_ids[button_id] = save_button
588 self.details_bottom_buttons.pack_end(save_button, expand=False, fill=False)
589
582 name = "Build new image" 590 name = "Build new image"
583 if name in buttonlist: 591 if name in buttonlist:
584 # create button "Build new image" 592 # create button "Build new image"
@@ -613,6 +621,14 @@ class ImageDetailsPage (HobPage):
613 else: 621 else:
614 self.builder.runqemu_image(self.toggled_image, self.sel_kernel) 622 self.builder.runqemu_image(self.toggled_image, self.sel_kernel)
615 623
624 def save_button_clicked_cb(self, button):
625 topdir = self.builder.get_topdir()
626 images_dir = topdir + "/recipes/images/"
627 dialog = SaveImageDialog(images_dir, "Save image recipe", self.builder,
628 gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT)
629 response = dialog.run()
630 dialog.destroy()
631
616 def build_new_button_clicked_cb(self, button): 632 def build_new_button_clicked_cb(self, button):
617 self.builder.initiate_new_build_async() 633 self.builder.initiate_new_build_async()
618 634