From c954d6cdfd80090fd5788eb8493c81873293c602 Mon Sep 17 00:00:00 2001 From: Leon Schittek Date: Wed, 10 Sep 2025 15:12:37 +0200 Subject: [PATCH] Nodes: Add tools for "Mute Links" and "Add Reroute" operator Expose the "Mute Links" add "Add Reroute" operator as active tools in the node editor similar to the "Links Cut" tool. This also works around #134153 by adding additional tools in the same button group to the toolbar. Pull Request: https://projects.blender.org/blender/blender/pulls/140429 --- .../datafiles/icons/ops.node.add_reroute.dat | 3 +++ .../datafiles/icons/ops.node.links_mute.dat | 3 +++ .../keyconfig/keymap_data/blender_default.py | 22 +++++++++++++++++ .../startup/bl_ui/space_toolsystem_toolbar.py | 24 +++++++++++++++++++ .../blender/editors/datafiles/CMakeLists.txt | 2 ++ 5 files changed, 54 insertions(+) create mode 100644 release/datafiles/icons/ops.node.add_reroute.dat create mode 100644 release/datafiles/icons/ops.node.links_mute.dat diff --git a/release/datafiles/icons/ops.node.add_reroute.dat b/release/datafiles/icons/ops.node.add_reroute.dat new file mode 100644 index 00000000000..6bf9bb7c5a8 --- /dev/null +++ b/release/datafiles/icons/ops.node.add_reroute.dat @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3c642e2fe94aea781d13e7132917ffa00bbdb4dd5fb305b6278fcc98bf3dead +size 3050 diff --git a/release/datafiles/icons/ops.node.links_mute.dat b/release/datafiles/icons/ops.node.links_mute.dat new file mode 100644 index 00000000000..80461534637 --- /dev/null +++ b/release/datafiles/icons/ops.node.links_mute.dat @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9e18582116dcae54b54ee96ea94325e2dafc753a30539d35964ce63b1281b7b +size 2078 diff --git a/scripts/presets/keyconfig/keymap_data/blender_default.py b/scripts/presets/keyconfig/keymap_data/blender_default.py index 151cc639612..3a4bdc87375 100644 --- a/scripts/presets/keyconfig/keymap_data/blender_default.py +++ b/scripts/presets/keyconfig/keymap_data/blender_default.py @@ -7214,6 +7214,26 @@ def km_node_editor_tool_links_cut(params): ) +def km_node_editor_tool_links_mute(params): + return ( + "Node Tool: Mute Links", + {"space_type": 'NODE_EDITOR', "region_type": 'WINDOW'}, + {"items": [ + ("node.links_mute", {"type": params.tool_mouse, "value": 'PRESS'}, None), + ]}, + ) + + +def km_node_editor_tool_add_reroute(params): + return ( + "Node Tool: Add Reroute", + {"space_type": 'NODE_EDITOR', "region_type": 'WINDOW'}, + {"items": [ + ("node.add_reroute", {"type": params.tool_mouse, "value": 'PRESS'}, None), + ]}, + ) + + # ------------------------------------------------------------------------------ # Tool System (3D View, Generic) @@ -8866,6 +8886,8 @@ def generate_keymaps(params=None): *(km_node_editor_tool_select_lasso(params, fallback=fallback) for fallback in (False, True)), *(km_node_editor_tool_select_circle(params, fallback=fallback) for fallback in (False, True)), km_node_editor_tool_links_cut(params), + km_node_editor_tool_links_mute(params), + km_node_editor_tool_add_reroute(params), km_3d_view_tool_cursor(params), km_3d_view_tool_text_select(params), *(km_3d_view_tool_select(params, fallback=fallback) for fallback in (False, True)), diff --git a/scripts/startup/bl_ui/space_toolsystem_toolbar.py b/scripts/startup/bl_ui/space_toolsystem_toolbar.py index 66201262a95..02d3873e492 100644 --- a/scripts/startup/bl_ui/space_toolsystem_toolbar.py +++ b/scripts/startup/bl_ui/space_toolsystem_toolbar.py @@ -3136,6 +3136,28 @@ class _defs_node_edit: options={'KEYMAP_FALLBACK'}, ) + @ToolDef.from_fn + def links_mute(): + return dict( + idname="builtin.links_mute", + label="Mute Links", + icon="ops.node.links_mute", + widget=None, + keymap="Node Tool: Mute Links", + options={'KEYMAP_FALLBACK'}, + ) + + @ToolDef.from_fn + def add_reroute(): + return dict( + idname="builtin.add_reroute", + label="Add Reroute", + icon="ops.node.add_reroute", + widget=None, + keymap="Node Tool: Add Reroute", + options={'KEYMAP_FALLBACK'}, + ) + class _defs_sequencer_generic: @@ -3561,6 +3583,8 @@ class NODE_PT_tools_active(ToolSelectPanelHelper, Panel): *_tools_annotate, None, _defs_node_edit.links_cut, + _defs_node_edit.links_mute, + _defs_node_edit.add_reroute, ], } diff --git a/source/blender/editors/datafiles/CMakeLists.txt b/source/blender/editors/datafiles/CMakeLists.txt index cfd6616acff..c15ec57bddd 100644 --- a/source/blender/editors/datafiles/CMakeLists.txt +++ b/source/blender/editors/datafiles/CMakeLists.txt @@ -118,7 +118,9 @@ set_property(GLOBAL PROPERTY ICON_GEOM_NAMES ops.mesh.rip_edge ops.mesh.spin ops.mesh.vertices_smooth + ops.node.add_reroute ops.node.links_cut + ops.node.links_mute ops.paint.eyedropper_add ops.paint.vertex_color_fill ops.paint.weight_fill