X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=wizard%2FBCpuPage.py;h=f38ab35c5069b5ec5b037d219cb991850f6683d6;hb=727a2e93cf75a473037d2b8c62c3c4edf2cebaf3;hp=4edda121292106631e83a49f842b852e0448b691;hpb=6c79d70ee1d49f136663e5bbdcd3f2e246815203;p=bertos.git diff --git a/wizard/BCpuPage.py b/wizard/BCpuPage.py index 4edda121..f38ab35c 100644 --- a/wizard/BCpuPage.py +++ b/wizard/BCpuPage.py @@ -24,7 +24,7 @@ class BCpuPage(BWizardPage): def __init__(self): BWizardPage.__init__(self, UI_LOCATION + "/cpu_select.ui") self.setTitle(self.tr("Select the CPU")) - self.default_freqs = {} + self.freq_modified = False ## Overloaded QWizardPage methods ## @@ -44,6 +44,13 @@ class BCpuPage(BWizardPage): self.setProjectInfo("CPU_INFOS", infos) self.setProjectInfo("CPU_NAME", unicode(self.pageContent.cpuList.currentItem().text())) self.setProjectInfo("SELECTED_FREQ", unicode(long(self.pageContent.frequencySpinBox.value()))) + tag_dict = self.projectInfo("ALL_CPU_TAGS") + for tag in tag_dict: + if tag in infos["CPU_TAGS"] + [infos["CPU_NAME"], infos["CORE_CPU"], infos["TOOLCHAIN"]]: + tag_dict[tag] = True + else: + tag_dict[tag] = False + self.setProjectInfo("ALL_CPU_TAGS", tag_dict) return True else: return False @@ -67,7 +74,7 @@ class BCpuPage(BWizardPage): Overload of the BWizardPage connectSignals method. """ self.connect(self.pageContent.cpuList, SIGNAL("itemSelectionChanged()"), self.rowChanged) - self.connect(self.pageContent.frequencySpinBox, SIGNAL("valueChanged(double)"), self.freqChanged) + self.connect(self.pageContent.frequencySpinBox, SIGNAL("editingFinished()"), self.freqChanged) def reloadData(self): """ @@ -77,14 +84,13 @@ class BCpuPage(BWizardPage): bertos_utils.loadSourceTree(self.project()) self.populateCpuList() cpu_name = self.projectInfo("CPU_NAME") + selected_freq = self.projectInfo("SELECTED_FREQ") self.setupUi() - if not cpu_name is None: + if cpu_name: self.selectItem(cpu_name) - if self.default_freqs == {}: - for index in range(self.pageContent.cpuList.count()): - default_freq = qvariant_converter.getStringDict(self.pageContent.cpuList.item(index).data(Qt.UserRole))["CPU_DEFAULT_FREQ"] - default_freq = long(default_freq.replace("U", "").replace("L", "")) - self.default_freqs[default_freq] = default_freq + if selected_freq: + self.setFrequency(selected_freq) + self.freq_modified = True QApplication.instance().restoreOverrideCursor() self.emit(SIGNAL("completeChanged()")) @@ -98,24 +104,21 @@ class BCpuPage(BWizardPage): """ description = qvariant_converter.getDict(self.pageContent.cpuList.currentItem().data(Qt.UserRole))["CPU_DESC"] description = qvariant_converter.getStringList(description) - # Retrieve the default cpu frequency - default_freq = qvariant_converter.getDict(self.pageContent.cpuList.currentItem().data(Qt.UserRole))["CPU_DEFAULT_FREQ"] - default_freq = qvariant_converter.getString(default_freq) - default_freq = long(default_freq.replace("U", "").replace("L", "")) - current_freq = self.default_freqs[default_freq] + if not self.freq_modified: + # Retrieve the default cpu frequency when the value isn't already modified + current_freq = qvariant_converter.getDict(self.pageContent.cpuList.currentItem().data(Qt.UserRole))["CPU_DEFAULT_FREQ"] + current_freq = qvariant_converter.getString(current_freq) + current_freq = long(current_freq.replace("U", "").replace("L", "")) + self.pageContent.frequencySpinBox.setValue(long(current_freq)) self.pageContent.descriptionLabel.setText("
".join(description)) self.pageContent.descriptionLabel.setVisible(True) - self.pageContent.frequencySpinBox.setValue(long(current_freq)) self.emit(SIGNAL("completeChanged()")) def freqChanged(self): """ Slot called when the user change the frequency value. """ - default_freq = qvariant_converter.getDict(self.pageContent.cpuList.currentItem().data(Qt.UserRole))["CPU_DEFAULT_FREQ"] - default_freq = qvariant_converter.getString(default_freq) - default_freq = long(default_freq.replace("U", "").replace("L", "")) - self.default_freqs[default_freq] = long(self.pageContent.frequencySpinBox.value()) + self.freq_modified = True self.emit(SIGNAL("completeChanged()")) #### @@ -127,6 +130,12 @@ class BCpuPage(BWizardPage): self.pageContent.cpuList.clear() self.pageContent.cpuList.setCurrentItem(None) infos = bertos_utils.loadCpuInfos(self.project()) + tag_list = bertos_utils.getTagSet(infos) + # Create, fill and store the dict with the tags + tag_dict = {} + for element in tag_list: + tag_dict[element] = False + self.setProjectInfo("ALL_CPU_TAGS", tag_dict) for cpu in infos: item = QListWidgetItem(cpu["CPU_NAME"]) item.setData(Qt.UserRole, qvariant_converter.convertDict(cpu)) @@ -138,4 +147,7 @@ class BCpuPage(BWizardPage): """ elements = self.pageContent.cpuList.findItems(cpu, Qt.MatchCaseSensitive) if len(elements) == 1: - self.pageContent.cpuList.setCurrentItem(elements[0]) \ No newline at end of file + self.pageContent.cpuList.setCurrentItem(elements[0]) + + def setFrequency(self, frequency): + self.pageContent.frequencySpinBox.setValue(long(frequency)) \ No newline at end of file