-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix cross system anchors issues #23343
Fix cross system anchors issues #23343
Conversation
df5af81
to
7b2edfb
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The things this fixed look great, but it looks like this introduced a new issue. Now, arrow key presses with no modifier no longer nudge the full hairpin around, they instead are doing the same thing as when you press shift and hold arrow keys. Also, after pressing an arrow key, the pink anchor lines and striped background layer stay lit up.
Additionally, Cmd + Arrow key has the same behavior of arrow keys on their own as described above.
We've also lost the ability to lengthen a hairpin by an entire measure (previously Shift + arrow left/right). Can we reintroduce that with Cmd + Shift as the modifier?
Screen.Recording.2024-06-24.at.4.59.19.PM.mov
7b2edfb
to
b11725a
Compare
@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 Issue 1 (probably should fix in this PR)Hairpins become uncentered after undo. ![]()
Issue 2 (simple)Already logged #23435 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) Issue 3 (probably not solvable now)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. Issue 4 (more of a philosophical manifesto on how dynamics should move around)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. Current behavior while moving with arrow keys(Expand sections below for gif examples) Dynamic BEFORE hairpin, “Snap to previous” ON, move hairpin with left arrow:Left dynamic only: hairpin and dynamic keep vertical position but hairpin moves over the dynamic (colliding with it)![]() Hairpin on both sides: same as above, but the right side of the hairpin jumps to the right at a certain point Dynamic BEFORE hairpin, "Snap to previous" OFF, move hairpin with left arrow:Left dynamic only: dynamic moves out of the way of the hairpin![]() Hairpin on both sides: same as above, but the right side of the hairpin jumps to the right at a certain point Dynamic AFTER hairpin, "Snap to previous" ON or OFF (it makes no difference), move hairpin with right arrow:Right dynamic only: right edge of hairpin stops moving where the dynamic is, and it starts squishing horizontally![]() Hairpin on both sides: same as above, but the left edge moves away from the first dynamic (compare to when moving the hairpin left, the right edge staying attached to the ending dynamic) Deleting a "squished" dynamic after it's been movedWhen you've moved a hairpin that's been "squished" by an end dynamic, deleting the dynamic will restore the hairpin to its original length before it was moved.![]() Current behavior while moving with mouseIn 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. ![]() Suggested behavior for moving hairpins horizontallyThere are a couple ways to approach this, with more detailed explanations below:
Suggested behavior 1:
Suggested behavior 2:
A note on the "Dynamics + hairpin" objectThere 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. ![]()
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. |
b11725a
to
cfcf1aa
Compare
I crashed this one by doing this:
It also crashes if you put a hairpin at the end of a system and try to drag it to the right. |
cfcf1aa
to
5ff29ac
Compare
Update.
20240704_163239.mp4
|
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.