X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;ds=sidebyside;f=wizard%2FBOutputPage.py;h=ef3c305af5d1813ea149d8cc6ab757798267aee9;hb=1e2f7f270e346f7929aae85355aefc4f0a47139c;hp=0720e7a227756c51029d07cba97a803f8ad06f53;hpb=89bd702e6979ee84ace7278175c56c2f514aa961;p=bertos.git diff --git a/wizard/BOutputPage.py b/wizard/BOutputPage.py index 0720e7a2..ef3c305a 100644 --- a/wizard/BOutputPage.py +++ b/wizard/BOutputPage.py @@ -15,6 +15,8 @@ from PyQt4.QtGui import * from BWizardPage import * import bertos_utils +import plugins + from const import * class BOutputPage(BWizardPage): @@ -25,30 +27,52 @@ 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.setProjectInfo("OUTPUT", ["codelite"]) - ## Overloaded BWizardPage connectSignals method. ## + ## Overloaded BWizardPage methods. ## def connectSignals(self): """ - Connects the signals with the related slots. + 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.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 reloadData(self): + """ + Overload of the BWizardPage reloadData method. + """ + self.modeChecked() + #### ## Slots ## - def modeChecked(self, checked, value): + def modeChecked(self): """ 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) + plugins = [] + for checkBox, plugin in self._plugin_dict.items(): + if checkBox.checkState() == Qt.Checked: + plugins.append(plugin) + self.setProjectInfo("OUTPUT", plugins) - #### \ No newline at end of file + #### + + def availablePlugins(self): + return plugins.__all__ \ No newline at end of file