X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=wizard%2FBEditingDialog.py;h=4fae34231e1bc1557158bcde35dcb875a91a86a9;hb=d2e54a57195a86b82ff9c5a03aa6d7bc2576a801;hp=e98edf861ce4329d2bd21c4d5e3c7ff81ea39848;hpb=d297296f0d4c05e5b80a23a5a60255351f636773;p=bertos.git diff --git a/wizard/BEditingDialog.py b/wizard/BEditingDialog.py index e98edf86..4fae3423 100644 --- a/wizard/BEditingDialog.py +++ b/wizard/BEditingDialog.py @@ -84,6 +84,7 @@ class BEditingDialog(QDialog): layout.addLayout(button_layout) self.setLayout(layout) self.setWindowTitle(self.tr("Edit \"%1\" project").arg(os.path.basename(self.module_page.projectInfo("PROJECT_PATH")))) + self.setWindowIcon(QIcon(":/images/appicon.png")) def setupMenu(self): self.menu = QMenu(self.tr("Advanced options")) @@ -108,7 +109,73 @@ class BEditingDialog(QDialog): self.module_page.setProjectInfo("SELECTED_FREQ", frequency) def changeToolchain(self): - dialog = QDialog() + dialog = BToolchainDialog() + if dialog.exec_(): + toolchain = qvariant_converter.getStringDict(dialog.toolchain_page.currentItem().data(Qt.UserRole)) + dialog.toolchain_page.setProjectInfo("TOOLCHAIN", toolchain) + + def changeBertosVersion(self): + current_version = self.module_page.projectInfo("SOURCES_PATH") + dialog = BVersionDialog() + if dialog.exec_(): + version = qvariant_converter.getString(dialog.version_page.currentItem().data(Qt.UserRole)) + if QMessageBox.question( + dialog.version_page, + self.tr("BeRTOS version update"), + self.tr("Changing the BeRTOS version will destroy all the modification done on the BeRTOS sources"), + QMessageBox.Ok | QMessageBox.Cancel + ) == QMessageBox.Ok: + qApp.setOverrideCursor(QCursor(Qt.WaitCursor)) + dialog.version_page.setProjectInfo("SOURCES_PATH", version) + dialog.version_page.setProjectInfo("OLD_SOURCES_PATH", current_version) + enabled_modules = bertos_utils.enabledModules(dialog.version_page.project()) + old_configuration = dialog.version_page.projectInfo("CONFIGURATIONS") + bertos_utils.loadSourceTree(dialog.version_page.project()) + bertos_utils.loadModuleData(dialog.version_page.project()) + new_configuration = dialog.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 + dialog.version_page.setProjectInfo("CONFIGURATIONS", merged_configuration) + bertos_utils.setEnabledModules(dialog.version_page.project(), enabled_modules) + self.module_page.fillModuleTree() + qApp.restoreOverrideCursor() + else: + # Rollback version to the previous selected one. + dialog.version_page.setProjectInfo("SOURCES_PATH", current_version) + + def apply(self): + qApp.setOverrideCursor(QCursor(Qt.WaitCursor)) + createBertosProject(self.module_page.project(), edit=True) + qApp.restoreOverrideCursor() + self.accept() + + def toolchains(self): + return self.module_page.toolchains() + + def currentToolchain(self): + return self.module_page.projectInfo("TOOLCHAIN") + + def setCurrentToolchain(self, toolchain): + self.module_page.setProjectInfo("TOOLCHAIN", toolchain) + + def versions(self): + return self.module_page.versions() + + def currentVersion(self): + return self.module_page.projectInfo("SOURCES_PATH") + + def setCurrentVersion(self, version): + self.module_page.setProjectInfo("SOURCES_PATH", version) + +class BToolchainDialog(QDialog): + def __init__(self): + QDialog.__init__(self) + self.setWindowIcon(QIcon(":/images/appicon.png")) layout = QVBoxLayout() toolchain_page = BToolchainPage() current_toolchain = toolchain_page.projectInfo("TOOLCHAIN") @@ -116,10 +183,11 @@ class BEditingDialog(QDialog): # 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"]: + if current_toolchain and toolchain["path"] == current_toolchain["path"]: toolchain_page.pageContent.toolchainList.setCurrentRow(toolchain_row) toolchain_page.selectionChanged() break + self.toolchain_page = toolchain_page layout.addWidget(toolchain_page) button_layout = QHBoxLayout() button_layout.addStretch() @@ -127,20 +195,20 @@ class BEditingDialog(QDialog): button_layout.addWidget(cancel_button) ok_button = QPushButton(self.tr("Ok")) button_layout.addWidget(ok_button) - dialog.connect(cancel_button, SIGNAL("clicked()"), dialog.reject) + self.connect(cancel_button, SIGNAL("clicked()"), self.reject) 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) - - def changeBertosVersion(self): - dialog = QDialog() + self.setLayout(layout) + self.connect(ok_button, SIGNAL("clicked()"), self.accept) + self.setWindowTitle(self.tr("Change toolchain")) + +class BVersionDialog(QDialog): + def __init__(self): + QDialog.__init__(self) + self.setWindowIcon(QIcon(":/images/appicon.png")) layout = QVBoxLayout() version_page = BVersionPage() version_page.reloadData() + self.version_page = version_page layout.addWidget(version_page) button_layout = QHBoxLayout() button_layout.addStretch() @@ -148,64 +216,12 @@ class BEditingDialog(QDialog): button_layout.addWidget(cancel_button) ok_button = QPushButton(self.tr("Ok")) button_layout.addWidget(ok_button) - dialog.connect(cancel_button, SIGNAL("clicked()"), dialog.reject) + self.connect(cancel_button, SIGNAL("clicked()"), self.reject) layout.addLayout(button_layout) - dialog.setLayout(layout) - dialog.connect(ok_button, SIGNAL("clicked()"), dialog.accept) + self.setLayout(layout) + self.connect(ok_button, SIGNAL("clicked()"), self.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: - if QMessageBox.question( - version_page, - self.tr("BeRTOS version update"), - self.tr("Changing the BeRTOS version will destroy all the modification done on the BeRTOS sources"), - QMessageBox.Ok | QMessageBox.Cancel - ) == QMessageBox.Ok: - version_page.setProjectInfo("SOURCES_PATH", version) - version_page.setProjectInfo("OLD_SOURCES_PATH", current_version) - 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()) - 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) - self.accept() - - def toolchains(self): - return self.module_page.toolchains() - - def currentToolchain(self): - return self.module_page.projectInfo("TOOLCHAIN") - - def setCurrentToolchain(self, toolchain): - self.module_page.setProjectInfo("TOOLCHAIN", toolchain) - - def versions(self): - return self.module_page.versions() - - def currentVersion(self): - return self.module_page.projectInfo("SOURCES_PATH") - - def setCurrentVersion(self, version): - self.module_page.setProjectInfo("SOURCES_PATH", version) - + self.setWindowTitle(self.tr("Change BeRTOS version")) def main():