[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31547] trunk/blender/source/blender: py/ rna remove functions now all work in a similar way.

Campbell Barton ideasman42 at gmail.com
Tue Aug 24 08:40:29 CEST 2010


Revision: 31547
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31547
Author:   campbellbarton
Date:     2010-08-24 08:40:28 +0200 (Tue, 24 Aug 2010)

Log Message:
-----------
py/rna remove functions now all work in a similar way.
- some remove() functions took an int argument rather then the item to remove.
- disallow None argument.
- raise an error if the item isnt in the collection.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_constraint.h
    trunk/blender/source/blender/blenkernel/BKE_fcurve.h
    trunk/blender/source/blender/blenkernel/intern/constraint.c
    trunk/blender/source/blender/blenkernel/intern/fmodifier.c
    trunk/blender/source/blender/makesrna/intern/rna_animation.c
    trunk/blender/source/blender/makesrna/intern/rna_armature.c
    trunk/blender/source/blender/makesrna/intern/rna_color.c
    trunk/blender/source/blender/makesrna/intern/rna_curve.c
    trunk/blender/source/blender/makesrna/intern/rna_fcurve.c
    trunk/blender/source/blender/makesrna/intern/rna_main_api.c
    trunk/blender/source/blender/makesrna/intern/rna_mesh.c
    trunk/blender/source/blender/makesrna/intern/rna_meta.c
    trunk/blender/source/blender/makesrna/intern/rna_object.c
    trunk/blender/source/blender/makesrna/intern/rna_pose.c
    trunk/blender/source/blender/makesrna/intern/rna_scene.c
    trunk/blender/source/blender/makesrna/intern/rna_userdef.c
    trunk/blender/source/blender/makesrna/intern/rna_wm.c

Modified: trunk/blender/source/blender/blenkernel/BKE_constraint.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_constraint.h	2010-08-24 05:24:37 UTC (rev 31546)
+++ trunk/blender/source/blender/blenkernel/BKE_constraint.h	2010-08-24 06:40:28 UTC (rev 31547)
@@ -136,7 +136,6 @@
 struct bConstraint *add_pose_constraint(struct Object *ob, struct bPoseChannel *pchan, const char *name, short type);
 
 int remove_constraint(ListBase *list, struct bConstraint *con);
-int remove_constraint_index(ListBase *list, int index);
 void remove_constraints_type(ListBase *list, short type, short last_only);
 
 /* Constraints + Proxies function prototypes */

Modified: trunk/blender/source/blender/blenkernel/BKE_fcurve.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_fcurve.h	2010-08-24 05:24:37 UTC (rev 31546)
+++ trunk/blender/source/blender/blenkernel/BKE_fcurve.h	2010-08-24 06:40:28 UTC (rev 31547)
@@ -161,7 +161,6 @@
 struct FModifier *copy_fmodifier(struct FModifier *src);
 void copy_fmodifiers(ListBase *dst, ListBase *src);
 int remove_fmodifier(ListBase *modifiers, struct FModifier *fcm);
-int remove_fmodifier_index(ListBase *modifiers, int index);
 void free_fmodifiers(ListBase *modifiers);
 
 struct FModifier *find_active_fmodifier(ListBase *modifiers);

Modified: trunk/blender/source/blender/blenkernel/intern/constraint.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/constraint.c	2010-08-24 05:24:37 UTC (rev 31546)
+++ trunk/blender/source/blender/blenkernel/intern/constraint.c	2010-08-24 06:40:28 UTC (rev 31547)
@@ -3987,17 +3987,6 @@
 		return 0;
 }
 
-/* Remove the nth constraint from the given constraint stack */
-int remove_constraint_index (ListBase *list, int index)
-{
-	bConstraint *con= BLI_findlink(list, index);
-	
-	if (con)
-		return remove_constraint(list, con);
-	else 
-		return 0;
-}
-
 /* Remove all the constraints of the specified type from the given constraint stack */
 void remove_constraints_type (ListBase *list, short type, short last_only)
 {

Modified: trunk/blender/source/blender/blenkernel/intern/fmodifier.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/fmodifier.c	2010-08-24 05:24:37 UTC (rev 31546)
+++ trunk/blender/source/blender/blenkernel/intern/fmodifier.c	2010-08-24 06:40:28 UTC (rev 31547)
@@ -1087,13 +1087,6 @@
 	}
 }
 
-/* Remove and free the nth F-Modifier from the given stack */
-int remove_fmodifier_index (ListBase *modifiers, int index)
-{
-	FModifier *fcm= BLI_findlink(modifiers, index);
-	return remove_fmodifier(modifiers, fcm);
-}
-
 /* Remove all of a given F-Curve's modifiers */
 void free_fmodifiers (ListBase *modifiers)
 {

Modified: trunk/blender/source/blender/makesrna/intern/rna_animation.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_animation.c	2010-08-24 05:24:37 UTC (rev 31546)
+++ trunk/blender/source/blender/makesrna/intern/rna_animation.c	2010-08-24 06:40:28 UTC (rev 31547)
@@ -570,7 +570,7 @@
 	RNA_def_function_flag(func, FUNC_USE_REPORTS);
 		/* path to remove */
 	parm= RNA_def_pointer(func, "path", "KeyingSetPath", "Path", ""); 
-		RNA_def_property_flag(parm, PROP_REQUIRED);
+		RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
 
 
 	/* Remove All Paths */

Modified: trunk/blender/source/blender/makesrna/intern/rna_armature.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_armature.c	2010-08-24 05:24:37 UTC (rev 31546)
+++ trunk/blender/source/blender/makesrna/intern/rna_armature.c	2010-08-24 06:40:28 UTC (rev 31547)
@@ -108,6 +108,12 @@
 		BKE_reportf(reports, RPT_ERROR, "Armature '%s' not in editmode, cant remove an editbone.", arm->id.name+2);
 		return;
 	}
+
+	if(BLI_findindex(arm->edbo, ebone) == -1) {
+		BKE_reportf(reports, RPT_ERROR, "Armature '%s' doesn't contain bone '%s'.", arm->id.name+2, ebone->name);
+		return;
+	}
+
 	ED_armature_edit_bone_remove(arm, ebone);
 }
 
@@ -712,7 +718,7 @@
 	RNA_def_function_ui_description(func, "Remove an existing bone from the armature");
 	/* target to remove*/
 	parm= RNA_def_pointer(func, "bone", "EditBone", "", "EditBone to remove");
-	RNA_def_property_flag(parm, PROP_REQUIRED);
+	RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
 }
 
 static void rna_def_armature(BlenderRNA *brna)

Modified: trunk/blender/source/blender/makesrna/intern/rna_color.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_color.c	2010-08-24 05:24:37 UTC (rev 31546)
+++ trunk/blender/source/blender/makesrna/intern/rna_color.c	2010-08-24 06:40:28 UTC (rev 31547)
@@ -465,9 +465,8 @@
 	func = RNA_def_function(srna, "remove", "rna_ColorRampElement_remove");
 	RNA_def_function_ui_description(func, "Delete element from ColorRamp");
 	RNA_def_function_flag(func, FUNC_USE_REPORTS);
-	//parm= RNA_def_int(func, "index", 0, 0, 31, "Index", "Element to delete.", 0, 31);
 	parm= RNA_def_pointer(func, "element", "ColorRampElement", "", "Element to remove.");
-	RNA_def_property_flag(parm, PROP_REQUIRED);
+	RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
 }
 
 static void rna_def_color_ramp(BlenderRNA *brna)

Modified: trunk/blender/source/blender/makesrna/intern/rna_curve.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_curve.c	2010-08-24 05:24:37 UTC (rev 31546)
+++ trunk/blender/source/blender/makesrna/intern/rna_curve.c	2010-08-24 06:40:28 UTC (rev 31547)
@@ -985,7 +985,7 @@
 	RNA_def_function_ui_description(func, "Remove a spline from a curve.");
 	RNA_def_function_flag(func, FUNC_USE_REPORTS);
 	parm= RNA_def_pointer(func, "spline", "Spline", "", "The spline to remove.");
-	RNA_def_property_flag(parm, PROP_REQUIRED);
+	RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
 	*/
 }
 
@@ -1012,7 +1012,7 @@
 	RNA_def_function_ui_description(func, "Remove a spline from a curve.");
 	RNA_def_function_flag(func, FUNC_USE_REPORTS);
 	parm= RNA_def_pointer(func, "spline", "Spline", "", "The spline to remove.");
-	RNA_def_property_flag(parm, PROP_REQUIRED);
+	RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
 	*/
 }
 
@@ -1041,7 +1041,7 @@
 	RNA_def_function_ui_description(func, "Remove a spline from a curve.");
 	RNA_def_function_flag(func, FUNC_USE_REPORTS);
 	parm= RNA_def_pointer(func, "spline", "Spline", "", "The spline to remove.");
-	RNA_def_property_flag(parm, PROP_REQUIRED);
+	RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
 
 	prop= RNA_def_property(srna, "active", PROP_POINTER, PROP_NONE);
 	RNA_def_property_struct_type(prop, "Object");

Modified: trunk/blender/source/blender/makesrna/intern/rna_fcurve.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_fcurve.c	2010-08-24 05:24:37 UTC (rev 31546)
+++ trunk/blender/source/blender/makesrna/intern/rna_fcurve.c	2010-08-24 06:40:28 UTC (rev 31547)
@@ -385,9 +385,13 @@
 	return driver_add_new_variable(driver);
 }
 
-void rna_Driver_remove_variable(ChannelDriver *driver, DriverVar *dvar)
+void rna_Driver_remove_variable(ChannelDriver *driver, ReportList *reports, DriverVar *dvar)
 {
-	/* call the API function for this */
+	if(BLI_findindex(&driver->variables, dvar) == -1) {
+		BKE_report(reports, RPT_ERROR, "Variable does not exist in this driver.");
+		return;
+	}
+
 	driver_free_variable(driver, dvar);
 }
 
@@ -410,9 +414,13 @@
 	return add_fmodifier(&fcu->modifiers, type);
 }
 
-static int rna_FCurve_modifiers_remove(FCurve *fcu, int index)
+static void rna_FCurve_modifiers_remove(FCurve *fcu, ReportList *reports, FModifier *fcm)
 {
-	return remove_fmodifier_index(&fcu->modifiers, index);
+	if(BLI_findindex(&fcu->modifiers, fcm) == -1) {
+		BKE_reportf(reports, RPT_ERROR, "FCurveModifier '%s' not found in fcurve.", fcm->name);
+		return;
+	}
+	remove_fmodifier(&fcu->modifiers, fcm);
 }
 
 static void rna_FModifier_active_set(PointerRNA *ptr, int value)
@@ -1094,10 +1102,11 @@
 
 	/* remove variable */
 	func= RNA_def_function(srna, "remove", "rna_Driver_remove_variable");
-		RNA_def_function_ui_description(func, "Remove an existing variable from the driver.");
-		/* target to remove */
-	parm= RNA_def_pointer(func, "var", "DriverVariable", "", "Variable to remove from the driver.");
-		RNA_def_property_flag(parm, PROP_REQUIRED);
+	RNA_def_function_ui_description(func, "Remove an existing variable from the driver.");
+	RNA_def_function_flag(func, FUNC_USE_REPORTS);
+	/* target to remove */
+	parm= RNA_def_pointer(func, "variable", "DriverVariable", "", "Variable to remove from the driver.");
+	RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
 }
 
 static void rna_def_channeldriver(BlenderRNA *brna)
@@ -1282,13 +1291,11 @@
 	RNA_def_property_flag(parm, PROP_REQUIRED);
 
 	func= RNA_def_function(srna, "remove", "rna_FCurve_modifiers_remove");
+	RNA_def_function_flag(func, FUNC_USE_REPORTS);
 	RNA_def_function_ui_description(func, "Remove a modifier from this fcurve.");
-	/* return type */
-	parm= RNA_def_boolean(func, "success", 0, "Success", "Removed the constraint successfully.");
-	RNA_def_function_return(func, parm);
-	/* object to add */
-	parm= RNA_def_int(func, "index", 0, 0, INT_MAX, "Index", "", 0, INT_MAX);
-	RNA_def_property_flag(parm, PROP_REQUIRED);
+	/* modifier to remove */
+	parm= RNA_def_pointer(func, "modifier", "FModifier", "", "Removed modifier.");
+	RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
 }
 
 /* fcurve.keyframe_points */

Modified: trunk/blender/source/blender/makesrna/intern/rna_main_api.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_main_api.c	2010-08-24 05:24:37 UTC (rev 31546)
+++ trunk/blender/source/blender/makesrna/intern/rna_main_api.c	2010-08-24 06:40:28 UTC (rev 31547)
@@ -517,7 +517,7 @@
 	RNA_def_function_flag(func, FUNC_USE_REPORTS);
 	RNA_def_function_ui_description(func, "Remove a camera from the current blendfile.");
 	parm= RNA_def_pointer(func, "camera", "Camera", "", "Camera to remove.");

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list