Skip to content
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

Implement partial slurs #25883

Merged
merged 9 commits into from
Jan 10, 2025
Merged

Implement partial slurs #25883

merged 9 commits into from
Jan 10, 2025

Conversation

miiizen
Copy link
Contributor

@miiizen miiizen commented Dec 18, 2024

Resolves: #25426

Depends on: #25745

This PR implements partial slurs. Partial slurs are created by first adding a regular slur, then using the shortcut Alt-Shift-left/right to move the selected endpoint to the next barline in that direction. Partial slurs can only be applied where there are appropriate repeat markings.
To add a partial slur to a single chord, select a note from the chord and the preceding/following barline. Add a tie by using the toolbar button or pressing 's'.

Screen.Recording.2024-12-18.at.17.24.07.mov

@miiizen miiizen requested review from oktophonie and bkunda December 18, 2024 17:35
@miiizen miiizen force-pushed the partial-slurs branch 2 times, most recently from 9944367 to bbd42e1 Compare December 20, 2024 11:53
@miiizen miiizen mentioned this pull request Jan 3, 2025
@oktophonie oktophonie added the vtests This PR produces approved changes to vtest results label Jan 8, 2025
@@ -181,7 +181,7 @@ class MeasureBase : public EngravingItem
int index() const;
int measureIndex() const;

bool isBefore(const MeasureBase* other) const;
bool isBefore(const EngravingItem* other) const override;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Personally, I would find it more elegant to keep two separate functions:

bool isBefore(const EngravingItem* other) const override;
bool isBefore(const MeasureBase* other) const;

And if other->isMeasureBase() then the first calls the latter.

@miiizen miiizen merged commit 8ed50c1 into musescore:master Jan 10, 2025
10 of 11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
vtests This PR produces approved changes to vtest results
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement partial spanners over repeats & jumps
3 participants