X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;ds=inline;f=wizard%2FBCpuPage.py;h=f35790b8bb7257cda82110546f671fe6db921bed;hb=d5403b5adfbe4ef86d77498932bbf514143bb842;hp=6a544a3a7facb31d63344d3cc8089de279fbc736;hpb=eceb2d8f50f5af6f46dbdd6c0c3b50fbaff20534;p=bertos.git diff --git a/wizard/BCpuPage.py b/wizard/BCpuPage.py index 6a544a3a..f35790b8 100644 --- a/wizard/BCpuPage.py +++ b/wizard/BCpuPage.py @@ -19,12 +19,18 @@ class BCpuPage(BWizardPage): BWizardPage.__init__(self, "cpu_select.ui") self.setTitle(self.tr("Select the CPU")) self._connectSignals() + self._setupUi() def _populateCpuList(self): self.pageContent.cpuList.clear() + self.pageContent.cpuList.setCurrentItem(None) infos = bertos_utils.loadCpuInfos(self._projectInfoRetrieve("SOURCES_PATH")) for cpu in infos: - self.pageContent.cpuList.addItem(QListWidgetItem(cpu["CPU_NAME"])) + item = QListWidgetItem(cpu["CPU_NAME"]) + # The CPU_DESC field in the cpu definition is a list of string, so we need to + # store it as a QStringList in a QVariant + item.setData(Qt.UserRole, QVariant(cpu)) + self.pageContent.cpuList.addItem(item) def _connectSignals(self): self.connect(self.pageContent.cpuList, SIGNAL("itemSelectionChanged()"), self.rowChanged) @@ -33,19 +39,32 @@ class BCpuPage(BWizardPage): elements = self.pageContent.cpuList.findItems(cpu, Qt.MatchCaseSensitive) if len(elements) == 1: self.pageContent.cpuList.setCurrentItem(elements[0]) - + + def _setupUi(self): + self.pageContent.descriptionLabel.setVisible(False) + self.pageContent.descriptionLabel.setText("") + def reloadData(self): self._populateCpuList() cpuName = self._projectInfoRetrieve("CPU_NAME") + self._setupUi() if not cpuName is None: self._selectItem(cpuName) + self.emit(SIGNAL("completeChanged()")) def isComplete(self): if self.pageContent.cpuList.currentRow() != -1: - self._projectInfoStore("CPU_NAME", self.pageContent.cpuList.currentItem().text()) + self._projectInfoStore("CPU_INFOS", self.pageContent.cpuList.currentItem().data(Qt.UserRole).toMap()) return True else: return False def rowChanged(self): + description = self.pageContent.cpuList.currentItem().data(Qt.UserRole).toMap() + # I don't like to use QString as key in the dict, but the QVariant.toMap() return a dict + description = description[QString("CPU_DESC")].toStringList() + # We need to convert the list of QString in a list of unicode + description = [unicode(line) for line in description] + self.pageContent.descriptionLabel.setText("
".join(description)) + self.pageContent.descriptionLabel.setVisible(True) self.emit(SIGNAL("completeChanged()"))