From 38646a82b20a65360eb47c0ec2299c6d7c06cc89 Mon Sep 17 00:00:00 2001 From: kijai <40791699+kijai@users.noreply.github.com> Date: Sun, 21 Apr 2024 16:16:21 +0300 Subject: [PATCH] Add menu entry to jump to Set node from Get node --- web/js/setgetnodes.js | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/web/js/setgetnodes.js b/web/js/setgetnodes.js index d3035f7..dfd8711 100644 --- a/web/js/setgetnodes.js +++ b/web/js/setgetnodes.js @@ -315,9 +315,29 @@ app.registerExtension({ this.findSetter = function(graph) { const name = this.widgets[0].value; - return graph._nodes.find(otherNode => otherNode.type === 'SetNode' && otherNode.widgets[0].value === name && name !== ''); + const foundNode = graph._nodes.find(otherNode => otherNode.type === 'SetNode' && otherNode.widgets[0].value === name && name !== ''); + return foundNode; }; + this.goToSetter = function() { + const setter = this.findSetter(this.graph); + const canvas = app.canvas; + console.log(canvas) + console.log(canvas.highlighted_links) + if (canvas?.ds?.offset) { + const nodeCenterX = setter.pos[0] + (setter.size[0] / 2); + const nodeCenterY = setter.pos[1] + (setter.size[1] / 2); + + canvas.ds.offset[0] = -nodeCenterX + canvas.mouse[0]; + canvas.ds.offset[1] = -nodeCenterY + canvas.mouse[1]; + } + if (canvas?.ds?.scale != null) { + canvas.ds.scale = Number(1); + } + canvas.selectNode(setter, false) + canvas.setDirty(true, true); + }; + // This node is purely frontend and does not impact the resulting prompt so should not be serialized this.isVirtualNode = true; } @@ -337,6 +357,16 @@ app.registerExtension({ } onAdded(graph) { } + getExtraMenuOptions(_, options) { + options.unshift( + { + content: "Go to setter", + callback: () => { + this.goToSetter(); + }, + }, + ); + } } LiteGraph.registerNodeType(