Skip to content

[Prototype] Stave sharing layout panel - #35346

Draft
avvvvve wants to merge 8 commits into
musescore:mainfrom
avvvvve:layout-panel-redesign
Draft

avvvvve wants to merge 8 commits into
musescore:mainfrom
avvvvve:layout-panel-redesign

Conversation

@avvvvve

@avvvvve avvvvve commented Oct 21, 2026

Copy link
Copy Markdown

Prototype of new layout panel interactions and UI for stave sharing groups.

@avvvvve
avvvvve force-pushed the layout-panel-redesign branch 2 times, most recently from 9263c58 to b69f25c Compare October 23, 2026 04:56
@avvvvve avvvvve changed the title Stave sharing layout panel [Prototype] Stave sharing layout panel Oct 23, 2026
avvvvve and others added 7 commits October 28, 2026 17:32
Implement the Layout panel redesign (shared staves) in the app, to test how
it looks and feels:

- Header: "Automatically hide all empty staves" and "Combine instruments onto
  shared staves" toggles (the former drives the hideEmptyStaves style, with undo)
- 30px rows with eye / expand / name / cog cells; the cog appears on hover,
  press or selection; staff names line up with their instrument's
- Expanded instruments sit on a rounded card; "Add staff" is a left-aligned button
- Shared-staves groups are drawn as a rounded background around the group header
  and its instruments, with per-row variable heights (the tree stays flat: a
  SHARED_PART row followed by its origin parts). New sharedGroupRole /
  sharedGroupId item properties describe each row's place in a group
- Group states per Figma: combined (filled), not combined (outline), hover /
  pressed / selected shown on the whole group; hovering any row keeps the group
  hovered; groups collapse, and are always open while not combined
- Group header cog opens a placeholder SharedPartSettingsPopup
- Cog popups open to the right of the cog, top-aligned and flush, without an
  arrow, moving up to stay inside the window; the cog shows its accent state
  while its popup is open
- System markings rows use the system markings up/down icons

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Don't create the NotationAutomationController, which crashed when switching
themes after combining instruments onto shared staves. Automation isn't needed
to test the Layout panel redesign; revert this commit to restore it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… in combined groups

- While a row is dragged, its slot shows an accent-outlined placeholder where it
  will drop; the dragged row floats as a fully rounded card at 90% opacity
- In a combined shared-staves group, staff rows' eyes are disabled and show their
  instrument's visibility, like the instrument rows

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rows

- Base staff rows' visibility on the staff's and instrument's own visibility,
  not Staff::show() (which is false while the instrument is combined onto
  shared staves), so staves show as visible after a group's toggle is turned off
- Drop the expanded card's colour on the hovered row, so the hover fill looks
  the same as on a collapsed row

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Parts: no shared staves; instruments shown as without combining; "Combine"
  toggle hidden; only the part's instruments listed until "Show other
  instruments" is clicked (resets when switching parts); instruments not in the
  part can be expanded and show their cog; adding an instrument to a part no
  longer keeps the main score's shared part (it showed nowhere and couldn't be
  hidden)
- Header label ("Main score" / "Part: <name>")
- Drag and drop: group headers move their whole group (collapsed while
  dragged); instruments stay within their group; nothing can be dropped among
  a group's instruments; dropping on a header places rows before/after the
  whole group; dropped rows keep their slot's size
- Group names: instrument name plus the range of their numbers ("Trumpet 1–3")
- Versions menu: group style (filled / outlined), indent grouped instruments
- Strokes in high contrast; outlined groups at 30% font primary
- "Add staff" rows fully clickable; cogs shown on keyboard focus; placeholder
  group settings popup; help popup for empty system markings
- First system markings row has no hover / pressed highlight
- Staff eyes in uncombined groups; expanded card colour dropped on hover;
  4px between instruments in groups; group header cog alignment
- Selection kept in sync after moving rows; clicking blank space deselects

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ions

- Add > Shared stave group: adds an empty group (panel only until an instrument
  is dropped into it), turning on "Combine instruments" if needed; empty groups
  can be moved, and stay (empty) when their last instrument leaves
- Instruments can be dragged into and out of any group (and between groups),
  and dropped beside groups via edge zones; group headers move their whole group
  (also with the up / down buttons), skipping other groups
- Group cog menu: "Ungroup instruments" / "Delete group"
- Right-click menu on selected instruments / system markings: duplicate,
  remove, move to shared stave group (existing or new)
- Joining, leaving and creating groups are each one undoable step
- New notation / engraving operations: create a shared part from parts, add
  parts to / remove a part from a shared part, ungroup, duplicate parts
- Versions menu: group style (filled / filled only when on / outlined),
  indentation (full / half / none), hide disabled eye icons, only show
  settings on hover
- Groups whose toggle is off are always expanded; group toggle tooltip;
  system markings arrows follow their position; drag placeholders and dragged
  groups sized like the group; clicks on disabled controls don't deselect;
  2px between eye and expand buttons

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@avvvvve
avvvvve force-pushed the layout-panel-redesign branch from b19f652 to 5f2781e Compare October 28, 2026 21:49
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants