diff --git a/web/js/middleClickAddDefaultNode.js b/web/js/middleClickAddDefaultNode.js index 66b9ff9..43f944f 100644 --- a/web/js/middleClickAddDefaultNode.js +++ b/web/js/middleClickAddDefaultNode.js @@ -6,11 +6,41 @@ const ext = { async setup(app) { app.ui.settings.addSetting({ id, - name: "🐍 Middle click slot to add reroute", - defaultValue: true, - type: "boolean", + name: "🐍 Middle click slot to add", + defaultValue: "Reroute", + type: "combo", + options: (value) => + [ + ...Object.keys(LiteGraph.registered_node_types) + .filter((k) => k.includes("Reroute")) + .sort((a, b) => { + if (a === "Reroute") return -1; + if (b === "Reroute") return 1; + return a.localeCompare(b); + }), + "[None]", + ].map((m) => ({ + value: m, + text: m, + selected: !value ? m === "[None]" : m === value, + })), onChange(value) { - LiteGraph.middle_click_slot_add_default_node = !!value; + const enable = value && value !== "[None]"; + if (value === true) { + value = "Reroute"; + } + LiteGraph.middle_click_slot_add_default_node = enable; + if (enable) { + for (const arr of Object.values(LiteGraph.slot_types_default_in).concat( + Object.values(LiteGraph.slot_types_default_out) + )) { + const idx = arr.indexOf(value); + if (idx !== 0) { + arr.splice(idx, 1); + } + arr.unshift(value); + } + } }, }); },