From a6bd04f951176f2ed824714624d294b88c882c34 Mon Sep 17 00:00:00 2001 From: Christian Byrne Date: Sat, 14 Jun 2025 15:21:43 -0700 Subject: [PATCH] [Manager] Make dialog closeable with button and hotkey (#4179) Co-authored-by: github-actions --- src/composables/useCoreCommands.ts | 8 ++++---- src/locales/en/commands.json | 4 ++-- src/locales/en/main.json | 4 ++-- src/locales/es/main.json | 4 ++-- src/locales/fr/main.json | 4 ++-- src/locales/ja/main.json | 4 ++-- src/locales/ko/main.json | 4 ++-- src/locales/ru/main.json | 4 ++-- src/locales/zh/main.json | 4 ++-- src/services/dialogService.ts | 26 ++++++++++++++++++++++++-- src/stores/dialogStore.ts | 7 ++++++- 11 files changed, 50 insertions(+), 23 deletions(-) diff --git a/src/composables/useCoreCommands.ts b/src/composables/useCoreCommands.ts index ac0ac4c17..62039684c 100644 --- a/src/composables/useCoreCommands.ts +++ b/src/composables/useCoreCommands.ts @@ -658,19 +658,19 @@ export function useCoreCommands(): ComfyCommand[] { { id: 'Comfy.Manager.CustomNodesManager', icon: 'pi pi-puzzle', - label: 'Custom Nodes Manager', + label: 'Toggle the Custom Nodes Manager', versionAdded: '1.12.10', function: () => { - dialogService.showManagerDialog() + dialogService.toggleManagerDialog() } }, { id: 'Comfy.Manager.ToggleManagerProgressDialog', icon: 'pi pi-spinner', - label: 'Toggle Progress Dialog', + label: 'Toggle the Custom Nodes Manager Progress Bar', versionAdded: '1.13.9', function: () => { - dialogService.showManagerProgressDialog() + dialogService.toggleManagerProgressDialog() } }, { diff --git a/src/locales/en/commands.json b/src/locales/en/commands.json index 43973e57f..04291916a 100644 --- a/src/locales/en/commands.json +++ b/src/locales/en/commands.json @@ -147,10 +147,10 @@ "label": "Load Default Workflow" }, "Comfy_Manager_CustomNodesManager": { - "label": "Custom Nodes Manager" + "label": "Toggle the Custom Nodes Manager" }, "Comfy_Manager_ToggleManagerProgressDialog": { - "label": "Toggle Progress Dialog" + "label": "Toggle the Custom Nodes Manager Progress Bar" }, "Comfy_MaskEditor_OpenMaskEditor": { "label": "Open Mask Editor for Selected Node" diff --git a/src/locales/en/main.json b/src/locales/en/main.json index 726b30861..0d92c933f 100644 --- a/src/locales/en/main.json +++ b/src/locales/en/main.json @@ -828,8 +828,8 @@ "ComfyUI Issues": "ComfyUI Issues", "Interrupt": "Interrupt", "Load Default Workflow": "Load Default Workflow", - "Custom Nodes Manager": "Custom Nodes Manager", - "Toggle Progress Dialog": "Toggle Progress Dialog", + "Toggle the Custom Nodes Manager": "Toggle the Custom Nodes Manager", + "Toggle the Custom Nodes Manager Progress Bar": "Toggle the Custom Nodes Manager Progress Bar", "Open Mask Editor for Selected Node": "Open Mask Editor for Selected Node", "New": "New", "Clipspace": "Clipspace", diff --git a/src/locales/es/main.json b/src/locales/es/main.json index a424fdae3..56b2b3809 100644 --- a/src/locales/es/main.json +++ b/src/locales/es/main.json @@ -694,7 +694,6 @@ "ComfyUI Issues": "Problemas de ComfyUI", "Contact Support": "Contactar soporte", "Convert selected nodes to group node": "Convertir nodos seleccionados en nodo de grupo", - "Custom Nodes Manager": "Gestor de nodos personalizados", "Delete Selected Items": "Eliminar elementos seleccionados", "Desktop User Guide": "Guía de usuario de escritorio", "Duplicate Current Workflow": "Duplicar flujo de trabajo actual", @@ -748,12 +747,13 @@ "Toggle Logs Bottom Panel": "Alternar panel inferior de registros", "Toggle Model Library Sidebar": "Alternar barra lateral de biblioteca de modelos", "Toggle Node Library Sidebar": "Alternar barra lateral de biblioteca de nodos", - "Toggle Progress Dialog": "Alternar diálogo de progreso", "Toggle Queue Sidebar": "Alternar barra lateral de cola", "Toggle Search Box": "Alternar caja de búsqueda", "Toggle Terminal Bottom Panel": "Alternar panel inferior de terminal", "Toggle Theme (Dark/Light)": "Alternar tema (Oscuro/Claro)", "Toggle Workflows Sidebar": "Alternar barra lateral de flujos de trabajo", + "Toggle the Custom Nodes Manager": "Alternar el Administrador de Nodos Personalizados", + "Toggle the Custom Nodes Manager Progress Bar": "Alternar la Barra de Progreso del Administrador de Nodos Personalizados", "Undo": "Deshacer", "Ungroup selected group nodes": "Desagrupar nodos de grupo seleccionados", "Workflow": "Flujo de trabajo", diff --git a/src/locales/fr/main.json b/src/locales/fr/main.json index 5afa0054d..31f8bc324 100644 --- a/src/locales/fr/main.json +++ b/src/locales/fr/main.json @@ -694,7 +694,6 @@ "ComfyUI Issues": "Problèmes de ComfyUI", "Contact Support": "Contacter le support", "Convert selected nodes to group node": "Convertir les nœuds sélectionnés en nœud de groupe", - "Custom Nodes Manager": "Gestionnaire de Nœuds Personnalisés", "Delete Selected Items": "Supprimer les éléments sélectionnés", "Desktop User Guide": "Guide de l'utilisateur de bureau", "Duplicate Current Workflow": "Dupliquer le flux de travail actuel", @@ -748,12 +747,13 @@ "Toggle Logs Bottom Panel": "Basculer le panneau inférieur des journaux", "Toggle Model Library Sidebar": "Basculer la barre latérale de la bibliothèque de modèles", "Toggle Node Library Sidebar": "Basculer la barre latérale de la bibliothèque de nœuds", - "Toggle Progress Dialog": "Basculer la boîte de dialogue de progression", "Toggle Queue Sidebar": "Basculer la barre latérale de la file d'attente", "Toggle Search Box": "Basculer la boîte de recherche", "Toggle Terminal Bottom Panel": "Basculer le panneau inférieur du terminal", "Toggle Theme (Dark/Light)": "Basculer le thème (Sombre/Clair)", "Toggle Workflows Sidebar": "Basculer la barre latérale des flux de travail", + "Toggle the Custom Nodes Manager": "Basculer le gestionnaire de nœuds personnalisés", + "Toggle the Custom Nodes Manager Progress Bar": "Basculer la barre de progression du gestionnaire de nœuds personnalisés", "Undo": "Annuler", "Ungroup selected group nodes": "Dégrouper les nœuds de groupe sélectionnés", "Workflow": "Flux de travail", diff --git a/src/locales/ja/main.json b/src/locales/ja/main.json index ea1c69998..35f792980 100644 --- a/src/locales/ja/main.json +++ b/src/locales/ja/main.json @@ -694,7 +694,6 @@ "ComfyUI Issues": "ComfyUIの問題", "Contact Support": "サポートに連絡", "Convert selected nodes to group node": "選択したノードをグループノードに変換", - "Custom Nodes Manager": "カスタムノードマネージャ", "Delete Selected Items": "選択したアイテムを削除", "Desktop User Guide": "デスクトップユーザーガイド", "Duplicate Current Workflow": "現在のワークフローを複製", @@ -748,12 +747,13 @@ "Toggle Logs Bottom Panel": "ログパネル下部を切り替え", "Toggle Model Library Sidebar": "モデルライブラリサイドバーを切り替え", "Toggle Node Library Sidebar": "ノードライブラリサイドバーを切り替え", - "Toggle Progress Dialog": "進行状況ダイアログの切り替え", "Toggle Queue Sidebar": "キューサイドバーを切り替え", "Toggle Search Box": "検索ボックスの切り替え", "Toggle Terminal Bottom Panel": "ターミナルパネル下部を切り替え", "Toggle Theme (Dark/Light)": "テーマを切り替え(ダーク/ライト)", "Toggle Workflows Sidebar": "ワークフローサイドバーを切り替え", + "Toggle the Custom Nodes Manager": "カスタムノードマネージャーを切り替え", + "Toggle the Custom Nodes Manager Progress Bar": "カスタムノードマネージャーの進行状況バーを切り替え", "Undo": "元に戻す", "Ungroup selected group nodes": "選択したグループノードのグループ解除", "Workflow": "ワークフロー", diff --git a/src/locales/ko/main.json b/src/locales/ko/main.json index eb10098e9..1a9b28c84 100644 --- a/src/locales/ko/main.json +++ b/src/locales/ko/main.json @@ -694,7 +694,6 @@ "ComfyUI Issues": "ComfyUI 이슈 페이지", "Contact Support": "고객 지원 문의", "Convert selected nodes to group node": "선택한 노드를 그룹 노드로 변환", - "Custom Nodes Manager": "사용자 정의 노드 관리자", "Delete Selected Items": "선택한 항목 삭제", "Desktop User Guide": "데스크톱 사용자 가이드", "Duplicate Current Workflow": "현재 워크플로 복제", @@ -748,12 +747,13 @@ "Toggle Logs Bottom Panel": "로그 하단 패널 전환", "Toggle Model Library Sidebar": "모델 라이브러리 사이드바 전환", "Toggle Node Library Sidebar": "노드 라이브러리 사이드바 전환", - "Toggle Progress Dialog": "진행 상황 대화 상자 전환", "Toggle Queue Sidebar": "실행 대기열 사이드바 전환", "Toggle Search Box": "검색 상자 전환", "Toggle Terminal Bottom Panel": "터미널 하단 패널 전환", "Toggle Theme (Dark/Light)": "테마 전환 (어두운/밝은)", "Toggle Workflows Sidebar": "워크플로 사이드바 전환", + "Toggle the Custom Nodes Manager": "커스텀 노드 매니저 전환", + "Toggle the Custom Nodes Manager Progress Bar": "커스텀 노드 매니저 진행률 표시줄 전환", "Undo": "실행 취소", "Ungroup selected group nodes": "선택한 그룹 노드 그룹 해제", "Workflow": "워크플로", diff --git a/src/locales/ru/main.json b/src/locales/ru/main.json index a8155361a..f638adfb1 100644 --- a/src/locales/ru/main.json +++ b/src/locales/ru/main.json @@ -694,7 +694,6 @@ "ComfyUI Issues": "Проблемы ComfyUI", "Contact Support": "Связаться с поддержкой", "Convert selected nodes to group node": "Преобразовать выбранные ноды в групповую ноду", - "Custom Nodes Manager": "Менеджер Пользовательских Узлов", "Delete Selected Items": "Удалить выбранные элементы", "Desktop User Guide": "Руководство пользователя для настольных ПК", "Duplicate Current Workflow": "Дублировать текущий рабочий процесс", @@ -748,12 +747,13 @@ "Toggle Logs Bottom Panel": "Переключение нижней панели журналов", "Toggle Model Library Sidebar": "Переключение боковой панели библиотеки моделей", "Toggle Node Library Sidebar": "Переключение боковой панели библиотеки нод", - "Toggle Progress Dialog": "Переключить диалоговое окно прогресса", "Toggle Queue Sidebar": "Переключение боковой панели очереди", "Toggle Search Box": "Переключить поисковую панель", "Toggle Terminal Bottom Panel": "Переключение нижней панели терминала", "Toggle Theme (Dark/Light)": "Переключение темы (Тёмная/Светлая)", "Toggle Workflows Sidebar": "Переключение боковой панели рабочих процессов", + "Toggle the Custom Nodes Manager": "Переключить менеджер пользовательских узлов", + "Toggle the Custom Nodes Manager Progress Bar": "Переключить индикатор выполнения менеджера пользовательских узлов", "Undo": "Отменить", "Ungroup selected group nodes": "Разгруппировать выбранные групповые ноды", "Workflow": "Рабочий процесс", diff --git a/src/locales/zh/main.json b/src/locales/zh/main.json index 1c77a0680..f0d4c361f 100644 --- a/src/locales/zh/main.json +++ b/src/locales/zh/main.json @@ -694,7 +694,6 @@ "ComfyUI Issues": "ComfyUI 问题", "Contact Support": "联系支持", "Convert selected nodes to group node": "将选中节点转换为组节点", - "Custom Nodes Manager": "自定义节点管理器", "Delete Selected Items": "删除选定的项目", "Desktop User Guide": "桌面端用户指南", "Duplicate Current Workflow": "复制当前工作流", @@ -748,12 +747,13 @@ "Toggle Logs Bottom Panel": "切换日志底部面板", "Toggle Model Library Sidebar": "切换模型库侧边栏", "Toggle Node Library Sidebar": "切换节点库侧边栏", - "Toggle Progress Dialog": "切换进度对话框", "Toggle Queue Sidebar": "切换队列侧边栏", "Toggle Search Box": "切换搜索框", "Toggle Terminal Bottom Panel": "切换终端底部面板", "Toggle Theme (Dark/Light)": "切换主题(暗/亮)", "Toggle Workflows Sidebar": "切换工作流侧边栏", + "Toggle the Custom Nodes Manager": "切换自定义节点管理器", + "Toggle the Custom Nodes Manager Progress Bar": "切换自定义节点管理器进度条", "Undo": "撤销", "Ungroup selected group nodes": "解散选中组节点", "Workflow": "工作流", diff --git a/src/services/dialogService.ts b/src/services/dialogService.ts index 5361689f4..258d50867 100644 --- a/src/services/dialogService.ts +++ b/src/services/dialogService.ts @@ -135,7 +135,7 @@ export const useDialogService = () => { component: ManagerDialogContent, headerComponent: ManagerHeader, dialogComponentProps: { - closable: false, + closable: true, pt: { header: { class: '!p-0 !m-0' }, content: { class: '!px-0 h-[83vh] w-[90vw] overflow-y-hidden' } @@ -394,6 +394,26 @@ export const useDialogService = () => { } } + function toggleManagerDialog( + props?: InstanceType['$props'] + ) { + if (dialogStore.isDialogOpen('global-manager')) { + dialogStore.closeDialog({ key: 'global-manager' }) + } else { + showManagerDialog(props) + } + } + + function toggleManagerProgressDialog( + props?: InstanceType['$props'] + ) { + if (dialogStore.isDialogOpen('global-manager-progress-dialog')) { + dialogStore.closeDialog({ key: 'global-manager-progress-dialog' }) + } else { + showManagerProgressDialog({ props }) + } + } + return { showLoadWorkflowWarning, showMissingModelsWarning, @@ -411,6 +431,8 @@ export const useDialogService = () => { showUpdatePasswordDialog, showExtensionDialog, prompt, - confirm + confirm, + toggleManagerDialog, + toggleManagerProgressDialog } } diff --git a/src/stores/dialogStore.ts b/src/stores/dialogStore.ts index 35a10b668..1b80f156a 100644 --- a/src/stores/dialogStore.ts +++ b/src/stores/dialogStore.ts @@ -169,11 +169,16 @@ export const useDialogStore = defineStore('dialog', () => { return dialog } + function isDialogOpen(key: string) { + return dialogStack.value.some((d) => d.key === key) + } + return { dialogStack, riseDialog, showDialog, closeDialog, - showExtensionDialog + showExtensionDialog, + isDialogOpen } })