X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=wizard%2FBRoutePage.py;h=5b48a1745291be41c5f4d2e686d5fc2a159dc211;hb=02dcaca92dc3681f413a81617db6d985d4b0a99b;hp=418f2b95ec8c8785d3684c5eca5f44afeb9db540;hpb=e3892547e4cd75c1ec039e42ff7db425be9d7b72;p=bertos.git diff --git a/wizard/BRoutePage.py b/wizard/BRoutePage.py index 418f2b95..5b48a174 100644 --- a/wizard/BRoutePage.py +++ b/wizard/BRoutePage.py @@ -38,12 +38,13 @@ from PyQt4.QtGui import * from BWizardPage import BWizardPage -from BCpuPage import BCpuPage from BOutputPage import BOutputPage +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,9 @@ class BRoutePage(BWizardPage): """ Overload of the QWizardPage isComplete method. """ - return False + self.setProjectInfo("EMPTY_MAIN", self.empty_main) + self.setProjectInfo("BASE_MODE", not self.advanced) + return True def nextId(self): """ @@ -69,7 +72,30 @@ class BRoutePage(BWizardPage): """ # Route to Toolchain page if the user select advanced # or to Output page if the user select base - return self.wizard().pageIndex(BToolchainPage) + if self.advanced: + return self.wizard().pageIndex(BToolchainPage) + else: + 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) #### @@ -85,13 +111,19 @@ class BRoutePage(BWizardPage): """ Overload of the BWizardPage connectSignals method. """ - pass + self.connect(self.pageContent.emptyCheckBox, SIGNAL("stateChanged(int)"), self, SIGNAL("completeChanged()")) + 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() #### @@ -103,3 +135,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