[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47818] trunk/blender/source/blender: mango request

Campbell Barton ideasman42 at gmail.com
Wed Jun 13 10:36:01 CEST 2012


Revision: 47818
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47818
Author:   campbellbarton
Date:     2012-06-13 08:35:50 +0000 (Wed, 13 Jun 2012)
Log Message:
-----------
mango request
- highlight active mask layers.
- remove keyframes when all layer data is removed.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_mask.h
    trunk/blender/source/blender/blenkernel/intern/mask.c
    trunk/blender/source/blender/editors/mask/mask_ops.c

Modified: trunk/blender/source/blender/blenkernel/BKE_mask.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_mask.h	2012-06-13 08:20:43 UTC (rev 47817)
+++ trunk/blender/source/blender/blenkernel/BKE_mask.h	2012-06-13 08:35:50 UTC (rev 47818)
@@ -48,6 +48,7 @@
 void BKE_mask_layer_active_set(struct Mask *mask, struct MaskLayer *masklay);
 void BKE_mask_layer_remove(struct Mask *mask, struct MaskLayer *masklay);
 
+void BKE_mask_layer_free_shapes(struct MaskLayer *masklay);
 void BKE_mask_layer_free(struct MaskLayer *masklay);
 void BKE_mask_spline_free(struct MaskSpline *spline);
 struct MaskSpline *BKE_mask_spline_copy(struct MaskSpline *spline);

Modified: trunk/blender/source/blender/blenkernel/intern/mask.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mask.c	2012-06-13 08:20:43 UTC (rev 47817)
+++ trunk/blender/source/blender/blenkernel/intern/mask.c	2012-06-13 08:35:50 UTC (rev 47818)
@@ -1029,10 +1029,27 @@
 	MEM_freeN(masklay_shape);
 }
 
+/** \brief Free all animation keys for a mask layer
+ */
+void BKE_mask_layer_free_shapes(MaskLayer *masklay)
+{
+	MaskLayerShape *masklay_shape;
+
+	/* free animation data */
+	masklay_shape = masklay->splines_shapes.first;
+	while (masklay_shape) {
+		MaskLayerShape *next_masklay_shape = masklay_shape->next;
+
+		BLI_remlink(&masklay->splines_shapes, masklay_shape);
+		BKE_mask_layer_shape_free(masklay_shape);
+
+		masklay_shape = next_masklay_shape;
+	}
+}
+
 void BKE_mask_layer_free(MaskLayer *masklay)
 {
 	MaskSpline *spline;
-	MaskLayerShape *masklay_shape;
 
 	/* free splines */
 	spline = masklay->splines.first;
@@ -1046,16 +1063,8 @@
 	}
 
 	/* free animation data */
-	masklay_shape = masklay->splines_shapes.first;
-	while (masklay_shape) {
-		MaskLayerShape *next_masklay_shape = masklay_shape->next;
+	BKE_mask_layer_free_shapes(masklay);
 
-		BLI_remlink(&masklay->splines_shapes, masklay_shape);
-		BKE_mask_layer_shape_free(masklay_shape);
-
-		masklay_shape = next_masklay_shape;
-	}
-
 	MEM_freeN(masklay);
 }
 

Modified: trunk/blender/source/blender/editors/mask/mask_ops.c
===================================================================
--- trunk/blender/source/blender/editors/mask/mask_ops.c	2012-06-13 08:20:43 UTC (rev 47817)
+++ trunk/blender/source/blender/editors/mask/mask_ops.c	2012-06-13 08:35:50 UTC (rev 47818)
@@ -957,6 +957,12 @@
 
 			spline = next_spline;
 		}
+
+		/* not essential but confuses users when there are keys with no data!
+		 * assume if they delete all data from the layer they also dont care about keys */
+		if (masklay->splines.first == NULL) {
+			BKE_mask_layer_free_shapes(masklay);
+		}
 	}
 
 	/* TODO: only update edited splines */




More information about the Bf-blender-cvs mailing list