Attempt to fix bug #153.
[bertos.git] / wizard / BFolderPage.py
index b6038ae31b6b37e2e6a9e9e2965c49f0ee9e5f19..50cb2cd6b38db3de9c6d38a6bc2e4ccbc483342b 100644 (file)
@@ -39,6 +39,9 @@ from PyQt4.QtGui import *
 from BWizardPage import *
 import bertos_utils
 
+from BCpuPage import BCpuPage
+from BBoardPage import BBoardPage
+
 from const import *
 
 class BFolderPage(BWizardPage):
@@ -61,6 +64,11 @@ class BFolderPage(BWizardPage):
         self.setDefaultFolder(self._destination_folder)
         if self.pageContent.projectPath.text() != "None":
             self.setProjectInfo("PROJECT_PATH", unicode(self.pageContent.projectPath.text()))
+            self.setProjectInfo("PROJECT_NAME", os.path.basename(unicode(self.pageContent.projectPath.text())))
+            self.setProjectInfo("PROJECT_SRC_PATH", os.path.join(self.projectInfo("PROJECT_PATH"), self.projectInfo("PROJECT_NAME")))
+            self.setProjectInfo("PROJECT_HW_PATH", os.path.join(self.projectInfo("PROJECT_PATH"), self.projectInfo("PROJECT_NAME")))
+            self.setProjectInfo("ROUTE", self.next_page)
+            self.setProjectInfo("PROJECT_FROM_PRESET", self.from_preset)
             return True
         else:
             return False
@@ -82,6 +90,7 @@ class BFolderPage(BWizardPage):
         self.connect(self.pageContent.nameEdit, SIGNAL("textChanged(const QString)"), self.nameChanged)
         self.connect(self.pageContent.directoryEdit, SIGNAL("textChanged(const QString)"), self.directoryChanged)
         self.connect(self.pageContent.directoryButton, SIGNAL("clicked()"), self.selectDirectory)
+        self.connect(self.pageContent.customButton, SIGNAL("toggled(bool)"), self.isComplete)
     
     ####
 
@@ -103,7 +112,12 @@ class BFolderPage(BWizardPage):
         """
         Slot called when the project folder is changed manually by the user.
         """
-        self._destination_folder = unicode(QDir.toNativeSeparators(directory))
+        try:
+            directory = unicode(directory).encode("ascii")
+        except UnicodeEncodeError:
+            directory = self._destination_folder
+            self.pageContent.directoryEdit.setText(directory)
+        self._destination_folder = directory
         self.setProjectPath()
 
     def selectDirectory(self):
@@ -112,9 +126,23 @@ class BFolderPage(BWizardPage):
         """
         directory = unicode(QFileDialog.getExistingDirectory(self, self.tr("Open Directory"), self.pageContent.directoryEdit.text(), QFileDialog.ShowDirsOnly))
         if len(directory) > 0:
-            self.pageContent.directoryEdit.setText(directory)
+            self.pageContent.directoryEdit.setText(QDir.toNativeSeparators(directory))
 
     ####
+
+    @property
+    def next_page(self):
+        """
+        Contains the next page class.
+        """
+        if self.from_preset:
+            return BBoardPage
+        else:
+            return BCpuPage
+
+    @property
+    def from_preset(self):
+        return self.pageContent.predefinedButton.isChecked()
     
     def initializeAttributes(self):
         """