feat: persist floating panel layouts and wrap the compact transport
This commit is contained in:
parent
836cdedc6b
commit
73e8bf09dc
9 changed files with 149 additions and 13 deletions
|
|
@ -71,3 +71,8 @@ Phase 44 adds `[transport] tail_ms=3000` (0..60000) and
|
|||
`stop_after_tail=0` (0/1). Export always includes the configured tail; optional
|
||||
playback stopping uses the GUI timer and is disabled during looping/recording.
|
||||
See BUILTIN_DEVICES.md for endpoint, cancellation and reset semantics.
|
||||
|
||||
Phase 45 adds `[interface] transport_detached`, `mixer_detached`, and each
|
||||
panel's `_x`, `_y`, `_width`, `_height` rectangle. Use Preferences / Apply after
|
||||
moving panels to save the captured layout. Restoration clamps rectangles to the
|
||||
current display; the floating transport wraps at narrow widths.
|
||||
|
|
|
|||
|
|
@ -1261,14 +1261,18 @@ External-plugin history remains retained. See BUILTIN_DEVICES.md for limits.
|
|||
Retain useful floating layouts across sessions and support narrower displays.
|
||||
|
||||
### Tasks and acceptance criteria
|
||||
- [ ] Persist docked/floating state and panel geometry through the application preferences workflow.
|
||||
- [ ] Restore layouts safely when monitors or display sizes change; keep all panels reachable.
|
||||
- [ ] Provide a compact/responsive floating transport while retaining BPM, loop and playback controls.
|
||||
- [ ] Preserve close-to-dock, Dock all, shortcuts, editing focus protection and safe shutdown.
|
||||
- [ ] Test restart, invalid settings, off-screen geometry, narrow sizes and repeated dock/resize cycles.
|
||||
- [x] Persist docked/floating state and panel geometry through the application preferences workflow.
|
||||
- [x] Restore layouts safely when monitors or display sizes change; keep all panels reachable.
|
||||
- [x] Provide a compact/responsive floating transport while retaining BPM, loop and playback controls.
|
||||
- [x] Preserve close-to-dock, Dock all, shortcuts, editing focus protection and safe shutdown.
|
||||
- [x] Test restart, invalid settings, off-screen geometry, narrow sizes and repeated dock/resize cycles.
|
||||
|
||||
### Implementation status
|
||||
Planned. Phase 39 starts docked each session and its transport minimum is 1220 pixels.
|
||||
Implemented: validated panel preferences, geometry capture on Preferences/Apply,
|
||||
safe display-area restoration and a wrapping floating transport down to 400
|
||||
pixels. Core/settings and GUI tests pass, including restart, invalid geometry,
|
||||
off-screen clamping, narrow control bounds and existing dock/lifecycle checks.
|
||||
The full-window minimum is unchanged. See WORKSPACE.md and PREFERENCES.md.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -177,3 +177,19 @@ Verified with `make BUILD_DIR=build/phase39 gui test-gui test-gui-instruments
|
|||
test-gui-jack` (one line), plus the GUI suite under AddressSanitizer/UBSan.
|
||||
Tests cover repeated reparenting, close-to-dock, resize, shared BPM/loop state,
|
||||
playback shortcuts, failed shutdown and cleanup.
|
||||
|
||||
## Phase 45 saved panel layouts
|
||||
|
||||
Preferences / Apply now saves transport/mixer dock state and window rectangles.
|
||||
Open Preferences after arranging the windows to capture their current positions.
|
||||
Closing the application alone does not save preferences. Startup restores the
|
||||
saved layout; off-screen rectangles are clamped to an available display's work
|
||||
area. Invalid dimensions are rejected transactionally by the settings reader.
|
||||
|
||||
The floating transport supports widths down to 400 pixels. Controls wrap into
|
||||
rows below 1220 pixels, retaining playback, BPM, loop and navigation actions;
|
||||
its height grows as necessary to keep every control available. Docking restores
|
||||
the wide toolbar and arrangement geometry. Mixer minimum remains 600 × 420.
|
||||
Existing close-to-dock, Dock all and shortcuts retain their shared widget state.
|
||||
Tests cover narrow control bounds, save/restart, off-screen restoration, invalid
|
||||
geometry, repeated docking/resizing and shared transport state.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue