diff options
Diffstat (limited to 'release/scripts')
5 files changed, 76 insertions, 71 deletions
diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py index fd9d699ed01..69582849308 100644 --- a/release/scripts/presets/keyconfig/keymap_data/blender_default.py +++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py @@ -6757,6 +6757,15 @@ def km_3d_view_tool_paint_gpencil_eyedropper(params): ]}, ) +def km_3d_view_tool_paint_gpencil_interpolate(params): + return ( + "3D View Tool: Paint Gpencil, Interpolate", + {"space_type": 'VIEW_3D', "region_type": 'WINDOW'}, + {"items": [ + ("gpencil.interpolate", {"type": params.tool_tweak, "value": 'ANY'}, + {"properties": [("release_confirm", True)]}), + ]}, + ) def km_3d_view_tool_edit_gpencil_select(params): return ( @@ -6858,6 +6867,17 @@ def km_3d_view_tool_edit_gpencil_transform_fill(params): ) +def km_3d_view_tool_edit_gpencil_interpolate(params): + return ( + "3D View Tool: Edit Gpencil, Interpolate", + {"space_type": 'VIEW_3D', "region_type": 'WINDOW'}, + {"items": [ + ("gpencil.interpolate", {"type": params.tool_tweak, "value": 'ANY'}, + {"properties": [("release_confirm", True)]}), + ]}, + ) + + def km_3d_view_tool_sculpt_gpencil_select(params): return ( "3D View Tool: Sculpt Gpencil, Tweak", @@ -7173,6 +7193,7 @@ def generate_keymaps(params=None): km_3d_view_tool_paint_gpencil_curve(params), km_3d_view_tool_paint_gpencil_cutter(params), km_3d_view_tool_paint_gpencil_eyedropper(params), + km_3d_view_tool_paint_gpencil_interpolate(params), km_3d_view_tool_edit_gpencil_select(params), km_3d_view_tool_edit_gpencil_select_box(params), km_3d_view_tool_edit_gpencil_select_circle(params), @@ -7183,6 +7204,7 @@ def generate_keymaps(params=None): km_3d_view_tool_edit_gpencil_shear(params), km_3d_view_tool_edit_gpencil_to_sphere(params), km_3d_view_tool_edit_gpencil_transform_fill(params), + km_3d_view_tool_edit_gpencil_interpolate(params), km_3d_view_tool_sculpt_gpencil_select(params), km_3d_view_tool_sculpt_gpencil_select_box(params), km_3d_view_tool_sculpt_gpencil_select_circle(params), diff --git a/release/scripts/startup/bl_ui/space_dopesheet.py b/release/scripts/startup/bl_ui/space_dopesheet.py index aa98e4292f4..39d232b2871 100644 --- a/release/scripts/startup/bl_ui/space_dopesheet.py +++ b/release/scripts/startup/bl_ui/space_dopesheet.py @@ -322,7 +322,7 @@ class DOPESHEET_MT_editor_menus(Menu): if st.mode != 'GPENCIL': layout.menu("DOPESHEET_MT_key") else: - layout.menu("DOPESHEET_MT_gpencil_frame") + layout.menu("DOPESHEET_MT_gpencil_key") class DOPESHEET_MT_view(Menu): @@ -558,8 +558,8 @@ class DOPESHEET_MT_gpencil_channel(Menu): layout.operator_menu_enum("anim.channels_move", "direction", text="Move...") -class DOPESHEET_MT_gpencil_frame(Menu): - bl_label = "Frame" +class DOPESHEET_MT_gpencil_key(Menu): + bl_label = "Key" def draw(self, _context): layout = self.layout @@ -569,15 +569,14 @@ class DOPESHEET_MT_gpencil_frame(Menu): layout.operator_menu_enum("action.mirror", "type", text="Mirror") layout.separator() - layout.operator("action.duplicate") - layout.operator("action.delete") + layout.operator("action.keyframe_insert") layout.separator() - layout.operator("action.keyframe_type") + layout.operator("action.delete") + layout.operator("gpencil.interpolate_reverse") - # layout.separator() - # layout.operator("action.copy") - # layout.operator("action.paste") + layout.separator() + layout.operator("action.keyframe_type", text="Keyframe Type") class DOPESHEET_MT_delete(Menu): @@ -761,7 +760,7 @@ classes = ( DOPESHEET_MT_key, DOPESHEET_MT_key_transform, DOPESHEET_MT_gpencil_channel, - DOPESHEET_MT_gpencil_frame, + DOPESHEET_MT_gpencil_key, DOPESHEET_MT_delete, DOPESHEET_MT_context_menu, DOPESHEET_MT_channel_context_menu, diff --git a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py index 68cded82ce3..75bca09a044 100644 --- a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py +++ b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py @@ -2035,6 +2035,26 @@ class _defs_gpencil_paint: draw_settings=draw_settings, ) + @ToolDef.from_fn + def interpolate(): + def draw_settings(context, layout, tool): + props = tool.operator_properties("gpencil.interpolate") + row = layout.row() + row.prop(props, "layers") + row.prop(props, "flip") + row.prop(props, "smooth_factor") + row.prop(props, "smooth_steps") + + return dict( + idname="builtin.interpolate", + label="Interpolate", + icon="ops.pose.breakdowner", + cursor='DEFAULT', + widget=None, + keymap=(), + draw_settings=draw_settings, + ) + class _defs_gpencil_edit: def is_segment(context): @@ -2198,6 +2218,27 @@ class _defs_gpencil_edit: draw_settings=draw_settings, ) + @ToolDef.from_fn + def interpolate(): + def draw_settings(context, layout, tool): + props = tool.operator_properties("gpencil.interpolate") + row = layout.row() + row.prop(props, "layers") + row.prop(props, "interpolate_selected_only") + row.prop(props, "flip") + row.prop(props, "smooth_factor") + row.prop(props, "smooth_steps") + + return dict( + idname="builtin.interpolate", + label="Interpolate", + icon="ops.pose.breakdowner", + cursor='DEFAULT', + widget=None, + keymap=(), + draw_settings=draw_settings, + ) + class _defs_gpencil_sculpt: @@ -2877,6 +2918,8 @@ class VIEW3D_PT_tools_active(ToolSelectPanelHelper, Panel): _defs_gpencil_paint.box, _defs_gpencil_paint.circle, None, + _defs_gpencil_paint.interpolate, + None, *_tools_annotate, ], 'EDIT_GPENCIL': [ @@ -2892,9 +2935,10 @@ class VIEW3D_PT_tools_active(ToolSelectPanelHelper, Panel): _defs_gpencil_edit.shear, _defs_gpencil_edit.tosphere, ), - None, _defs_gpencil_edit.transform_fill, None, + _defs_gpencil_edit.interpolate, + None, *_tools_annotate, ], 'SCULPT_GPENCIL': [ diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index 0fe16720d81..43866add7dd 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -715,13 +715,6 @@ class VIEW3D_HT_header(Header): text="Multiframe", ) - if gpd.use_stroke_edit_mode or gpd.is_stroke_paint_mode: - row = layout.row(align=True) - row.popover( - panel="VIEW3D_PT_tools_grease_pencil_interpolate", - text="Interpolate", - ) - overlay = view.overlay VIEW3D_MT_editor_menus.draw_collapsible(context, layout) diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py index f93a6f3346b..257b9edf4e8 100644 --- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py +++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py @@ -1693,58 +1693,6 @@ class VIEW3D_PT_tools_grease_pencil_brush_paint_falloff(GreasePencilBrushFalloff return (settings and settings.brush and settings.brush.curve and tool == 'TINT') -# Grease Pencil stroke interpolation tools -class VIEW3D_PT_tools_grease_pencil_interpolate(Panel): - bl_space_type = 'VIEW_3D' - bl_region_type = 'HEADER' - bl_label = "Interpolate" - - @classmethod - def poll(cls, context): - if context.gpencil_data is None: - return False - - gpd = context.gpencil_data - valid_mode = bool(gpd.use_stroke_edit_mode or gpd.is_stroke_paint_mode) - return bool(context.editable_gpencil_strokes) and valid_mode - - def draw(self, context): - layout = self.layout - settings = context.tool_settings.gpencil_interpolate - - col = layout.column(align=True) - col.label(text="Interpolate Strokes") - col.operator("gpencil.interpolate", text="Interpolate") - col.operator("gpencil.interpolate_sequence", text="Sequence") - col.operator("gpencil.interpolate_reverse", text="Remove Breakdowns") - - col = layout.column(align=True) - col.label(text="Options:") - col.prop(settings, "interpolate_all_layers") - - gpd = context.gpencil_data - if gpd.use_stroke_edit_mode: - col.prop(settings, "interpolate_selected_only") - - col = layout.column(align=True) - col.label(text="Sequence Options:") - col.prop(settings, "step") - col.prop(settings, "type") - if settings.type == 'CUSTOM': - # TODO: Options for loading/saving curve presets? - col.template_curve_mapping(settings, "interpolation_curve", brush=True, - use_negative_slope=True) - elif settings.type != 'LINEAR': - col.prop(settings, "easing") - - if settings.type == 'BACK': - layout.prop(settings, "back") - elif settings.type == 'ELASTIC': - sub = layout.column(align=True) - sub.prop(settings, "amplitude") - sub.prop(settings, "period") - - # Grease Pencil stroke sculpting tools class GreasePencilSculptPanel: bl_context = ".greasepencil_sculpt" @@ -2266,7 +2214,6 @@ classes = ( VIEW3D_PT_tools_grease_pencil_vertex_paint_select, VIEW3D_PT_tools_grease_pencil_vertex_paint_settings, VIEW3D_PT_tools_grease_pencil_vertex_appearance, - VIEW3D_PT_tools_grease_pencil_interpolate, VIEW3D_PT_tools_grease_pencil_brush_mixcolor, VIEW3D_PT_tools_grease_pencil_brush_mix_palette, |