diff --git a/src/components/sidebar/tabs/AssetsSidebarTab.vue b/src/components/sidebar/tabs/AssetsSidebarTab.vue index 827bd685164..8ed3734a9ef 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 843e9faadeb..6ba9ac2a7b0 100644 --- a/src/composables/useCoreCommands.ts +++ b/src/composables/useCoreCommands.ts @@ -63,7 +63,6 @@ import { useWorkflowTemplateSelectorDialog } from './useWorkflowTemplateSelector const { isActiveSubscription, showSubscriptionDialog } = useSubscription() const moveSelectedNodesVersionAdded = '1.22.2' - export function useCoreCommands(): ComfyCommand[] { const workflowService = useWorkflowService() const workflowStore = useWorkflowStore() @@ -75,6 +74,7 @@ export function useCoreCommands(): ComfyCommand[] { const executionStore = useExecutionStore() const telemetry = useTelemetry() const { staticUrls, buildDocsUrl } = useExternalLink() + const settingStore = useSettingStore() const bottomPanelStore = useBottomPanelStore() @@ -82,6 +82,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 ) => { @@ -1175,6 +1183,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 5e8123885a2..9eaa1ba9801 100644 --- a/src/locales/en/commands.json +++ b/src/locales/en/commands.json @@ -260,6 +260,9 @@ "Comfy_ToggleLinear": { "label": "toggle linear mode" }, + "Comfy_ToggleQPOV2": { + "label": "Toggle Queue Panel V2" + }, "Comfy_ToggleTheme": { "label": "Toggle Theme (Dark/Light)" }, @@ -324,4 +327,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 1953cfb7e9b..8aa56564b8e 100644 --- a/src/locales/en/main.json +++ b/src/locales/en/main.json @@ -718,6 +718,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", @@ -2449,4 +2451,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 0eca412bd39..6a0fcdb9394 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 94d7cf91463..5f54e6ef3e1 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 83c9890a8bf..56b07432d94 100644 --- a/src/schemas/apiSchema.ts +++ b/src/schemas/apiSchema.ts @@ -491,6 +491,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(),