X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=wizard%2FBEditingDialog.py;h=e98edf861ce4329d2bd21c4d5e3c7ff81ea39848;hb=d297296f0d4c05e5b80a23a5a60255351f636773;hp=1534146e21460ffc0eb57e5f1592634f60d52cd0;hpb=e5342297fe73a412dfc0d22bac403f30b05e3bc0;p=bertos.git diff --git a/wizard/BEditingDialog.py b/wizard/BEditingDialog.py index 1534146e..e98edf86 100644 --- a/wizard/BEditingDialog.py +++ b/wizard/BEditingDialog.py @@ -53,11 +53,22 @@ class BEditingDialog(QDialog): self.setupUi() self.connectSignals() self.module_page.reloadData() + self.setFrequency() def setupUi(self): layout = QVBoxLayout() self.module_page = BModulePage.BModulePage() layout.addWidget(self.module_page) + frequency_layout = QHBoxLayout() + frequency_layout.addWidget(QLabel(self.tr("CPU frequency"))) + self.cpu_frequency_spinbox = QDoubleSpinBox() + self.cpu_frequency_spinbox.setSuffix("Hz") + self.cpu_frequency_spinbox.setRange(1, 1000000000) + self.cpu_frequency_spinbox.setSingleStep(1000) + self.cpu_frequency_spinbox.setDecimals(0) + frequency_layout.addWidget(self.cpu_frequency_spinbox) + frequency_layout.addStretch() + layout.addLayout(frequency_layout) button_layout = QHBoxLayout() self.advanced_button = QToolButton() self.setupMenu() @@ -72,6 +83,7 @@ class BEditingDialog(QDialog): button_layout.addWidget(self.apply_button) layout.addLayout(button_layout) self.setLayout(layout) + self.setWindowTitle(self.tr("Edit \"%1\" project").arg(os.path.basename(self.module_page.projectInfo("PROJECT_PATH")))) def setupMenu(self): self.menu = QMenu(self.tr("Advanced options")) @@ -85,12 +97,29 @@ class BEditingDialog(QDialog): self.connect(self.change_bertos_version, SIGNAL("triggered(bool)"), self.changeBertosVersion) self.connect(self.apply_button, SIGNAL("clicked()"), self.apply) self.connect(self.cancel_button, SIGNAL("clicked()"), self.reject) + self.connect(self.cpu_frequency_spinbox, SIGNAL("valueChanged(double)"), self.frequencyChanged) + + def setFrequency(self): + frequency = long(self.module_page.projectInfo("SELECTED_FREQ")) + self.cpu_frequency_spinbox.setValue(frequency) + + def frequencyChanged(self, frequency): + frequency = unicode(long(frequency)) + self.module_page.setProjectInfo("SELECTED_FREQ", frequency) def changeToolchain(self): dialog = QDialog() layout = QVBoxLayout() toolchain_page = BToolchainPage() + current_toolchain = toolchain_page.projectInfo("TOOLCHAIN") toolchain_page.reloadData() + # TODO: to be moved in BToolchainPage + for toolchain_row in range(toolchain_page.pageContent.toolchainList.count()): + toolchain = qvariant_converter.getStringDict(toolchain_page.pageContent.toolchainList.item(toolchain_row).data(Qt.UserRole)) + if toolchain["path"] == current_toolchain["path"]: + toolchain_page.pageContent.toolchainList.setCurrentRow(toolchain_row) + toolchain_page.selectionChanged() + break layout.addWidget(toolchain_page) button_layout = QHBoxLayout() button_layout.addStretch() @@ -102,6 +131,7 @@ class BEditingDialog(QDialog): layout.addLayout(button_layout) dialog.setLayout(layout) dialog.connect(ok_button, SIGNAL("clicked()"), dialog.accept) + dialog.setWindowTitle(self.tr("Change toolchain")) if dialog.exec_(): toolchain = qvariant_converter.getStringDict(toolchain_page.currentItem().data(Qt.UserRole)) toolchain_page.setProjectInfo("TOOLCHAIN", toolchain) @@ -123,6 +153,7 @@ class BEditingDialog(QDialog): dialog.setLayout(layout) dialog.connect(ok_button, SIGNAL("clicked()"), dialog.accept) current_version = version_page.projectInfo("SOURCES_PATH") + dialog.setWindowTitle(self.tr("Change BeRTOS version")) if dialog.exec_(): version = qvariant_converter.getString(version_page.currentItem().data(Qt.UserRole)) if version != current_version: @@ -134,11 +165,24 @@ class BEditingDialog(QDialog): ) == QMessageBox.Ok: version_page.setProjectInfo("SOURCES_PATH", version) version_page.setProjectInfo("OLD_SOURCES_PATH", current_version) - project = version_page.project() - modules, lists, configurations, files = project.info("MODULES"), project.info("LISTS"), project.info("CONFIGURATIONS"), project.info("FILES") + enabled_modules = bertos_utils.enabledModules(version_page.project()) + old_configuration = version_page.projectInfo("CONFIGURATIONS") bertos_utils.loadSourceTree(version_page.project()) - bertos_utils.loadModuleData(version_page.project(), True) + bertos_utils.loadModuleData(version_page.project()) + new_configuration = version_page.projectInfo("CONFIGURATIONS") + merged_configuration = {} + for conf in new_configuration: + if conf in old_configuration: + configuration = bertos_utils.updateConfigurationValues(new_configuration[conf], old_configuration[conf]) + else: + configuration = new_configuration[conf] + merged_configuration[conf] = configuration + version_page.setProjectInfo("CONFIGURATIONS", merged_configuration) + bertos_utils.setEnabledModules(version_page.project(), enabled_modules) self.module_page.fillModuleTree() + else: + # Rollback version to the previous selected one. + version_page.setProjectInfo("SOURCES_PATH", current_version) def apply(self): createBertosProject(self.module_page.project(), edit=True)