X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=wizard%2FBCpuPage.py;h=abf0251f6c1de911e4887fb5cd7a81aecc0ff666;hb=23a9c310a7e81d359eeac54101fa7c98c4a7a468;hp=93919c9cf64d7effdd22f9dfb1a4324e83a927c7;hpb=f274955dde1ff30d451d55503ad2c9ef24ebec4f;p=bertos.git diff --git a/wizard/BCpuPage.py b/wizard/BCpuPage.py index 93919c9c..abf0251f 100644 --- a/wizard/BCpuPage.py +++ b/wizard/BCpuPage.py @@ -12,11 +12,14 @@ from BWizardPage import * import bertos_utils +import qvariant_converter + +from const import * class BCpuPage(BWizardPage): def __init__(self): - BWizardPage.__init__(self, "cpu_select.ui") + BWizardPage.__init__(self, UI_LOCATION + "/cpu_select.ui") self.setTitle(self.tr("Select the CPU")) self._connectSignals() self._setupUi() @@ -24,12 +27,10 @@ class BCpuPage(BWizardPage): def _populateCpuList(self): self.pageContent.cpuList.clear() self.pageContent.cpuList.setCurrentItem(None) - infos = bertos_utils.loadCpuInfos(self._projectInfoRetrieve("SOURCES_PATH")) + infos = bertos_utils.loadCpuInfos(self._project()) for cpu in infos: 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"]))) + item.setData(Qt.UserRole, qvariant_converter.convertDict(cpu)) self.pageContent.cpuList.addItem(item) def _connectSignals(self): @@ -41,28 +42,38 @@ class BCpuPage(BWizardPage): self.pageContent.cpuList.setCurrentItem(elements[0]) def _setupUi(self): + self.pageContent.cpuList.setSortingEnabled(True) self.pageContent.descriptionLabel.setVisible(False) self.pageContent.descriptionLabel.setText("") def reloadData(self): + QApplication.instance().setOverrideCursor(Qt.WaitCursor) + bertos_utils.loadSourceTree(self._project()) self._populateCpuList() - cpuName = self._projectInfoRetrieve("CPU_NAME") + cpu_name = self._projectInfoRetrieve("CPU_NAME") self._setupUi() - if not cpuName is None: - self._selectItem(cpuName) + if not cpu_name is None: + self._selectItem(cpu_name) + QApplication.instance().restoreOverrideCursor() self.emit(SIGNAL("completeChanged()")) def isComplete(self): if self.pageContent.cpuList.currentRow() != -1: - self._projectInfoStore("CPU_NAME", self.pageContent.cpuList.currentItem().text()) + infos = qvariant_converter.getDict(self.pageContent.cpuList.currentItem().data(Qt.UserRole)) + for key, value in infos.items(): + if type(CPU_DEF[key]) == list: + infos[key] = qvariant_converter.getStringList(value) + if type(CPU_DEF[key]) == str or type(CPU_DEF) == unicode: + infos[key] = qvariant_converter.getString(value) + self._projectInfoStore("CPU_INFOS", infos) + self._projectInfoStore("CPU_NAME", unicode(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] + description = qvariant_converter.getDict(self.pageContent.cpuList.currentItem().data(Qt.UserRole))["CPU_DESC"] + description = qvariant_converter.getStringList(description) self.pageContent.descriptionLabel.setText("
".join(description)) self.pageContent.descriptionLabel.setVisible(True) self.emit(SIGNAL("completeChanged()"))