fix [#28821] Whole Character keying set ignores non animatable propertyflag
This commit is contained in:
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)
|
@ -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)
|
||||
|
||||
|
||||
###############################
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue