Fix warnings and cleanup code.
[bertos.git] / wizard / BEditingDialog.py
index 6ed7e621c3fab625c664c3666fb58e2709a3aae7..eacfbfe29b9a34c392c886d4229a4faeee76ae10 100644 (file)
@@ -44,6 +44,7 @@ from BToolchainPage import BToolchainPage
 from BVersionPage import BVersionPage
 import qvariant_converter
 import BModulePage
+import bertos_utils
 
 class BEditingDialog(QDialog):
 
@@ -101,7 +102,9 @@ class BEditingDialog(QDialog):
         layout.addLayout(button_layout)
         dialog.setLayout(layout)
         dialog.connect(ok_button, SIGNAL("clicked()"), dialog.accept)
-        dialog.exec_()
+        if dialog.exec_():
+            toolchain = qvariant_converter.getStringDict(toolchain_page.currentItem().data(Qt.UserRole))
+            toolchain_page.setProjectInfo("TOOLCHAIN", toolchain)
     
     def changeBertosVersion(self):
         dialog = QDialog()
@@ -119,7 +122,23 @@ class BEditingDialog(QDialog):
         layout.addLayout(button_layout)
         dialog.setLayout(layout)
         dialog.connect(ok_button, SIGNAL("clicked()"), dialog.accept)
-        dialog.exec_()
+        current_version = version_page.projectInfo("SOURCES_PATH")
+        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())
+                    bertos_utils.loadSourceTree(version_page.project())
+                    bertos_utils.loadModuleData(version_page.project(), True)
+                    bertos_utils.setEnabledModules(version_page.project(), enabled_modules)
+                    self.module_page.fillModuleTree()
 
     def apply(self):
         createBertosProject(self.module_page.project(), edit=True)