From 28d8d8772e7cad2e3fe4dede6efb4e6568f22117 Mon Sep 17 00:00:00 2001 From: Niek van den Berg Date: Sun, 19 Apr 2020 12:26:51 +0200 Subject: [PATCH] Fix #291688, Fix: #285855 Solves: #291688 - Time signature change doesn't appear in parts which don't have #285855 - Creating part from voice 2 does not respect key change Used element->tick() instead of segment->rtick() to check whether the element was at the beginning of the measure. --- libmscore/excerpt.cpp | 2 +- mtest/libmscore/parts/tst_parts.cpp | 20 + mtest/libmscore/parts/voices-ref.mscx | 575 +++++++++++++++++++++++--- mtest/libmscore/parts/voices.mscx | 187 +++++++-- 4 files changed, 702 insertions(+), 82 deletions(-) diff --git a/libmscore/excerpt.cpp b/libmscore/excerpt.cpp index e0ce714d6f..80d585ecb5 100644 --- a/libmscore/excerpt.cpp +++ b/libmscore/excerpt.cpp @@ -519,7 +519,7 @@ void Excerpt::cloneStaves(Score* oscore, Score* score, const QList& map, QM for (int track : t) { //Clone KeySig TimeSig and Clefs if voice 1 of source staff is not mapped to a track Element* oef = oseg->element(srcTrack & ~3); - if (oef && (oef->isTimeSig() || oef->isKeySig()) && oef->tick().isZero() + if (oef && (oef->isTimeSig() || oef->isKeySig()) && oseg->rtick().isZero() && !(trackList.size() == (score->excerpt()->parts().size() * VOICES))) { Element* ne = oef->linkedClone(); ne->setTrack(track & ~3); diff --git a/mtest/libmscore/parts/tst_parts.cpp b/mtest/libmscore/parts/tst_parts.cpp index 54d70b60c8..c798610030 100644 --- a/mtest/libmscore/parts/tst_parts.cpp +++ b/mtest/libmscore/parts/tst_parts.cpp @@ -225,6 +225,26 @@ void TestParts::voicesExcerpt() Excerpt::createExcerpt(ex); QVERIFY(nscore); + // + // create second part + // + parts.clear(); + parts.append(score->parts().at(1)); + nscore = new Score(score); + + trackList.clear(); + trackList.insert(8, 0); + + ex = new Excerpt(score); + ex->setPartScore(nscore); + nscore->setExcerpt(ex); + score->excerpts().append(ex); + ex->setTitle(parts.front()->longName()); + ex->setParts(parts); + ex->setTracks(trackList); + Excerpt::createExcerpt(ex); + QVERIFY(nscore); + // nscore->setName(parts.front()->partName()); score->setExcerptsChanged(true); diff --git a/mtest/libmscore/parts/voices-ref.mscx b/mtest/libmscore/parts/voices-ref.mscx index 48f841a2a3..9feadfcb0f 100644 --- a/mtest/libmscore/parts/voices-ref.mscx +++ b/mtest/libmscore/parts/voices-ref.mscx @@ -135,6 +135,8 @@ 100 + + 0 0 @@ -420,9 +422,14 @@ + + + 2 + 4 + measure - 4/4 + 2/4 @@ -435,7 +442,8 @@ - 3/4 + 1 + 1/4 @@ -454,6 +462,16 @@ 11 + + + + + + measure + 2/4 + + + quarter @@ -469,7 +487,8 @@ - -3/4 + -1 + -1/4 @@ -480,19 +499,16 @@ - - - - measure - 4/4 - - + + + 1 + measure - 4/4 + 2/4 @@ -501,6 +517,9 @@ quarter + + accidentalFlat + @@ -531,6 +550,25 @@ 11 + + + + + + + -3 + + + + 4 + 4 + + + measure + 4/4 + + + quarter @@ -542,14 +580,11 @@ - quarter + half - - - measure - 4/4 + quarter @@ -615,15 +650,51 @@ + + + 2 + 4 + measure - 4/4 + 2/4 + + + measure + 2/4 + + + + + + + + 1 + + + + measure + 2/4 + + + + + + + + -3 + + + + 4 + 4 + measure @@ -641,6 +712,7 @@ 4 + measure 4/4 @@ -684,6 +756,7 @@ + measure 4/4 @@ -740,10 +813,24 @@ - - measure - 4/4 - + + + half + + + 55 + 15 + + + + + half + + + 55 + 15 + + @@ -788,10 +875,20 @@ - - measure - 4/4 - + + + 2 + 4 + + + + half + + + 59 + 19 + + @@ -805,7 +902,8 @@ - 3/4 + 1 + 1/4 @@ -824,6 +922,19 @@ 15 + + + + + + + measure + 2/4 + + + + + quarter @@ -839,7 +950,8 @@ - -3/4 + -1 + -1/4 @@ -853,9 +965,14 @@ + + + 1 + + measure - 4/4 + 2/4 @@ -896,6 +1013,28 @@ 15 + + + + + + + -3 + + + + 4 + 4 + + + + measure + 4/4 + + + + + quarter @@ -905,6 +1044,10 @@ 15 + + + half + quarter @@ -1418,6 +1561,12 @@ + + + + 2 + 4 + @@ -1435,7 +1584,8 @@ - 3/4 + 1 + 1/4 @@ -1466,6 +1616,10 @@ 11 + + + + @@ -1493,7 +1647,8 @@ - -3/4 + -1 + -1/4 @@ -1508,20 +1663,14 @@ - - - - - 1 - - - measure - 4/4 - - + + + + 1 + @@ -1535,6 +1684,9 @@ 1 + + accidentalFlat + @@ -1577,6 +1729,21 @@ 11 + + + + + + + + -3 + + + + + 4 + 4 + @@ -1600,18 +1767,15 @@ 1 - quarter + half - - 1 - measure - 4/4 + quarter @@ -1687,16 +1851,58 @@ + + + + 2 + 4 + measure - 4/4 + 2/4 + + + + measure + 2/4 + + + + + + + + + 1 + + + + + measure + 2/4 + + + + + + + + + -3 + + + + + 4 + 4 + @@ -1771,6 +1977,8 @@ 100 + + @@ -2029,6 +2237,12 @@ + + + + 2 + 4 + @@ -2046,7 +2260,8 @@ - 3/4 + 1 + 1/4 @@ -2077,6 +2292,10 @@ 15 + + + + @@ -2104,7 +2323,8 @@ - -3/4 + -1 + -1/4 @@ -2122,6 +2342,11 @@ + + + + 1 + @@ -2177,6 +2402,21 @@ 15 + + + + + + + + -3 + + + + + 4 + 4 + @@ -2194,6 +2434,14 @@ 15 + + + + 3 + + + half + @@ -2207,5 +2455,234 @@ Trombone + + + + 0 + 480 + + 1 + 1 + 1 + 0 + Trombone + + + 3 + + stdNormal + + F + + Trombone + + Trombone + Tbn. + Trombone + 35 + 74 + 35 + 70 + brass.trombone + F + + 100 + 100 + + + 100 + 33 + + + 100 + 50 + + + 100 + 67 + + + 100 + 100 + + + 120 + 67 + + + 120 + 100 + + + + + + + + + + + 10 + + + -2 + + + + + + -2 + + + + voices + + + + Trombone + + + + + + + + 4 + 4 + + + + + measure + 4/4 + + + + + 2 + + + + -2 + + 4 + 4 + + + measure + 8/4 + + + + + + + + + measure + 4/4 + + + + + + + + + half + + + + 55 + 15 + + + + + + half + + + + 55 + 15 + + + + + + + + + + 2 + 4 + + + + + half + + + + 59 + 19 + + + + + + + + + + measure + 2/4 + + + + + + + + + 1 + + + + + measure + 2/4 + + + + + + + + + -3 + + + + + 4 + 4 + + + + + measure + 4/4 + + + + + Trombone + diff --git a/mtest/libmscore/parts/voices.mscx b/mtest/libmscore/parts/voices.mscx index 485cfb60f8..dc69ccbf08 100644 --- a/mtest/libmscore/parts/voices.mscx +++ b/mtest/libmscore/parts/voices.mscx @@ -81,6 +81,11 @@ 0 2 + + + 0 + 1 + @@ -130,6 +135,8 @@ 100 + + 0 0 @@ -268,7 +275,7 @@ quarter - + 2 63 @@ -278,7 +285,7 @@ quarter - articAccentAbove + articAccentBelow 63 @@ -298,7 +305,7 @@ 11 7 - + measure @@ -368,9 +375,13 @@ + + 2 + 4 + measure - 4/4 + 2/4 @@ -381,7 +392,8 @@ - 3/4 + 1 + 1/4 @@ -397,6 +409,16 @@ 11 + + + + + + measure + 2/4 + + + quarter @@ -409,7 +431,8 @@ - -3/4 + -1 + -1/4 @@ -419,24 +442,24 @@ - - - measure - 4/4 - - + + 1 + measure - 4/4 + 2/4 quarter + + accidentalFlat + @@ -464,6 +487,23 @@ 11 + + + + + + -3 + + + 4 + 4 + + + measure + 4/4 + + + quarter @@ -472,13 +512,10 @@ - quarter + half - - - measure - 4/4 + quarter @@ -534,14 +571,44 @@ + + 2 + 4 + measure - 4/4 + 2/4 + + measure + 2/4 + + + + + + + 1 + + + measure + 2/4 + + + + + + + -3 + + + 4 + 4 + measure 4/4 @@ -618,7 +685,7 @@ quarter - + 2 43 @@ -628,7 +695,7 @@ quarter - articAccentAbove + articAccentBelow 43 @@ -639,10 +706,20 @@ - - measure - 4/4 - + + half + + 55 + 15 + + + + half + + 55 + 15 + + @@ -679,10 +756,17 @@ - - measure - 4/4 - + + 2 + 4 + + + half + + 59 + 19 + + @@ -694,7 +778,8 @@ - 3/4 + 1 + 1/4 @@ -710,6 +795,18 @@ 15 + + + + + + measure + 2/4 + + + + + quarter @@ -722,7 +819,8 @@ - -3/4 + -1 + -1/4 @@ -735,9 +833,12 @@ + + 1 + measure - 4/4 + 2/4 @@ -773,6 +874,25 @@ 15 + + + + + + -3 + + + 4 + 4 + + + measure + 4/4 + + + + + quarter @@ -780,6 +900,9 @@ 15 + + half + quarter