Skip to content
Permalink
Browse files

fix #151711: Remove a time signature in a part causes corruption in t…

…he other parts and main score
  • Loading branch information
lasconic committed Feb 28, 2017
1 parent 24d192d commit 762c1fe9aaeb5a3c8fcc142c2b511305d0431510
Showing with 7 additions and 2 deletions.
  1. +7 −2 libmscore/edit.cpp
@@ -827,12 +827,17 @@ void Score::cmdRemoveTimeSig(TimeSig* ts)
// in cases where we try deleting the local time sig
// known bug: this means we do not correctly detect non-empty measures when deleting global timesig change after a local one
// see http://musescore.org/en/node/51596
undoRemoveElement(s);
// Delete the time sig segment from the root score, we will rewriteMeasures from it
// since it contains all the music while the part doesn't
Score* rScore = masterScore();
Measure* rm = rScore->tick2measure(m->tick());
Segment* rs = rm->findSegment(Segment::Type::TimeSig, s->tick());
rScore->undoRemoveElement(rs);

Measure* pm = m->prevMeasure();
Fraction ns(pm ? pm->timesig() : Fraction(4,4));

if (!rewriteMeasures(m, ns, -1)) {
if (!rScore->rewriteMeasures(rm, ns, -1)) {
undoStack()->current()->unwind();
}
else {

0 comments on commit 762c1fe

Please sign in to comment.
You can’t perform that action at this time.