Make BWizard generic: now it can be used for both creating and editing projects
[bertos.git] / wizard / BOutputPage.py
index e233612e4e20069c9a3ebbda0e0af3b4012bf9c5..aea68aaf9fa789ae79a0e5023f25fe4a93cccb4e 100644 (file)
@@ -15,9 +15,42 @@ from PyQt4.QtGui import *
 from BWizardPage import *
 import bertos_utils
 
+from const import *
 
 class BOutputPage(BWizardPage):
+    """
+    Page of the wizard that show a little summary of the previous decisions.
+    """
     
     def __init__(self):
-        BWizardPage.__init__(self, "output_select.ui")
+        BWizardPage.__init__(self, UI_LOCATION + "/output_select.ui")
         self.setTitle(self.tr("Choose the project output"))
+        self.connectSignals()
+        self.setProjectInfo("OUTPUT", [])
+    
+    ## Overloaded BWizardPage connectSignals method. ##
+    
+    def connectSignals(self):
+        """
+        Connects the signals with the related slots.
+        """
+        self.connect(self.pageContent.eclipseCheckBox, SIGNAL("stateChanged(int)"), lambda checked: self.modeChecked(checked, "eclipse"))
+        self.connect(self.pageContent.xcodeCheckBox, SIGNAL("stateChanged(int)"), lambda checked: self.modeChecked(checked, "xcode"))
+        self.connect(self.pageContent.codeliteCheckBox, SIGNAL("stateChanged(int)"), lambda checked: self.modeChecked(checked, "codelite"))
+    
+    ####
+    
+    ## Slots ##
+    
+    def modeChecked(self, checked, value):
+        """
+        Slot called when one of the mode checkbox is checked. It stores it.
+        """
+        output_list = self.projectInfo("OUTPUT")
+        if checked == Qt.Checked:
+            output_list.append(value)
+        else:
+            output_list.remove(value)
+        self.setProjectInfo("OUTPUT", output_list)
+
+    ####
\ No newline at end of file