[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32072] trunk/blender: bugfix [#23795] Insert Visual Loc/Rot Keyframe of Armature Bones Broken

Campbell Barton ideasman42 at gmail.com
Thu Sep 23 10:15:53 CEST 2010


Revision: 32072
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32072
Author:   campbellbarton
Date:     2010-09-23 10:15:53 +0200 (Thu, 23 Sep 2010)

Log Message:
-----------
bugfix [#23795] Insert Visual Loc/Rot Keyframe of Armature Bones Broken
- converted 3 options in keying sets to use bl_options like panels & operators
- removed function arguments for new keying sets, better adjust these after to avoid duplicating properties in function arguments (they were not used).

Modified Paths:
--------------
    trunk/blender/release/scripts/keyingsets/keyingsets_builtins.py
    trunk/blender/release/scripts/ui/properties_scene.py
    trunk/blender/source/blender/makesrna/intern/rna_animation.c
    trunk/blender/source/blender/makesrna/intern/rna_scene.c

Modified: trunk/blender/release/scripts/keyingsets/keyingsets_builtins.py
===================================================================
--- trunk/blender/release/scripts/keyingsets/keyingsets_builtins.py	2010-09-23 07:50:52 UTC (rev 32071)
+++ trunk/blender/release/scripts/keyingsets/keyingsets_builtins.py	2010-09-23 08:15:53 UTC (rev 32072)
@@ -141,7 +141,7 @@
 class BUILTIN_KSI_VisualRot(bpy.types.KeyingSetInfo):
     bl_label = "Visual Rotation"
 
-    insertkey_visual = True
+    bl_options = {'INSERTKEY_VISUAL'}
 
     # poll - use predefined callback for selected bones/objects
     poll = RKS_POLL_selected_items
@@ -156,7 +156,7 @@
 class BUILTIN_KSI_VisualLocRot(bpy.types.KeyingSetInfo):
     bl_label = "Visual LocRot"
 
-    insertkey_visual = True
+    bl_options = {'INSERTKEY_VISUAL'}
 
     # poll - use predefined callback for selected bones/objects
     poll = RKS_POLL_selected_items

Modified: trunk/blender/release/scripts/ui/properties_scene.py
===================================================================
--- trunk/blender/release/scripts/ui/properties_scene.py	2010-09-23 07:50:52 UTC (rev 32071)
+++ trunk/blender/release/scripts/ui/properties_scene.py	2010-09-23 08:15:53 UTC (rev 32072)
@@ -96,9 +96,7 @@
 
             col = row.column()
             col.label(text="Keyframing Settings:")
-            col.prop(ks, "use_insertkey_needed", text="Needed")
-            col.prop(ks, "use_insertkey_visual", text="Visual")
-            col.prop(ks, "use_insertkey_xyz_to_rgb", text="XYZ to RGB")
+            col.prop(ks, "bl_options")
 
 
 class SCENE_PT_keying_set_paths(SceneButtonsPanel, bpy.types.Panel):
@@ -234,7 +232,7 @@
         f.write("# Keying Set: %s\n" % ks.name)
 
         f.write("import bpy\n\n")
-        f.write("scene= bpy.data.scenes[0]\n\n")
+        f.write("scene= bpy.data.scenes[0]\n\n") # XXX, why not use the current scene?
 
         # Add KeyingSet and set general settings
         f.write("# Keying Set Level declarations\n")
@@ -243,10 +241,8 @@
         if not ks.is_path_absolute:
             f.write("ks.is_path_absolute = False\n")
         f.write("\n")
-
-        f.write("ks.use_insertkey_needed = %s\n" % ks.use_insertkey_needed)
-        f.write("ks.use_insertkey_visual = %s\n" % ks.use_insertkey_visual)
-        f.write("ks.use_insertkey_xyz_to_rgb = %s\n" % ks.use_insertkey_xyz_to_rgb)
+    
+        f.write("ks.bl_options = %r\n" % ks.bl_options)
         f.write("\n")
 
         # generate and write set of lookups for id's used in paths

Modified: trunk/blender/source/blender/makesrna/intern/rna_animation.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_animation.c	2010-09-23 07:50:52 UTC (rev 32071)
+++ trunk/blender/source/blender/makesrna/intern/rna_animation.c	2010-09-23 08:15:53 UTC (rev 32072)
@@ -394,21 +394,18 @@
 static void rna_def_common_keying_flags(StructRNA *srna, short reg)
 {
 	PropertyRNA *prop;
-	
-	prop= RNA_def_property(srna, "use_insertkey_needed", PROP_BOOLEAN, PROP_NONE);
-	RNA_def_property_boolean_sdna(prop, NULL, "keyingflag", INSERTKEY_NEEDED);
-	RNA_def_property_ui_text(prop, "Insert Keyframes - Only Needed", "Only insert keyframes where they're needed in the relevant F-Curves");
-	if (reg) RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL);
-	
-	prop= RNA_def_property(srna, "use_insertkey_visual", PROP_BOOLEAN, PROP_NONE);
-	RNA_def_property_boolean_sdna(prop, NULL, "keyingflag", INSERTKEY_MATRIX);
-	RNA_def_property_ui_text(prop, "Insert Keyframes - Visual", "Insert keyframes based on 'visual transforms'");
-	if (reg) RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL);
-	
-	prop= RNA_def_property(srna, "use_insertkey_xyz_to_rgb", PROP_BOOLEAN, PROP_NONE);
-	RNA_def_property_boolean_sdna(prop, NULL, "keyingflag", INSERTKEY_XYZ2RGB);
-	RNA_def_property_ui_text(prop, "F-Curve Colors - XYZ to RGB", "Color for newly added transformation F-Curves (Location, Rotation, Scale) and also Color is based on the transform axis");
-	if (reg) RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL);
+
+	static EnumPropertyItem keying_flag_items[] = {
+			{INSERTKEY_NEEDED, "INSERTKEY_NEEDED", 0, "Insert Keyframes - Only Needed", "Only insert keyframes where they're needed in the relevant F-Curves"},
+			{INSERTKEY_MATRIX, "INSERTKEY_VISUAL", 0, "Insert Keyframes - Visual", "Insert keyframes based on 'visual transforms'"},
+			{INSERTKEY_XYZ2RGB, "INSERTKEY_XYZ_TO_RGB", 0, "F-Curve Colors - XYZ to RGB", "Color for newly added transformation F-Curves (Location, Rotation, Scale) and also Color is based on the transform axis"},
+			{0, NULL, 0, NULL, NULL}};
+
+	prop= RNA_def_property(srna, "bl_options", PROP_ENUM, PROP_NONE);
+	RNA_def_property_enum_sdna(prop, NULL, "keyingflag");
+	RNA_def_property_enum_items(prop, keying_flag_items);
+	RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL|PROP_ENUM_FLAG);
+	RNA_def_property_ui_text(prop, "Options",  "Keying set options");
 }
 
 /* --- */

Modified: trunk/blender/source/blender/makesrna/intern/rna_scene.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_scene.c	2010-09-23 07:50:52 UTC (rev 32071)
+++ trunk/blender/source/blender/makesrna/intern/rna_scene.c	2010-09-23 08:15:53 UTC (rev 32072)
@@ -939,22 +939,12 @@
 	MEM_freeN(marker);
 }
 
-static KeyingSet *rna_Scene_keying_set_new(Scene *sce, ReportList *reports, 
-		char name[], int absolute, int insertkey_needed, int insertkey_visual)
+static KeyingSet *rna_Scene_keying_set_new(Scene *sce, ReportList *reports, char name[])
 {
 	KeyingSet *ks= NULL;
-	short flag=0, keyingflag=0;
-	
-	/* validate flags */
-	if (absolute)
-		flag |= KEYINGSET_ABSOLUTE;
-	if (insertkey_needed)
-		keyingflag |= INSERTKEY_NEEDED;
-	if (insertkey_visual)
-		keyingflag |= INSERTKEY_MATRIX;
-		
+
 	/* call the API func, and set the active keyingset index */
-	ks= BKE_keyingset_add(&sce->keyingsets, name, flag, keyingflag);
+	ks= BKE_keyingset_add(&sce->keyingsets, name, KEYINGSET_ABSOLUTE, 0);
 	
 	if (ks) {
 		sce->active_keyingset= BLI_countlist(&sce->keyingsets);
@@ -3010,17 +3000,13 @@
 	func= RNA_def_function(srna, "new", "rna_Scene_keying_set_new");
 	RNA_def_function_ui_description(func, "Add a new Keying Set to Scene.");
 	RNA_def_function_flag(func, FUNC_USE_REPORTS);
+	/* name */
+	RNA_def_string(func, "name", "KeyingSet", 64, "Name", "Name of Keying Set");
+
 	/* returns the new KeyingSet */
 	parm= RNA_def_pointer(func, "keyingset", "KeyingSet", "", "Newly created Keying Set.");
 	RNA_def_function_return(func, parm);
-	/* name */
-	RNA_def_string(func, "name", "KeyingSet", 64, "Name", "Name of Keying Set");
-	/* flags */
-	RNA_def_boolean(func, "absolute", 1, "Absolute", "Keying Set defines specific paths/settings to be keyframed (i.e. is not reliant on context info)");
-	/* keying flags */
-	RNA_def_boolean(func, "insertkey_needed", 0, "Insert Keyframes - Only Needed", "Only insert keyframes where they're needed in the relevant F-Curves.");
-	RNA_def_boolean(func, "insertkey_visual", 0, "Insert Keyframes - Visual", "Insert keyframes based on 'visual transforms'.");
-	
+
 	prop= RNA_def_property(srna, "active", PROP_POINTER, PROP_NONE);
 	RNA_def_property_struct_type(prop, "KeyingSet");
 	RNA_def_property_flag(prop, PROP_EDITABLE);





More information about the Bf-blender-cvs mailing list