X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;ds=inline;f=wizard%2FBOutputPage.py;h=ef3c305af5d1813ea149d8cc6ab757798267aee9;hb=d6dad7eb666d458f5d0df9bcf9b7dac1b109eb85;hp=2f7629d19e9e6b0e46883d894b0bad418b0495f0;hpb=1b02da529da6a84fe8b096c0e9dc242598e9fe3d;p=bertos.git diff --git a/wizard/BOutputPage.py b/wizard/BOutputPage.py index 2f7629d1..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,38 +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, "output_select.ui") + BWizardPage.__init__(self, UI_LOCATION + "/output_select.ui") self.setTitle(self.tr("Choose the project output")) - self._setupButtonGroup() - self._connectSignals() - - def _connectSignals(self): - self.connect(self._buttonGroup, SIGNAL("buttonClicked(int)"), self._buttonClicked) - - def _setupButtonGroup(self): - self._buttonGroup = QButtonGroup() - self._buttonGroup.addButton(self.pageContent.bbsButton) - self._buttonGroup.addButton(self.pageContent.eclipseButton) - self._buttonGroup.addButton(self.pageContent.codeliteButton) - self._buttonGroup.addButton(self.pageContent.xcodeButton) - - def _buttonClicked(self): - self.emit(SIGNAL("completeChanged()")) - - def isComplete(self): - for button in self._buttonGroup.buttons(): - if button.isChecked(): - if button is self.pageContent.bbsButton: - self._projectInfoStore("OUTPUT", "makefile") - elif button is self.pageContent.eclipseButton: - self._projectInfoStore("OUTPUT", "eclipse") - elif button is self.pageContent.codeliteButton: - self._projectInfoStore("OUTPUT", "codelite") - elif button is self.pageContent.xcodeButton: - self._projectInfoStore("OUTPUT", "xcode") - return True - return False \ 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