Page MenuHome

Nodes: Make link insert optional and improved unlink
Needs ReviewPublic

Authored by Lukas Tönne (lukastoenne) on Jul 24 2021, 12:59 PM.
This revision needs review, but there are no reviewers specified.

Details

Reviewers
None
Summary

Translating a single node has a "link intersect" feature for inserting
on existing links. However, the feature can be undesirable in crowded
node trees and can currently not be disabled.

This patch improves node insert/unlink in a number of ways:

  • Alt key is a modal key during transform now, instead of just used for initial unlinking of nodes. Pressing Alt, either before or during the transform, will unlink selected nodes as before. Holding Alt will now also disable the link-insert feature, so that nodes can be moved without inserting on links.

    Note that existing behavior and keymaps remain unchanged.
  • The "unlink" feature now supports groups of selected nodes and will no longer remove links between the transformed nodes. That makes it easier to move a group of nodes en-bloc. Link insertion still only works on single nodes, due to the heuristic complexity of finding meaningful inputs/outputs of a subgraph.
  • Some cleanup of the node space operators and keymaps. Removed the NODE_OT_duplicate_move_keep_inputs and NODE_OT_translate_attach_remove_on_cancel operators, since these are just variants of their base operators with a different flag value. The keymaps now contain the base operators with the flag set.

Tap Alt to unlink, insert into existing link:

Groups of nodes now keep internal links:

Diff Detail

Repository
rB Blender
Branch
temp-nodes-intersect-alt-key
Build Status
Buildable 16017
Build 16017: arc lint + arc unit

Event Timeline

Lukas Tönne (lukastoenne) requested review of this revision.Jul 24 2021, 12:59 PM
Lukas Tönne (lukastoenne) created this revision.
Lukas Tönne (lukastoenne) retitled this revision from Nodes: Modal "unlink" support in node transform. to Nodes: Make link insert optional and improved unlink.Jul 24 2021, 1:46 PM
Lukas Tönne (lukastoenne) edited the summary of this revision. (Show Details)
Lukas Tönne (lukastoenne) edited the summary of this revision. (Show Details)