diff --git a/scripts/presets/keyconfig/keymap_data/blender_default.py b/scripts/presets/keyconfig/keymap_data/blender_default.py index 953c02554d1..eead925de96 100644 --- a/scripts/presets/keyconfig/keymap_data/blender_default.py +++ b/scripts/presets/keyconfig/keymap_data/blender_default.py @@ -4711,9 +4711,9 @@ def km_object_mode(params): ("object.join", {"type": 'J', "value": 'PRESS', "ctrl": True}, None), ("wm.context_toggle", {"type": 'PERIOD', "value": 'PRESS', "ctrl": True}, {"properties": [("data_path", 'tool_settings.use_transform_data_origin')]}), - ("anim.keyframe_insert", {"type": 'I', "value": 'PRESS'}, None), + ("anim.keyframe_insert_menu", {"type": 'K', "value": 'PRESS'}, {"properties": [("always_prompt", True)]}), ("anim.keyframe_delete_v3d", {"type": 'I', "value": 'PRESS', "alt": True}, None), - ("anim.keying_set_active_set", {"type": 'I', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None), + ("anim.keying_set_active_set", {"type": 'K', "value": 'PRESS', "shift": True}, None), ("collection.create", {"type": 'G', "value": 'PRESS', "ctrl": True}, None), ("collection.objects_remove", {"type": 'G', "value": 'PRESS', "ctrl": True, "alt": True}, None), ("collection.objects_remove_all", @@ -4730,6 +4730,16 @@ def km_object_mode(params): *_template_items_context_menu("VIEW3D_MT_object_context_menu", params.context_menu_event), ]) + if params.use_pie_click_drag: + items.extend([ + ("anim.keyframe_insert", {"type": 'I', "value": 'CLICK'}, None), + op_menu_pie("ANIM_MT_keyframe_insert_pie", {"type": 'I', "value": 'CLICK_DRAG'}), + ]) + else: + items.extend([ + ("anim.keyframe_insert", {"type": 'I', "value": 'PRESS'}, None), + ]) + if params.legacy: items.extend([ ("object.select_mirror", {"type": 'M', "value": 'PRESS', "shift": True, "ctrl": True}, None), @@ -4850,9 +4860,9 @@ def km_pose(params): ("armature.assign_to_collection", {"type": 'M', "value": 'PRESS', "shift": True}, None), ("armature.move_to_collection", {"type": 'M', "value": 'PRESS'}, None), ("transform.bbone_resize", {"type": 'S', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None), - ("anim.keyframe_insert", {"type": 'I', "value": 'PRESS'}, None), + ("anim.keyframe_insert_menu", {"type": 'K', "value": 'PRESS'}, {"properties": [("always_prompt", True)]}), ("anim.keyframe_delete_v3d", {"type": 'I', "value": 'PRESS', "alt": True}, None), - ("anim.keying_set_active_set", {"type": 'I', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None), + ("anim.keying_set_active_set", {"type": 'K', "value": 'PRESS', "shift": True}, None), ("pose.push", {"type": 'E', "value": 'PRESS', "ctrl": True}, None), ("pose.relax", {"type": 'E', "value": 'PRESS', "alt": True}, None), ("pose.breakdown", {"type": 'E', "value": 'PRESS', "shift": True}, None), @@ -4861,6 +4871,16 @@ def km_pose(params): *_template_items_context_menu("VIEW3D_MT_pose_context_menu", params.context_menu_event), ]) + if params.use_pie_click_drag: + items.extend([ + ("anim.keyframe_insert", {"type": 'I', "value": 'CLICK'}, None), + op_menu_pie("ANIM_MT_keyframe_insert_pie", {"type": 'I', "value": 'CLICK_DRAG'}), + ]) + else: + items.extend([ + ("anim.keyframe_insert", {"type": 'I', "value": 'PRESS'}, None), + ]) + return keymap diff --git a/scripts/startup/bl_ui/__init__.py b/scripts/startup/bl_ui/__init__.py index f6670bb80b0..78959c551d1 100644 --- a/scripts/startup/bl_ui/__init__.py +++ b/scripts/startup/bl_ui/__init__.py @@ -11,6 +11,7 @@ if "bpy" in locals(): del reload _modules = [ + "anim", "asset_shelf", "node_add_menu", "node_add_menu_compositor", diff --git a/scripts/startup/bl_ui/anim.py b/scripts/startup/bl_ui/anim.py new file mode 100644 index 00000000000..21019d73162 --- /dev/null +++ b/scripts/startup/bl_ui/anim.py @@ -0,0 +1,31 @@ +from bpy.types import Menu + + +class ANIM_MT_keyframe_insert_pie(Menu): + bl_label = "Keyframe Insert Pie" + + def draw(self, context): + layout = self.layout + pie = layout.menu_pie() + + prop = pie.operator("anim.keyframe_insert_by_name", text="Location") + prop.type = "Location" + + prop = pie.operator("anim.keyframe_insert_by_name", text="Scale") + prop.type = "Scaling" + + prop = pie.operator("anim.keyframe_insert_by_name", text="Available") + prop.type = "Available" + + prop = pie.operator("anim.keyframe_insert_by_name", text="Rotation") + prop.type = "Rotation" + + +classes = ( + ANIM_MT_keyframe_insert_pie, +) + +if __name__ == "__main__": # only for live edit. + from bpy.utils import register_class + for cls in classes: + register_class(cls)