MuseScore icon indicating copy to clipboard operation
MuseScore copied to clipboard

Fix #25070: support copy-paste in local time signatures

Open Reedbeta opened this issue 3 weeks ago • 0 comments

Resolves: #25070

Support copy/paste in local time signatures, with the restriction that the source and destination ranges must all have the same time stretch ratio. Also enables features like "repeat selection", Alt+drag range copies, and explode which are built on copy/paste internally.

Tested:

  • [x] Tuplets
  • [x] Dynamics etc.
  • [x] Spanners/lines
  • [x] Multiple voices
  • [x] Multiple staves
  • [x] Explode/implode
  • [x] Paste double/half duration
  • [x] Working on the measure before a local time sig change
  • [x] The measure after a local time sig change
  • [x] The last measure

Some other minor changes in this PR:

  • Adds a natvis file for the Visual Studio debugger with visualizers for a few common types such as Fraction.
  • Fixes a handful of debug-only asserts that I ran into.
  • Use the "forbidden" cursor (🚫) when Alt+dragging to a location that you can't drop in (either because of local time signatures or another reason).
  • Setup time ticks properly for local time signatures (so Alt+drag will work).
  • Show error dialogs for explode/implode and repeat-selection when we can't do it due to local time signatures.
  • [x] I signed the CLA
  • [x] The title of the PR describes the problem it addresses
  • [x] Each commit's message describes its purpose and effects, and references the issue it resolves
  • [x] If changes are extensive, there is a sequence of easily reviewable commits
  • [x] The code in the PR follows the coding rules
  • [x] There are no unnecessary changes
  • [x] The code compiles and runs on my machine, preferably after each commit individually
  • [ ] I created a unit test or vtest to verify the changes I made (if applicable)

Reedbeta avatar Dec 02 '25 07:12 Reedbeta