diff options
| -rwxr-xr-x | bitbake/lib/bb/ui/crumbs/builder.py | 1 | ||||
| -rw-r--r-- | bitbake/lib/bb/ui/crumbs/hig.py | 203 |
2 files changed, 150 insertions, 54 deletions
diff --git a/bitbake/lib/bb/ui/crumbs/builder.py b/bitbake/lib/bb/ui/crumbs/builder.py index 357089d7cb..b847165030 100755 --- a/bitbake/lib/bb/ui/crumbs/builder.py +++ b/bitbake/lib/bb/ui/crumbs/builder.py | |||
| @@ -1283,6 +1283,7 @@ class Builder(gtk.Window): | |||
| 1283 | HobAltButton.style_button(button) | 1283 | HobAltButton.style_button(button) |
| 1284 | button = dialog.add_button("Save", gtk.RESPONSE_YES) | 1284 | button = dialog.add_button("Save", gtk.RESPONSE_YES) |
| 1285 | HobButton.style_button(button) | 1285 | HobButton.style_button(button) |
| 1286 | dialog.set_save_button(button) | ||
| 1286 | response = dialog.run() | 1287 | response = dialog.run() |
| 1287 | settings_changed = False | 1288 | settings_changed = False |
| 1288 | if response == gtk.RESPONSE_YES: | 1289 | if response == gtk.RESPONSE_YES: |
diff --git a/bitbake/lib/bb/ui/crumbs/hig.py b/bitbake/lib/bb/ui/crumbs/hig.py index f52510c552..bdb3702e29 100644 --- a/bitbake/lib/bb/ui/crumbs/hig.py +++ b/bitbake/lib/bb/ui/crumbs/hig.py | |||
| @@ -313,14 +313,6 @@ class SimpleSettingsDialog (CrumbsDialog, SettingsUIHelper): | |||
| 313 | 313 | ||
| 314 | def config_md5(self): | 314 | def config_md5(self): |
| 315 | data = "" | 315 | data = "" |
| 316 | data += ("PACKAGE_CLASSES: " + self.configuration.curr_package_format + '\n') | ||
| 317 | data += ("DISTRO: " + self._get_sorted_value(self.configuration.curr_distro)) | ||
| 318 | data += ("IMAGE_ROOTFS_SIZE: " + self._get_sorted_value(self.configuration.image_rootfs_size)) | ||
| 319 | data += ("IMAGE_EXTRA_SIZE: " + self._get_sorted_value(self.configuration.image_extra_size)) | ||
| 320 | data += ("INCOMPATIBLE_LICENSE: " + self._get_sorted_value(self.configuration.incompat_license)) | ||
| 321 | data += ("SDK_MACHINE: " + self._get_sorted_value(self.configuration.curr_sdk_machine)) | ||
| 322 | data += ("TOOLCHAIN_BUILD: " + self._get_sorted_value(self.configuration.toolchain_build)) | ||
| 323 | data += ("IMAGE_FSTYPES: " + self._get_sorted_value(self.configuration.image_fstypes)) | ||
| 324 | data += ("ENABLE_PROXY: " + self._get_sorted_value(self.configuration.enable_proxy)) | 316 | data += ("ENABLE_PROXY: " + self._get_sorted_value(self.configuration.enable_proxy)) |
| 325 | if self.configuration.enable_proxy: | 317 | if self.configuration.enable_proxy: |
| 326 | for protocol in self.configuration.proxies.keys(): | 318 | for protocol in self.configuration.proxies.keys(): |
| @@ -448,6 +440,14 @@ class SimpleSettingsDialog (CrumbsDialog, SettingsUIHelper): | |||
| 448 | self.configuration.split_proxy("git", self.git_proxy.get_text() + ":" + self.git_proxy_port.get_text()) | 440 | self.configuration.split_proxy("git", self.git_proxy.get_text() + ":" + self.git_proxy_port.get_text()) |
| 449 | self.configuration.split_proxy("cvs", self.cvs_proxy.get_text() + ":" + self.cvs_proxy_port.get_text()) | 441 | self.configuration.split_proxy("cvs", self.cvs_proxy.get_text() + ":" + self.cvs_proxy_port.get_text()) |
| 450 | 442 | ||
| 443 | self.configuration.extra_setting = {} | ||
| 444 | it = self.setting_store.get_iter_first() | ||
| 445 | while it: | ||
| 446 | key = self.setting_store.get_value(it, 0) | ||
| 447 | value = self.setting_store.get_value(it, 1) | ||
| 448 | self.configuration.extra_setting[key] = value | ||
| 449 | it = self.setting_store.iter_next(it) | ||
| 450 | |||
| 451 | md5 = self.config_md5() | 451 | md5 = self.config_md5() |
| 452 | self.settings_changed = (self.md5 != md5) | 452 | self.settings_changed = (self.md5 != md5) |
| 453 | 453 | ||
| @@ -455,9 +455,10 @@ class SimpleSettingsDialog (CrumbsDialog, SettingsUIHelper): | |||
| 455 | advanced_vbox = gtk.VBox(False, 6) | 455 | advanced_vbox = gtk.VBox(False, 6) |
| 456 | advanced_vbox.set_border_width(6) | 456 | advanced_vbox.set_border_width(6) |
| 457 | 457 | ||
| 458 | advanced_vbox.pack_start(self.gen_label_widget('<span weight="bold">Parallel threads</span>'), expand=False, fill=False) | ||
| 458 | sub_vbox = gtk.VBox(False, 6) | 459 | sub_vbox = gtk.VBox(False, 6) |
| 459 | advanced_vbox.pack_start(sub_vbox, expand=False, fill=False) | 460 | advanced_vbox.pack_start(sub_vbox, expand=False, fill=False) |
| 460 | label = self.gen_label_widget("<span weight=\"bold\">BB number threads:</span>") | 461 | label = self.gen_label_widget("BitBake parallel threads") |
| 461 | tooltip = "Sets the number of threads that BitBake tasks can simultaneously run. See the <a href=\"" | 462 | tooltip = "Sets the number of threads that BitBake tasks can simultaneously run. See the <a href=\"" |
| 462 | tooltip += "http://www.yoctoproject.org/docs/current/poky-ref-manual/" | 463 | tooltip += "http://www.yoctoproject.org/docs/current/poky-ref-manual/" |
| 463 | tooltip += "poky-ref-manual.html#var-BB_NUMBER_THREADS\">Poky reference manual</a> for information" | 464 | tooltip += "poky-ref-manual.html#var-BB_NUMBER_THREADS\">Poky reference manual</a> for information" |
| @@ -467,7 +468,7 @@ class SimpleSettingsDialog (CrumbsDialog, SettingsUIHelper): | |||
| 467 | 468 | ||
| 468 | sub_vbox = gtk.VBox(False, 6) | 469 | sub_vbox = gtk.VBox(False, 6) |
| 469 | advanced_vbox.pack_start(sub_vbox, expand=False, fill=False) | 470 | advanced_vbox.pack_start(sub_vbox, expand=False, fill=False) |
| 470 | label = self.gen_label_widget("<span weight=\"bold\">Parallel make:</span>") | 471 | label = self.gen_label_widget("Make parallel threads") |
| 471 | tooltip = "Sets the maximum number of threads the host can use during the build. See the <a href=\"" | 472 | tooltip = "Sets the maximum number of threads the host can use during the build. See the <a href=\"" |
| 472 | tooltip += "http://www.yoctoproject.org/docs/current/poky-ref-manual/" | 473 | tooltip += "http://www.yoctoproject.org/docs/current/poky-ref-manual/" |
| 473 | tooltip += "poky-ref-manual.html#var-PARALLEL_MAKE\">Poky reference manual</a> for information" | 474 | tooltip += "poky-ref-manual.html#var-PARALLEL_MAKE\">Poky reference manual</a> for information" |
| @@ -475,9 +476,10 @@ class SimpleSettingsDialog (CrumbsDialog, SettingsUIHelper): | |||
| 475 | sub_vbox.pack_start(label, expand=False, fill=False) | 476 | sub_vbox.pack_start(label, expand=False, fill=False) |
| 476 | sub_vbox.pack_start(pmake_widget, expand=False, fill=False) | 477 | sub_vbox.pack_start(pmake_widget, expand=False, fill=False) |
| 477 | 478 | ||
| 479 | advanced_vbox.pack_start(self.gen_label_widget('<span weight="bold">Cache directories and mirror</span>'), expand=False, fill=False) | ||
| 478 | sub_vbox = gtk.VBox(False, 6) | 480 | sub_vbox = gtk.VBox(False, 6) |
| 479 | advanced_vbox.pack_start(sub_vbox, expand=False, fill=False) | 481 | advanced_vbox.pack_start(sub_vbox, expand=False, fill=False) |
| 480 | label = self.gen_label_widget("<span weight=\"bold\">Select download directory:</span>") | 482 | label = self.gen_label_widget("Download directory") |
| 481 | tooltip = "Select a folder that caches the upstream project source code" | 483 | tooltip = "Select a folder that caches the upstream project source code" |
| 482 | dldir_widget, self.dldir_text = self.gen_entry_widget(self.configuration.dldir, self, tooltip) | 484 | dldir_widget, self.dldir_text = self.gen_entry_widget(self.configuration.dldir, self, tooltip) |
| 483 | sub_vbox.pack_start(label, expand=False, fill=False) | 485 | sub_vbox.pack_start(label, expand=False, fill=False) |
| @@ -723,7 +725,7 @@ class AdvancedSettingDialog (CrumbsDialog, SettingsUIHelper): | |||
| 723 | if iter: | 725 | if iter: |
| 724 | path = model.get_path(iter)[0] | 726 | path = model.get_path(iter)[0] |
| 725 | model.remove(iter) | 727 | model.remove(iter) |
| 726 | 728 | ||
| 727 | def gen_editable_settings(self, setting, tooltip=""): | 729 | def gen_editable_settings(self, setting, tooltip=""): |
| 728 | setting_hbox = gtk.HBox(False, 12) | 730 | setting_hbox = gtk.HBox(False, 12) |
| 729 | 731 | ||
| @@ -786,6 +788,102 @@ class AdvancedSettingDialog (CrumbsDialog, SettingsUIHelper): | |||
| 786 | 788 | ||
| 787 | return setting_hbox, setting_store | 789 | return setting_hbox, setting_store |
| 788 | 790 | ||
| 791 | def create_others_page(self): | ||
| 792 | advanced_vbox = gtk.VBox(False, 6) | ||
| 793 | advanced_vbox.set_border_width(6) | ||
| 794 | |||
| 795 | sub_vbox = gtk.VBox(False, 6) | ||
| 796 | advanced_vbox.pack_start(sub_vbox, expand=True, fill=True) | ||
| 797 | label = self.gen_label_widget("<span weight=\"bold\">Add your own variables:</span>") | ||
| 798 | tooltip = "These are key/value pairs for your extra settings. Click \'Add\' and then directly edit the key and the value" | ||
| 799 | setting_widget, self.setting_store = self.gen_editable_settings(self.configuration.extra_setting, tooltip) | ||
| 800 | sub_vbox.pack_start(label, expand=False, fill=False) | ||
| 801 | sub_vbox.pack_start(setting_widget, expand=True, fill=True) | ||
| 802 | |||
| 803 | return advanced_vbox | ||
| 804 | |||
| 805 | def create_visual_elements(self): | ||
| 806 | self.nb = gtk.Notebook() | ||
| 807 | self.nb.set_show_tabs(True) | ||
| 808 | self.nb.append_page(self.create_build_environment_page(), gtk.Label("Build environment")) | ||
| 809 | self.nb.append_page(self.create_proxy_page(), gtk.Label("Proxies")) | ||
| 810 | self.nb.append_page(self.create_others_page(), gtk.Label("Others")) | ||
| 811 | self.nb.set_current_page(0) | ||
| 812 | self.vbox.pack_start(self.nb, expand=True, fill=True) | ||
| 813 | self.vbox.pack_end(gtk.HSeparator(), expand=True, fill=True) | ||
| 814 | |||
| 815 | self.show_all() | ||
| 816 | |||
| 817 | |||
| 818 | # | ||
| 819 | # AdvancedSettings Dialog | ||
| 820 | # | ||
| 821 | class AdvancedSettingDialog (CrumbsDialog, SettingsUIHelper): | ||
| 822 | |||
| 823 | def details_cb(self, button, parent, protocol): | ||
| 824 | dialog = ProxyDetailsDialog(title = protocol.upper() + " Proxy Details", | ||
| 825 | user = self.configuration.proxies[protocol][1], | ||
| 826 | passwd = self.configuration.proxies[protocol][2], | ||
| 827 | parent = parent, | ||
| 828 | flags = gtk.DIALOG_MODAL | ||
| 829 | | gtk.DIALOG_DESTROY_WITH_PARENT | ||
| 830 | | gtk.DIALOG_NO_SEPARATOR) | ||
| 831 | dialog.add_button(gtk.STOCK_CLOSE, gtk.RESPONSE_OK) | ||
| 832 | response = dialog.run() | ||
| 833 | if response == gtk.RESPONSE_OK: | ||
| 834 | self.configuration.proxies[protocol][1] = dialog.user | ||
| 835 | self.configuration.proxies[protocol][2] = dialog.passwd | ||
| 836 | self.refresh_proxy_components() | ||
| 837 | dialog.destroy() | ||
| 838 | |||
| 839 | def set_save_button(self, button): | ||
| 840 | self.save_button = button | ||
| 841 | |||
| 842 | def rootfs_combo_changed_cb(self, rootfs_combo, all_package_format, check_hbox): | ||
| 843 | combo_item = self.rootfs_combo.get_active_text() | ||
| 844 | for child in check_hbox.get_children(): | ||
| 845 | if isinstance(child, gtk.CheckButton): | ||
| 846 | check_hbox.remove(child) | ||
| 847 | for format in all_package_format: | ||
| 848 | if format != combo_item: | ||
| 849 | check_button = gtk.CheckButton(format) | ||
| 850 | check_hbox.pack_start(check_button, expand=False, fill=False) | ||
| 851 | check_hbox.show_all() | ||
| 852 | |||
| 853 | def gen_pkgfmt_widget(self, curr_package_format, all_package_format, tooltip_combo="", tooltip_extra=""): | ||
| 854 | pkgfmt_vbox = gtk.VBox(False, 6) | ||
| 855 | |||
| 856 | label = self.gen_label_widget("Root file system package format") | ||
| 857 | pkgfmt_vbox.pack_start(label, expand=False, fill=False) | ||
| 858 | |||
| 859 | rootfs_format = "" | ||
| 860 | if curr_package_format: | ||
| 861 | rootfs_format = curr_package_format.split()[0] | ||
| 862 | |||
| 863 | rootfs_format_widget, rootfs_combo = self.gen_combo_widget(rootfs_format, all_package_format, tooltip_combo) | ||
| 864 | pkgfmt_vbox.pack_start(rootfs_format_widget, expand=False, fill=False) | ||
| 865 | |||
| 866 | label = self.gen_label_widget("Additional package formats") | ||
| 867 | pkgfmt_vbox.pack_start(label, expand=False, fill=False) | ||
| 868 | |||
| 869 | check_hbox = gtk.HBox(False, 12) | ||
| 870 | pkgfmt_vbox.pack_start(check_hbox, expand=False, fill=False) | ||
| 871 | for format in all_package_format: | ||
| 872 | if format != rootfs_format: | ||
| 873 | check_button = gtk.CheckButton(format) | ||
| 874 | is_active = (format in curr_package_format.split()) | ||
| 875 | check_button.set_active(is_active) | ||
| 876 | check_hbox.pack_start(check_button, expand=False, fill=False) | ||
| 877 | |||
| 878 | info = HobInfoButton(tooltip_extra, self) | ||
| 879 | check_hbox.pack_start(info, expand=False, fill=False) | ||
| 880 | |||
| 881 | rootfs_combo.connect("changed", self.rootfs_combo_changed_cb, all_package_format, check_hbox) | ||
| 882 | |||
| 883 | pkgfmt_vbox.show_all() | ||
| 884 | |||
| 885 | return pkgfmt_vbox, rootfs_combo, check_hbox | ||
| 886 | |||
| 789 | def __init__(self, title, configuration, all_image_types, | 887 | def __init__(self, title, configuration, all_image_types, |
| 790 | all_package_formats, all_distros, all_sdk_machines, | 888 | all_package_formats, all_distros, all_sdk_machines, |
| 791 | max_threads, parent, flags, buttons=None): | 889 | max_threads, parent, flags, buttons=None): |
| @@ -811,13 +909,13 @@ class AdvancedSettingDialog (CrumbsDialog, SettingsUIHelper): | |||
| 811 | self.extra_size_spinner = None | 909 | self.extra_size_spinner = None |
| 812 | self.gplv3_checkbox = None | 910 | self.gplv3_checkbox = None |
| 813 | self.toolchain_checkbox = None | 911 | self.toolchain_checkbox = None |
| 814 | self.setting_store = None | ||
| 815 | self.image_types_checkbuttons = {} | 912 | self.image_types_checkbuttons = {} |
| 816 | 913 | ||
| 817 | self.md5 = self.config_md5() | 914 | self.md5 = self.config_md5() |
| 818 | self.settings_changed = False | 915 | self.settings_changed = False |
| 819 | 916 | ||
| 820 | # create visual elements on the dialog | 917 | # create visual elements on the dialog |
| 918 | self.save_button = None | ||
| 821 | self.create_visual_elements() | 919 | self.create_visual_elements() |
| 822 | self.connect("response", self.response_cb) | 920 | self.connect("response", self.response_cb) |
| 823 | 921 | ||
| @@ -834,12 +932,6 @@ class AdvancedSettingDialog (CrumbsDialog, SettingsUIHelper): | |||
| 834 | data += ("SDK_MACHINE: " + self._get_sorted_value(self.configuration.curr_sdk_machine)) | 932 | data += ("SDK_MACHINE: " + self._get_sorted_value(self.configuration.curr_sdk_machine)) |
| 835 | data += ("TOOLCHAIN_BUILD: " + self._get_sorted_value(self.configuration.toolchain_build)) | 933 | data += ("TOOLCHAIN_BUILD: " + self._get_sorted_value(self.configuration.toolchain_build)) |
| 836 | data += ("IMAGE_FSTYPES: " + self._get_sorted_value(self.configuration.image_fstypes)) | 934 | data += ("IMAGE_FSTYPES: " + self._get_sorted_value(self.configuration.image_fstypes)) |
| 837 | data += ("ENABLE_PROXY: " + self._get_sorted_value(self.configuration.enable_proxy)) | ||
| 838 | if self.configuration.enable_proxy: | ||
| 839 | for protocol in self.configuration.proxies.keys(): | ||
| 840 | data += (protocol + ": " + self._get_sorted_value(self.configuration.combine_proxy(protocol))) | ||
| 841 | for key in self.configuration.extra_setting.keys(): | ||
| 842 | data += (key + ": " + self._get_sorted_value(self.configuration.extra_setting[key])) | ||
| 843 | return hashlib.md5(data).hexdigest() | 935 | return hashlib.md5(data).hexdigest() |
| 844 | 936 | ||
| 845 | def create_visual_elements(self): | 937 | def create_visual_elements(self): |
| @@ -847,13 +939,34 @@ class AdvancedSettingDialog (CrumbsDialog, SettingsUIHelper): | |||
| 847 | self.nb.set_show_tabs(True) | 939 | self.nb.set_show_tabs(True) |
| 848 | self.nb.append_page(self.create_image_types_page(), gtk.Label("Image types")) | 940 | self.nb.append_page(self.create_image_types_page(), gtk.Label("Image types")) |
| 849 | self.nb.append_page(self.create_output_page(), gtk.Label("Output")) | 941 | self.nb.append_page(self.create_output_page(), gtk.Label("Output")) |
| 850 | self.nb.append_page(self.create_others_page(), gtk.Label("Others")) | ||
| 851 | self.nb.set_current_page(0) | 942 | self.nb.set_current_page(0) |
| 852 | self.vbox.pack_start(self.nb, expand=True, fill=True) | 943 | self.vbox.pack_start(self.nb, expand=True, fill=True) |
| 853 | self.vbox.pack_end(gtk.HSeparator(), expand=True, fill=True) | 944 | self.vbox.pack_end(gtk.HSeparator(), expand=True, fill=True) |
| 854 | 945 | ||
| 855 | self.show_all() | 946 | self.show_all() |
| 856 | 947 | ||
| 948 | def get_num_checked_image_types(self): | ||
| 949 | total = 0 | ||
| 950 | for b in self.image_types_checkbuttons.values(): | ||
| 951 | if b.get_active(): | ||
| 952 | total = total + 1 | ||
| 953 | return total | ||
| 954 | |||
| 955 | def set_save_button_state(self): | ||
| 956 | if self.save_button: | ||
| 957 | self.save_button.set_sensitive(self.get_num_checked_image_types() > 0) | ||
| 958 | |||
| 959 | def image_type_checkbutton_clicked_cb(self, button): | ||
| 960 | self.set_save_button_state() | ||
| 961 | if self.get_num_checked_image_types() == 0: | ||
| 962 | # Show an error dialog | ||
| 963 | lbl = "<b>Select an image type</b>\n\nYou need to select at least one image type." | ||
| 964 | dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_WARNING) | ||
| 965 | button = dialog.add_button("OK", gtk.RESPONSE_OK) | ||
| 966 | HobButton.style_button(button) | ||
| 967 | response = dialog.run() | ||
| 968 | dialog.destroy() | ||
| 969 | |||
| 857 | def create_image_types_page(self): | 970 | def create_image_types_page(self): |
| 858 | main_vbox = gtk.VBox(False, 16) | 971 | main_vbox = gtk.VBox(False, 16) |
| 859 | main_vbox.set_border_width(6) | 972 | main_vbox.set_border_width(6) |
| @@ -862,7 +975,7 @@ class AdvancedSettingDialog (CrumbsDialog, SettingsUIHelper): | |||
| 862 | advanced_vbox.set_border_width(6) | 975 | advanced_vbox.set_border_width(6) |
| 863 | 976 | ||
| 864 | distro_vbox = gtk.VBox(False, 6) | 977 | distro_vbox = gtk.VBox(False, 6) |
| 865 | label = self.gen_label_widget("<span weight=\"bold\">Distro:</span>") | 978 | label = self.gen_label_widget("Distro:") |
| 866 | tooltip = "Selects the Yocto Project distribution you want" | 979 | tooltip = "Selects the Yocto Project distribution you want" |
| 867 | distro_widget, self.distro_combo = self.gen_combo_widget(self.configuration.curr_distro, self.all_distros, tooltip) | 980 | distro_widget, self.distro_combo = self.gen_combo_widget(self.configuration.curr_distro, self.all_distros, tooltip) |
| 868 | distro_vbox.pack_start(label, expand=False, fill=False) | 981 | distro_vbox.pack_start(label, expand=False, fill=False) |
| @@ -876,19 +989,22 @@ class AdvancedSettingDialog (CrumbsDialog, SettingsUIHelper): | |||
| 876 | 989 | ||
| 877 | tooltip = "Image file system types you want." | 990 | tooltip = "Image file system types you want." |
| 878 | info = HobInfoButton(tooltip, self) | 991 | info = HobInfoButton(tooltip, self) |
| 879 | label = self.gen_label_widget("<span weight=\"bold\">Select image types:</span>") | 992 | label = self.gen_label_widget("Image types:") |
| 880 | table.attach(label, 0, 9, 0, 1) | 993 | align = gtk.Alignment(0, 0.5, 0, 0) |
| 881 | table.attach(info, 9, 10, 0, 1) | 994 | table.attach(align, 0, 4, 0, 1) |
| 995 | align.add(label) | ||
| 996 | table.attach(info, 4, 5, 0, 1) | ||
| 882 | 997 | ||
| 883 | i = 1 | 998 | i = 1 |
| 884 | j = 1 | 999 | j = 1 |
| 885 | for image_type in self.image_types: | 1000 | for image_type in sorted(self.image_types): |
| 886 | self.image_types_checkbuttons[image_type] = gtk.CheckButton(image_type) | 1001 | self.image_types_checkbuttons[image_type] = gtk.CheckButton(image_type) |
| 1002 | self.image_types_checkbuttons[image_type].connect("toggled", self.image_type_checkbutton_clicked_cb) | ||
| 887 | article = "" | 1003 | article = "" |
| 888 | if image_type.startswith(("a", "e", "i", "o", "u")): | 1004 | if image_type.startswith(("a", "e", "i", "o", "u")): |
| 889 | article = "n" | 1005 | article = "n" |
| 890 | self.image_types_checkbuttons[image_type].set_tooltip_text("Build a%s %s image" % (article, image_type)) | 1006 | self.image_types_checkbuttons[image_type].set_tooltip_text("Build a%s %s image" % (article, image_type)) |
| 891 | table.attach(self.image_types_checkbuttons[image_type], j, j + 4, i, i + 1) | 1007 | table.attach(self.image_types_checkbuttons[image_type], j - 1, j + 3, i, i + 1) |
| 892 | if image_type in self.configuration.image_fstypes.split(): | 1008 | if image_type in self.configuration.image_fstypes.split(): |
| 893 | self.image_types_checkbuttons[image_type].set_active(True) | 1009 | self.image_types_checkbuttons[image_type].set_active(True) |
| 894 | i += 1 | 1010 | i += 1 |
| @@ -897,6 +1013,7 @@ class AdvancedSettingDialog (CrumbsDialog, SettingsUIHelper): | |||
| 897 | j = j + 4 | 1013 | j = j + 4 |
| 898 | 1014 | ||
| 899 | main_vbox.pack_start(advanced_vbox, expand=False, fill=False) | 1015 | main_vbox.pack_start(advanced_vbox, expand=False, fill=False) |
| 1016 | self.set_save_button_state() | ||
| 900 | 1017 | ||
| 901 | return main_vbox | 1018 | return main_vbox |
| 902 | 1019 | ||
| @@ -904,18 +1021,18 @@ class AdvancedSettingDialog (CrumbsDialog, SettingsUIHelper): | |||
| 904 | advanced_vbox = gtk.VBox(False, 6) | 1021 | advanced_vbox = gtk.VBox(False, 6) |
| 905 | advanced_vbox.set_border_width(6) | 1022 | advanced_vbox.set_border_width(6) |
| 906 | 1023 | ||
| 1024 | advanced_vbox.pack_start(self.gen_label_widget('<span weight="bold">Package format</span>'), expand=False, fill=False) | ||
| 907 | sub_vbox = gtk.VBox(False, 6) | 1025 | sub_vbox = gtk.VBox(False, 6) |
| 908 | advanced_vbox.pack_start(sub_vbox, expand=False, fill=False) | 1026 | advanced_vbox.pack_start(sub_vbox, expand=False, fill=False) |
| 909 | label = self.gen_label_widget("<span weight=\"bold\">Packaging format:</span>") | ||
| 910 | tooltip_combo = "Selects the package format used to generate rootfs." | 1027 | tooltip_combo = "Selects the package format used to generate rootfs." |
| 911 | tooltip_extra = "Selects extra package formats to build" | 1028 | tooltip_extra = "Selects extra package formats to build" |
| 912 | pkgfmt_widget, self.rootfs_combo, self.check_hbox = self.gen_pkgfmt_widget(self.configuration.curr_package_format, self.all_package_formats, tooltip_combo, tooltip_extra) | 1029 | pkgfmt_widget, self.rootfs_combo, self.check_hbox = self.gen_pkgfmt_widget(self.configuration.curr_package_format, self.all_package_formats, tooltip_combo, tooltip_extra) |
| 913 | sub_vbox.pack_start(label, expand=False, fill=False) | ||
| 914 | sub_vbox.pack_start(pkgfmt_widget, expand=False, fill=False) | 1030 | sub_vbox.pack_start(pkgfmt_widget, expand=False, fill=False) |
| 915 | 1031 | ||
| 1032 | advanced_vbox.pack_start(self.gen_label_widget('<span weight="bold">Image size</span>'), expand=False, fill=False) | ||
| 916 | sub_vbox = gtk.VBox(False, 6) | 1033 | sub_vbox = gtk.VBox(False, 6) |
| 917 | advanced_vbox.pack_start(sub_vbox, expand=False, fill=False) | 1034 | advanced_vbox.pack_start(sub_vbox, expand=False, fill=False) |
| 918 | label = self.gen_label_widget("<span weight=\"bold\">Image rootfs size: (MB)</span>") | 1035 | label = self.gen_label_widget("Image basic size (in MB)") |
| 919 | tooltip = "Sets the basic size of your target image.\nThis is the basic size of your target image unless your selected package size exceeds this value or you select \'Image Extra Size\'." | 1036 | tooltip = "Sets the basic size of your target image.\nThis is the basic size of your target image unless your selected package size exceeds this value or you select \'Image Extra Size\'." |
| 920 | rootfs_size_widget, self.rootfs_size_spinner = self.gen_spinner_widget(int(self.configuration.image_rootfs_size*1.0/1024), 0, 65536, tooltip) | 1037 | rootfs_size_widget, self.rootfs_size_spinner = self.gen_spinner_widget(int(self.configuration.image_rootfs_size*1.0/1024), 0, 65536, tooltip) |
| 921 | sub_vbox.pack_start(label, expand=False, fill=False) | 1038 | sub_vbox.pack_start(label, expand=False, fill=False) |
| @@ -923,12 +1040,13 @@ class AdvancedSettingDialog (CrumbsDialog, SettingsUIHelper): | |||
| 923 | 1040 | ||
| 924 | sub_vbox = gtk.VBox(False, 6) | 1041 | sub_vbox = gtk.VBox(False, 6) |
| 925 | advanced_vbox.pack_start(sub_vbox, expand=False, fill=False) | 1042 | advanced_vbox.pack_start(sub_vbox, expand=False, fill=False) |
| 926 | label = self.gen_label_widget("<span weight=\"bold\">Image extra size: (MB)</span>") | 1043 | label = self.gen_label_widget("Additional free space (in MB)") |
| 927 | tooltip = "Sets the extra free space of your target image.\nBy default, the system reserves 30% of your image size as free space. If your image contains zypper, it brings in 50MB more space. The maximum free space is 64GB." | 1044 | tooltip = "Sets the extra free space of your target image.\nBy default, the system reserves 30% of your image size as free space. If your image contains zypper, it brings in 50MB more space. The maximum free space is 64GB." |
| 928 | extra_size_widget, self.extra_size_spinner = self.gen_spinner_widget(int(self.configuration.image_extra_size*1.0/1024), 0, 65536, tooltip) | 1045 | extra_size_widget, self.extra_size_spinner = self.gen_spinner_widget(int(self.configuration.image_extra_size*1.0/1024), 0, 65536, tooltip) |
| 929 | sub_vbox.pack_start(label, expand=False, fill=False) | 1046 | sub_vbox.pack_start(label, expand=False, fill=False) |
| 930 | sub_vbox.pack_start(extra_size_widget, expand=False, fill=False) | 1047 | sub_vbox.pack_start(extra_size_widget, expand=False, fill=False) |
| 931 | 1048 | ||
| 1049 | advanced_vbox.pack_start(self.gen_label_widget('<span weight="bold">Licensing</span>'), expand=False, fill=False) | ||
| 932 | self.gplv3_checkbox = gtk.CheckButton("Exclude GPLv3 packages") | 1050 | self.gplv3_checkbox = gtk.CheckButton("Exclude GPLv3 packages") |
| 933 | self.gplv3_checkbox.set_tooltip_text("Check this box to prevent GPLv3 packages from being included in your image") | 1051 | self.gplv3_checkbox.set_tooltip_text("Check this box to prevent GPLv3 packages from being included in your image") |
| 934 | if "GPLv3" in self.configuration.incompat_license.split(): | 1052 | if "GPLv3" in self.configuration.incompat_license.split(): |
| @@ -937,6 +1055,7 @@ class AdvancedSettingDialog (CrumbsDialog, SettingsUIHelper): | |||
| 937 | self.gplv3_checkbox.set_active(False) | 1055 | self.gplv3_checkbox.set_active(False) |
| 938 | advanced_vbox.pack_start(self.gplv3_checkbox, expand=False, fill=False) | 1056 | advanced_vbox.pack_start(self.gplv3_checkbox, expand=False, fill=False) |
| 939 | 1057 | ||
| 1058 | advanced_vbox.pack_start(self.gen_label_widget('<span weight="bold">Toolchain</span>'), expand=False, fill=False) | ||
| 940 | sub_hbox = gtk.HBox(False, 6) | 1059 | sub_hbox = gtk.HBox(False, 6) |
| 941 | advanced_vbox.pack_start(sub_hbox, expand=False, fill=False) | 1060 | advanced_vbox.pack_start(sub_hbox, expand=False, fill=False) |
| 942 | self.toolchain_checkbox = gtk.CheckButton("Build toolchain") | 1061 | self.toolchain_checkbox = gtk.CheckButton("Build toolchain") |
| @@ -950,21 +1069,6 @@ class AdvancedSettingDialog (CrumbsDialog, SettingsUIHelper): | |||
| 950 | 1069 | ||
| 951 | return advanced_vbox | 1070 | return advanced_vbox |
| 952 | 1071 | ||
| 953 | def create_others_page(self): | ||
| 954 | advanced_vbox = gtk.VBox(False, 6) | ||
| 955 | advanced_vbox.set_border_width(6) | ||
| 956 | |||
| 957 | sub_vbox = gtk.VBox(False, 6) | ||
| 958 | advanced_vbox.pack_start(sub_vbox, expand=True, fill=True) | ||
| 959 | label = self.gen_label_widget("<span weight=\"bold\">Add your own variables:</span>") | ||
| 960 | tooltip = "These are key/value pairs for your extra settings. Click \'Add\' and then directly edit the key and the value" | ||
| 961 | setting_widget, self.setting_store = self.gen_editable_settings(self.configuration.extra_setting, tooltip) | ||
| 962 | sub_vbox.pack_start(label, expand=False, fill=False) | ||
| 963 | sub_vbox.pack_start(setting_widget, expand=True, fill=True) | ||
| 964 | |||
| 965 | return advanced_vbox | ||
| 966 | |||
| 967 | |||
| 968 | def response_cb(self, dialog, response_id): | 1072 | def response_cb(self, dialog, response_id): |
| 969 | package_format = [] | 1073 | package_format = [] |
| 970 | package_format.append(self.rootfs_combo.get_active_text()) | 1074 | package_format.append(self.rootfs_combo.get_active_text()) |
| @@ -993,15 +1097,6 @@ class AdvancedSettingDialog (CrumbsDialog, SettingsUIHelper): | |||
| 993 | self.configuration.incompat_license = self.configuration.incompat_license.strip() | 1097 | self.configuration.incompat_license = self.configuration.incompat_license.strip() |
| 994 | 1098 | ||
| 995 | self.configuration.toolchain_build = self.toolchain_checkbox.get_active() | 1099 | self.configuration.toolchain_build = self.toolchain_checkbox.get_active() |
| 996 | |||
| 997 | self.configuration.extra_setting = {} | ||
| 998 | it = self.setting_store.get_iter_first() | ||
| 999 | while it: | ||
| 1000 | key = self.setting_store.get_value(it, 0) | ||
| 1001 | value = self.setting_store.get_value(it, 1) | ||
| 1002 | self.configuration.extra_setting[key] = value | ||
| 1003 | it = self.setting_store.iter_next(it) | ||
| 1004 | |||
| 1005 | self.configuration.curr_sdk_machine = self.sdk_machine_combo.get_active_text() | 1100 | self.configuration.curr_sdk_machine = self.sdk_machine_combo.get_active_text() |
| 1006 | md5 = self.config_md5() | 1101 | md5 = self.config_md5() |
| 1007 | self.settings_changed = (self.md5 != md5) | 1102 | self.settings_changed = (self.md5 != md5) |
