self.populatePresetList()
def populatePresetList(self):
+ self.pageContent.boardList.clear()
presets = self.projectInfo("PRESETS")
for preset, info in presets.items():
board_list = self.pageContent.boardList
- item = QListWidgetItem(info["name"], board_list)
+ item = QListWidgetItem(info["PRESET_NAME"], board_list)
item.setData(Qt.UserRole, qvariant_converter.convertString(preset))
if self._last_selected == preset:
self.pageContent.boardList.setCurrentItem(item)
preset_path = qvariant_converter.getString(self.pageContent.boardList.currentItem().data(Qt.UserRole))
presets = self.projectInfo("PRESETS")
selected_preset = presets[preset_path]
- self.pageContent.descriptionLabel.setText(selected_preset['description'])
+ text_components = [
+ "Board: %s" %selected_preset["PRESET_NAME"],
+ "CPU: %s" %selected_preset["CPU_NAME"],
+ ]
+ if selected_preset["PRESET_DESCRIPTION"]:
+ text_components.append("Description: %s" %selected_preset["PRESET_DESCRIPTION"])
+ text = "\n".join(text_components)
+ self.pageContent.descriptionLabel.setText(text)
self._last_selected = preset_path
self.emit(SIGNAL("completeChanged()"))
"""
Return the list of the preset found in the selected BeRTOS Version.
"""
- def getPresetInfo(preset_dir):
- # Find and returns information about the preset
- # Keys needed for BBoardPage:
- # - "name": <name of the board/preset>
- # - "description": <description of the preset>
-
- # NOTE: this is only a test stub.
- preset_info = pickle.loads(open(os.path.join(preset_dir, 'info'), "r").read())
- return preset_info
abspath = os.path.join(directory, const.PREDEFINED_BOARDS_DIR)
preset_list = dict([
- (os.path.join(abspath, preset_dir), getPresetInfo(os.path.join(abspath, preset_dir)))
+ (os.path.join(abspath, preset_dir), presetInfo(os.path.join(abspath, preset_dir)))
for preset_dir in os.listdir(os.path.join(directory, const.PREDEFINED_BOARDS_DIR))
])
return preset_list
+def presetInfo(preset_dir):
+ """
+ Return the preset-relevant info contined into the project_file.
+ """
+ preset_info = pickle.loads(open(os.path.join(preset_dir, "project.bertos"), "r").read())
+ try:
+ description = open(os.path.join(preset_dir, "description"), "r").read()
+ except IOError:
+ # No description file found.
+ description = ""
+ relevant_info = {
+ "CPU_NAME": preset_info.get("CPU_NAME"),
+ "SELECTED_FREQ": preset_info.get("SELECTED_FREQ"),
+ "WIZARD_VERSION": preset_info.get("WIZARD_VERSION", None),
+ "PRESET_NAME": preset_info.get("PROJECT_NAME"),
+ "PRESET_DESCRIPTION": description.decode("utf-8"),
+ }
+ return relevant_info
+
def mergeSources(srcdir, new_sources, old_sources):
# The current mergeSources function provide only a raw copy of the sources in the
# created project.