- Settings → Media tab now shows per-folder image/audio counts, skipped subfolders, skipped files, and a rescan button. listClipart hard-skips subdirectories and unsupported file extensions, returning a skip report the panel renders. - Empty-click anywhere — chrome, bare stage, empty timeline tracks — clears the full selection (layers, clip instances, keyframes) via a shared useDeselectAll helper. shouldChromeClickDeselect() splits exclusions into interactive elements, overlays, editing panels and timeline selection elements so empty timeline space deselects too.
18 lines
664 B
TypeScript
18 lines
664 B
TypeScript
import { useKfSelection } from '@/composables/useKfSelection'
|
|
import { useSceneStore } from '@/stores/scene'
|
|
|
|
/** Clear every selection-like piece of UI state in one shot — layers,
|
|
* clip instances, and timeline keyframes. Called from every "empty
|
|
* click" surface (chrome, empty stage, empty timeline) so the gesture
|
|
* carries the same meaning everywhere instead of each surface only
|
|
* clearing its own slice. */
|
|
export function useDeselectAll() {
|
|
const store = useSceneStore()
|
|
const { selectedKfs } = useKfSelection()
|
|
return function deselectAll() {
|
|
store.selectLayer(null)
|
|
store.selectClipInstance(null)
|
|
selectedKfs.value = []
|
|
}
|
|
}
|