# HG changeset patch
# User Laurent Bessard
# Date 1350663031 -7200
# Node ID b1ead41fbd3bf801e31dfe5d261b22647d98aa93
# Parent  8a51046010d74cd2d5ed9a697283112fa46cc6df
Fix bug in VariablePanel 'Type' cell editor menu entry 'User Data Types' containing ConfNodes data types

diff -r 8a51046010d7 -r b1ead41fbd3b PLCControler.py
--- a/PLCControler.py	Thu Oct 18 20:40:12 2012 +0200
+++ b/PLCControler.py	Fri Oct 19 18:10:31 2012 +0200
@@ -1461,9 +1461,9 @@
                  "list": confnodetypes["types"].GetCustomBlockTypes()}
                 for confnodetypes in self.ConfNodeTypes]
         
-    def GetConfNodeDataTypes(self, exclude = ""):
+    def GetConfNodeDataTypes(self, exclude = "", only_locatables = False):
         return [{"name": _("%s Data Types") % confnodetypes["name"],
-                 "list": [datatype["name"] for datatype in confnodetypes["types"].GetCustomDataTypes(exclude)]}
+                 "list": [datatype["name"] for datatype in confnodetypes["types"].GetCustomDataTypes(exclude, only_locatables)]}
                 for confnodetypes in self.ConfNodeTypes]
     
     def GetConfNodeDataType(self, type):
@@ -1556,7 +1556,7 @@
         return blocktypes
 
     # Return Data Types checking for recursion
-    def GetDataTypes(self, tagname = "", basetypes = True, only_locatables = False, debug = False):
+    def GetDataTypes(self, tagname = "", basetypes = True, confnodetypes = True, only_locatables = False, debug = False):
         if basetypes:
             datatypes = self.GetBaseTypes()
         else:
@@ -1568,8 +1568,9 @@
             if words[0] in ["D"]:
                 name = words[1]
             datatypes.extend([datatype["name"] for datatype in project.GetCustomDataTypes(name, only_locatables)])
-        for category in self.GetConfNodeDataTypes():
-            datatypes.extend(category["list"])
+        if confnodetypes:
+            for category in self.GetConfNodeDataTypes(name, only_locatables):
+                datatypes.extend(category["list"])
         return datatypes
 
     # Return Base Type of given possible derived type
diff -r 8a51046010d7 -r b1ead41fbd3b controls/VariablePanel.py
--- a/controls/VariablePanel.py	Thu Oct 18 20:40:12 2012 +0200
+++ b/controls/VariablePanel.py	Fri Oct 19 18:10:31 2012 +0200
@@ -417,10 +417,10 @@
              "Class" : "", 
              "Type" : "INT", 
              "Location" : "",
-              "Initial Value" : "", 
-              "Option" : "",
-              "Documentation" : "", 
-              "Edit" : True
+             "Initial Value" : "", 
+             "Option" : "",
+             "Documentation" : "", 
+             "Edit" : True
         }
 
         if element_type in ["config", "resource"]:
@@ -702,7 +702,7 @@
 
             # build a submenu containing user-defined types
             datatype_menu = wx.Menu(title='')
-            datatypes = self.Controler.GetDataTypes(basetypes = False)
+            datatypes = self.Controler.GetDataTypes(basetypes = False, confnodetypes = False)
             for datatype in datatypes:
                 new_id = wx.NewId()
                 AppendMenu(datatype_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=datatype)