-
Notifications
You must be signed in to change notification settings - Fork 2.8k
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
GSoC '24 - Dynamics Popup - Part 2 #24147
GSoC '24 - Dynamics Popup - Part 2 #24147
Conversation
5b13c6f
to
b11c56f
Compare
While testing, I noticed a hiccup in how I designed the "press shift to swap hairpin direction" functionality. Screen.Recording.2024-10-22.at.6.57.26.PM.movI didn't account for this in the design, thus the shift-to-swap-direction behavior was built as a toggle: press AND release shift to swap direction while dragging. It strikes me that only allowing swapping the hairpin direction while dragging is pretty limiting. What if I just want to swap the direction without changing its position? It would be simpler to just have a shortcut for "mirroring" a hairpin when it's selected. We already have the shortcut "Mirror notehead" defined as Shift + X. We could extend this shortcut to apply to hairpins and rename it as such, something like "Mirror element (noteheads; hairpins)". If this would be useful for other element types we could make them work with this shortcut too. A downside of doing this would mean that if you have a range selection containing noteheads and hairpins, and want to mirror noteheads but not hairpins, you'd have to deselect the hairpins first. Seems like an uncommon scenario though. @bkunda @oktophonie @cbjeukendrup Let me know what you think of that change! |
@avvvvve Perhaps we could call this new command "Flip horizontally" and rename the old one to "Flip vertically". That's perhaps a bit more abstract but therefore also a bit more general. |
@cbjeukendrup Actually we already have both shortcuts, but they do specific things:
You're right that we lose some specificity with "Flip vertically" and "Flip horizontally" but I think it would make more sense to do that than to have several shortcuts for flipping different types of objects. We'll just have to make sure it's documented properly in the handbook. |
You probably realize this, but just in case: the "flip vertical" command ("X") isn't just for note stems, but also flips text and articulations from above the staff to below or vice versa. |
b11c56f
to
d4c070e
Compare
Rebased. |
This is really coming together! Excellent stuff. What's left to implement before this feature is done? I recall quite a few things we included in the design stage but unsure of the final scope agreed upon for the first release. For example:
|
@Tantacrul They are implemented in the 3rd part of my pull request: #24152 |
Amazing! Can't wait to try it all out when everything is rebased / built. Thanks so much for this wonderful contribution! |
55d4420
to
30d7bc1
Compare
@cbjeukendrup @ketgg Issues since rebase & the addition of typing to add dynamics: These issues are also present in Dynamics Popup - Part 3 Issue 1: Adding dynamics from palette dynamics-handles-dragclick.movIssue 2: Crash when dragging handle
It seems to only crash if those are the very first steps you do in a new score. dynamics-handle-crash.movAlso, as discussed above, holding shift to flip the direction of the hairpin while dragging results in some strange behavior. I'd suggest we remove that functionality from this PR, and later in a separate PR we can add the ability to flip a hairpin horizontally via a new shortcut. I'll log an issue for that. |
30d7bc1
to
305a795
Compare
- Fix crash when the created hairpin has a length of zero ticks; in that case, it wouldn't have any HairpinSegments. - Now, the `Hairpin` is only created at the moment that we're certain it will be added to the score, fixing a potentially somewhat significant memory leak. - Now, it is also possible to create a hairpin that spans to the next or previous system.
99fcfe6
to
4d9efc0
Compare
@avvvvve All points should be resolved now! |
One little point: It would be nice if the user didn't have to deselect then reselect the dynamic for the drag handles to appear. Is it possible to make them appear concurrently with the input text box, or alternatively after pressing ESC? GMT20250122-001708_Clip_Bradley.Kunda.s.Clip.01_22_2025.mp4 |
Merging this "as is" as discussed; let's move on to part 3 |
@cbjeukendrup awesome! btw: can you keep me posted about this popup and the copying and pasting work, which I can see you are actively working on also? Want to keep testing and weighing in on both. Cheers! |
This is the second part of the main pull request: #23038, which adds drag handles to dynamic to create hairpins and the shift key functionality to change hairpin type while dragging.
PR for part 1 is here: #24125