diff --git a/importexport/musicxml/exportxml.cpp b/importexport/musicxml/exportxml.cpp index be82ae8673a3f..3daa6e3875b68 100644 --- a/importexport/musicxml/exportxml.cpp +++ b/importexport/musicxml/exportxml.cpp @@ -6130,6 +6130,7 @@ void MeasureNumberStateHandler::updateForMeasure(const Measure* const m) } // update measure numbers and cache result + _measureNo += m->noOffset(); _cachedAttributes = " number="; if ((_irregularMeasureNo + _measureNo) == 2 && m->irregular()) { _cachedAttributes += "\"0\" implicit=\"yes\""; diff --git a/importexport/musicxml/importmxmlpass2.cpp b/importexport/musicxml/importmxmlpass2.cpp index 9c2b2460ed1e4..4297dc66b91ee 100644 --- a/importexport/musicxml/importmxmlpass2.cpp +++ b/importexport/musicxml/importmxmlpass2.cpp @@ -1969,8 +1969,8 @@ void MusicXMLParserPass2::measure(const QString& partId, const Fraction time) { Q_ASSERT(_e.isStartElement() && _e.name() == "measure"); - //QString number = _e.attributes().value("number").toString(); - //qDebug("measure %s start", qPrintable(number)); + int number = _e.attributes().value("number").toInt(); + //qDebug("measure %d start", number); Measure* measure = findMeasure(_score, time); if (!measure) { @@ -1979,6 +1979,8 @@ void MusicXMLParserPass2::measure(const QString& partId, return; } + measure->setNoOffset(measure->no() - number); + // handle implicit measure if (_e.attributes().value("implicit") == "yes") measure->setIrregular(true);