X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;ds=inline;f=wizard%2FBEditingDialog.py;h=cc8a80aa38a9d33d2201203432d20a51e5274aa5;hb=2be5d4598fdfee024f3929a110f5f93c751c355c;hp=7b7589e6756aaf734dae343274657d2d71afd400;hpb=efa322fd22f708abb3cb46c750908b065ba6290e;p=bertos.git diff --git a/wizard/BEditingDialog.py b/wizard/BEditingDialog.py index 7b7589e6..cc8a80aa 100644 --- a/wizard/BEditingDialog.py +++ b/wizard/BEditingDialog.py @@ -115,24 +115,25 @@ class BEditingDialog(QDialog): 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(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: - qApp.setOverrideCursor(QCursor(Qt.WaitCursor)) - 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") + 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: + try: + 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") + dialog.version_page.project().loadSourceTree() + 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: @@ -140,18 +141,21 @@ class BEditingDialog(QDialog): else: configuration = new_configuration[conf] merged_configuration[conf] = configuration - version_page.setProjectInfo("CONFIGURATIONS", merged_configuration) - bertos_utils.setEnabledModules(version_page.project(), enabled_modules) + dialog.version_page.setProjectInfo("CONFIGURATIONS", merged_configuration) + bertos_utils.setEnabledModules(dialog.version_page.project(), enabled_modules) self.module_page.fillModuleTree() + finally: qApp.restoreOverrideCursor() - else: - # Rollback version to the previous selected one. - version_page.setProjectInfo("SOURCES_PATH", current_version) + 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() + try: + qApp.setOverrideCursor(QCursor(Qt.WaitCursor)) + createBertosProject(self.module_page.project(), edit=True) + finally: + qApp.restoreOverrideCursor() self.accept() def toolchains(self): @@ -206,7 +210,7 @@ class BVersionDialog(QDialog): QDialog.__init__(self) self.setWindowIcon(QIcon(":/images/appicon.png")) layout = QVBoxLayout() - version_page = BVersionPage() + version_page = BVersionPage(edit=True) version_page.reloadData() self.version_page = version_page layout.addWidget(version_page)