X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=wizard%2FBRoutePage.py;h=5b48a1745291be41c5f4d2e686d5fc2a159dc211;hb=9add062a61029071c38f672621d89177d71f3b59;hp=d5e27b5a327b60fd6219e57fd9e70e556cbc1d40;hpb=87014709b232b8bbb25c4336639538d2757b13db;p=bertos.git diff --git a/wizard/BRoutePage.py b/wizard/BRoutePage.py index d5e27b5a..5b48a174 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): """ @@ -62,6 +63,7 @@ class BRoutePage(BWizardPage): Overload of the QWizardPage isComplete method. """ self.setProjectInfo("EMPTY_MAIN", self.empty_main) + self.setProjectInfo("BASE_MODE", not self.advanced) return True def nextId(self): @@ -73,7 +75,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) #### @@ -90,13 +112,18 @@ class BRoutePage(BWizardPage): Overload of the BWizardPage connectSignals method. """ 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. """ preset = self.projectInfo('PROJECT_PRESET') - self.project.loadProjectFromPreset(preset) + try: + QApplication.instance().setOverrideCursor(Qt.WaitCursor) + self.project.loadProjectFromPreset(preset) + finally: + QApplication.instance().restoreOverrideCursor() ####