X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=wizard%2FBRoutePage.py;h=2646cab23869e584d38a2a3ee34ba7eb5e73c8d9;hb=972de11e7e351a75de64449750c4d672c7584b4c;hp=633fac4affd2355ab82c811ac5771b12a0280046;hpb=c19d4b6615265acdd889d1634f3688d6c6d35ce2;p=bertos.git diff --git a/wizard/BRoutePage.py b/wizard/BRoutePage.py index 633fac4a..2646cab2 100644 --- a/wizard/BRoutePage.py +++ b/wizard/BRoutePage.py @@ -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