diff options
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 3ddfb36a0c..86fdbfe9f7 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): | |||
520 | self.handler.generate_configuration() | 520 | self.handler.generate_configuration() |
521 | 521 | ||
522 | def initiate_new_build_async(self): | 522 | def initiate_new_build_async(self): |
523 | self.configuration.selected_image = None | ||
523 | self.switch_page(self.MACHINE_SELECTION) | 524 | self.switch_page(self.MACHINE_SELECTION) |
524 | self.handler.init_cooker() | 525 | self.handler.init_cooker() |
525 | self.handler.set_extra_inherit("image_types") | 526 | 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 3d86b6b431..e1211bc6d3 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 | |||
28 | from bb.ui.crumbs.hobwidget import hic, HobImageButton, HobInfoButton, HobAltButton, HobButton | 28 | from bb.ui.crumbs.hobwidget import hic, HobImageButton, HobInfoButton, HobAltButton, HobButton |
29 | from bb.ui.crumbs.hoblistmodel import RecipeListModel | 29 | from bb.ui.crumbs.hoblistmodel import RecipeListModel |
30 | from bb.ui.crumbs.hobpages import HobPage | 30 | from bb.ui.crumbs.hobpages import HobPage |
31 | from bb.ui.crumbs.hig.retrieveimagedialog import RetrieveImageDialog | ||
31 | 32 | ||
32 | # | 33 | # |
33 | # ImageConfigurationPage | 34 | # ImageConfigurationPage |
@@ -48,6 +49,7 @@ class ImageConfigurationPage (HobPage): | |||
48 | self.machine_combo_changed_by_manual = True | 49 | self.machine_combo_changed_by_manual = True |
49 | self.stopping = False | 50 | self.stopping = False |
50 | self.warning_shift = 0 | 51 | self.warning_shift = 0 |
52 | self.custom_image_selected = None | ||
51 | self.create_visual_elements() | 53 | self.create_visual_elements() |
52 | 54 | ||
53 | def create_visual_elements(self): | 55 | def create_visual_elements(self): |
@@ -366,8 +368,28 @@ class ImageConfigurationPage (HobPage): | |||
366 | self.builder.window_sensitive(False) | 368 | self.builder.window_sensitive(False) |
367 | selected_image = self.image_combo.get_active_text() | 369 | selected_image = self.image_combo.get_active_text() |
368 | if selected_image == self.__custom_image__: | 370 | if selected_image == self.__custom_image__: |
369 | return | 371 | topdir = self.builder.get_topdir() |
372 | images_dir = topdir + "/recipes/images/" | ||
373 | self.builder.ensure_dir(images_dir) | ||
374 | |||
375 | dialog = RetrieveImageDialog(images_dir, "Select from my image recipes", | ||
376 | self.builder, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT) | ||
377 | response = dialog.run() | ||
378 | if response == gtk.RESPONSE_OK: | ||
379 | image_name = dialog.get_filename() | ||
380 | head, tail = os.path.split(image_name) | ||
381 | selected_image = os.path.splitext(tail)[0] | ||
382 | self.custom_image_selected = selected_image | ||
383 | self.update_image_combo(self.builder.recipe_model, selected_image) | ||
384 | else: | ||
385 | selected_image = self.__dummy_image__ | ||
386 | self.update_image_combo(self.builder.recipe_model, None) | ||
387 | dialog.destroy() | ||
388 | |||
370 | if not selected_image or (selected_image == self.__dummy_image__): | 389 | if not selected_image or (selected_image == self.__dummy_image__): |
390 | self.builder.window_sensitive(True) | ||
391 | self.just_bake_button.hide() | ||
392 | self.edit_image_button.hide() | ||
371 | return | 393 | return |
372 | 394 | ||
373 | # remove __dummy_image__ item from the store list after first user selection | 395 | # remove __dummy_image__ item from the store list after first user selection |
@@ -436,6 +458,7 @@ class ImageConfigurationPage (HobPage): | |||
436 | self.image_combo.append_text(self.__custom_image__) | 458 | self.image_combo.append_text(self.__custom_image__) |
437 | self.image_combo.append_text(self.builder.recipe_model.__custom_image__) | 459 | self.image_combo.append_text(self.builder.recipe_model.__custom_image__) |
438 | self.image_combo.append_text("--Separator--") | 460 | self.image_combo.append_text("--Separator--") |
461 | cnt = cnt + 3 | ||
439 | 462 | ||
440 | topdir = self.builder.get_topdir() | 463 | topdir = self.builder.get_topdir() |
441 | # append and set active | 464 | # append and set active |
@@ -471,6 +494,14 @@ class ImageConfigurationPage (HobPage): | |||
471 | active = cnt | 494 | active = cnt |
472 | cnt = cnt + 1 | 495 | cnt = cnt + 1 |
473 | 496 | ||
497 | if self.custom_image_selected: | ||
498 | self.image_combo.append_text("--Separator--") | ||
499 | cnt = cnt + 1 | ||
500 | self.image_combo.append_text(self.custom_image_selected) | ||
501 | if self.custom_image_selected == selected_image: | ||
502 | active = cnt | ||
503 | cnt = cnt + 1 | ||
504 | |||
474 | if selected_image == self.builder.recipe_model.__custom_image__: | 505 | if selected_image == self.builder.recipe_model.__custom_image__: |
475 | active = cnt | 506 | active = cnt |
476 | 507 | ||
@@ -484,14 +515,14 @@ class ImageConfigurationPage (HobPage): | |||
484 | def layer_button_clicked_cb(self, button): | 515 | def layer_button_clicked_cb(self, button): |
485 | # Create a layer selection dialog | 516 | # Create a layer selection dialog |
486 | self.builder.show_layer_selection_dialog() | 517 | self.builder.show_layer_selection_dialog() |
487 | 518 | ||
488 | def view_adv_configuration_button_clicked_cb(self, button): | 519 | def view_adv_configuration_button_clicked_cb(self, button): |
489 | # Create an advanced settings dialog | 520 | # Create an advanced settings dialog |
490 | response, settings_changed = self.builder.show_adv_settings_dialog() | 521 | response, settings_changed = self.builder.show_adv_settings_dialog() |
491 | if not response: | 522 | if not response: |
492 | return | 523 | return |
493 | if settings_changed: | 524 | if settings_changed: |
494 | self.builder.reparse_post_adv_settings() | 525 | self.builder.reparse_post_adv_settings() |
495 | 526 | ||
496 | def just_bake_button_clicked_cb(self, button): | 527 | def just_bake_button_clicked_cb(self, button): |
497 | self.builder.parsing_warnings = [] | 528 | self.builder.parsing_warnings = [] |