wizard: add hex configuration parameter type
authorarighi <arighi@38d2e660-2303-0410-9eaa-f027e97ec537>
Wed, 13 Oct 2010 11:00:18 +0000 (11:00 +0000)
committerarighi <arighi@38d2e660-2303-0410-9eaa-f027e97ec537>
Wed, 13 Oct 2010 11:00:18 +0000 (11:00 +0000)
The wizard should be able to show configuration parameter numbers in
hexadecimal format. This feature is very useful to specify memory
addresses, product IDs, etc.

Add the support for this new "hex" type.

git-svn-id: https://src.develer.com/svnoss/bertos/trunk@4423 38d2e660-2303-0410-9eaa-f027e97ec537

wizard/BModulePage.py

index d393d620ca9540ee3462c6ddf3385bcedfbfd29e..f1eaad6794f0fe54b54859d1df5816a3785d1f32 100644 (file)
@@ -162,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"]))
@@ -338,10 +340,22 @@ class BModulePage(BWizardPage):
             maximum = int(informations["max"])
         spin_box.setRange(minimum, maximum)
         spin_box.setSuffix(suff)
-        spin_box.setValue(int(value.replace("L", "").replace("U", "")))
+        spin_box.setValue(int(value.replace("L", "").replace("U", ""), 0))
         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.