[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [40868] trunk/blender: fix for BUILTIN_KSI_WholeCharacter keying custom string/collection/ group properties
Campbell Barton
ideasman42 at gmail.com
Sun Oct 9 04:11:46 CEST 2011
Revision: 40868
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=40868
Author: campbellbarton
Date: 2011-10-09 02:11:43 +0000 (Sun, 09 Oct 2011)
Log Message:
-----------
fix for BUILTIN_KSI_WholeCharacter keying custom string/collection/group properties
Modified Paths:
--------------
trunk/blender/release/scripts/startup/keyingsets_builtins.py
trunk/blender/source/blender/python/intern/bpy_rna.c
Modified: trunk/blender/release/scripts/startup/keyingsets_builtins.py
===================================================================
--- trunk/blender/release/scripts/startup/keyingsets_builtins.py 2011-10-09 01:12:08 UTC (rev 40867)
+++ trunk/blender/release/scripts/startup/keyingsets_builtins.py 2011-10-09 02:11:43 UTC (rev 40868)
@@ -353,8 +353,13 @@
# custom properties
def doCustomProps(ksi, ks, bone):
+
+ prop_type_compat = {bpy.types.BooleanProperty,
+ bpy.types.IntProperty,
+ bpy.types.FloatProperty}
+
# go over all custom properties for bone
- for prop, val in bone.items():
+ for prop in bone.keys():
# ignore special "_RNA_UI" used for UI editing
if prop == "_RNA_UI":
continue
@@ -362,7 +367,9 @@
# for now, just add all of 'em
prop_rna = type(bone).bl_rna.properties.get(prop, None)
if prop_rna is None:
- ksi.addProp(ks, bone, '["%s"]' % prop)
+ prop_path = '["%s"]' % prop
+ if bone.path_resolve(prop_path, False).rna_type in prop_type_compat:
+ ksi.addProp(ks, bone, prop_path)
elif prop_rna.is_animatable:
ksi.addProp(ks, bone, prop)
Modified: trunk/blender/source/blender/python/intern/bpy_rna.c
===================================================================
--- trunk/blender/source/blender/python/intern/bpy_rna.c 2011-10-09 01:12:08 UTC (rev 40867)
+++ trunk/blender/source/blender/python/intern/bpy_rna.c 2011-10-09 02:11:43 UTC (rev 40868)
@@ -3655,12 +3655,22 @@
Py_RETURN_NONE;
}
+static PyObject *pyrna_struct_get_rna_type(BPy_PropertyRNA *self)
+{
+ PointerRNA tptr;
+ RNA_pointer_create(NULL, &RNA_Property, self->prop, &tptr);
+ return pyrna_struct_Subtype(&tptr);
+}
+
+
+
/*****************************************************************************/
/* Python attributes get/set structure: */
/*****************************************************************************/
static PyGetSetDef pyrna_prop_getseters[]= {
{(char *)"id_data", (getter)pyrna_struct_get_id_data, (setter)NULL, (char *)"The :class:`ID` object this datablock is from or None, (not available for all data types)", NULL},
+ {(char *)"rna_type", (getter)pyrna_struct_get_rna_type, (setter)NULL, (char *)"The property type for introspection", NULL},
{NULL, NULL, NULL, NULL, NULL} /* Sentinel */
};
More information about the Bf-blender-cvs
mailing list