[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36489] trunk/blender/source/blender/ makesrna: new rna api call: RNA_struct_idprops_unset(op->ptr, "someprop"), added to allow un-setting operator properties.

Campbell Barton ideasman42 at gmail.com
Wed May 4 19:36:13 CEST 2011


Revision: 36489
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36489
Author:   campbellbarton
Date:     2011-05-04 17:36:13 +0000 (Wed, 04 May 2011)
Log Message:
-----------
new rna api call: RNA_struct_idprops_unset(op->ptr, "someprop"), added to allow un-setting operator properties.

Modified Paths:
--------------
    trunk/blender/source/blender/makesrna/RNA_access.h
    trunk/blender/source/blender/makesrna/intern/rna_access.c

Modified: trunk/blender/source/blender/makesrna/RNA_access.h
===================================================================
--- trunk/blender/source/blender/makesrna/RNA_access.h	2011-05-04 15:22:15 UTC (rev 36488)
+++ trunk/blender/source/blender/makesrna/RNA_access.h	2011-05-04 17:36:13 UTC (rev 36489)
@@ -620,8 +620,8 @@
 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);
 

Modified: trunk/blender/source/blender/makesrna/intern/rna_access.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_access.c	2011-05-04 15:22:15 UTC (rev 36488)
+++ trunk/blender/source/blender/makesrna/intern/rna_access.c	2011-05-04 17:36:13 UTC (rev 36489)
@@ -521,6 +521,24 @@
 	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;




More information about the Bf-blender-cvs mailing list