Add support for widget callback
This commit is contained in:
+11
-3
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user