diff --git a/src/stores/commandStore.ts b/src/stores/commandStore.ts index fe70a7c21..861c4b6e5 100644 --- a/src/stores/commandStore.ts +++ b/src/stores/commandStore.ts @@ -16,6 +16,7 @@ import { useWorkspaceStore } from './workspaceStateStore' import { LGraphGroup } from '@comfyorg/litegraph' import { useTitleEditorStore } from './graphStore' import { useErrorHandling } from '@/hooks/errorHooks' +import { useWorkflowStore } from './workflowStore' export interface ComfyCommand { id: string @@ -296,6 +297,22 @@ export const useCommandStore = defineStore('command', () => { app.canvas.graph.add(group) useTitleEditorStore().titleEditorTarget = group } + }, + { + id: 'Workspace.NextOpenedWorkflow', + icon: 'pi pi-step-forward', + label: 'Next Opened Workflow', + function: () => { + useWorkflowStore().loadNextOpenedWorkflow() + } + }, + { + id: 'Workspace.PreviousOpenedWorkflow', + icon: 'pi pi-step-backward', + label: 'Previous Opened Workflow', + function: () => { + useWorkflowStore().loadPreviousOpenedWorkflow() + } } ] diff --git a/src/stores/workflowStore.ts b/src/stores/workflowStore.ts index 0baa88c04..7eca26b5e 100644 --- a/src/stores/workflowStore.ts +++ b/src/stores/workflowStore.ts @@ -40,6 +40,28 @@ export const useWorkflowStore = defineStore('workflow', () => { buildTree(openWorkflows.value, (workflow: ComfyWorkflow) => [workflow.key]) ) + const loadOpenedWorkflowIndexShift = async (shift: number) => { + const index = openWorkflows.value.indexOf( + activeWorkflow.value as ComfyWorkflow + ) + if (index !== -1) { + const length = openWorkflows.value.length + const nextIndex = (index + shift + length) % length + const nextWorkflow = openWorkflows.value[nextIndex] + if (nextWorkflow) { + await nextWorkflow.load() + } + } + } + + const loadNextOpenedWorkflow = async () => { + await loadOpenedWorkflowIndexShift(1) + } + + const loadPreviousOpenedWorkflow = async () => { + await loadOpenedWorkflowIndexShift(-1) + } + return { activeWorkflow, workflows, @@ -50,7 +72,9 @@ export const useWorkflowStore = defineStore('workflow', () => { workflowsTree, bookmarkedWorkflowsTree, openWorkflowsTree, - buildWorkflowTree + buildWorkflowTree, + loadNextOpenedWorkflow, + loadPreviousOpenedWorkflow } })