From ef5ccfa98f035fd1d9fd00a21ac4ab75a5f73061 Mon Sep 17 00:00:00 2001 From: Acly Date: Fri, 18 Oct 2024 16:38:01 +0200 Subject: [PATCH] Fix Parameter node widget values being reset when switching or reloading workflows --- js/external_tooling_nodes.js | 15 +++++++++------ krita.py | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/js/external_tooling_nodes.js b/js/external_tooling_nodes.js index 914c18c..4ac510a 100644 --- a/js/external_tooling_nodes.js +++ b/js/external_tooling_nodes.js @@ -95,14 +95,17 @@ function changeWidgets(node, type, connectedNode, connectedWidget) { } const options = connectedWidget.options - node.widgets[1].value = defaultParameterType(type, connectedNode, connectedWidget) - node.widgets[1].options = {values: parameterTypes[type]} - changeWidget(node.widgets[2], type, connectedWidget.value, options) - - if (type === "number") { + if (!parameterTypes[type].includes(node.widgets[1].value)) { + node.widgets[1].value = defaultParameterType(type, connectedNode, connectedWidget) + node.widgets[1].options = {values: parameterTypes[type]} + } + if (node.widgets[2].type !== type) { + changeWidget(node.widgets[2], type, connectedWidget.value, options) + } + if (type === "number" && node.widgets[3].value === 0 && node.widgets[4].value === 0) { changeWidget(node.widgets[3], "number", options?.min ?? 0, options) changeWidget(node.widgets[4], "number", options?.max ?? 100, options) - } else { + } else if (type !== "number") { changeWidget(node.widgets[3], "number", 0, {min: 0, max: 0}) changeWidget(node.widgets[4], "number", 0, {min: 0, max: 0}) } diff --git a/krita.py b/krita.py index 5526e1f..13faaa7 100644 --- a/krita.py +++ b/krita.py @@ -158,7 +158,7 @@ class Parameter: "type": (_param_types, {"default": "auto"}), "default": ("STRING", {"default": ""}), "min": ("FLOAT", {"default": 0.0}), - "max": ("FLOAT", {"default": 1.0}), + "max": ("FLOAT", {"default": 0.0}), } }