fix #40036: Tremolo through stem on grace note all eighths in 1.3 score

This commit is contained in:
lasconic 2014-11-28 19:56:09 +01:00
parent 05939ea41d
commit c61c9aee68
2 changed files with 21 additions and 17 deletions

View file

@ -1854,20 +1854,6 @@ void Measure::read(XmlReader& e, int staffIdx)
chord->read(e);
segment = getSegment(Segment::Type::ChordRest, e.tick());
if (chord->noteType() != NoteType::NORMAL)
graceNotes.push_back(chord);
else {
segment->add(chord);
Q_ASSERT(segment->segmentType() == Segment::Type::ChordRest);
for (int i = 0; i < graceNotes.size(); ++i) {
Chord* gc = graceNotes[i];
gc->setGraceIndex(i);
chord->add(gc);
}
graceNotes.clear();
int crticks = chord->actualTicks();
if (chord->tremolo() && chord->tremolo()->tremoloType() < TremoloType::R8) {
//
// old style tremolo found
@ -1884,6 +1870,27 @@ void Measure::read(XmlReader& e, int staffIdx)
case TremoloType::OLD_C32: st = TremoloType::C32; break;
}
tremolo->setTremoloType(st);
if (!tremolo->twoNotes())
tremolo->setParent(chord);
}
if (chord->noteType() != NoteType::NORMAL)
graceNotes.push_back(chord);
else {
segment->add(chord);
Q_ASSERT(segment->segmentType() == Segment::Type::ChordRest);
for (int i = 0; i < graceNotes.size(); ++i) {
Chord* gc = graceNotes[i];
gc->setGraceIndex(i);
chord->add(gc);
}
graceNotes.clear();
int crticks = chord->actualTicks();
if (chord->tremolo() && chord->tremolo()->tremoloType() < TremoloType::R8) {
// old style tremolo found
Tremolo* tremolo = chord->tremolo();
if (tremolo->twoNotes()) {
int track = chord->track();
Segment* ss = 0;
@ -1914,9 +1921,6 @@ void Measure::read(XmlReader& e, int staffIdx)
}
crticks /= 2;
}
else {
tremolo->setParent(chord);
}
}
lastTick = e.tick();
e.incTick(crticks);