Remove basic/advanced page. (You need to specify advanced projects directly into...
authorduplo <duplo@38d2e660-2303-0410-9eaa-f027e97ec537>
Wed, 26 May 2010 14:48:02 +0000 (14:48 +0000)
committerduplo <duplo@38d2e660-2303-0410-9eaa-f027e97ec537>
Wed, 26 May 2010 14:48:02 +0000 (14:48 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@3843 38d2e660-2303-0410-9eaa-f027e97ec537

wizard/BBoardPage.py
wizard/BProjectPresets.py
wizard/BRoutePage.py [deleted file]
wizard/bertos.py
wizard/ui/route_select.ui [deleted file]

index 6d7fc89b4d0347261ded550efb51f19b52f07202..85363bd203967093f7efc3f05946ceeaa40394b2 100644 (file)
@@ -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
index 240fb9aca735b0f8e13686186c168edd98473bed..818f0fa75e7d7b79023a666b5918c3574426e9f5 100644 (file)
@@ -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 (file)
index 2646cab..0000000
+++ /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 <duplo@develer.com>
-#
-
-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
index 5576ab27e98a52d54e7a7fdd1122fb4a756187bc..80488454120f1f044dfe004bcac91930d6b28c13 100755 (executable)
@@ -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 (file)
index 9dc6ec2..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>Form</class>
- <widget class="QWidget" name="Form">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>400</width>
-    <height>300</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout_2" stretch="0,1">
-   <item>
-    <widget class="QGroupBox" name="groupBox">
-     <property name="title">
-      <string/>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout">
-      <item>
-       <widget class="QRadioButton" name="baseButton">
-        <property name="text">
-         <string>Base</string>
-        </property>
-        <property name="checked">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QRadioButton" name="advancedButton">
-        <property name="text">
-         <string>Advanced</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <spacer name="verticalSpacer">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>194</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>