X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;ds=sidebyside;f=wizard%2FBOutputPage.py;h=ef3c305af5d1813ea149d8cc6ab757798267aee9;hb=d6dad7eb666d458f5d0df9bcf9b7dac1b109eb85;hp=397be470a6684adbde69afb19cca125db5356df2;hpb=a692e320af6d934a7e935e6b2b83bfd3f0de1cab;p=bertos.git diff --git a/wizard/BOutputPage.py b/wizard/BOutputPage.py index 397be470..ef3c305a 100644 --- a/wizard/BOutputPage.py +++ b/wizard/BOutputPage.py @@ -4,7 +4,7 @@ # Copyright 2009 Develer S.r.l. (http://www.develer.com/) # All rights reserved. # -# $Id:$ +# $Id$ # # Author: Lorenzo Berni # @@ -15,26 +15,64 @@ from PyQt4.QtGui import * from BWizardPage import * import bertos_utils +import plugins + 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, UI_LOCATION + "/output_select.ui") self.setTitle(self.tr("Choose the project output")) - self._connectSignals() - self._projectInfoStore("OUTPUT", []) - - def _connectSignals(self): - 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")) - - def _modeChecked(self, checked, value): - outputList = self._projectInfoRetrieve("OUTPUT") - if checked == Qt.Checked: - outputList.append(value) - else: - outputList.remove(value) - self._projectInfoStore("OUTPUT", outputList) - \ No newline at end of file + + ## 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): + """ + Overload of the BWizardPage setupUi method. + """ + 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 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. + """ + 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