[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [13215] trunk/blender/source/blender: == AutoKeying - Tidy Up ==

Joshua Leung aligorith at gmail.com
Sat Jan 12 12:06:51 CET 2008


Revision: 13215
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=13215
Author:   aligorith
Date:     2008-01-12 12:06:51 +0100 (Sat, 12 Jan 2008)

Log Message:
-----------
== AutoKeying - Tidy Up ==

This commit restores the "big red button". When Auto-Keying is enabled (record button toggled on), a menu appears beside it to choose which behaviour for auto-keying should be used. This should be more efficient for quickly turning Auto-Keying on/off.

I've also added the relevant version-patches to fix up old files so that sensible default options are in use.

Modified Paths:
--------------
    trunk/blender/source/blender/makesdna/DNA_userdef_types.h
    trunk/blender/source/blender/src/header_time.c
    trunk/blender/source/blender/src/space.c
    trunk/blender/source/blender/src/transform_conversions.c
    trunk/blender/source/blender/src/usiblender.c

Modified: trunk/blender/source/blender/makesdna/DNA_userdef_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_userdef_types.h	2008-01-12 09:22:02 UTC (rev 13214)
+++ trunk/blender/source/blender/makesdna/DNA_userdef_types.h	2008-01-12 11:06:51 UTC (rev 13215)
@@ -262,9 +262,11 @@
 #define USER_SHOW_FPS			(1 << 21)
 
 /* Auto-Keying mode */
-#define		AUTOKEY_MODE_OFF		0
-#define		AUTOKEY_MODE_NORMAL		1
-#define		AUTOKEY_MODE_EDITKEYS	2
+	/* AUTOKEY_ON is a bitflag */
+#define 	AUTOKEY_ON				1
+	/* AUTOKEY_ON + 2**n...  (i.e. AUTOKEY_MODE_NORMAL = AUTOKEY_ON + 2) to preserve setting, even when autokey turned off  */
+#define		AUTOKEY_MODE_NORMAL		3
+#define		AUTOKEY_MODE_EDITKEYS	5
 
 /* Auto-Keying flag */
 #define		AUTOKEY_FLAG_INSERTAVAIL	(1<<0)
@@ -272,6 +274,7 @@
 #define		AUTOKEY_FLAG_AUTOMATKEY		(1<<2)
 
 /* Auto-Keying macros */
+#define IS_AUTOKEY_ON			(U.autokey_mode & AUTOKEY_ON)
 #define IS_AUTOKEY_MODE(mode) 	(U.autokey_mode == AUTOKEY_MODE_##mode)
 #define IS_AUTOKEY_FLAG(flag)	(U.autokey_flag == AUTOKEY_FLAG_##flag)
 

Modified: trunk/blender/source/blender/src/header_time.c
===================================================================
--- trunk/blender/source/blender/src/header_time.c	2008-01-12 09:22:02 UTC (rev 13214)
+++ trunk/blender/source/blender/src/header_time.c	2008-01-12 11:06:51 UTC (rev 13215)
@@ -524,13 +524,18 @@
 			xco, 0, XIC, YIC, 0, 0, 0, 0, 0, "Skip to End frame (Shift UpArrow)");
 	xco+= XIC+8;
 	
-	// FIXME: give this icons (and maybe make it XIC wide again) - it used to use the "ICON_REC" (red dot)
-	uiDefButS(block, MENU, REDRAWINFO, 
-				"Auto-Keying Mode %t|No Auto-Keying %x0|Add/Replace Keys%x1|Replace Keys %x2", 
-				xco, 0, 4*XIC, YIC, &(U.autokey_mode), 0, 1, 0, 0, 
-				"Automatic keyframe insertion for Objects and Bones");
+	uiDefIconButBitS(block, TOG, AUTOKEY_ON, REDRAWINFO, ICON_REC,
+			xco, 0, XIC, YIC, &(U.autokey_mode), 0, 0, 0, 0, "Automatic keyframe insertion for Objects and Bones");
+	xco+= XIC;
+	if (IS_AUTOKEY_ON) {
+		uiDefButS(block, MENU, REDRAWINFO, 
+					"Auto-Keying Mode %t|Add/Replace Keys%x3|Replace Keys %x5", 
+					xco, 0, 3*XIC, YIC, &(U.autokey_mode), 0, 1, 0, 0, 
+					"Mode of automatic keyframe insertion for Objects and Bones");
+		xco+= (4*XIC);
+	}
 	
-	xco+= (4*XIC)+16;
+	xco+= 16;
 
 	uiDefIconButBitI(block, TOG, TIME_WITH_SEQ_AUDIO, B_DIFF, ICON_SPEAKER,
 					 xco, 0, XIC, YIC, &(stime->redraws), 0, 0, 0, 0, "Play back and sync with audio from Sequence Editor");

Modified: trunk/blender/source/blender/src/space.c
===================================================================
--- trunk/blender/source/blender/src/space.c	2008-01-12 09:22:02 UTC (rev 13214)
+++ trunk/blender/source/blender/src/space.c	2008-01-12 11:06:51 UTC (rev 13215)
@@ -3668,27 +3668,36 @@
 
 
 		uiDefBut(block, LABEL,0,"Auto Keyframe",
-			(xpos+(2*edgsp)+(2*mpref)+midsp),y5label,mpref,buth,
+			(xpos+(2*edgsp)+(2*mpref)+midsp),y6label,mpref,buth,
 			0, 0, 0, 0, 0, "");
-		uiDefButS(block, MENU, REDRAWTIME, 
-				"Auto-Keying Mode %t|No Auto-Keying %x0|Add/Replace Keys%x1|Replace Keys %x2", 
-				(xpos+edgsp+(2*mpref)+(2*midsp)),y4,mpref, buth, 
-				&(U.autokey_mode), 0, 1, 0, 0, 
-				"Automatic keyframe insertion for Objects and Bones");
-	
+			
 		uiBlockBeginAlign(block);
-		uiDefButBitS(block, TOG, AUTOKEY_FLAG_INSERTAVAIL, REDRAWTIME, "Available", 
-			(xpos+edgsp+(2*mpref)+(2*midsp)),y3,mpref, buth,
-			&(U.autokey_flag), 0, 0, 0, 0, "Automatic keyframe insertion in available curves");
+			uiDefButBitS(block, TOG, AUTOKEY_ON, REDRAWTIME, "Auto-Keying Enabled", 
+				(xpos+edgsp+(2*mpref)+(2*midsp)),y5,mpref, buth,
+				&(U.autokey_mode), 0, 0, 0, 0, "Automatic keyframe insertion for Objects and Bones");
 			
-		uiDefButBitS(block, TOG, AUTOKEY_FLAG_INSERTNEEDED, REDRAWTIME, "Needed", 
-			(xpos+edgsp+(2*mpref)+(2*midsp)),y2,mpref, buth,
-			&(U.autokey_flag), 0, 0, 0, 0, "Automatic keyframe insertion only when keyframe needed");
-			
-		uiDefButBitS(block, TOG, AUTOKEY_FLAG_AUTOMATKEY, REDRAWTIME, "Use Visual Keying", 
-			(xpos+edgsp+(2*mpref)+(2*midsp)),y1,mpref, buth,
-			 &(U.autokey_flag), 0, 0, 0, 0, "Use Visual keying automatically for constrained objects");
+			if (IS_AUTOKEY_ON) {
+				uiDefButS(block, MENU, REDRAWTIME, 
+						"Auto-Keying Mode %t|Add/Replace Keys%x3|Replace Keys %x5", 
+						(xpos+edgsp+(2*mpref)+(2*midsp)),y4,mpref, buth, 
+						&(U.autokey_mode), 0, 1, 0, 0, 
+						"Mode of automatic keyframe insertion for Objects and Bones");
+			}
 		uiBlockEndAlign(block);
+	
+		uiBlockBeginAlign(block);
+			uiDefButBitS(block, TOG, AUTOKEY_FLAG_INSERTAVAIL, REDRAWTIME, "Available", 
+				(xpos+edgsp+(2*mpref)+(2*midsp)),y3,mpref, buth,
+				&(U.autokey_flag), 0, 0, 0, 0, "Automatic keyframe insertion in available curves");
+				
+			uiDefButBitS(block, TOG, AUTOKEY_FLAG_INSERTNEEDED, REDRAWTIME, "Needed", 
+				(xpos+edgsp+(2*mpref)+(2*midsp)),y2,mpref, buth,
+				&(U.autokey_flag), 0, 0, 0, 0, "Automatic keyframe insertion only when keyframe needed");
+				
+			uiDefButBitS(block, TOG, AUTOKEY_FLAG_AUTOMATKEY, REDRAWTIME, "Use Visual Keying", 
+				(xpos+edgsp+(2*mpref)+(2*midsp)),y1,mpref, buth,
+				 &(U.autokey_flag), 0, 0, 0, 0, "Use Visual keying automatically for constrained objects");
+		uiBlockEndAlign(block);
 
 
 		uiDefBut(block, LABEL,0,"Duplicate with object:",

Modified: trunk/blender/source/blender/src/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/src/transform_conversions.c	2008-01-12 09:22:02 UTC (rev 13214)
+++ trunk/blender/source/blender/src/transform_conversions.c	2008-01-12 11:06:51 UTC (rev 13215)
@@ -2967,7 +2967,7 @@
 	short found= 0;
 	
 	/* only filter if auto-key mode requires this */
-	if (IS_AUTOKEY_MODE(OFF))
+	if (IS_AUTOKEY_ON == 0)
 		return 0;
 	else if (IS_AUTOKEY_MODE(NORMAL)) 
 		return 1;

Modified: trunk/blender/source/blender/src/usiblender.c
===================================================================
--- trunk/blender/source/blender/src/usiblender.c	2008-01-12 09:22:02 UTC (rev 13214)
+++ trunk/blender/source/blender/src/usiblender.c	2008-01-12 11:06:51 UTC (rev 13215)
@@ -197,6 +197,16 @@
 	if(U.flag & USER_CUSTOM_RANGE) 
 		vDM_ColorBand_store(&U.coba_weight); /* signal for derivedmesh to use colorband */
 	
+	/* Auto-keyframing settings */
+	if(U.autokey_mode == 0) {
+		/* AUTOKEY_MODE_NORMAL - AUTOKEY_ON = x  <==> 3 - 1 = 2 */
+		U.autokey_mode |= 2;
+		
+		if(U.flag & (1<<15)) U.autokey_flag |= AUTOKEY_FLAG_INSERTAVAIL;
+		if(U.flag & (1<<19)) U.autokey_flag |= AUTOKEY_FLAG_INSERTNEEDED;
+		if(G.flags & (1<<30)) U.autokey_flag |= AUTOKEY_FLAG_AUTOMATKEY;
+	}
+	
 	if (G.main->versionfile <= 191) {
 		strcpy(U.plugtexdir, U.textudir);
 		strcpy(U.sounddir, "/");





More information about the Bf-blender-cvs mailing list