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);
 

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to