Blender Git Loki
Git Commits -> Revision 11be151
Revision 11be151 by Hans Goudey (master) December 15, 2021, 15:51 (GMT) |
Node Editor: Link Drag Search Menu This commit adds a search menu when links are dragged above empty space. When releasing the drag, a menu displays all compatible sockets with the source link. The "main" sockets (usually the first) are weighted above other sockets in the search, so they appear first when you type the name of the node. A few special operators for creating a reroute or a group input node are also added to the search. Translation is started after choosing a node so it can be placed quickly, since users would likely adjust the position after anyway. A small "+" is displayed next to the cursor to give a hint about this. Further improvements are possible after this first iteration: - Support custom node trees. - Better drawing of items in the search menu. - Potential tweaks to filtering of items, depending on user feedback. Thanks to Juanfran Matheu for developing an initial patch. Differential Revision: https://developer.blender.org/D8286 |
Commit Details:
Full Hash: 11be151d58ec0ca955f019b0eed738e3245110b8
Parent Commit: 474adc6
Lines Changed: +1691, -113
3 Added Paths:
/source/blender/editors/space_node/link_drag_search.cc (+291, -0) (View)
/source/blender/nodes/intern/socket_search_link.cc (+199, -0) (View)
/source/blender/nodes/NOD_socket_search_link.hh (+151, -0) (View)
/source/blender/nodes/intern/socket_search_link.cc (+199, -0) (View)
/source/blender/nodes/NOD_socket_search_link.hh (+151, -0) (View)
44 Modified Paths:
/source/blender/blenkernel/BKE_node.h (+31, -2) (Diff)
/source/blender/blenkernel/intern/node.cc (+30, -1) (Diff)
/source/blender/editors/space_node/CMakeLists.txt (+1, -0) (Diff)
/source/blender/editors/space_node/node_intern.hh (+29, -6) (Diff)
/source/blender/editors/space_node/node_relationships.cc (+137, -18) (Diff)
/source/blender/nodes/CMakeLists.txt (+2, -0) (Diff)
/source/blender/nodes/composite/node_composite_util.cc (+3, -0) (Diff)
/source/blender/nodes/function/nodes/node_fn_random_value.cc (+54, -1) (Diff)
/source/blender/nodes/function/node_function_util.cc (+3, -0) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_attribute_capture.cc (+33, -0) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_attribute_domain_size.cc (+18, -6) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_attribute_statistic.cc (+51, -0) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_curve_fillet.cc (+6, -1) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_curve_primitive_circle.cc (+3, -1) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_curve_primitive_quadrilateral.cc (+42, -0) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_curve_sample.cc (+11, -3) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_curve_to_points.cc (+12, -3) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_curve_trim.cc (+42, -1) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_mesh_primitive_line.cc (+37, -0) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_points_to_volume.cc (+13, -2) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_raycast.cc (+22, -0) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_string_to_curves.cc (+7, -2) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_switch.cc (+32, -0) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_transfer_attribute.cc (+35, -2) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_viewer.cc (+54, -0) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_volume_to_mesh.cc (+13, -2) (Diff)
/source/blender/nodes/geometry/node_geometry_tree.cc (+5, -4) (Diff)
/source/blender/nodes/geometry/node_geometry_util.cc (+28, -0) (Diff)
/source/blender/nodes/geometry/node_geometry_util.hh (+3, -0) (Diff)
/source/blender/nodes/intern/node_declaration.cc (+3, -1) (Diff)
/source/blender/nodes/intern/node_socket.cc (+3, -4) (Diff)
/source/blender/nodes/intern/node_socket_declarations.cc (+139, -24) (Diff)
/source/blender/nodes/NOD_geometry.h (+2, -2) (Diff)
/source/blender/nodes/NOD_node_declaration.hh (+69, -7) (Diff)
/source/blender/nodes/NOD_socket_declarations.hh (+16, -8) (Diff)
/source/blender/nodes/NOD_socket_declarations_geometry.hh (+2, -1) (Diff)
/source/blender/nodes/shader/nodes/node_shader_math.cc (+11, -0) (Diff)
/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.cc (+4, -1) (Diff)
/source/blender/nodes/shader/nodes/node_shader_tex_noise.cc (+4, -1) (Diff)
/source/blender/nodes/shader/nodes/node_shader_tex_voronoi.cc (+18, -5) (Diff)
/source/blender/nodes/shader/nodes/node_shader_tex_white_noise.cc (+4, -1) (Diff)
/source/blender/nodes/shader/nodes/node_shader_vector_math.cc (+11, -0) (Diff)
/source/blender/nodes/shader/node_shader_tree.c (+3, -3) (Diff)
/source/blender/nodes/shader/node_shader_util.cc (+4, -0) (Diff)
/source/blender/blenkernel/intern/node.cc (+30, -1) (Diff)
/source/blender/editors/space_node/CMakeLists.txt (+1, -0) (Diff)
/source/blender/editors/space_node/node_intern.hh (+29, -6) (Diff)
/source/blender/editors/space_node/node_relationships.cc (+137, -18) (Diff)
/source/blender/nodes/CMakeLists.txt (+2, -0) (Diff)
/source/blender/nodes/composite/node_composite_util.cc (+3, -0) (Diff)
/source/blender/nodes/function/nodes/node_fn_random_value.cc (+54, -1) (Diff)
/source/blender/nodes/function/node_function_util.cc (+3, -0) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_attribute_capture.cc (+33, -0) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_attribute_domain_size.cc (+18, -6) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_attribute_statistic.cc (+51, -0) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_curve_fillet.cc (+6, -1) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_curve_primitive_circle.cc (+3, -1) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_curve_primitive_quadrilateral.cc (+42, -0) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_curve_sample.cc (+11, -3) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_curve_to_points.cc (+12, -3) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_curve_trim.cc (+42, -1) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_mesh_primitive_line.cc (+37, -0) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_points_to_volume.cc (+13, -2) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_raycast.cc (+22, -0) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_string_to_curves.cc (+7, -2) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_switch.cc (+32, -0) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_transfer_attribute.cc (+35, -2) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_viewer.cc (+54, -0) (Diff)
/source/blender/nodes/geometry/nodes/node_geo_volume_to_mesh.cc (+13, -2) (Diff)
/source/blender/nodes/geometry/node_geometry_tree.cc (+5, -4) (Diff)
/source/blender/nodes/geometry/node_geometry_util.cc (+28, -0) (Diff)
/source/blender/nodes/geometry/node_geometry_util.hh (+3, -0) (Diff)
/source/blender/nodes/intern/node_declaration.cc (+3, -1) (Diff)
/source/blender/nodes/intern/node_socket.cc (+3, -4) (Diff)
/source/blender/nodes/intern/node_socket_declarations.cc (+139, -24) (Diff)
/source/blender/nodes/NOD_geometry.h (+2, -2) (Diff)
/source/blender/nodes/NOD_node_declaration.hh (+69, -7) (Diff)
/source/blender/nodes/NOD_socket_declarations.hh (+16, -8) (Diff)
/source/blender/nodes/NOD_socket_declarations_geometry.hh (+2, -1) (Diff)
/source/blender/nodes/shader/nodes/node_shader_math.cc (+11, -0) (Diff)
/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.cc (+4, -1) (Diff)
/source/blender/nodes/shader/nodes/node_shader_tex_noise.cc (+4, -1) (Diff)
/source/blender/nodes/shader/nodes/node_shader_tex_voronoi.cc (+18, -5) (Diff)
/source/blender/nodes/shader/nodes/node_shader_tex_white_noise.cc (+4, -1) (Diff)
/source/blender/nodes/shader/nodes/node_shader_vector_math.cc (+11, -0) (Diff)
/source/blender/nodes/shader/node_shader_tree.c (+3, -3) (Diff)
/source/blender/nodes/shader/node_shader_util.cc (+4, -0) (Diff)