From b60aafc01a462de7ef00208106376aa922bee487 Mon Sep 17 00:00:00 2001 From: Marc Sabatella Date: Tue, 18 Aug 2015 10:15:29 -0600 Subject: [PATCH] fix #73821: toggle rhythmic slash notation does not follow links --- libmscore/cmd.cpp | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/libmscore/cmd.cpp b/libmscore/cmd.cpp index ef65c2dfe0e0a..a45d0c7b9f2ce 100644 --- a/libmscore/cmd.cpp +++ b/libmscore/cmd.cpp @@ -2836,7 +2836,7 @@ void Score::cmdSlashFill() s = setNoteRest(s, track + voice, nv, f); Chord* c = static_cast(s->element(track + voice)); if (c->links()) { - foreach (ScoreElement* e, *c->links()) { + for (ScoreElement* e : *c->links()) { Chord* lc = static_cast(e); lc->setSlash(true, true); } @@ -2870,7 +2870,14 @@ void Score::cmdSlashRhythm() foreach (Element* e, selection().elements()) { if (e->voice() >= 2 && e->type() == Element::Type::REST) { Rest* r = static_cast(e); - r->setAccent(!r->accent()); + if (r->links()) { + for (ScoreElement* e : *r->links()) { + Rest* lr = static_cast(e); + lr->setAccent(!lr->accent()); + } + } + else + r->setAccent(!r->accent()); continue; } else if (e->type() == Element::Type::NOTE) { @@ -2883,7 +2890,14 @@ void Score::cmdSlashRhythm() continue; chords.append(c); // toggle slash setting - c->setSlash(!c->slash(), false); + if (c->links()) { + for (ScoreElement* e : *c->links()) { + Chord* lc = static_cast(e); + lc->setSlash(!lc->slash(), false); + } + } + else + c->setSlash(!c->slash(), false); } } setLayoutAll(true);