Add command to switch opened workflow tabs (#1109)

This commit is contained in:
Chenlei Hu
2024-10-04 20:33:16 -04:00
committed by GitHub
parent b30d285025
commit 6deb994235
2 changed files with 42 additions and 1 deletions

View File

@@ -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()
}
}
]

View File

@@ -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
}
})