Remove "empty main" checkbox.
[bertos.git] / wizard / BRoutePage.py
index 633fac4affd2355ab82c811ac5771b12a0280046..2646cab23869e584d38a2a3ee34ba7eb5e73c8d9 100644 (file)
@@ -44,6 +44,7 @@ from BToolchainPage import BToolchainPage
 import const
 import qvariant_converter
 from bertos_utils import presetList
+from toolchain_manager import ToolchainManager
 
 class BRoutePage(BWizardPage):
     """
@@ -61,7 +62,8 @@ class BRoutePage(BWizardPage):
         """
         Overload of the QWizardPage isComplete method.
         """
-        return False
+        self.setProjectInfo("BASE_MODE", not self.advanced)
+        return True
 
     def nextId(self):
         """
@@ -72,7 +74,27 @@ class BRoutePage(BWizardPage):
         if self.advanced:
             return self.wizard().pageIndex(BToolchainPage)
         else:
-            return self.wizard().pageIndex(BOutputPage)
+            cpu_info = self.projectInfo("CPU_INFOS")
+            if cpu_info:
+                target = cpu_info["TOOLCHAIN"]
+                # Try to find a suitable toolchain automatically
+                tm = ToolchainManager()
+                suitable_toolchains = tm.suitableToolchains(target)
+                if len(suitable_toolchains) == 1:
+                    toolchain = suitable_toolchains.pop()
+                    toolchain_info = tm._validateToolchain(toolchain)
+                    toolchain_info["path"] = toolchain
+                    self.setProjectInfo("TOOLCHAIN", toolchain_info)
+                    return self.wizard().pageIndex(BOutputPage)
+                else:
+                    return self.wizard().pageIndex(BToolchainPage)
+            else:
+                # It seems that the nextId method is called before the
+                # reloadData one (that is called after the page changing.
+                #
+                # TODO: fix this awful code lines
+                target = None
+                return self.wizard().pageIndex(BToolchainPage)
 
     ####
 
@@ -88,13 +110,18 @@ class BRoutePage(BWizardPage):
         """
         Overload of the BWizardPage connectSignals method.
         """
-        pass
+        self.connect(self.pageContent.baseButton, SIGNAL("toggled(bool)"), self, SIGNAL("completeChanged()"))
 
     def reloadData(self):
         """
         Overload of the BWizardPage reloadData method.
         """
-        pass
+        preset = self.projectInfo('PROJECT_PRESET')
+        try:
+            QApplication.instance().setOverrideCursor(Qt.WaitCursor)
+            self.project.loadProjectFromPreset(preset)
+        finally:
+            QApplication.instance().restoreOverrideCursor()
 
     ####
 
@@ -106,3 +133,10 @@ class BRoutePage(BWizardPage):
     @property
     def advanced(self):
         return self.pageContent.advancedButton.isChecked()
+
+    @property
+    def empty_main(self):
+        if self.advanced:
+            return self.pageContent.emptyCheckBox.isChecked()
+        else:
+            return False