diff options
Diffstat (limited to 'release')
3 files changed, 82 insertions, 2 deletions
diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py index b8b27b0e8ba..7152069972d 100644 --- a/release/scripts/presets/keyconfig/keymap_data/blender_default.py +++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py @@ -2826,6 +2826,8 @@ def km_sequencerpreview(params): value=params.select_mouse_value_fallback, legacy=params.legacy, ), + op_menu_pie("SEQUENCER_MT_pivot_pie", {"type": 'PERIOD', "value": 'PRESS'}), + ("sequencer.view_all_preview", {"type": 'HOME', "value": 'PRESS'}, None), ("sequencer.view_all_preview", {"type": 'NDOF_BUTTON_FIT', "value": 'PRESS'}, None), ("sequencer.view_ghost_border", {"type": 'O', "value": 'PRESS'}, None), @@ -2862,6 +2864,18 @@ def km_sequencerpreview(params): *_template_items_context_menu("SEQUENCER_MT_preview_context_menu", params.context_menu_event), ]) + # 2D cursor. + if params.cursor_tweak_event: + items.extend([ + ("sequencer.cursor_set", params.cursor_set_event, None), + ("transform.translate", params.cursor_tweak_event, + {"properties": [("release_confirm", True), ("cursor_transform", True)]}), + ]) + else: + items.extend([ + ("sequencer.cursor_set", params.cursor_set_event, None), + ]) + return keymap @@ -7465,13 +7479,13 @@ def km_sequencer_editor_tool_select(params, *, fallback): _fallback_id("Sequencer Tool: Tweak", fallback), {"space_type": 'SEQUENCE_EDITOR', "region_type": 'WINDOW'}, {"items": [ - # TODO: Use 2D cursor for preview region (currently `sequencer.sample`). *([] if fallback else - _template_items_tool_select(params, "sequencer.select", "sequencer.sample", extend="toggle") + _template_items_tool_select(params, "sequencer.select", "sequencer.cursor_set", extend="toggle") ), *([] if (not params.use_fallback_tool_rmb) else _template_sequencer_generic_select( type=params.select_mouse, value=params.select_mouse_value, legacy=params.legacy)), + # Ignored for preview. *_template_items_change_frame(params), ]}, ) @@ -7490,6 +7504,7 @@ def km_sequencer_editor_tool_select_box(params, *, fallback): *_template_sequencer_select_for_fallback(params, fallback), # RMB select can already set the frame, match the tweak tool. + # Ignored for preview. *(_template_items_change_frame(params) if params.select_mouse == 'LEFTMOUSE' else []), ]}, @@ -7506,6 +7521,19 @@ def km_sequencer_editor_tool_generic_sample(params): ) +def km_sequencer_editor_tool_cursor(params): + return ( + "Sequencer Tool: Cursor", + {"space_type": 'SEQUENCE_EDITOR', "region_type": 'WINDOW'}, + {"items": [ + ("sequencer.cursor_set", {"type": params.tool_mouse, "value": 'PRESS'}, None), + # Don't use `tool_maybe_tweak_event` since it conflicts with `PRESS` that places the cursor. + ("transform.translate", params.tool_tweak_event, + {"properties": [("release_confirm", True), ("cursor_transform", True)]}), + ]}, + ) + + def km_sequencer_editor_tool_blade(_params): return ( "Sequencer Tool: Blade", @@ -7808,6 +7836,7 @@ def generate_keymaps(params=None): *(km_sequencer_editor_tool_select_box(params, fallback=fallback) for fallback in (False, True)), km_sequencer_editor_tool_blade(params), km_sequencer_editor_tool_generic_sample(params), + km_sequencer_editor_tool_cursor(params), km_sequencer_editor_tool_scale(params), km_sequencer_editor_tool_rotate(params), km_sequencer_editor_tool_move(params), diff --git a/release/scripts/startup/bl_ui/space_sequencer.py b/release/scripts/startup/bl_ui/space_sequencer.py index 03a090255f6..58afb6d9203 100644 --- a/release/scripts/startup/bl_ui/space_sequencer.py +++ b/release/scripts/startup/bl_ui/space_sequencer.py @@ -1042,6 +1042,22 @@ class SEQUENCER_MT_preview_context_menu(Menu): pass +class SEQUENCER_MT_pivot_pie(Menu): + bl_label = "Pivot Point" + + def draw(self, context): + layout = self.layout + pie = layout.menu_pie() + + tool_settings = context.tool_settings + sequencer_tool_settings = context.tool_settings.sequencer_tool_settings + + pie.prop_enum(sequencer_tool_settings, "pivot_point", value='CENTER') + pie.prop_enum(sequencer_tool_settings, "pivot_point", value='CURSOR') + pie.prop_enum(sequencer_tool_settings, "pivot_point", value='INDIVIDUAL_ORIGINS') + pie.prop_enum(sequencer_tool_settings, "pivot_point", value='MEDIAN') + + class SequencerButtonsPanel: bl_space_type = 'SEQUENCE_EDITOR' bl_region_type = 'UI' @@ -2185,6 +2201,22 @@ class SEQUENCER_PT_view(SequencerButtonsPanel_Output, Panel): col.prop(st, "show_separate_color") +class SEQUENCER_PT_view_cursor(SequencerButtonsPanel_Output, Panel): + bl_category = "View" + bl_label = "2D Cursor" + + def draw(self, context): + layout = self.layout + + st = context.space_data + + layout.use_property_split = True + layout.use_property_decorate = False + + col = layout.column() + col.prop(st, "cursor_location", text="Location") + + class SEQUENCER_PT_frame_overlay(SequencerButtonsPanel_Output, Panel): bl_label = "Frame Overlay" bl_category = "View" @@ -2464,6 +2496,7 @@ classes = ( SEQUENCER_MT_color_tag_picker, SEQUENCER_MT_context_menu, SEQUENCER_MT_preview_context_menu, + SEQUENCER_MT_pivot_pie, SEQUENCER_PT_color_tag_picker, @@ -2500,6 +2533,7 @@ classes = ( SEQUENCER_PT_custom_props, SEQUENCER_PT_view, + SEQUENCER_PT_view_cursor, SEQUENCER_PT_frame_overlay, SEQUENCER_PT_view_safe_areas, SEQUENCER_PT_view_safe_areas_center_cut, diff --git a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py index 6478cff3597..008129cd389 100644 --- a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py +++ b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py @@ -2441,6 +2441,19 @@ class _defs_node_edit: class _defs_sequencer_generic: @ToolDef.from_fn + def cursor(): + return dict( + idname="builtin.cursor", + label="Cursor", + description=( + "Set the cursor location, drag to transform" + ), + icon="ops.generic.cursor", + keymap="Sequencer Tool: Cursor", + options={'KEYMAP_FALLBACK'}, + ) + + @ToolDef.from_fn def blade(): def draw_settings(_context, layout, tool): props = tool.operator_properties("sequencer.split") @@ -3094,6 +3107,8 @@ class SEQUENCER_PT_tools_active(ToolSelectPanelHelper, Panel): ], 'PREVIEW': [ *_tools_select, + _defs_sequencer_generic.cursor, + None, _defs_sequencer_generic.translate, _defs_sequencer_generic.rotate, _defs_sequencer_generic.scale, @@ -3106,6 +3121,8 @@ class SEQUENCER_PT_tools_active(ToolSelectPanelHelper, Panel): ], 'SEQUENCER_PREVIEW': [ *_tools_select, + _defs_sequencer_generic.cursor, + None, _defs_sequencer_generic.translate, _defs_sequencer_generic.rotate, _defs_sequencer_generic.scale, |