[Bf-blender-cvs] [04b23af] master: Code Cleanup: Simplified insert_keyframe_button and delete_keyframe_button

Joshua Leung noreply at git.blender.org
Thu Apr 30 13:01:43 CEST 2015


Commit: 04b23af02d89f765ff580dc188747598e6babb1a
Author: Joshua Leung
Date:   Thu Apr 30 22:58:53 2015 +1200
Branches: master
https://developer.blender.org/rB04b23af02d89f765ff580dc188747598e6babb1a

Code Cleanup: Simplified insert_keyframe_button and delete_keyframe_button

As a followup for the previous commit, do the same thing for the insert/delete
keyframe button operators as is done for the clear keyframes op. There really isn't
much need/reason for conducting the looping there, as those functions natively
handle this themselves already.

===================================================================

M	source/blender/editors/animation/keyframing.c

===================================================================

diff --git a/source/blender/editors/animation/keyframing.c b/source/blender/editors/animation/keyframing.c
index 4e1e932..092408d 100644
--- a/source/blender/editors/animation/keyframing.c
+++ b/source/blender/editors/animation/keyframing.c
@@ -1696,7 +1696,7 @@ static int insert_key_button_exec(bContext *C, wmOperator *op)
 	char *path;
 	float cfra = (float)CFRA;
 	short success = 0;
-	int a, index, length;
+	int index;
 	const bool all = RNA_boolean_get(op->ptr, "all");
 	short flag = 0;
 	
@@ -1715,7 +1715,7 @@ static int insert_key_button_exec(bContext *C, wmOperator *op)
 			NlaStrip *strip = (NlaStrip *)ptr.data;
 			FCurve *fcu = list_find_fcurve(&strip->fcurves, RNA_property_identifier(prop), flag);
 			
-			success += insert_keyframe_direct(op->reports, ptr, prop, fcu, cfra, 0);
+			success = insert_keyframe_direct(op->reports, ptr, prop, fcu, cfra, 0);
 		}
 		else {
 			/* standard properties */
@@ -1723,16 +1723,11 @@ static int insert_key_button_exec(bContext *C, wmOperator *op)
 			
 			if (path) {
 				if (all) {
-					length = RNA_property_array_length(&ptr, prop);
-					
-					if (length) index = 0;
-					else length = 1;
+					/* -1 indicates operating on the entire array (or the property itself otherwise) */
+					index = -1;
 				}
-				else
-					length = 1;
 				
-				for (a = 0; a < length; a++)
-					success += insert_keyframe(op->reports, ptr.id.data, NULL, NULL, path, index + a, cfra, flag);
+				success = insert_keyframe(op->reports, ptr.id.data, NULL, NULL, path, index, cfra, flag);
 				
 				MEM_freeN(path);
 			}
@@ -1795,7 +1790,7 @@ static int delete_key_button_exec(bContext *C, wmOperator *op)
 	char *path;
 	float cfra = (float)CFRA; // XXX for now, don't bother about all the yucky offset crap
 	short success = 0;
-	int a, index, length;
+	int index;
 	const bool all = RNA_boolean_get(op->ptr, "all");
 	
 	/* try to insert keyframe using property retrieved from UI */
@@ -1806,17 +1801,11 @@ static int delete_key_button_exec(bContext *C, wmOperator *op)
 		
 		if (path) {
 			if (all) {
-				length = RNA_property_array_length(&ptr, prop);
-				
-				if (length) index = 0;
-				else length = 1;
+				/* -1 indicates operating on the entire array (or the property itself otherwise) */
+				index = -1;
 			}
-			else
-				length = 1;
-			
-			for (a = 0; a < length; a++)
-				success += delete_keyframe(op->reports, ptr.id.data, NULL, NULL, path, index + a, cfra, 0);
 			
+			success = delete_keyframe(op->reports, ptr.id.data, NULL, NULL, path, index, cfra, 0);
 			MEM_freeN(path);
 		}
 		else if (G.debug & G_DEBUG)




More information about the Bf-blender-cvs mailing list