From 24b52f09dff402a68fc1151c4308efae2f3f5f54 Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Mon, 3 Jan 2022 23:27:25 +0000 Subject: [PATCH 1/3] Add RED.nodes.getNodeLinks to help node-link lookup --- .../@node-red/editor-client/src/js/nodes.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/nodes.js b/packages/node_modules/@node-red/editor-client/src/js/nodes.js index b17387a52..1904494f1 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/nodes.js +++ b/packages/node_modules/@node-red/editor-client/src/js/nodes.js @@ -2551,7 +2551,17 @@ RED.nodes = (function() { addLink: addLink, removeLink: removeLink, - + getNodeLinks: function(id, portType) { + if (nodeLinks[id]) { + if (portType === 1) { + // Return cloned arrays so they can be safely modified by caller + return [].concat(nodeLinks[id].in) + } else { + return [].concat(nodeLinks[id].out) + } + } + return []; + }, addWorkspace: addWorkspace, removeWorkspace: removeWorkspace, getWorkspaceOrder: function() { return workspacesOrder }, From bef641609e2f375d9ccbd297ee1129bc072fc47e Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Mon, 3 Jan 2022 23:29:12 +0000 Subject: [PATCH 2/3] Select links when nodes on either side selected --- .../@node-red/editor-client/src/js/ui/view.js | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js index 776bb0962..5b0c288ff 100755 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js @@ -128,6 +128,14 @@ RED.view = (function() { if (!setIds.has(node.id)) { set.push({n:node}); setIds.add(node.id); + var links = RED.nodes.getNodeLinks(node.id,PORT_TYPE_INPUT).concat(RED.nodes.getNodeLinks(node.id,PORT_TYPE_OUTPUT)) + for (var i=0,l=links.length;i Date: Mon, 3 Jan 2022 23:29:42 +0000 Subject: [PATCH 3/3] Ctrl-Shift-Click on node should add to existing selection --- .../node_modules/@node-red/editor-client/src/js/ui/view.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js index 5b0c288ff..653dea0a4 100755 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js @@ -3246,7 +3246,9 @@ RED.view = (function() { // } // } else if (d3.event.shiftKey) { - clearSelection(); + if (!(d3.event.ctrlKey||d3.event.metaKey)) { + clearSelection(); + } var clickPosition = (d3.event.offsetX/scaleFactor - mousedown_node.x) var edgeDelta = (mousedown_node.w/2) - Math.abs(clickPosition); var cnodes;