From 35f788693da24f0fc25250a1f43de2603f715fe0 Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Tue, 16 Feb 2021 21:16:21 +0000 Subject: [PATCH] Add select-connected action --- .../@node-red/editor-client/src/js/keymap.json | 2 ++ .../editor-client/src/js/ui/view-tools.js | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/packages/node_modules/@node-red/editor-client/src/js/keymap.json b/packages/node_modules/@node-red/editor-client/src/js/keymap.json index aa357a832..13cefe691 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/keymap.json +++ b/packages/node_modules/@node-red/editor-client/src/js/keymap.json @@ -46,6 +46,8 @@ "ctrl-a": "core:select-all-nodes", "alt-s u": "core:select-upstream-nodes", "alt-s d": "core:select-downstream-nodes", + "alt-s c": "core:select-connected-nodes", + "alt-s d": "core:select-downstream-nodes", "shift-?": "core:show-help", "w": "core:scroll-view-up", "d": "core:scroll-view-right", diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/view-tools.js b/packages/node_modules/@node-red/editor-client/src/js/ui/view-tools.js index 27078538d..e335d3907 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/view-tools.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/view-tools.js @@ -16,6 +16,21 @@ RED.view.tools = (function() { + function selectAllConnected() { + console.log(args); + var selection = RED.view.selection(); + var visited = new Set(); + if (selection.nodes && selection.nodes.length > 0) { + selection.nodes.forEach(function(n) { + if (!visited.has(n)) { + var connected = RED.nodes.getAllFlowNodes(n); + connected.forEach(function(nn) { visited.add(nn) }) + } + }); + RED.view.select({nodes:Array.from(visited)}); + } + + } function selectDownstream() { selectStream('source','target') @@ -241,6 +256,7 @@ RED.view.tools = (function() { RED.actions.add("core:step-selection-down", function() { moveSelection(0,RED.view.gridSize());}); RED.actions.add("core:step-selection-left", function() { moveSelection(-RED.view.gridSize(),0);}); + RED.actions.add("core:select-connected-nodes", selectAllConnected); RED.actions.add("core:select-downstream-nodes", selectDownstream); RED.actions.add("core:select-upstream-nodes", selectUpstream); },