diff --git a/src/components/sidebar/tabs/AssetsSidebarTab.vue b/src/components/sidebar/tabs/AssetsSidebarTab.vue index 827bd6851..8ed3734a9 100644 --- a/src/components/sidebar/tabs/AssetsSidebarTab.vue +++ b/src/components/sidebar/tabs/AssetsSidebarTab.vue @@ -47,6 +47,7 @@ ('output') const folderPromptId = ref(null) const folderExecutionTime = ref(undefined) const isInFolderView = computed(() => folderPromptId.value !== null) +const viewMode = ref<'list' | 'grid'>('grid') // Track which asset's context menu is open (for single-instance context menu management) const openContextMenuId = ref(null) diff --git a/src/composables/useCoreCommands.ts b/src/composables/useCoreCommands.ts index 2d58f61b5..6b2aa63c2 100644 --- a/src/composables/useCoreCommands.ts +++ b/src/composables/useCoreCommands.ts @@ -67,7 +67,6 @@ import { useWorkflowTemplateSelectorDialog } from './useWorkflowTemplateSelector const { isActiveSubscription, showSubscriptionDialog } = useSubscription() const moveSelectedNodesVersionAdded = '1.22.2' - export function useCoreCommands(): ComfyCommand[] { const workflowService = useWorkflowService() const workflowStore = useWorkflowStore() @@ -79,6 +78,7 @@ export function useCoreCommands(): ComfyCommand[] { const executionStore = useExecutionStore() const telemetry = useTelemetry() const { staticUrls, buildDocsUrl } = useExternalLink() + const settingStore = useSettingStore() const bottomPanelStore = useBottomPanelStore() @@ -86,6 +86,14 @@ export function useCoreCommands(): ComfyCommand[] { useSelectedLiteGraphItems() const getTracker = () => workflowStore.activeWorkflow?.changeTracker + function isQueuePanelV2Enabled() { + return settingStore.get('Comfy.Queue.QPOV2') + } + + async function toggleQueuePanelV2() { + await settingStore.set('Comfy.Queue.QPOV2', !isQueuePanelV2Enabled()) + } + const moveSelectedNodes = ( positionUpdater: (pos: Point, gridSize: number) => Point ) => { @@ -1191,6 +1199,12 @@ export function useCoreCommands(): ComfyCommand[] { await useWorkflowService().reloadCurrentWorkflow() // ensure changes take effect immediately } }, + { + id: 'Comfy.ToggleQPOV2', + icon: 'pi pi-list', + label: 'Toggle Queue Panel V2', + function: toggleQueuePanelV2 + }, { id: 'Comfy.ToggleLinear', icon: 'pi pi-database', diff --git a/src/locales/en/commands.json b/src/locales/en/commands.json index 2fe85e1c4..a621e774a 100644 --- a/src/locales/en/commands.json +++ b/src/locales/en/commands.json @@ -263,6 +263,9 @@ "Comfy_ToggleLinear": { "label": "toggle linear mode" }, + "Comfy_ToggleQPOV2": { + "label": "Toggle Queue Panel V2" + }, "Comfy_ToggleTheme": { "label": "Toggle Theme (Dark/Light)" }, @@ -327,4 +330,4 @@ "label": "Toggle Workflows Sidebar", "tooltip": "Workflows" } -} \ No newline at end of file +} diff --git a/src/locales/en/main.json b/src/locales/en/main.json index df360ad74..6fb145d3a 100644 --- a/src/locales/en/main.json +++ b/src/locales/en/main.json @@ -721,6 +721,8 @@ "colonPercent": ": {percent}", "currentNode": "Current node:", "viewAllJobs": "View all jobs", + "viewList": "List view", + "viewGrid": "Grid view", "running": "running", "preview": "Preview", "interruptAll": "Interrupt all running jobs", @@ -2468,4 +2470,4 @@ "recentReleases": "Recent releases", "helpCenterMenu": "Help Center Menu" } -} \ No newline at end of file +} diff --git a/src/platform/assets/components/MediaAssetFilterBar.vue b/src/platform/assets/components/MediaAssetFilterBar.vue index 0eca412bd..6a0fcdb93 100644 --- a/src/platform/assets/components/MediaAssetFilterBar.vue +++ b/src/platform/assets/components/MediaAssetFilterBar.vue @@ -31,18 +31,26 @@ /> + diff --git a/src/platform/settings/constants/coreSettings.ts b/src/platform/settings/constants/coreSettings.ts index 1de4f0cda..929614811 100644 --- a/src/platform/settings/constants/coreSettings.ts +++ b/src/platform/settings/constants/coreSettings.ts @@ -1139,5 +1139,13 @@ export const CORE_SETTINGS: SettingParams[] = [ type: 'hidden', defaultValue: false, versionAdded: '1.34.1' + }, + { + id: 'Comfy.Queue.QPOV2', + name: 'Queue Panel V2', + type: 'hidden', + tooltip: 'Enable the new Assets Panel design with list/grid view toggle', + defaultValue: false, + experimental: true } ] diff --git a/src/schemas/apiSchema.ts b/src/schemas/apiSchema.ts index 8479f01e7..fc7597c34 100644 --- a/src/schemas/apiSchema.ts +++ b/src/schemas/apiSchema.ts @@ -503,6 +503,7 @@ const zSettings = z.object({ 'Comfy.VueNodes.Enabled': z.boolean(), 'Comfy.VueNodes.AutoScaleLayout': z.boolean(), 'Comfy.Assets.UseAssetAPI': z.boolean(), + 'Comfy.Queue.QPOV2': z.boolean(), 'Comfy-Desktop.AutoUpdate': z.boolean(), 'Comfy-Desktop.SendStatistics': z.boolean(), 'Comfy-Desktop.WindowStyle': z.string(),