- def _fillPresetTree(self):
- self.pageContent.boardTree.clear()
- self.project.loadProjectPresets()
- preset_tree = self.project.info("PRESET_TREE")
- for obj in preset_tree['children']:
- self._createPresetNode(self.pageContent.boardTree, obj)
-
- def _createPresetNode(self, parent, obj):
- item_name = obj['info'].get('name', obj['info']['filename'])
- item = QTreeWidgetItem(parent, [item_name])
- item.setIcon(0, QIcon(self._getNodeIcon(obj)))
- children_dict = obj['children']
- for child in children_dict:
- self._createPresetNode(item, child)
-
- def _getNodeIcon(self, obj):
- icon_file = os.path.join(obj['info']['path'], const.PREDEFINED_BOARD_ICON_FILE)
- if os.path.exists(icon_file):
- return icon_file
- elif obj['children']:
- return const.PREDEFINED_BOARD_DEFAULT_DIR_ICON
- else:
- return const.PREDEFINED_BOARD_DEFAULT_PROJECT_ICON
+ def setItems(self, preset_list):
+ self.pageContent.boardList.clear()
+ selected_board = self.projectInfo("PROJECT_BOARD")
+ for item_data in preset_list:
+ item_name = item_data["info"].get("name", item_data["info"]["filename"])
+ item_icon = os.path.join(item_data["info"]["path"], const.PREDEFINED_BOARD_ICON_FILE)
+ if not os.path.exists(item_icon):
+ item_icon = const.PREDEFINED_BOARD_DEFAULT_ICON
+ item = QListWidgetItem(QIcon(item_icon), item_name)
+ item.setData(Qt.UserRole, qvariant_converter.convertDict(item_data))
+ self.pageContent.boardList.addItem(item)
+ if selected_board and selected_board == item_data["info"]["path"]:
+ self.pageContent.boardList.setCurrentItem(item)
+
+ @property
+ def selected(self):
+ return self.pageContent.boardList.currentItem()