Skip to content

Commit

Permalink
Merge 16ea699 into c066b6b
Browse files Browse the repository at this point in the history
  • Loading branch information
MarcSabatella committed May 10, 2019
2 parents c066b6b + 16ea699 commit 354737f
Show file tree
Hide file tree
Showing 45 changed files with 1,321 additions and 146 deletions.
7 changes: 6 additions & 1 deletion libmscore/chord.cpp
Expand Up @@ -3165,8 +3165,13 @@ Shape Chord::shape() const
shape.add(_arpeggio->shape().translated(_arpeggio->pos()));
// if (_tremolo)
// shape.add(_tremolo->shape().translated(_tremolo->pos()));
for (Note* note : _notes)
for (Note* note : _notes) {
shape.add(note->shape().translated(note->pos()));
for (Element* e : note->el()) {
if (e->isFingering() && toFingering(e)->layoutType() == ElementType::CHORD && e->bbox().isValid())
shape.add(e->bbox().translated(e->pos() + note->pos()));
}
}
for (Element* e : el()) {
if (e->addToSkyline())
shape.add(e->shape().translated(e->pos()));
Expand Down
1 change: 1 addition & 0 deletions libmscore/cmd.cpp
Expand Up @@ -1939,6 +1939,7 @@ static void resetElementPosition(void*, Element* e)
return;
e->undoResetProperty(Pid::AUTOPLACE);
e->undoResetProperty(Pid::OFFSET);
e->setOffsetChanged(false);
if (e->isSpanner())
e->undoResetProperty(Pid::OFFSET2);
}
Expand Down
4 changes: 4 additions & 0 deletions libmscore/dynamic.cpp
Expand Up @@ -83,6 +83,7 @@ static Dyn dynList[] = {

static const ElementStyle dynamicsStyle {
{ Sid::dynamicsPlacement, Pid::PLACEMENT },
{ Sid::dynamicsMinDistance, Pid::MIN_DISTANCE },
};

//---------------------------------------------------------
Expand Down Expand Up @@ -266,6 +267,9 @@ void Dynamic::doAutoplace()

qreal minDistance = score()->styleS(Sid::dynamicsMinDistance).val() * spatium();
QRectF r = bbox().translated(pos() + s->pos() + s->measure()->pos());
qreal yOff = offset().y() - propertyDefault(Pid::OFFSET).toPointF().y();
r.translate(0.0, -yOff);

Skyline& sl = s->measure()->system()->staff(staffIdx())->skyline();
SkylineLine sk(!placeAbove());
sk.add(r);
Expand Down
32 changes: 31 additions & 1 deletion libmscore/edit.cpp
Expand Up @@ -1470,19 +1470,27 @@ void Score::cmdFlip()
note->undoChangeProperty(Pid::DOT_POSITION, QVariant::fromValue<Direction>(d));
}
else if (e->isTempoText()
|| e->isSystemText()
|| e->isJump()
|| e->isMarker()
|| e->isStaffText()
|| e->isFingering()
|| e->isDynamic()
|| e->isHarmony()
|| e->isInstrumentChange()
|| e->isRehearsalMark()
|| e->isHairpin()
|| e->isHairpinSegment()
|| e->isOttavaSegment()
|| e->isTextLineSegment()
|| e->isPedalSegment()
|| e->isLetRingSegment()
|| e->isPalmMuteSegment()
|| e->isFermata()
|| e->isLyrics()
|| e->isTrillSegment()) {
e->undoChangeProperty(Pid::AUTOPLACE, true);
// getProperty() delegates call from spannerSegment to Spanner:
// getProperty() delegates call from spannerSegment to Spanner
Placement p = Placement(e->getProperty(Pid::PLACEMENT).toInt());
p = (p == Placement::ABOVE) ? Placement::BELOW : Placement::ABOVE;
// TODO: undoChangeProperty() should probably do this directly
Expand All @@ -1493,7 +1501,29 @@ void Score::cmdFlip()
PropertyFlags pf = ee->propertyFlags(Pid::PLACEMENT);
if (pf == PropertyFlags::STYLED)
pf = PropertyFlags::UNSTYLED;
qreal oldDefaultY = ee->propertyDefault(Pid::OFFSET).toPointF().y();
ee->undoChangeProperty(Pid::PLACEMENT, int(p), pf);
// flip and rebase user offset to new default now that placement has changed
qreal newDefaultY = ee->propertyDefault(Pid::OFFSET).toPointF().y();
if (ee->isSpanner()) {
Spanner* spanner = toSpanner(ee);
for (SpannerSegment* ss : spanner->spannerSegments()) {
if (!ss->isStyled(Pid::OFFSET)) {
QPointF off = ss->getProperty(Pid::OFFSET).toPointF();
qreal oldY = off.y() - oldDefaultY;
off.ry() = newDefaultY - oldY;
ss->undoChangeProperty(Pid::OFFSET, off);
ss->setOffsetChanged(false);
}
}
}
else if (!ee->isStyled(Pid::OFFSET)) {
QPointF off = ee->getProperty(Pid::OFFSET).toPointF();
qreal oldY = off.y() - oldDefaultY;
off.ry() = newDefaultY - oldY;
ee->undoChangeProperty(Pid::OFFSET, off);
ee->setOffsetChanged(false);
}
}
}
}
Expand Down

0 comments on commit 354737f

Please sign in to comment.