diff --git a/libmscore/layout.cpp b/libmscore/layout.cpp index 0b36999e7a3b..351431bf3418 100644 --- a/libmscore/layout.cpp +++ b/libmscore/layout.cpp @@ -1835,13 +1835,15 @@ void Score::createMMRests() int track = staffIdx * VOICES; TimeSig* ts = static_cast(cs->element(track)); if (ts) { - if (ns->element(track) == 0) { - TimeSig* nts = ts->clone(); + TimeSig* nts = static_cast(ns->element(track)); + if (!nts) { + nts = ts->clone(); nts->setParent(ns); undo(new AddElement(nts)); } else { - //TODO: check if same time signature + nts->setSig(ts->sig(), ts->timeSigType()); + nts->layout(); } } } diff --git a/libmscore/timesig.cpp b/libmscore/timesig.cpp index 0eb18b854125..56567ab7f3ac 100644 --- a/libmscore/timesig.cpp +++ b/libmscore/timesig.cpp @@ -69,12 +69,16 @@ qreal TimeSig::mag() const void TimeSig::setSig(const Fraction& f, TimeSigType st) { - if (_sig != f) + if (_sig != f) { _sig = f; + _needLayout = true; + } + if (_timeSigType != st) { + _timeSigType = st; + _needLayout = true; + } if (st == TimeSigType::FOUR_FOUR || st == TimeSigType::ALLA_BREVE) customText = false; - _timeSigType = st; - _needLayout = true; _largeParentheses = false; } diff --git a/libmscore/undo.cpp b/libmscore/undo.cpp index 5b90b7350484..7b4149681d2b 100644 --- a/libmscore/undo.cpp +++ b/libmscore/undo.cpp @@ -357,7 +357,6 @@ void Score::undoChangeProperty(Element* e, P_ID t, const QVariant& st, PropertyS } } else if (e->type() == Element::Type::MEASURE) { - qDebug("change property for measure"); if (e->getProperty(t) != st) undo(new ChangeProperty(e, t, st, ps)); }