From 1e2f7f270e346f7929aae85355aefc4f0a47139c Mon Sep 17 00:00:00 2001 From: duplo Date: Wed, 22 Apr 2009 10:12:15 +0000 Subject: [PATCH] Change the interface in order to discover automatically plugins git-svn-id: https://src.develer.com/svnoss/bertos/trunk@2618 38d2e660-2303-0410-9eaa-f027e97ec537 --- wizard/BOutputPage.py | 50 ++++++++++++++++++----------- wizard/ui/output_select.ui | 65 +++++++++----------------------------- 2 files changed, 47 insertions(+), 68 deletions(-) diff --git a/wizard/BOutputPage.py b/wizard/BOutputPage.py index 55418d66..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): @@ -30,35 +32,47 @@ class BOutputPage(BWizardPage): 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. """ - output = [] - if self.pageContent.codeliteCheckBox.isChecked(): - output.append("codelite") - else: - if "codelite" in output: - output.remove("codelite") - self.setProjectInfo("OUTPUT", output) - + 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 diff --git a/wizard/ui/output_select.ui b/wizard/ui/output_select.ui index 3540d357..aaccb714 100644 --- a/wizard/ui/output_select.ui +++ b/wizard/ui/output_select.ui @@ -6,8 +6,8 @@ 0 0 - 359 - 372 + 349 + 270 @@ -19,7 +19,7 @@ Form - + @@ -73,55 +73,20 @@ - - + + true - - QFrame::StyledPanel - - - QFrame::Raised - - - - - - CodeLite project - - - true - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - true - - - CodeLite project files and configurations - - - - - - + + + + 0 + 0 + 321 + 152 + + + -- 2.25.1