diff --git a/js/extension.js b/js/extension.js index ab108b5..d21d521 100644 --- a/js/extension.js +++ b/js/extension.js @@ -5,17 +5,25 @@ app.registerExtension({ setup() { const defaultWidgets = {}; const orig = LGraphCanvas.prototype.getNodeMenuOptions; - LGraphCanvas.prototype.getNodeMenuOptions = function(node) { + LGraphCanvas.prototype.getNodeMenuOptions = function(node) { const options = orig.call(this, node); options.push(null, { - content: "Reset", + content: "Restore default values", callback: () => { if (!defaultWidgets[node.type]) { defaultWidgets[node.type] = LiteGraph.createNode(node.type, node.name, node.options).widgets; } defaultWidgets[node.type].forEach(defaultWidget => { const widget = node.widgets.find(widget => widget.name === defaultWidget.name); - if (widget) widget.value = defaultWidget.value; + if (widget) { + widget.value = defaultWidget.value; + if (widget.options && widget.options.property && node.properties[widget.options.property] !== undefined) { + node.setProperty(widget.options.property, widget.value); + } + if (widget.callback) { + widget.callback(widget.value, this, node); + } + } }); node.setDirtyCanvas(true, false); }