[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49157] trunk/blender/source/blender/ makesrna/intern: mask layer rna api: add exception when removing incorrect masklayer from mask, add mask.layers .clear()

Campbell Barton ideasman42 at gmail.com
Mon Jul 23 23:47:13 CEST 2012


Revision: 49157
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49157
Author:   campbellbarton
Date:     2012-07-23 21:47:11 +0000 (Mon, 23 Jul 2012)
Log Message:
-----------
mask layer rna api: add exception when removing incorrect masklayer from mask, add mask.layers.clear()

Modified Paths:
--------------
    trunk/blender/source/blender/makesrna/intern/rna_mask.c
    trunk/blender/source/blender/makesrna/intern/rna_object.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_mask.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_mask.c	2012-07-23 21:09:13 UTC (rev 49156)
+++ trunk/blender/source/blender/makesrna/intern/rna_mask.c	2012-07-23 21:47:11 UTC (rev 49157)
@@ -324,7 +324,7 @@
 
 /* ** API **  */
 
-static MaskLayer *rna_Mask_layer_new(Mask *mask, const char *name)
+static MaskLayer *rna_Mask_layers_new(Mask *mask, const char *name)
 {
 	MaskLayer *masklay = BKE_mask_layer_new(mask, name);
 
@@ -333,13 +333,25 @@
 	return masklay;
 }
 
-void rna_Mask_layer_remove(Mask *mask, MaskLayer *masklay)
+void rna_Mask_layers_remove(Mask *mask, ReportList *reports, MaskLayer *masklay)
 {
+	if (BLI_findindex(&mask->masklayers, masklay) == -1) {
+		BKE_reportf(reports, RPT_ERROR, "MaskLayer '%s' not found in mask '%s'", masklay->name, mask->id.name + 2);
+		return;
+	}
+
 	BKE_mask_layer_remove(mask, masklay);
 
 	WM_main_add_notifier(NC_MASK | NA_EDITED, mask);
 }
 
+static void rna_Mask_layers_clear(Mask *mask)
+{
+	BKE_mask_layer_free_list(&mask->masklayers);
+
+	WM_main_add_notifier(NC_MASK | NA_EDITED, mask);
+}
+
 static void rna_MaskLayer_spline_add(ID *id, MaskLayer *masklay, int number)
 {
 	Mask *mask = (Mask*) id;
@@ -680,16 +692,21 @@
 	RNA_def_struct_sdna(srna, "Mask");
 	RNA_def_struct_ui_text(srna, "Mask Layers", "Collection of layers used by mask");
 
-	func = RNA_def_function(srna, "new", "rna_Mask_layer_new");
+	func = RNA_def_function(srna, "new", "rna_Mask_layers_new");
 	RNA_def_function_ui_description(func, "Add layer to this mask");
 	RNA_def_string(func, "name", "", 0, "Name", "Name of new layer");
 	parm = RNA_def_pointer(func, "layer", "MaskLayer", "", "New mask layer");
 	RNA_def_function_return(func, parm);
 
-	func = RNA_def_function(srna, "remove", "rna_Mask_layer_remove");
+	func = RNA_def_function(srna, "remove", "rna_Mask_layers_remove");
+	RNA_def_function_flag(func, FUNC_USE_REPORTS);
 	RNA_def_function_ui_description(func, "Remove layer from this mask");
 	RNA_def_pointer(func, "layer", "MaskLayer", "", "Shape to be removed");
 
+	/* clear all layers */
+	func = RNA_def_function(srna, "clear", "rna_Mask_layers_clear");
+	RNA_def_function_ui_description(func, "Remove all mask layers");
+
 	/* active layer */
 	prop = RNA_def_property(srna, "active", PROP_POINTER, PROP_NONE);
 	RNA_def_property_struct_type(prop, "MaskLayer");

Modified: trunk/blender/source/blender/makesrna/intern/rna_object.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_object.c	2012-07-23 21:09:13 UTC (rev 49156)
+++ trunk/blender/source/blender/makesrna/intern/rna_object.c	2012-07-23 21:47:11 UTC (rev 49157)
@@ -1759,7 +1759,7 @@
 /*		RNA_def_property_collection_active(prop, prop_act); */
 #endif
 
-	/* add target */
+	/* add modifier */
 	func = RNA_def_function(srna, "new", "rna_Object_modifier_new");
 	RNA_def_function_flag(func, FUNC_USE_CONTEXT | FUNC_USE_REPORTS);
 	RNA_def_function_ui_description(func, "Add a new modifier");
@@ -1772,11 +1772,11 @@
 	parm = RNA_def_pointer(func, "modifier", "Modifier", "", "Newly created modifier");
 	RNA_def_function_return(func, parm);
 
-	/* remove target */
+	/* remove modifier */
 	func = RNA_def_function(srna, "remove", "rna_Object_modifier_remove");
 	RNA_def_function_flag(func, FUNC_USE_CONTEXT | FUNC_USE_REPORTS);
 	RNA_def_function_ui_description(func, "Remove an existing modifier from the object");
-	/* target to remove*/
+	/* modifier to remove */
 	parm = RNA_def_pointer(func, "modifier", "Modifier", "", "Modifier to remove");
 	RNA_def_property_flag(parm, PROP_REQUIRED | PROP_NEVER_NULL);
 




More information about the Bf-blender-cvs mailing list