[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31803] trunk/blender/source/blender/ editors: Bugfix #23707: Autokey Available is ignored on a Clear Transform

Joshua Leung aligorith at gmail.com
Tue Sep 7 05:59:04 CEST 2010


Revision: 31803
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31803
Author:   aligorith
Date:     2010-09-07 05:58:50 +0200 (Tue, 07 Sep 2010)

Log Message:
-----------
Bugfix #23707: Autokey Available is ignored on a Clear Transform

Checks are now done to see if only the active KeyingSet should be used instead of always using a hardcoded value only.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/armature/editarmature.c
    trunk/blender/source/blender/editors/object/object_transform.c

Modified: trunk/blender/source/blender/editors/armature/editarmature.c
===================================================================
--- trunk/blender/source/blender/editors/armature/editarmature.c	2010-09-07 03:02:03 UTC (rev 31802)
+++ trunk/blender/source/blender/editors/armature/editarmature.c	2010-09-07 03:58:50 UTC (rev 31803)
@@ -4830,8 +4830,6 @@
 {
 	Scene *scene= CTX_data_scene(C);
 	Object *ob= CTX_data_active_object(C);
-	
-	KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Scaling");
 	short autokey = 0;
 	
 	/* only clear those channels that are not locked */
@@ -4862,6 +4860,17 @@
 	
 	/* perform autokeying on the bones if needed */
 	if (autokey) {
+		KeyingSet *ks;
+		
+		/* get KeyingSet to use 
+		 *	- use the active KeyingSet if defined (and user wants to use it for all autokeying), 
+		 * 	  or otherwise key transforms only
+		 */
+		if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (scene->active_keyingset))
+			ks = ANIM_scene_get_active_keyingset(scene);
+		else 
+			ks = ANIM_builtin_keyingset_get_named(NULL, "Scaling");
+		
 		/* insert keyframes */
 		ANIM_apply_keyingset(C, NULL, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
 		
@@ -4897,8 +4906,6 @@
 {
 	Scene *scene= CTX_data_scene(C);
 	Object *ob= CTX_data_active_object(C);
-	
-	KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Location");
 	short autokey = 0;
 	
 	/* only clear those channels that are not locked */
@@ -4930,6 +4937,17 @@
 	
 	/* perform autokeying on the bones if needed */
 	if (autokey) {
+		KeyingSet *ks;
+		
+		/* get KeyingSet to use 
+		 *	- use the active KeyingSet if defined (and user wants to use it for all autokeying), 
+		 * 	  or otherwise key transforms only
+		 */
+		if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (scene->active_keyingset))
+			ks = ANIM_scene_get_active_keyingset(scene);
+		else 
+			ks = ANIM_builtin_keyingset_get_named(NULL, "Location");
+		
 		/* insert keyframes */
 		ANIM_apply_keyingset(C, NULL, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
 		
@@ -4965,8 +4983,6 @@
 {
 	Scene *scene= CTX_data_scene(C);
 	Object *ob= CTX_data_active_object(C);
-	
-	KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Rotation");
 	short autokey = 0;
 	
 	/* only clear those channels that are not locked */
@@ -5082,6 +5098,17 @@
 	
 	/* perform autokeying on the bones if needed */
 	if (autokey) {
+		KeyingSet *ks;
+		
+		/* get KeyingSet to use 
+		 *	- use the active KeyingSet if defined (and user wants to use it for all autokeying), 
+		 * 	  or otherwise key transforms only
+		 */
+		if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (scene->active_keyingset))
+			ks = ANIM_scene_get_active_keyingset(scene);
+		else 
+			ks = ANIM_builtin_keyingset_get_named(NULL, "Rotation");
+		
 		/* insert keyframes */
 		ANIM_apply_keyingset(C, NULL, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
 		

Modified: trunk/blender/source/blender/editors/object/object_transform.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_transform.c	2010-09-07 03:02:03 UTC (rev 31802)
+++ trunk/blender/source/blender/editors/object/object_transform.c	2010-09-07 03:58:50 UTC (rev 31803)
@@ -68,8 +68,17 @@
 {
 	Main *bmain = CTX_data_main(C);
 	Scene *scene = CTX_data_scene(C);
-	KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Location");
+	KeyingSet *ks;
 	
+	/* get KeyingSet to use 
+	 *	- use the active KeyingSet if defined (and user wants to use it for all autokeying), 
+	 * 	  or otherwise key transforms only
+	 */
+	if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (scene->active_keyingset))
+		ks = ANIM_scene_get_active_keyingset(scene);
+	else 
+		ks = ANIM_builtin_keyingset_get_named(NULL, "Location");
+	
 	/* clear location of selected objects if not in weight-paint mode */
 	CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
 		if (!(ob->mode & OB_MODE_WEIGHT_PAINT)) {
@@ -127,8 +136,17 @@
 {
 	Main *bmain= CTX_data_main(C);
 	Scene *scene= CTX_data_scene(C);
-	KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Rotation");
+	KeyingSet *ks;
 	
+	/* get KeyingSet to use 
+	 *	- use the active KeyingSet if defined (and user wants to use it for all autokeying), 
+	 * 	  or otherwise key transforms only
+	 */
+	if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (scene->active_keyingset))
+		ks = ANIM_scene_get_active_keyingset(scene);
+	else 
+		ks = ANIM_builtin_keyingset_get_named(NULL, "Rotation");
+	
 	/* clear rotation of selected objects if not in weight-paint mode */
 	CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
 		if(!(ob->mode & OB_MODE_WEIGHT_PAINT)) {
@@ -270,8 +288,17 @@
 {
 	Main *bmain= CTX_data_main(C);
 	Scene *scene= CTX_data_scene(C);
-	KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Scaling");
+	KeyingSet *ks;
 	
+	/* get KeyingSet to use 
+	 *	- use the active KeyingSet if defined (and user wants to use it for all autokeying), 
+	 * 	  or otherwise key transforms only
+	 */
+	if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (scene->active_keyingset))
+		ks = ANIM_scene_get_active_keyingset(scene);
+	else 
+		ks = ANIM_builtin_keyingset_get_named(NULL, "Scaling");
+	
 	/* clear scales of selected objects if not in weight-paint mode */
 	CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
 		if(!(ob->mode & OB_MODE_WEIGHT_PAINT)) {





More information about the Bf-blender-cvs mailing list