diff options
author | Campbell Barton <ideasman42@gmail.com> | 2011-05-04 21:36:13 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2011-05-04 21:36:13 +0400 |
commit | 5ed5c7441cdb23c4f5d0efe550fc3562bdbb9cf8 (patch) | |
tree | fbd914b3cc64ae6374ace939f6e500aa09a81f8b /source/blender | |
parent | 015a32d01c4df3377eec1470827f459d43061b6d (diff) |
new rna api call: RNA_struct_idprops_unset(op->ptr, "someprop"), added to allow un-setting operator properties.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/makesrna/RNA_access.h | 2 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_access.c | 18 |
2 files changed, 19 insertions, 1 deletions
diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index 53af242a0ac..5b42e01989e 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -620,7 +620,7 @@ void RNA_struct_blender_type_set(StructRNA *srna, void *blender_type); struct IDProperty *RNA_struct_idprops(PointerRNA *ptr, int create); int RNA_struct_idprops_check(StructRNA *srna); int RNA_struct_idprops_register_check(StructRNA *type); - +int RNA_struct_idprops_unset(PointerRNA *ptr, const char *identifier); PropertyRNA *RNA_struct_find_property(PointerRNA *ptr, const char *identifier); int RNA_struct_contains_property(PointerRNA *ptr, PropertyRNA *prop_test); diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index cd9b23da5d3..03622ec756f 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -521,6 +521,24 @@ int RNA_struct_idprops_register_check(StructRNA *type) return (type->flag & STRUCT_NO_IDPROPERTIES) == 0; } +/* remove an id-property */ +int RNA_struct_idprops_unset(PointerRNA *ptr, const char *identifier) +{ + IDProperty *group= RNA_struct_idprops(ptr, 0); + + if(group) { + IDProperty *idp= IDP_GetPropertyFromGroup(group, identifier); + if(idp) { + IDP_RemFromGroup(group, idp); + IDP_FreeProperty(idp); + MEM_freeN(idp); + + return 1; + } + } + return 0; +} + int RNA_struct_is_a(StructRNA *type, StructRNA *srna) { StructRNA *base; |