Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2011-05-04 21:36:13 +0400
committerCampbell Barton <ideasman42@gmail.com>2011-05-04 21:36:13 +0400
commit5ed5c7441cdb23c4f5d0efe550fc3562bdbb9cf8 (patch)
treefbd914b3cc64ae6374ace939f6e500aa09a81f8b
parent015a32d01c4df3377eec1470827f459d43061b6d (diff)
new rna api call: RNA_struct_idprops_unset(op->ptr, "someprop"), added to allow un-setting operator properties.
-rw-r--r--source/blender/makesrna/RNA_access.h2
-rw-r--r--source/blender/makesrna/intern/rna_access.c18
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;