]> rtime.felk.cvut.cz Git - CanFestival-3.git/blobdiff - objdictgen/subindextable.py
Problem with Real types unsupported fixed
[CanFestival-3.git] / objdictgen / subindextable.py
index baac5816d8b46c1e1060dea71d51b051325f6b2a..9da33490273d782c2a6fe96a8efd7558f374f88f 100644 (file)
@@ -176,11 +176,9 @@ class SubindexTable(wx.grid.PyGridTableBase):
                         renderer = wx.grid.GridCellNumberRenderer()
                         if colname == "value" and "min" in editors and "max" in editors:
                             editor.SetParameters("%s,%s"%(editors["min"],editors["max"]))
-                    elif editortype == "real":
-                        editor = wx.grid.GridCellFloatEditor()
-                        renderer = wx.grid.GridCellFloatRenderer()
-                        if colname == "value" and "min" in editors and "max" in editors:
-                            editor.SetParameters("%s,%s"%(editors["min"],editors["max"]))
+                    elif editortype == "float":
+                        editor = wx.grid.GridCellTextEditor()
+                        renderer = wx.grid.GridCellStringRenderer()
                     elif editortype == "bool":
                         editor = wx.grid.GridCellChoiceEditor()
                         editor.SetParameters(BoolList)
@@ -713,10 +711,21 @@ class EditingPanel(wx.SplitterWindow):
                     typeinfos = self.Manager.GetEntryInfos(subentry_infos["type"])
                     if typeinfos:
                         node_id = self.ParentWindow.GetCurrentNodeId()
-                        self.Manager.AddToMasterDCF(node_id, index, subindex, max(1, typeinfos["size"] / 8), int(self.Table.GetValueByName(subindex, "value"), 16))    
+                        value = self.Table.GetValueByName(subindex, "value")
+                        if value == "True":
+                            value = 1
+                        elif value == "False":
+                            value = 0
+                        elif value.isdigit():
+                            value = int(value)
+                        elif value.startswith("0x"):
+                            value = int(value, 16)
+                        else:
+                            value = int(value.encode("hex_codec"), 16)
+                        self.Manager.AddToMasterDCF(node_id, index, subindex, max(1, typeinfos["size"] / 8), value)    
                         self.ParentWindow.OpenMasterDCFDialog(node_id)
 
-    def OpenDCFDIalog(self, node_id):
+    def OpenDCFDialog(self, node_id):
         self.PartList.SetSelection(7)
         self.RefreshIndexList()
         self.IndexList.SetSelection(self.ListIndex.index(0x1F22))