feat: dock editor panels and add resizable pinned track headers
This commit is contained in:
parent
73e8bf09dc
commit
ae8556d83f
13 changed files with 346 additions and 87 deletions
|
|
@ -169,9 +169,10 @@ Space and menu playback shortcuts work from either floating panel, with normal
|
|||
numeric/text editing protection. Closing the main window closes all panels only
|
||||
after the existing unsaved/recording/backend shutdown checks succeed.
|
||||
|
||||
Window detachment and positions are session-only; startup uses the docked layout.
|
||||
The floating transport is a wide toolbar (minimum 1220 pixels); the floating
|
||||
mixer resizes down to 600 × 420 and retains horizontal track scrolling.
|
||||
The initial Phase 39 layout used session-only positions and a transport minimum
|
||||
width of 1220 pixels. Phase 45 below adds saved layouts and transport wrapping
|
||||
down to 400 pixels. The floating mixer resizes down to 600 × 420 and retains
|
||||
horizontal track scrolling.
|
||||
|
||||
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.
|
||||
|
|
@ -193,3 +194,39 @@ 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.
|
||||
|
||||
## Phase 46 editor panels and pinned track headers
|
||||
|
||||
**View → Detach sequencer** and **Detach modular graph** float each complete
|
||||
editor, including its toolbar and scroll area. Its main tab offers Show and Dock
|
||||
buttons. Closing the floating window docks it; View shortcuts also raise floating
|
||||
editors. Supported dock locations are their original main-window tabs; arbitrary
|
||||
split regions, tab reordering and drag-to-dock are not implemented. Sequencer
|
||||
minimum floating size is 1100 × 420; Graph is 1000 × 420.
|
||||
|
||||
The Piano roll now also has a main-window tab. Select a MIDI clip and open it as
|
||||
before. **View → Float piano roll** switches its existing widgets between the tab
|
||||
and a floating window; closing the floating window docks it. The tab's Open
|
||||
selected MIDI clip button opens the current selection. Default floating behavior
|
||||
is retained for older preferences. A missing/invalid MIDI selection is reported.
|
||||
All panels share project/history, preserve editor selections and scroll offsets,
|
||||
and retain playback shortcuts and text-input protection.
|
||||
|
||||
**View → Dock all panels** includes all editors. **Reset workspace layout** docks
|
||||
all panels, restores default floating rectangles and resets header width. Use
|
||||
Preferences / Apply to persist either result. Editor dock state, floating window
|
||||
rectangles and header width use the same validated settings/restore path as the
|
||||
transport/mixer. Piano content opens lazily for the selected MIDI clip; startup
|
||||
does not invent a clip or save a project-specific selection in application settings.
|
||||
|
||||
Arrangement track headers and instrument selectors now stay pinned during
|
||||
horizontal scrolling. Drag the divider within the header's final five pixels to
|
||||
resize from 180 to 360 pixels; Escape cancels the drag. Clip timing coordinates,
|
||||
snap and horizontal scrolling use the resized origin. Header layout is a UI
|
||||
preference, not an undoable project edit. Vertical scrolling remains shared with
|
||||
the track rows. Clips covered by the pinned header cannot be selected through it.
|
||||
|
||||
GUI regressions cover repeated detach/dock and close-to-dock, toolbar ownership,
|
||||
minimum/large resize, shared model/note/clip selection, scrolling, header dragging,
|
||||
short-clip hit tests, Apply/restart, reset layout and failed/successful shutdown.
|
||||
ASan/UBSan checks retain only the existing system Fontconfig leak suppression.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue