fix [#28821] Whole Character keying set ignores non animatable propertyflag

This commit is contained in:
Campbell Barton 2011-10-08 12:27:52 +00:00
parent 21eb8b92a0
commit 35fedac565
Notes: blender-bot 2023-02-14 19:07:41 +01:00
Referenced by issue blender/blender-addons#70447, 'WholeCharacter' Keying set doesn't key the whole character [due to non-editable custom property]. (Traceback error in console)
2 changed files with 18 additions and 1 deletions

View File

@ -360,7 +360,12 @@ class BUILTIN_KSI_WholeCharacter(KeyingSetInfo):
continue
# for now, just add all of 'em
ksi.addProp(ks, bone, '["%s"]' % (prop))
prop_rna = type(bone).bl_rna.properties.get(prop, None)
if prop_rna is None:
ksi.addProp(ks, bone, '["%s"]' % prop)
elif prop_rna.is_animatable:
ksi.addProp(ks, bone, prop)
###############################

View File

@ -506,6 +506,13 @@ static int rna_Property_readonly_get(PointerRNA *ptr)
return prop->flag & PROP_EDITABLE ? 0:1;
}
static int rna_Property_animatable_get(PointerRNA *ptr)
{
PropertyRNA *prop= (PropertyRNA*)ptr->data;
return (prop->flag & PROP_ANIMATABLE) != 0;
}
static int rna_Property_use_output_get(PointerRNA *ptr)
{
PropertyRNA *prop= (PropertyRNA*)ptr->data;
@ -1066,6 +1073,11 @@ static void rna_def_property(BlenderRNA *brna)
RNA_def_property_boolean_funcs(prop, "rna_Property_readonly_get", NULL);
RNA_def_property_ui_text(prop, "Read Only", "Property is editable through RNA");
prop= RNA_def_property(srna, "is_animatable", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
RNA_def_property_boolean_funcs(prop, "rna_Property_animatable_get", NULL);
RNA_def_property_ui_text(prop, "Animatable", "Property is animatable through RNA");
prop= RNA_def_property(srna, "is_required", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
RNA_def_property_boolean_funcs(prop, "rna_Property_is_required_get", NULL);