[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19512] trunk/blender/source/blender: made grease pencil delete a frame if you delete all the strokes in it.

Joseph Eagar joeedh at gmail.com
Fri Apr 3 05:16:32 CEST 2009


Revision: 19512
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19512
Author:   joeedh
Date:     2009-04-03 05:16:31 +0200 (Fri, 03 Apr 2009)

Log Message:
-----------
made grease pencil delete a frame if you delete all the strokes in it.

Modified Paths:
--------------
    trunk/blender/source/blender/include/BDR_gpencil.h
    trunk/blender/source/blender/src/drawgpencil.c
    trunk/blender/source/blender/src/gpencil.c

Modified: trunk/blender/source/blender/include/BDR_gpencil.h
===================================================================
--- trunk/blender/source/blender/include/BDR_gpencil.h	2009-04-03 02:16:56 UTC (rev 19511)
+++ trunk/blender/source/blender/include/BDR_gpencil.h	2009-04-03 03:16:31 UTC (rev 19512)
@@ -65,7 +65,7 @@
 short gpencil_data_setactive(struct ScrArea *sa, struct bGPdata *gpd);
 struct ScrArea *gpencil_data_findowner(struct bGPdata *gpd);
 
-void gpencil_frame_delete_laststroke(struct bGPDframe *gpf);
+void gpencil_frame_delete_laststroke(struct bGPDframe *gpf, bGPDlayer *gpl);
 
 struct bGPDframe *gpencil_layer_getframe(struct bGPDlayer *gpl, int cframe, short addnew);
 void gpencil_layer_delframe(struct bGPDlayer *gpl, struct bGPDframe *gpf);

Modified: trunk/blender/source/blender/src/drawgpencil.c
===================================================================
--- trunk/blender/source/blender/src/drawgpencil.c	2009-04-03 02:16:56 UTC (rev 19511)
+++ trunk/blender/source/blender/src/drawgpencil.c	2009-04-03 03:16:31 UTC (rev 19512)
@@ -140,7 +140,7 @@
 	bGPDframe *gpf= gpencil_layer_getframe(gpl, CFRA, 0);
 	
 	gpencil_layer_setactive(gpd, gpl);
-	gpencil_frame_delete_laststroke(gpf);
+	gpencil_frame_delete_laststroke(gpf, gpl);
 	
 	scrarea_queue_winredraw(curarea);
 }

Modified: trunk/blender/source/blender/src/gpencil.c
===================================================================
--- trunk/blender/source/blender/src/gpencil.c	2009-04-03 02:16:56 UTC (rev 19511)
+++ trunk/blender/source/blender/src/gpencil.c	2009-04-03 03:16:31 UTC (rev 19512)
@@ -484,7 +484,7 @@
 /* -------- GP-Frame API ---------- */
 
 /* delete the last stroke of the given frame */
-void gpencil_frame_delete_laststroke (bGPDframe *gpf)
+void gpencil_frame_delete_laststroke (bGPDframe *gpf, bGPDlayer *gpl)
 {
 	bGPDstroke *gps= (gpf) ? gpf->strokes.last : NULL;
 	
@@ -495,6 +495,11 @@
 	/* free the stroke and its data */
 	MEM_freeN(gps->points);
 	BLI_freelinkN(&gpf->strokes, gps);
+	
+	if (gpf->strokes.first == NULL) {
+		gpencil_layer_delframe(gpl, gpf);
+		gpencil_layer_getframe(gpl, CFRA, 0);
+	}
 }
 
 /* -------- GP-Layer API ---------- */
@@ -603,6 +608,7 @@
 		else if (found)
 			gpl->actframe= gpf;
 		else {
+			gpl->actframe = gpl->frames.first;
 			/* unresolved errogenous situation! */
 			printf("Error: cannot find appropriate gp-frame \n");
 			/* gpl->actframe should still be NULL */
@@ -696,7 +702,7 @@
 	bGPDlayer *gpl= gpencil_layer_getactive(gpd);
 	bGPDframe *gpf= gpencil_layer_getframe(gpl, CFRA, 0);
 	
-	gpencil_frame_delete_laststroke(gpf);
+	gpencil_frame_delete_laststroke(gpf, gpl);
 }
 
 /* delete the active frame */





More information about the Bf-blender-cvs mailing list