From: duplo Date: Wed, 26 May 2010 14:48:02 +0000 (+0000) Subject: Remove basic/advanced page. (You need to specify advanced projects directly into... X-Git-Tag: 2.5.0~74 X-Git-Url: https://codewiz.org/gitweb?p=bertos.git;a=commitdiff_plain;h=52c487b2edccff2f2eb2a9082b38f370be0e05d6 Remove basic/advanced page. (You need to specify advanced projects directly into .spec file). git-svn-id: https://src.develer.com/svnoss/bertos/trunk@3843 38d2e660-2303-0410-9eaa-f027e97ec537 --- diff --git a/wizard/BBoardPage.py b/wizard/BBoardPage.py index 6d7fc89b..85363bd2 100644 --- a/wizard/BBoardPage.py +++ b/wizard/BBoardPage.py @@ -41,8 +41,6 @@ from PyQt4.QtGui import * from BWizardPage import BWizardPage from BCpuPage import BCpuPage -from BOutputPage import BOutputPage -from BRoutePage import BRoutePage import const import qvariant_converter diff --git a/wizard/BProjectPresets.py b/wizard/BProjectPresets.py index 240fb9ac..818f0fa7 100644 --- a/wizard/BProjectPresets.py +++ b/wizard/BProjectPresets.py @@ -42,7 +42,11 @@ from PyQt4.QtGui import * from BWizardPage import BWizardPage +from BOutputPage import BOutputPage +from BToolchainPage import BToolchainPage + from bertos_utils import _cmp +from toolchain_manager import ToolchainManager import const import qvariant_converter @@ -103,19 +107,52 @@ class BProjectPresets(BWizardPage): ## Overloaded QWizardPage methods ## def isComplete(self): - current_widget = self.pageContent.boardTabWidget.currentWidget() - preset_path = None - if current_widget: - current_item = current_widget.pageContent.presetList.currentItem() - if current_item: - preset_path = current_item.data(Qt.UserRole) - preset_path = qvariant_converter.getString(preset_path) + preset_path = self.selected_path if preset_path: self.setProjectInfo("PROJECT_PRESET", preset_path) + self.setProjectInfo("BASE_MODE", not self.advanced) + # TODO: find a better place for preset loading... + try: + QApplication.instance().setOverrideCursor(Qt.WaitCursor) + self.project.loadProjectFromPreset(preset_path) + finally: + QApplication.instance().restoreOverrideCursor() return True else: self.setProjectInfo("PROJECT_PRESET", None) return False + + def nextId(self): + """ + Overload of the QWizardPage nextId method. + """ + # Route to Toolchain page if the user select advanced + # or to Output page if the user select base + 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) + #### ## Overloaded BWizardPage methods ## @@ -145,4 +182,30 @@ class BProjectPresets(BWizardPage): self.pageContent.boardTabWidget.addTab(preset_page, QIcon(icon), preset["info"].get("name", preset["info"]["filename"])) else: self.pageContent.boardTabWidget.addTab(preset_page, preset["info"].get("name", preset["info"]["filename"])) - self.connect(preset_page, SIGNAL("completeChanged()"), self, SIGNAL("completeChanged()")) \ No newline at end of file + self.connect(preset_page, SIGNAL("completeChanged()"), self, SIGNAL("completeChanged()")) + + @property + def advanced(self): + if self.selected_data: + return self.selected_data["info"].get("advanced", False) + else: + return None + + @property + def selected_path(self): + current_widget = self.pageContent.boardTabWidget.currentWidget() + preset_path = None + if current_widget: + current_item = current_widget.pageContent.presetList.currentItem() + if current_item: + preset_path = current_item.data(Qt.UserRole) + preset_path = qvariant_converter.getString(preset_path) + return preset_path + + @property + def selected_data(self): + if self.selected_path: + current_widget = self.pageContent.boardTabWidget.currentWidget() + return current_widget.preset_data["children"][self.selected_path] + else: + return None \ No newline at end of file diff --git a/wizard/BRoutePage.py b/wizard/BRoutePage.py deleted file mode 100644 index 2646cab2..00000000 --- a/wizard/BRoutePage.py +++ /dev/null @@ -1,142 +0,0 @@ -#!/usr/bin/env python -# encoding: utf-8 -# -# This file is part of bertos. -# -# Bertos is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -# As a special exception, you may use this file as part of a free software -# library without restriction. Specifically, if other files instantiate -# templates or use macros or inline functions from this file, or you compile -# this file and link it with other files to produce an executable, this -# file does not by itself cause the resulting executable to be covered by -# the GNU General Public License. This exception does not however -# invalidate any other reasons why the executable file might be covered by -# the GNU General Public License. -# -# Copyright 2010 Develer S.r.l. (http://www.develer.com/) -# -# $Id$ -# -# Author: Lorenzo Berni -# - -from PyQt4.QtCore import * -from PyQt4.QtGui import * - -from BWizardPage import BWizardPage - -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): - """ - Let the user choice Advanced or base route. - """ - - def __init__(self): - BWizardPage.__init__(self, const.UI_LOCATION + "/route_select.ui") - self.setTitle(self.tr("Select Advanced or Base setup")) - self._last_selected = None - - ## Overloaded QWizardPage methods ## - - def isComplete(self): - """ - Overload of the QWizardPage isComplete method. - """ - self.setProjectInfo("BASE_MODE", not self.advanced) - return True - - def nextId(self): - """ - Overload of the QWizardPage nextId method. - """ - # Route to Toolchain page if the user select advanced - # or to Output page if the user select base - 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) - - #### - - ## Overloaded BWizardPage methods ## - - def setupUi(self): - """ - Overload of the BWizardPage setupUi method. - """ - pass - - def connectSignals(self): - """ - Overload of the BWizardPage connectSignals method. - """ - 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') - try: - QApplication.instance().setOverrideCursor(Qt.WaitCursor) - self.project.loadProjectFromPreset(preset) - finally: - QApplication.instance().restoreOverrideCursor() - - #### - - ## Slots ## - - - #### - - @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 diff --git a/wizard/bertos.py b/wizard/bertos.py index 5576ab27..80488454 100755 --- a/wizard/bertos.py +++ b/wizard/bertos.py @@ -50,7 +50,6 @@ from BIntroPage import BIntroPage from BFolderPage import BFolderPage from BBoardPage import BBoardPage from BProjectPresets import BProjectPresets -from BRoutePage import BRoutePage from BOpenPage import BOpenPage from BVersionPage import BVersionPage from BCpuPage import BCpuPage @@ -68,7 +67,7 @@ from LoadException import VersionException, ToolchainException def newProject(): QApplication.instance().project = BProject() - page_list = [BIntroPage, BFolderPage, BVersionPage, BBoardPage, BProjectPresets, BRoutePage, BCpuPage, BToolchainPage, BModulePage, BOutputPage, BCreationPage, BFinalPage] + page_list = [BIntroPage, BFolderPage, BVersionPage, BBoardPage, BProjectPresets, BCpuPage, BToolchainPage, BModulePage, BOutputPage, BCreationPage, BFinalPage] wizard = BWizard(page_list) wizard.show() wizard.exec_() diff --git a/wizard/ui/route_select.ui b/wizard/ui/route_select.ui deleted file mode 100644 index 9dc6ec2e..00000000 --- a/wizard/ui/route_select.ui +++ /dev/null @@ -1,60 +0,0 @@ - - - Form - - - - 0 - 0 - 400 - 300 - - - - Form - - - - - - - - - - - - Base - - - true - - - - - - - Advanced - - - - - - - - - - Qt::Vertical - - - - 20 - 194 - - - - - - - - -