Modify the selection mode
[bertos.git] / wizard / BModulePage.py
index ada00db5e82a516224abca394b23fbf9eb07cda6..11101c2cdf9851b030fcebfc18404b2ef0889fb1 100644 (file)
@@ -29,9 +29,8 @@ class BModulePage(BWizardPage):
     
     def _setupUi(self):
         self.pageContent.moduleList.setSortingEnabled(True)
-        self.pageContent.propertyTable.horizontalHeader().setResizeMode(QHeaderView.Stretch)
+        self.pageContent.propertyTable.horizontalHeader().setResizeMode(QHeaderView.ResizeToContents)
         self.pageContent.propertyTable.horizontalHeader().setVisible(False)
-        #self.pageContent.propertyTable.verticalHeader().setResizeMode(QHeaderView.Stretch)
         self.pageContent.propertyTable.verticalHeader().setVisible(False)
         self.pageContent.propertyTable.setColumnCount(2)
         self.pageContent.propertyTable.setRowCount(0)
@@ -45,12 +44,29 @@ class BModulePage(BWizardPage):
         for key, value in moduleInfos.items():
             self.pageContent.moduleList.addItem(QListWidgetItem(key))
     
-    def _fillParameterTable(self, value):
+    def _fillParameterTable(self, parameters):
         self.pageContent.propertyTable.clear()
-        self.pageContent.propertyTable.setRowCount(len(value))
-        for index, element in enumerate(value):
-            self.pageContent.propertyTable.setItem(index, 0, QTableWidgetItem(element[0]))
-            self.pageContent.propertyTable.setItem(index, 1, QTableWidgetItem(element[1]))
+        self.pageContent.propertyTable.setRowCount(len(parameters))
+        for index, key in enumerate(parameters):
+            self.pageContent.propertyTable.setItem(index, 0, QTableWidgetItem(key))
+            if "type" in parameters[key]["informations"].keys():
+                if parameters[key]["informations"]["type"] == "boolean":
+                    checkBox = QCheckBox()
+                    self.pageContent.propertyTable.setCellWidget(index, 1, checkBox)
+                    checkBox.setChecked(parameters[key]["value"] == "1")
+                if parameters[key]["informations"]["type"] == "int":
+                    spinBox = QSpinBox()
+                    if "max" in parameters[key]["informations"].keys():
+                        spinBox.setMaximum(int(parameters[key]["informations"]["max"]))
+                    if "min" in parameters[key]["informations"].keys():
+                        spinBox.setMinimum(int(parameters[key]["informations"]["min"]))
+                    if "long" in parameters[key]["informations"].keys():
+                        if bool(parameters[key]["informations"]["long"]):
+                            spinBox.setSuffix("L")
+                    self.pageContent.propertyTable.setCellWidget(index, 1, spinBox)
+                    spinBox.setValue(int(parameters[key]["value"]))
+            else:
+                self.pageContent.propertyTable.setItem(index, 1, QTableWidgetItem(parameters[key]["value"]))
     
     def moduleItemClicked(self):
         module = unicode(self.pageContent.moduleList.currentItem().text())