From 7aa55d072e5fa8025ebeb70162d823f835a6576c Mon Sep 17 00:00:00 2001 From: ws Date: Wed, 2 Jul 2014 09:55:50 +0200 Subject: [PATCH] fix #25941 --- libmscore/layout.cpp | 44 +++++++++++++++++++------------------------ libmscore/measure.cpp | 31 ++++++++++++++++-------------- libmscore/slur.cpp | 6 +++--- libmscore/tie.cpp | 4 ---- libmscore/undo.cpp | 9 +++------ 5 files changed, 42 insertions(+), 52 deletions(-) diff --git a/libmscore/layout.cpp b/libmscore/layout.cpp index a6bb3ee78b40..d7e3a444ca01 100644 --- a/libmscore/layout.cpp +++ b/libmscore/layout.cpp @@ -1377,11 +1377,10 @@ void Score::doLayout() rebuildBspTree(); - int n = viewer.size(); - for (int i = 0; i < n; ++i) { - viewer.at(i)->layoutChanged(); - viewer.at(i)->updateLoopCursors(); - } + for (MuseScoreView* v : viewer) { + v->layoutChanged(); + v->updateLoopCursors(); + } _layoutAll = false; } @@ -1401,27 +1400,22 @@ void Score::layoutSpanner() for (int i = 0; i < n; ++i) segment->annotations().at(i)->layout(); } - Element* e = segment->element(track); - if (!e) - continue; - if (e->isChordRest()) { - Chord* c = static_cast(e); - if (c->type() == Element::Type::CHORD) { - for (Chord* cc : c->graceNotes()) { - for (Element* e : cc->el()) { - if (e->type() == Element::Type::SLUR) - e->layout(); - } - } - c->layoutStem(); - for (Note* n : c->notes()) { - Tie* tie = n->tieFor(); - if (tie) - tie->layout(); - for (Spanner* sp : n->spannerFor()) - sp->layout(); + Chord* c = static_cast(segment->element(track)); + if (c && c->type() == Element::Type::CHORD) { + for (Chord* cc : c->graceNotes()) { + for (Element* e : cc->el()) { + if (e->type() == Element::Type::SLUR) + e->layout(); } } + c->layoutStem(); + for (Note* n : c->notes()) { + Tie* tie = n->tieFor(); + if (tie) + tie->layout(); + for (Spanner* sp : n->spannerFor()) + sp->layout(); + } } } } @@ -3243,7 +3237,7 @@ void Score::doLayoutSystems() rebuildBspTree(); _updateAll = true; - foreach(MuseScoreView* v, viewer) + for (MuseScoreView* v : viewer) v->layoutChanged(); } diff --git a/libmscore/measure.cpp b/libmscore/measure.cpp index 1c82f624eaee..0bc604b02172 100644 --- a/libmscore/measure.cpp +++ b/libmscore/measure.cpp @@ -650,22 +650,25 @@ void Measure::layout2() track += VOICES-1; continue; } - Element* el = s->element(track); - if (el) { - ChordRest* cr = static_cast(el); - if (cr->type() == Element::Type::CHORD) { - Chord* c = static_cast(cr); - foreach(const Note* note, c->notes()) { - foreach (Spanner* sp, note->spannerFor()) - sp->layout(); - } - } - DurationElement* de = cr; - while (de->tuplet() && de->tuplet()->elements().front() == de) { - de->tuplet()->layout(); - de = de->tuplet(); + ChordRest* cr = static_cast(s->element(track)); + if (!cr) + continue; + + if (cr->type() == Element::Type::CHORD) { + Chord* c = static_cast(cr); + for (const Note* note : c->notes()) { + Tie* tie = note->tieFor(); + if (tie) + tie->layout(); + foreach (Spanner* sp, note->spannerFor()) + sp->layout(); } } + DurationElement* de = cr; + while (de->tuplet() && de->tuplet()->elements().front() == de) { + de->tuplet()->layout(); + de = de->tuplet(); + } } } } diff --git a/libmscore/slur.cpp b/libmscore/slur.cpp index 1d7b49f12f2e..f40e7c55d2a7 100644 --- a/libmscore/slur.cpp +++ b/libmscore/slur.cpp @@ -689,7 +689,7 @@ void Slur::slurPosChord(SlurPos* sp) { Chord* stChord; Chord* enChord ; - if(startChord()->isGraceAfter()){ // grace notes after, coming in reverse order + if (startChord()->isGraceAfter()){ // grace notes after, coming in reverse order stChord = endChord(); enChord = startChord(); _up = false; @@ -778,8 +778,8 @@ void Slur::slurPos(SlurPos* sp) if (sp->system1 == 0 || sp->system2 == 0) return; - sp->p1 = scr->pagePos() - sp->system1->pagePos(); - sp->p2 = ecr->pagePos() - sp->system2->pagePos(); + sp->p1 = scr->pagePos() - sp->system1->pagePos(); + sp->p2 = ecr->pagePos() - sp->system2->pagePos(); qreal xo, yo; diff --git a/libmscore/tie.cpp b/libmscore/tie.cpp index 0cc79e57f664..27b2bcfd62be 100644 --- a/libmscore/tie.cpp +++ b/libmscore/tie.cpp @@ -361,10 +361,6 @@ void Tie::layout() QPointF off1(xo1, yo); QPointF off2(0.0, yo); -#if 0 // yet(?) unused - QPointF ppos(pagePos()); -#endif - // TODO: cleanup SlurPos sPos; diff --git a/libmscore/undo.cpp b/libmscore/undo.cpp index ffd1da3cd36b..863683c5f959 100644 --- a/libmscore/undo.cpp +++ b/libmscore/undo.cpp @@ -2441,12 +2441,9 @@ void ChangePart::flip() score->setInstrumentsChanged(true); score->setPlaylistDirty(true); - Interval oint = oi.transpose(); - Interval nint = part->instr()->transpose(); - if (oint != nint) { - printf("ChangePart transpose %d %d %d %d\n", oint.diatonic, oint.chromatic, - nint.diatonic, nint.chromatic); - } +// Interval oint = oi.transpose(); +// Interval nint = part->instr()->transpose(); + // check if notes need to be updated // true if changing into or away from TAB or from one TAB type to another