3.0 KiB
3.0 KiB
phase, plan, subsystem, tags, dependency_graph, tech_stack, key_files, decisions, metrics
| phase | plan | subsystem | tags | dependency_graph | tech_stack | key_files | decisions | metrics | |||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| quick-16 | 01 | frontend/keyboard-shortcuts |
|
|
|
|
|
|
Quick Task 16: Add Ctrl+A Hotkey to Multi-Select Views
SelectionController.selectAll() method with shortcut:select-all CustomEvent broadcast to track-list, queue-panel, and playlist-view
What Changed
Task 1: Add selectAll() to SelectionController and change app.selectAll dispatch
Commit: f567762
- Added
selectAll()method toSelectionControllerthat iterates all host items viagetItemCount()/getItemKey()and builds a complete selection set - Includes early-return guard when all items are already selected (prevents redundant updates)
- Sets
lastSelectedIndexto the last item for consistent shift-click behavior after select-all - Changed
app.selectAlldispatch fromdocument.execCommand('selectAll')(browser text selection) todocument.dispatchEvent(new CustomEvent('shortcut:select-all'))following the existing shortcut event pattern
Task 2: Wire select-all event listener in track-list, queue-panel, and playlist-view
Commit: 906ea28
- Added
handleSelectAllarrow method to all three components callingthis.selection.selectAll() - Registered
shortcut:select-allevent listener inconnectedCallback()and cleaned up indisconnectedCallback()for all three components - All three components may respond simultaneously but this is harmless — empty/inactive panels have 0 items and the selectAll early-return guard triggers immediately
Deviations from Plan
None — plan executed exactly as written.
Verification Results
| Check | Result |
|---|---|
TypeScript compilation (tsc --noEmit) |
Pass |
Lint (make lint) |
Pass (0 issues) |
| Pre-commit hooks | Pass (frontend-typecheck) |
Commits
| Task | Commit | Description |
|---|---|---|
| 1 | f567762 |
Add selectAll() to SelectionController and dispatch shortcut:select-all event |
| 2 | 906ea28 |
Wire shortcut:select-all listener in track-list, queue-panel, and playlist-view |