Skip to content

Commit

Permalink
Manually merged #6330 to master
Browse files Browse the repository at this point in the history
  • Loading branch information
anatoly-os committed Aug 11, 2020
1 parent cb27d5c commit 6b09c2f
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 23 deletions.
1 change: 1 addition & 0 deletions libmscore/edit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4695,6 +4695,7 @@ void Score::undoAddElement(Element* element)
&& et != ElementType::TREMOLO
&& et != ElementType::ARPEGGIO
&& et != ElementType::SYMBOL
&& et != ElementType::IMAGE
&& et != ElementType::TREMOLOBAR
&& et != ElementType::FRET_DIAGRAM
&& et != ElementType::FERMATA
Expand Down
12 changes: 12 additions & 0 deletions libmscore/layout.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4583,6 +4583,18 @@ void Score::layoutSystemElements(System* system, LayoutContext& lc)
}
}
}

//-------------------------------------------------------------
// Image
//-------------------------------------------------------------

for (const Segment* s : sl) {
for (Element* e : s->annotations()) {
if (e->isImage()) {
e->layout();
}
}
}
}

//---------------------------------------------------------
Expand Down
18 changes: 3 additions & 15 deletions libmscore/measure.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1980,15 +1980,6 @@ void Measure::read(XmlReader& e, int staffIdx)
e.setTrack(nextTrack++);
e.setTick(tick());
readVoice(e, staffIdx, irregular);
} else if (tag == "Image") {
if (MScore::noImages) {
e.skipCurrentElement();
} else {
Element* el = Element::name2Element(tag, score());
el->setTrack(staffIdx * VOICES);
el->read(e);
add(el);
}
} else if (tag == "Marker" || tag == "Jump") {
Element* el = Element::name2Element(tag, score());
el->setTrack(e.track());
Expand Down Expand Up @@ -2325,18 +2316,15 @@ void Measure::readVoice(XmlReader& e, int staffIdx, bool irregular)
fermata->setTrack(e.track());
fermata->setPlacement(fermata->track() & 1 ? Placement::BELOW : Placement::ABOVE);
fermata->read(e);
}
// There could be an Image here if the score was saved with an earlier version of MuseScore 3.
// This image would not have been visible upon reload. Let's read it in and add it directly
// to the measure so that it can be displayed.
else if (tag == "Image") {
} else if (tag == "Image") {
if (MScore::noImages) {
e.skipCurrentElement();
} else {
Element* el = Element::name2Element(tag, score());
el->setTrack(e.track());
el->read(e);
add(el);
segment = getSegment(SegmentType::ChordRest, e.tick());
segment->add(el);
}
}
//----------------------------------------------------
Expand Down
3 changes: 2 additions & 1 deletion libmscore/read114.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2133,7 +2133,8 @@ static void readMeasure(Measure* m, int staffIdx, XmlReader& e)
Element* el = Element::name2Element(tag, m->score());
el->setTrack(e.track());
el->read(e);
m->add(el);
segment = m->getSegment(SegmentType::ChordRest, e.tick());
segment->add(el);
}
} else if (tag == "stretch") {
double val = e.readDouble();
Expand Down
3 changes: 2 additions & 1 deletion libmscore/read206.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3336,7 +3336,8 @@ static void readMeasure(Measure* m, int staffIdx, XmlReader& e)
Element* el = Element::name2Element(tag, score);
el->setTrack(e.track());
el->read(e);
m->add(el);
segment = m->getSegment(SegmentType::ChordRest, e.tick());
segment->add(el);
}
}
//----------------------------------------------------
Expand Down
8 changes: 2 additions & 6 deletions mscore/dragdrop.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -481,12 +481,8 @@ void ScoreView::dropEvent(QDropEvent* event)
el = _score->pos2measure(pos, &staffIdx, 0, &seg, &offset);
if (el && el->isMeasure()) {
editData.dropElement->setTrack(staffIdx * VOICES);
if (editData.dropElement->isImage()) {
editData.dropElement->setParent(el);
offset = pos - el->canvasPos();
} else {
editData.dropElement->setParent(seg);
}
editData.dropElement->setParent(seg);

if (applyUserOffset) {
editData.dropElement->setOffset(offset);
}
Expand Down

0 comments on commit 6b09c2f

Please sign in to comment.