diff options
Diffstat (limited to 'bitbake/lib/bb/ui/crumbs/builder.py')
-rwxr-xr-x | bitbake/lib/bb/ui/crumbs/builder.py | 52 |
1 files changed, 37 insertions, 15 deletions
diff --git a/bitbake/lib/bb/ui/crumbs/builder.py b/bitbake/lib/bb/ui/crumbs/builder.py index 4b274a75a1..42d0f2ca0e 100755 --- a/bitbake/lib/bb/ui/crumbs/builder.py +++ b/bitbake/lib/bb/ui/crumbs/builder.py | |||
@@ -1047,6 +1047,21 @@ class Builder(gtk.Window): | |||
1047 | response = dialog.run() | 1047 | response = dialog.run() |
1048 | dialog.destroy() | 1048 | dialog.destroy() |
1049 | 1049 | ||
1050 | def get_kernel_file_name(self, image_path): | ||
1051 | name_list = [] | ||
1052 | kernel_name = "" | ||
1053 | if image_path: | ||
1054 | files = [f for f in os.listdir(image_path) if f[0] <> '.'] | ||
1055 | for check_file in files: | ||
1056 | if check_file.endswith(".bin"): | ||
1057 | name_splits = check_file.split(".")[0] | ||
1058 | if self.configuration.curr_mach in name_splits.split("-"): | ||
1059 | kernel_name = check_file | ||
1060 | if not os.path.islink(os.path.join(image_path, check_file)): | ||
1061 | name_list.append(check_file) | ||
1062 | |||
1063 | return kernel_name, len(name_list) | ||
1064 | |||
1050 | def runqemu_image(self, image_name): | 1065 | def runqemu_image(self, image_name): |
1051 | if not image_name: | 1066 | if not image_name: |
1052 | lbl = "<b>Please select an image to launch in QEMU.</b>" | 1067 | lbl = "<b>Please select an image to launch in QEMU.</b>" |
@@ -1057,24 +1072,31 @@ class Builder(gtk.Window): | |||
1057 | dialog.destroy() | 1072 | dialog.destroy() |
1058 | return | 1073 | return |
1059 | 1074 | ||
1060 | dialog = gtk.FileChooserDialog("Load Kernel Files", self, | 1075 | kernel_name, kernels_number = self.get_kernel_file_name(self.parameters.image_addr) |
1061 | gtk.FILE_CHOOSER_ACTION_SAVE) | 1076 | if not kernel_name or kernels_number > 1: |
1062 | button = dialog.add_button("Cancel", gtk.RESPONSE_NO) | 1077 | dialog = gtk.FileChooserDialog("Load Kernel Files", self, |
1063 | HobAltButton.style_button(button) | 1078 | gtk.FILE_CHOOSER_ACTION_SAVE) |
1064 | button = dialog.add_button("Open", gtk.RESPONSE_YES) | 1079 | button = dialog.add_button("Cancel", gtk.RESPONSE_NO) |
1065 | HobButton.style_button(button) | 1080 | HobAltButton.style_button(button) |
1066 | filter = gtk.FileFilter() | 1081 | button = dialog.add_button("Open", gtk.RESPONSE_YES) |
1067 | filter.set_name("Kernel Files") | 1082 | HobButton.style_button(button) |
1068 | filter.add_pattern("*.bin") | 1083 | filter = gtk.FileFilter() |
1069 | dialog.add_filter(filter) | 1084 | filter.set_name("Kernel Files") |
1085 | filter.add_pattern("*.bin") | ||
1086 | dialog.add_filter(filter) | ||
1070 | 1087 | ||
1071 | dialog.set_current_folder(self.parameters.image_addr) | 1088 | dialog.set_current_folder(self.parameters.image_addr) |
1072 | 1089 | ||
1073 | response = dialog.run() | 1090 | response = dialog.run() |
1074 | if response == gtk.RESPONSE_YES: | 1091 | if response == gtk.RESPONSE_YES: |
1075 | kernel_path = dialog.get_filename() | 1092 | kernel_path = dialog.get_filename() |
1093 | image_path = os.path.join(self.parameters.image_addr, image_name) | ||
1094 | dialog.destroy() | ||
1095 | |||
1096 | elif kernel_name: | ||
1097 | kernel_path = os.path.join(self.parameters.image_addr, kernel_name) | ||
1076 | image_path = os.path.join(self.parameters.image_addr, image_name) | 1098 | image_path = os.path.join(self.parameters.image_addr, image_name) |
1077 | dialog.destroy() | 1099 | response = gtk.RESPONSE_YES |
1078 | 1100 | ||
1079 | if response == gtk.RESPONSE_YES: | 1101 | if response == gtk.RESPONSE_YES: |
1080 | source_env_path = os.path.join(self.parameters.core_base, "oe-init-build-env") | 1102 | source_env_path = os.path.join(self.parameters.core_base, "oe-init-build-env") |