feat: dock editor panels and add resizable pinned track headers

This commit is contained in:
Johannes Findeisen 2026-11-06 00:06:56 +01:00
commit ae8556d83f
13 changed files with 346 additions and 87 deletions

View file

@ -1065,9 +1065,9 @@ track in other views. Command search lists active menu actions; it is not a
plugin scanner or a key-binding editor. See WORKSPACE.md.
### Future usability work
Dockable editor panels, arrangement multiselection, independent track inserts,
resizable pinned track headers and customizable shortcuts remain future work.
They require separate model/layout designs and acceptance tests.
Arrangement multiselection, independent track inserts and customizable shortcuts
remain future work. Dockable editor panels and resizable pinned track headers
are implemented in Phase 46.
---
@ -1099,10 +1099,9 @@ keys/delay project round trip. Shared GUI tests cover instrument selection,
history and plugin editing, but do not constitute a dedicated end-to-end matrix
for all four internal devices. Additional qualification is tracked in Phase 40.
Missing extensions: editable instrument parameters/presets, pitch bend, sample
instruments, click-free/tempo-synced delay, stereo reverb/diffusion, explicit seek
history policy and automatic tail rendering. These are planned in Phases 41–44;
they are not part of the checked initial subset. See
The initial subset lacked editable presets, pitch bend, sample instruments,
smooth/tempo-synced delay, stereo reverb, seek history policy and automatic tails.
These audit gaps are addressed by Phases 41–44 below. See
[BUILTIN_DEVICES.md](BUILTIN_DEVICES.md) for controls and explicit limitations.
---
@ -1128,10 +1127,9 @@ detach/dock, close-to-dock, shared BPM/loop state, floating playback shortcuts,
main/floating resizing and failed/successful shutdown. Floating screenshots are
listed in [screenshots/README.md](../screenshots/README.md).
Layout and window positions are session-only. The floating transport requires
1220 pixels of width; mixer minimum size is 600 × 420. Other editors cannot be
detached, and general dock layouts are absent. Persistence, compact transport
and additional panels are tracked in Phases 45–46. See
The original subset used session-only positions, a 1220-pixel transport and
only two detachable panels. Phases 45–46 add persisted geometry, a compact
transport and editor panels. Mixer minimum remains 600 × 420. See
[WORKSPACE.md](WORKSPACE.md) for usage and limits.
### Audit validation (Phases 38–39)
@ -1282,17 +1280,35 @@ The full-window minimum is unchanged. See WORKSPACE.md and PREFERENCES.md.
Extend Phase 39's two-panel arrangement to a general editor workspace.
### Tasks and acceptance criteria
- [ ] Define supported dock locations and layout ownership for sequencer, piano roll and modular graph panels.
- [ ] Detach/dock each supported editor without duplicating project, selection or history state.
- [ ] Support resizable pinned track headers and preserve editing coordinates, scrolling and focus after reparenting.
- [ ] Integrate with Phase 45 layout persistence and provide a safe reset-layout action.
- [ ] Verify minimum/large layouts, cross-panel editing, repeated reparenting and shutdown/error paths.
- [x] Define supported dock locations and layout ownership for sequencer, piano roll and modular graph panels.
- [x] Detach/dock each supported editor without duplicating project, selection or history state.
- [x] Support resizable pinned track headers and preserve editing coordinates, scrolling and focus after reparenting.
- [x] Integrate with Phase 45 layout persistence and provide a safe reset-layout action.
- [x] Verify minimum/large layouts, cross-panel editing, repeated reparenting and shutdown/error paths.
### Implementation status
Planned. Phase 39 only detaches transport and mixer; broader docking and
resizable pinned headers from Phase 37 remain outstanding. These follow-up
phases cover gaps found in Phases 38–39 and their documented limitations;
unrelated outstanding features in earlier phases retain their existing status.
Implemented: complete Sequencer/Graph panels and Piano Roll reparent between
floating windows and their main tabs, with shared model/history/selection and
preserved scroll positions. Validated preferences persist layouts; reset docks
panels and restores default rectangles. Arrangement headers/selectors stay pinned
and resize from 180 to 360 pixels. Supported docking is explicitly limited to
original tabs; arbitrary split layouts and drag docking are future extensions.
Core/settings, GUI lifecycle/editing/restart and integrated checks are recorded
below. See WORKSPACE.md and PREFERENCES.md.
---
### Integrated validation for Phases 40–46
Each phase was built and tested before its separate implementation commit.
Core/reliability tests cover devices, migration, persistence, DSP partitions,
transport history and export. GUI tests cover editing, shared state and panel
lifecycle; CLAP/VST2/VST3/LADSPA fixture and live software JACK suites retain the
existing workflows. Sanitizers cover built-in DSP/export and GUI lifetimes;
static analysis and staged installation check the final integrated changes.
Human listening, arbitrary third-party plugins and physical hardware remain
unqualified. Listening WAV generation and manual procedures are documented in
BUILTIN_DEVICES.md. Application project format is now 15, reading versions 1–14.
---