From 69087150acf2d090d43bddce1a3091a5dbc2ca9e Mon Sep 17 00:00:00 2001 From: christian-byrne Date: Sat, 1 Feb 2025 14:09:10 -0700 Subject: [PATCH] Add commands for manager keybindings --- js/comfyui-manager.js | 51 ++++++++++++++++++++++++++++++++++++++ js/custom-nodes-manager.js | 4 +++ 2 files changed, 55 insertions(+) diff --git a/js/comfyui-manager.js b/js/comfyui-manager.js index 36845167..2a743c01 100644 --- a/js/comfyui-manager.js +++ b/js/comfyui-manager.js @@ -1268,10 +1268,26 @@ class ManagerMenuDialog extends ComfyDialog { this.element = $el("div.comfy-modal", { id:'cm-manager-dialog', parent: document.body }, [ content ]); } + get isVisible() { + return this.element?.style?.display === "block"; + } + show() { this.element.style.display = "block"; } + hide() { + this.element.style.display = "none"; + } + + toggleVisibility() { + if(this.isVisible) { + this.hide(); + } else { + this.show(); + } + } + handleWorkflowGalleryButtonClick(e) { e.preventDefault(); e.stopPropagation(); @@ -1389,6 +1405,41 @@ app.registerExtension({ } ], + commands: [ + { + id: "Comfy.Manager.Menu.ToggleVisibility", + label: "Toggle Manager Menu Visibility", + icon: "mdi mdi-puzzle", + function: () => { + if (!manager_instance) { + setManagerInstance(new ManagerMenuDialog()); + manager_instance.show(); + } else { + manager_instance.toggleVisibility(); + } + }, + }, + { + id: "Comfy.Manager.CustomNodesManager.ToggleVisibility", + label: "Toggle Custom Nodes Manager Visibility", + icon: "pi pi-server", + function: () => { + if (CustomNodesManager.instance?.isVisible) { + CustomNodesManager.instance.close(); + return; + } + + if (!manager_instance) { + setManagerInstance(new ManagerMenuDialog()); + } + if (!CustomNodesManager.instance) { + CustomNodesManager.instance = new CustomNodesManager(app, self); + } + CustomNodesManager.instance.show(CustomNodesManager.ShowMode.NORMAL); + }, + }, + ], + init() { $el("style", { textContent: style, diff --git a/js/custom-nodes-manager.js b/js/custom-nodes-manager.js index fdece3be..84ee40ed 100644 --- a/js/custom-nodes-manager.js +++ b/js/custom-nodes-manager.js @@ -1916,4 +1916,8 @@ export class CustomNodesManager { close() { this.element.style.display = "none"; } + + get isVisible() { + return this.element?.style?.display === "flex"; + } } \ No newline at end of file