diff --git a/src/views/LibraryView.vue b/src/views/LibraryView.vue index 7acd1be..f1f3e09 100644 --- a/src/views/LibraryView.vue +++ b/src/views/LibraryView.vue @@ -330,10 +330,10 @@ {{ vlmSummaryLabel(ctxMenuFile?.file_uuid) }} -
+
{{ sceneVlmIcon(ctxMenuFile?.file_uuid) }} - {{ sceneVlmLabel(ctxMenuFile?.file_uuid) }} + {{ sceneVlmLabel(ctxMenuFile?.file_uuid) }}
@@ -1307,6 +1307,11 @@ function sceneVlmStats(fileUuid: string | undefined) { return getFileStats(fileUuid)?.scene_vlm || null } +function hasSceneVlm(fileUuid: string | undefined): boolean { + const s = sceneVlmStats(fileUuid) + return s !== null && s.total_scenes > 0 +} + function sceneVlmClass(fileUuid: string | undefined): string { const s = sceneVlmStats(fileUuid) if (!s || s.total_scenes === 0) return '' @@ -1323,7 +1328,8 @@ function sceneVlmIcon(fileUuid: string | undefined): string { function sceneVlmLabel(fileUuid: string | undefined): string { const s = sceneVlmStats(fileUuid) - if (!s || s.total_scenes === 0) return '' + if (!s) return '—' + if (s.total_scenes === 0) return '—' return `(${s.total_scenes})` } @@ -2297,6 +2303,8 @@ function resetFilters() { .ms-proc-line { display: flex; align-items: center; } .ms-face-th-input { margin-left: auto; width: 90px; padding: 4px 8px; border: 1px solid var(--border); border-radius: 6px; font-size: 13px; color: var(--text-primary); background: var(--bg-card); } .ms-proc-count { margin-left: 4px; font-size: 11px; color: var(--text-secondary); } +.ms-proc-clickable { cursor: pointer; text-decoration: underline; } +.ms-proc-clickable:hover { color: var(--primary-color); } .ms-fm-progress { position: relative; height: 20px; background: var(--border-light); border-radius: 4px; margin-top: 4px; overflow: hidden; } .ms-fm-progress-bar { height: 100%; background: linear-gradient(90deg, var(--primary-color), #4285f4); border-radius: 4px; transition: width 0.3s; } .ms-fm-progress-bar.indeterminate { width: 100%; background: linear-gradient(90deg, transparent, var(--primary-color), #4285f4, transparent); background-size: 200% 100%; animation: shimmer 1.5s infinite; }