fix #81451: [Capella Import] corrupt file when importing capx file with pickup measure
This commit is contained in:
parent
7b6c0540b2
commit
99c15fdccd
1 changed files with 11 additions and 2 deletions
|
@ -849,11 +849,20 @@ static int readCapVoice(Score* score, CapVoice* cvoice, int staffIdx, int tick,
|
||||||
SigEvent ne(f);
|
SigEvent ne(f);
|
||||||
if (!(se == ne))
|
if (!(se == ne))
|
||||||
score->sigmap()->add(tick, ne);
|
score->sigmap()->add(tick, ne);
|
||||||
|
|
||||||
|
// do not add timesig again
|
||||||
|
Measure* m = score->getCreateMeasure(tick);
|
||||||
|
Segment* s = m->findSegment(Segment::Type::TimeSig, tick);
|
||||||
|
if (s) {
|
||||||
|
Element* e = s->element(trackZeroVoice(track));
|
||||||
|
if (e && static_cast<TimeSig*>(e)->sig() == f)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
TimeSig* ts = new TimeSig(score);
|
TimeSig* ts = new TimeSig(score);
|
||||||
ts->setSig(f);
|
ts->setSig(f);
|
||||||
ts->setTrack(track);
|
ts->setTrack(track);
|
||||||
Measure* m = score->getCreateMeasure(tick);
|
s = m->getSegment(Segment::Type::TimeSig, tick);
|
||||||
Segment* s = m->getSegment(Segment::Type::TimeSig, tick);
|
|
||||||
s->add(ts);
|
s->add(ts);
|
||||||
m->setLen(f);
|
m->setLen(f);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue