X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=wizard%2FBModulePage.py;h=5bee07241ac296482621c655e327a5495ff48640;hb=HEAD;hp=72b0f9da950bde5cdf74b5fc10c5030468b223a7;hpb=1ddc1613b03c97b8ef84c4657c5fbc82e86fa32b;p=bertos.git diff --git a/wizard/BModulePage.py b/wizard/BModulePage.py index 72b0f9da..5bee0724 100644 --- a/wizard/BModulePage.py +++ b/wizard/BModulePage.py @@ -28,7 +28,6 @@ # # Copyright 2008 Develer S.r.l. (http://www.develer.com/) # -# $Id$ # # Author: Lorenzo Berni # @@ -150,7 +149,11 @@ class BModulePage(BWizardPage): self.pageContent.propertyTable.setRowCount(index + 1) item = QTableWidgetItem(configurations[property]["brief"]) item.setFlags(item.flags() & ~Qt.ItemIsSelectable) - item.setToolTip(property) + tooltip = property + description = configurations[property].get("description", None) + if description: + tooltip = tooltip + ": " + description + item.setToolTip(tooltip) item.setData(Qt.UserRole, qvariant_converter.convertString(property)) self.pageContent.propertyTable.setItem(index, 0, item) if "type" in configurations[property]["informations"] and configurations[property]["informations"]["type"] == "boolean": @@ -159,6 +162,8 @@ class BModulePage(BWizardPage): self.insertComboBox(index, configurations[property]["value"], configurations[property]["informations"]["value_list"]) elif "type" in configurations[property]["informations"] and configurations[property]["informations"]["type"] == "int": self.insertSpinBox(index, configurations[property]["value"], configurations[property]["informations"]) + elif "type" in configurations[property]["informations"] and configurations[property]["informations"]["type"] == "hex": + self.insertLineEdit(index, configurations[property]["value"], configurations[property]["informations"]) else: # Not defined type, rendered as a text field self.pageContent.propertyTable.setItem(index, 1, QTableWidgetItem(configurations[property]["value"])) @@ -213,6 +218,8 @@ class BModulePage(BWizardPage): configurations[configuration][property]["value"] = "1" else: configurations[configuration][property]["value"] = "0" + elif configurations[configuration][property]["informations"]["type"] == "hex": + configurations[configuration][property]["value"] = unicode(self.pageContent.propertyTable.cellWidget(index, 1).text()) self.setProjectInfo("CONFIGURATIONS", configurations) if self.moduleItem(self.currentModule()).checkState(0) == Qt.Checked: self.dependencyCheck(self.moduleItem(self.currentModule())) @@ -339,6 +346,18 @@ class BModulePage(BWizardPage): self._control_group.addControl(index, spin_box) + def insertLineEdit(self, index, value, informations): + """ + Inserts in the table at index a line edit for hexadecimal property + setted to value. + """ + edit_box = QLineEdit() + edit_validator = QRegExpValidator(QRegExp(r"^0x[0-9A-Fa-f]+$"), edit_box) + edit_box.setValidator(edit_validator) + self.pageContent.propertyTable.setCellWidget(index, 1, edit_box) + edit_box.setText(value) + self._control_group.addControl(index, edit_box) + def currentModule(self): """ Retuns the current module name. @@ -587,6 +606,8 @@ class QControlGroup(QObject): self.connect(control, SIGNAL("currentIndexChanged(int)"), lambda: self.stateChanged(id)) elif type(control) == QDoubleSpinBox: self.connect(control, SIGNAL("valueChanged(double)"), lambda: self.stateChanged(id)) + elif type(control) == QLineEdit: + self.connect(control, SIGNAL("textChanged(QString)"), lambda: self.stateChanged(id)) def clear(self): """