[Bf-translations-svn] SVN commit: /data/svn/bf-translations [191] trunk/po/tools/_update_msg.py: Fixed the RNA parsing code, was not recursively parsing sub-classes...

bf-translations at blender.org bf-translations at blender.org
Thu Nov 17 15:50:16 CET 2011


Revision: 191
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-translations&revision=191
Author:   mont29
Date:     2011-11-17 14:50:16 +0000 (Thu, 17 Nov 2011)
Log Message:
-----------
Fixed the RNA parsing code, was not recursively parsing sub-classes... Adds 28% of new messages. :(

Modified Paths:
--------------
    trunk/po/tools/_update_msg.py

Modified: trunk/po/tools/_update_msg.py
===================================================================
--- trunk/po/tools/_update_msg.py	2011-11-17 14:44:37 UTC (rev 190)
+++ trunk/po/tools/_update_msg.py	2011-11-17 14:50:16 UTC (rev 191)
@@ -67,10 +67,10 @@
              bpy.types.OperatorMacro.__subclasses__()]
             )))
 
-        get_inatance = __import__("_bpy").ops.get_instance
+        get_instance = __import__("_bpy").ops.get_instance
         path_resolve = type(bpy.context).__base__.path_resolve
         for idname in op_names:
-            op = get_inatance(idname)
+            op = get_instance(idname)
             if 'INTERNAL' in path_resolve(op, "bl_options"):
                 blacklist_rna_class.append(idname)
 
@@ -173,51 +173,42 @@
     # -------------------------------------------------------------------------
     # Dump Messages
 
-    def full_class_id(cls):
-        """ gives us 'ID.Lamp.AreaLamp' which is best for sorting.
-        """
-        cls_id = ""
-        bl_rna = cls.bl_rna
-        while bl_rna:
-            cls_id = "%s.%s" % (bl_rna.identifier, cls_id)
-            bl_rna = bl_rna.base
-        return cls_id
+    def process_cls_list(cls_list):
+        if not cls_list:
+            return
 
-    cls_list = type(bpy.context).__base__.__subclasses__()
-    cls_list.sort(key=full_class_id)
-    for cls in cls_list:
-        walkClass(cls)
+        def full_class_id(cls):
+            """ gives us 'ID.Lamp.AreaLamp' which is best for sorting.
+            """
+            cls_id = ""
+            bl_rna = cls.bl_rna
+            while bl_rna:
+                cls_id = "%s.%s" % (bl_rna.identifier, cls_id)
+                bl_rna = bl_rna.base
+            return cls_id
 
-    cls_list = bpy.types.Space.__subclasses__()
-    cls_list.sort(key=full_class_id)
-    for cls in cls_list:
-        walkClass(cls)
+        cls_list.sort(key=full_class_id)
+        for cls in cls_list:
+            walkClass(cls)
+            # There might be more than one level of heritage…
+            # Without this, some classes like ParticleSettingsTextureSlot
+            # are missed...
+            process_cls_list(cls.__subclasses__())
 
-    cls_list = bpy.types.Operator.__subclasses__()
-    cls_list.sort(key=full_class_id)
-    for cls in cls_list:
-        walkClass(cls)
+    process_cls_list(type(bpy.context).__base__.__subclasses__())
 
-    cls_list = bpy.types.OperatorProperties.__subclasses__()
-    cls_list.sort(key=full_class_id)
-    for cls in cls_list:
-        walkClass(cls)
+    process_cls_list(bpy.types.Space.__subclasses__())
 
-    cls_list = bpy.types.Menu.__subclasses__()
-    cls_list.sort(key=full_class_id)
-    for cls in cls_list:
-        walkClass(cls)
+    process_cls_list(bpy.types.Operator.__subclasses__())
 
-    cls_list = bpy.types.Panel.__subclasses__()
-    cls_list.sort(key=full_class_id)
-    for cls in cls_list:
-        walkClass(cls)
+    process_cls_list(bpy.types.OperatorProperties.__subclasses__())
 
-    cls_list = bpy.types.PropertyGroup.__subclasses__()
-    cls_list.sort(key=full_class_id)
-    for cls in cls_list:
-        walkClass(cls)
+    process_cls_list(bpy.types.Menu.__subclasses__())
 
+    process_cls_list(bpy.types.Panel.__subclasses__())
+
+    process_cls_list(bpy.types.PropertyGroup.__subclasses__())
+
     from bpy_extras.keyconfig_utils import KM_HIERARCHY
 
     walk_keymap_hierarchy(KM_HIERARCHY, "KM_HIERARCHY")



More information about the Bf-translations-svn mailing list