bugfix [#23795] Insert Visual Loc/Rot Keyframe of Armature Bones Broken
authorCampbell Barton <ideasman42@gmail.com>
Thu, 23 Sep 2010 08:15:53 +0000 (08:15 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Thu, 23 Sep 2010 08:15:53 +0000 (08:15 +0000)
- 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).

release/scripts/keyingsets/keyingsets_builtins.py
release/scripts/ui/properties_scene.py
source/blender/makesrna/intern/rna_animation.c
source/blender/makesrna/intern/rna_scene.c

index 2afc440892d58167d91b89f2028c31e30bb733db..73b750572992b2c9a0d7c86fa35172823b811715 100644 (file)
@@ -141,7 +141,7 @@ class BUILTIN_KSI_VisualLoc(bpy.types.KeyingSetInfo):
 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_VisualRot(bpy.types.KeyingSetInfo):
 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
index bb89b52cce64fd61ff54a09af35a1511bea7bab7..6b54b86fabdd77b9a20bea09a2f16866fcfbf7cd 100644 (file)
@@ -96,9 +96,7 @@ class SCENE_PT_keying_sets(SceneButtonsPanel, bpy.types.Panel):
 
             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 @@ class ANIM_OT_keying_set_export(bpy.types.Operator):
         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 @@ class ANIM_OT_keying_set_export(bpy.types.Operator):
         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
index 42cd6fd5911ac7010b364e31453407d9c4705341..cee6b7f854a31ae51a62db76d40d68d669ee6048 100644 (file)
@@ -394,21 +394,18 @@ static void rna_KeyingSet_paths_clear(KeyingSet *keyingset, ReportList *reports)
 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");
 }
 
 /* --- */
index eba441ad82f2dee47f1dcec061726d1f69ca12bc..1bcaf490c8d3359947d589fe4df7b0c4ff878da8 100644 (file)
@@ -939,22 +939,12 @@ static void rna_TimeLine_remove(Scene *scene, ReportList *reports, TimeMarker *m
        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 @@ static void rna_def_scene_keying_sets(BlenderRNA *brna, PropertyRNA *cprop)
        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);