diff options
author | Cristiana Voicu <cristiana.voicu@intel.com> | 2013-07-16 13:33:21 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-08-06 13:02:26 +0100 |
commit | c83f8185a851c02469fa3ce928049b056c56509b (patch) | |
tree | 775ac4f8dd1b4aba587eae106a42e03ed14af86c /bitbake/lib | |
parent | 42a4f33fc0626897f0d9b23db53c42def7c2fbf8 (diff) | |
download | ast2050-yocto-poky-c83f8185a851c02469fa3ce928049b056c56509b.zip ast2050-yocto-poky-c83f8185a851c02469fa3ce928049b056c56509b.tar.gz |
bitbake: hob: implement the "retrieve image dialog" + changes to image combo box
Tha changes related to the image combo box are related to the
action done in the retrieveImageDialog. When the user wants to select
a customize image, but then he cancels the action, the combo box is set to
--select a base image--.
If the user selects an image using the new dialog, a new item with its name
is added to the combo box list and then it is activated.
[YOCTO #4193]
(Bitbake rev: f25322de7e47719b31808397174e5c4f6d8649f2)
Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib')
-rwxr-xr-x | bitbake/lib/bb/ui/crumbs/builder.py | 1 | ||||
-rw-r--r-- | bitbake/lib/bb/ui/crumbs/imageconfigurationpage.py | 37 |
2 files changed, 35 insertions, 3 deletions
diff --git a/bitbake/lib/bb/ui/crumbs/builder.py b/bitbake/lib/bb/ui/crumbs/builder.py index 3ddfb36..86fdbfe 100755 --- a/bitbake/lib/bb/ui/crumbs/builder.py +++ b/bitbake/lib/bb/ui/crumbs/builder.py @@ -520,6 +520,7 @@ class Builder(gtk.Window): self.handler.generate_configuration() def initiate_new_build_async(self): + self.configuration.selected_image = None self.switch_page(self.MACHINE_SELECTION) self.handler.init_cooker() self.handler.set_extra_inherit("image_types") diff --git a/bitbake/lib/bb/ui/crumbs/imageconfigurationpage.py b/bitbake/lib/bb/ui/crumbs/imageconfigurationpage.py index 3d86b6b..e1211bc 100644 --- a/bitbake/lib/bb/ui/crumbs/imageconfigurationpage.py +++ b/bitbake/lib/bb/ui/crumbs/imageconfigurationpage.py @@ -28,6 +28,7 @@ from bb.ui.crumbs.hobcolor import HobColors from bb.ui.crumbs.hobwidget import hic, HobImageButton, HobInfoButton, HobAltButton, HobButton from bb.ui.crumbs.hoblistmodel import RecipeListModel from bb.ui.crumbs.hobpages import HobPage +from bb.ui.crumbs.hig.retrieveimagedialog import RetrieveImageDialog # # ImageConfigurationPage @@ -48,6 +49,7 @@ class ImageConfigurationPage (HobPage): self.machine_combo_changed_by_manual = True self.stopping = False self.warning_shift = 0 + self.custom_image_selected = None self.create_visual_elements() def create_visual_elements(self): @@ -366,8 +368,28 @@ class ImageConfigurationPage (HobPage): self.builder.window_sensitive(False) selected_image = self.image_combo.get_active_text() if selected_image == self.__custom_image__: - return + topdir = self.builder.get_topdir() + images_dir = topdir + "/recipes/images/" + self.builder.ensure_dir(images_dir) + + dialog = RetrieveImageDialog(images_dir, "Select from my image recipes", + self.builder, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT) + response = dialog.run() + if response == gtk.RESPONSE_OK: + image_name = dialog.get_filename() + head, tail = os.path.split(image_name) + selected_image = os.path.splitext(tail)[0] + self.custom_image_selected = selected_image + self.update_image_combo(self.builder.recipe_model, selected_image) + else: + selected_image = self.__dummy_image__ + self.update_image_combo(self.builder.recipe_model, None) + dialog.destroy() + if not selected_image or (selected_image == self.__dummy_image__): + self.builder.window_sensitive(True) + self.just_bake_button.hide() + self.edit_image_button.hide() return # remove __dummy_image__ item from the store list after first user selection @@ -436,6 +458,7 @@ class ImageConfigurationPage (HobPage): self.image_combo.append_text(self.__custom_image__) self.image_combo.append_text(self.builder.recipe_model.__custom_image__) self.image_combo.append_text("--Separator--") + cnt = cnt + 3 topdir = self.builder.get_topdir() # append and set active @@ -471,6 +494,14 @@ class ImageConfigurationPage (HobPage): active = cnt cnt = cnt + 1 + if self.custom_image_selected: + self.image_combo.append_text("--Separator--") + cnt = cnt + 1 + self.image_combo.append_text(self.custom_image_selected) + if self.custom_image_selected == selected_image: + active = cnt + cnt = cnt + 1 + if selected_image == self.builder.recipe_model.__custom_image__: active = cnt @@ -484,14 +515,14 @@ class ImageConfigurationPage (HobPage): def layer_button_clicked_cb(self, button): # Create a layer selection dialog self.builder.show_layer_selection_dialog() - + def view_adv_configuration_button_clicked_cb(self, button): # Create an advanced settings dialog response, settings_changed = self.builder.show_adv_settings_dialog() if not response: return if settings_changed: - self.builder.reparse_post_adv_settings() + self.builder.reparse_post_adv_settings() def just_bake_button_clicked_cb(self, button): self.builder.parsing_warnings = [] |