Add Enum display_names;

This commit is contained in:
karrycharon 2023-08-22 00:53:49 +08:00
parent bc76b3829f
commit 70c8d53c28
2 changed files with 32 additions and 2 deletions

View File

@ -9898,6 +9898,24 @@ LGraphNode.prototype.executeAction = function(action)
if(values && values.constructor !== Array)
v = values[ w.value ];
}
if (w.options.display_names) {
var old_v = v;
var display_names = w.options.display_names;
if (display_names.constructor === Function)
display_names = display_names();
if (display_names && display_names.constructor === Array) {
// search from array
var values = w.options.values;
if (values.constructor === Function)
values = values();
var index = values.indexOf(w.value);
v = display_names[index];
} else if (display_names && display_names.hasOwnProperty(w.value)) {
// search from map
v = display_names[w.value];
}
v = v || old_v;
}
ctx.fillText(
v,
widget_width - margin * 2 - 20,
@ -10071,7 +10089,8 @@ LGraphNode.prototype.executeAction = function(action)
scale: Math.max(1, this.ds.scale),
event: event,
className: "dark",
callback: inner_clicked.bind(w)
callback: inner_clicked.bind(w),
widget: w
},
ref_window);
function inner_clicked(v, option, event) {
@ -13721,6 +13740,13 @@ LGraphNode.prototype.executeAction = function(action)
if (name != null && name.constructor !== String) {
name = name.content === undefined ? String(name) : name.content;
}
if(options.widget?.options?.display_names){
var display_names = options.widget.options.display_names;
if(display_names.constructor === Array)
name = display_names[i];
else if(display_names.hasOwnProperty(name))
name = display_names[name];
}
var value = values[i];
this.addItem(name, value, options);
num++;

View File

@ -308,10 +308,14 @@ export const ComfyWidgets = {
COMBO(node, inputName, inputData) {
const type = inputData[0];
let defaultValue = type[0];
let display_names = JSON.parse(JSON.stringify(type));
if (inputData[1] && inputData[1].default) {
defaultValue = inputData[1].default;
}
return { widget: node.addWidget("combo", inputName, defaultValue, () => {}, { values: type }) };
if (inputData[1] && inputData[1].display_names) {
display_names = inputData[1].display_names;
}
return { widget: node.addWidget("combo", inputName, defaultValue, () => {}, { values: type, display_names: display_names }) };
},
IMAGEUPLOAD(node, inputName, inputData, app) {
const imageWidget = node.widgets.find((w) => w.name === "image");