Skip to content

Commit

Permalink
Fix musescore#20146 - issues with home key on slurs/ties
Browse files Browse the repository at this point in the history
  • Loading branch information
wizofaus committed Jun 5, 2024
1 parent 8173087 commit 8b148cd
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 44 deletions.
13 changes: 4 additions & 9 deletions src/engraving/dom/slur.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ static ChordRest* searchCR(Segment* segment, track_idx_t startTrack, track_idx_t

bool SlurSegment::isEditAllowed(EditData& ed) const
{
if (ed.key == Key_Home && !ed.modifiers) {
if (SlurTieSegment::isEditAllowed(ed)) {
return true;
}

Expand Down Expand Up @@ -116,17 +116,12 @@ bool SlurSegment::edit(EditData& ed)
return false;
}

Slur* sl = slur();

if (ed.key == Key_Home && !ed.modifiers) {
if (ed.hasCurrentGrip()) {
ups(ed.curGrip).off = PointF();
renderer()->layoutItem(sl);
triggerLayout();
}
if (SlurTieSegment::edit(ed)) {
return true;
}

Slur* sl = slur();

ChordRest* cr = 0;
ChordRest* e;
ChordRest* e1;
Expand Down
37 changes: 37 additions & 0 deletions src/engraving/dom/slurtie.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,43 @@ SlurTieSegment::SlurTieSegment(const SlurTieSegment& b)
mutldata()->path.set_value(b.ldata()->path());
}

bool SlurTieSegment::isEditAllowed(EditData& ed) const
{
if (ed.key == Key_Home && !ed.modifiers && ed.hasCurrentGrip()) {
return true;
}

return false;
}

//---------------------------------------------------------
// edit
// return true if event is accepted
//---------------------------------------------------------

bool SlurTieSegment::edit(EditData& ed)
{
if (!isEditAllowed(ed)) {
return false;
}

if (ed.key == Key_Home && !ed.modifiers) {
if (ed.hasCurrentGrip()) {
startEditDrag(ed);
if (ed.curGrip == Grip::SHOULDER) {
ups(Grip::BEZIER1).off = PointF();
ups(Grip::BEZIER2).off = PointF();
} else {
ups(ed.curGrip).off = PointF();
}
renderer()->layoutItem(spanner());
endEditDrag(ed);
}
return true;
}
return false;
}

//---------------------------------------------------------
// gripAnchorLines
//---------------------------------------------------------
Expand Down
3 changes: 3 additions & 0 deletions src/engraving/dom/slurtie.h
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,9 @@ class SlurTieSegment : public SpannerSegment
virtual void spatiumChanged(double, double) override;
SlurTie* slurTie() const { return (SlurTie*)spanner(); }

bool isEditAllowed(EditData&) const override;
bool edit(EditData&) override;

void startEditDrag(EditData& ed) override;
void endEditDrag(EditData& ed) override;

Expand Down
33 changes: 0 additions & 33 deletions src/engraving/dom/tie.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,39 +58,6 @@ TieSegment::TieSegment(const TieSegment& s)
{
}

bool TieSegment::isEditAllowed(EditData& ed) const
{
if (ed.key == Key_Home && !ed.modifiers) {
return true;
}

return false;
}

//---------------------------------------------------------
// edit
// return true if event is accepted
//---------------------------------------------------------

bool TieSegment::edit(EditData& ed)
{
if (!isEditAllowed(ed)) {
return false;
}

SlurTie* sl = tie();

if (ed.key == Key_Home && !ed.modifiers) {
if (ed.hasCurrentGrip()) {
ups(ed.curGrip).off = PointF();
renderer()->layoutItem(sl);
triggerLayout();
}
return true;
}
return false;
}

//---------------------------------------------------------
// changeAnchor
//---------------------------------------------------------
Expand Down
2 changes: 0 additions & 2 deletions src/engraving/dom/tie.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,6 @@ class TieSegment final : public SlurTieSegment

bool isEdited() const;
void editDrag(EditData&) override;
bool isEditAllowed(EditData&) const override;
bool edit(EditData&) override;

Tie* tie() const { return (Tie*)spanner(); }

Expand Down

0 comments on commit 8b148cd

Please sign in to comment.