# Copyright 2009 Develer S.r.l. (http://www.develer.com/)
# All rights reserved.
#
-# $Id:$
+# $Id$
#
# Author: Lorenzo Berni <duplo@develer.com>
#
from BWizardPage import *
import bertos_utils
+import plugins
+
from const import *
class BOutputPage(BWizardPage):
def __init__(self):
BWizardPage.__init__(self, UI_LOCATION + "/output_select.ui")
self.setTitle(self.tr("Choose the project output"))
- self._connectSignals()
- self._projectInfoStore("OUTPUT", [])
- def _connectSignals(self):
+ ## Overloaded BWizardPage methods. ##
+
+ def connectSignals(self):
+ """
+ Overload of the BWizardPage connectSignals method.
+ """
+ for plugin in self._plugin_dict:
+ self.connect(plugin, SIGNAL("stateChanged(int)"), self.modeChecked)
+
+ def setupUi(self):
"""
- Connects the signals with the related slots.
+ Overload of the BWizardPage setupUi method.
"""
- 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"))
+ self._plugin_dict = {}
+ layout = QVBoxLayout()
+ for plugin in self.availablePlugins():
+ check = QCheckBox(plugin)
+ layout.addWidget(check)
+ check.setCheckState(Qt.Checked)
+ self._plugin_dict[check] = plugin
+ widget = QWidget()
+ widget.setLayout(layout)
+ self.pageContent.scrollArea.setWidget(widget)
- def _modeChecked(self, checked, value):
+ def reloadData(self):
+ """
+ Overload of the BWizardPage reloadData method.
+ """
+ self.modeChecked()
+
+ ####
+
+ ## Slots ##
+
+ def modeChecked(self):
"""
Slot called when one of the mode checkbox is checked. It stores it.
"""
- output_list = self._projectInfoRetrieve("OUTPUT")
- if checked == Qt.Checked:
- output_list.append(value)
- else:
- output_list.remove(value)
- self._projectInfoStore("OUTPUT", output_list)
-
\ No newline at end of file
+ plugins = []
+ for checkBox, plugin in self._plugin_dict.items():
+ if checkBox.checkState() == Qt.Checked:
+ plugins.append(plugin)
+ self.setProjectInfo("OUTPUT", plugins)
+
+ ####
+
+ def availablePlugins(self):
+ return plugins.__all__
\ No newline at end of file