Open mike-spa opened 1 week ago
@avvvvve done!
First off, apologies for how long this is but I've been doing a lot of fiddling with this PR the past couple days! Issues 1 and 2 are probably addressable in this PR, but the rest can be logged as separate issues/debated philosophically. @mike-spa @oktophonie @bkunda
Hairpins become uncentered after undo.
When double-clicking onto a dynamic to edit its text field, the entry cursor line is too tall now (first screenshot is this PR, second is 4.3)
Interacting with the "Snap to next/previous" toggles in properties makes it impossible to move hairpins with arrow keys until they are selected again since focus has now moved to the properties panel.
How should horizontally moving a hairpin with dynamics snapped to its end(s) behave when snapping is turned on or off? Specifically talking about moving the entire hairpin without using the shift modifier.
(Expand sections below for gif examples)
In 4.3, if you click and drag an entire hairpin (i.e. using the middle handle), it would re-anchor to whatever beats it was closest to. You could prevent re-anchoring while dragging left/right by holding Cmd (Mac) after beginning the drag. Now in the PR, there’s no way to re-anchor while dragging, unless you use the handles. That could be desirable, but we should note the change on release.
Also in the PR, try dragging a hairpin that has a dynamic at the end of it to the right of the dynamic. When released, it will get really small (regardless of the state of the snapping toggles). It should just stay the same size when dragged around.
There are a couple ways to approach this, with more detailed explanations below:
There are a few pre-4.4 ways of appending or prepending a dynamic to a hairpin, all which utilize the text tab of Hairpin properties.
Add a hairpin, then with it selected add a dynamic from palettes. This adds “End text” to the hairpin, which uses some text syntax. Here, the dynamic and hairpin are a single element: when the hairpin is moved, the dynamic is moved.
The other way is to add the “Dynamic + hairpin” palette element. This palette element is still available in 4.4, but it is still utilizing this “old” way of adding a hairpin/dynamic combo. Perhaps instead, it should add separate hairpin and dynamic elements so that they can be unsnapped and snapped using the new properties.
Also, the palette only accounts for adding a dynamic followed by a hairpin. We could also include palette items for 1. hairpin followed by dynamic and 2. dynamic + hairpin + dynamic. OR, we could just get rid of these elements altogether since the GSoC project will make adding dynamics and hairpins in-score significantly easier.
"Issue 2" is also known as #23435, and I really hope it is not yet another Qt 6 issue.
Resolves: #23327
This PR resolves points 1-3 of the related issue. Namely:
This PR doesn't attempt to solve point 4, i.e. dragging items to a different system, because that's something that's always been a jankfest in Musescore so it needs separate work. But also because dragging an item like that is a criminal offense sanctioned by every country in the United Nations.