X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=wizard%2FBCpuPage.py;h=93919c9cf64d7effdd22f9dfb1a4324e83a927c7;hb=b15e1f3d67e16289469a5dd8c2de842a5ed07e41;hp=3a526f9ca16bfa22c6430cbff81a617350c8a4db;hpb=0676a7451f0fd727af3c17350f6abbde825b4e3b;p=bertos.git diff --git a/wizard/BCpuPage.py b/wizard/BCpuPage.py index 3a526f9c..93919c9c 100644 --- a/wizard/BCpuPage.py +++ b/wizard/BCpuPage.py @@ -18,12 +18,51 @@ class BCpuPage(BWizardPage): def __init__(self): 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["CORE_CPU"])) + 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(QStringList(cpu["CPU_DESC"]))) + self.pageContent.cpuList.addItem(item) + + def _connectSignals(self): + self.connect(self.pageContent.cpuList, SIGNAL("itemSelectionChanged()"), self.rowChanged) + + def _selectItem(self, cpu): + 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() - \ No newline at end of file + 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()) + return True + else: + return False + + def rowChanged(self): + description = self.pageContent.cpuList.currentItem().data(Qt.UserRole).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()"))