Skip to content

Commit

Permalink
Merge pull request #2913 from Jojo-Schmitz/dividers
Browse files Browse the repository at this point in the history
fix #151456: right system dividers show left
  • Loading branch information
lasconic committed Dec 21, 2016
2 parents 0d925fb + 686c469 commit ddc0f12
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 14 deletions.
9 changes: 9 additions & 0 deletions libmscore/layout.cpp
Expand Up @@ -1480,6 +1480,15 @@ static void checkDivider(bool left, System* s, qreal sdd)
}
divider->layout();
divider->rypos() = divider->height() * .5 + sdd;
if (left) {
divider->rypos() += s->score()->styleD(StyleIdx::dividerLeftY) * SPATIUM20;
divider->rxpos() = s->score()->styleD(StyleIdx::dividerLeftX) * SPATIUM20;
}
else {
divider->rypos() += s->score()->styleD(StyleIdx::dividerRightY) * SPATIUM20;
divider->rxpos() = s->score()->pageFormat()->printableWidth() * DPI - divider->width();
divider->rxpos() += s->score()->styleD(StyleIdx::dividerRightX) * SPATIUM20;
}
divider->adjustReadPos();
}
else if (divider) {
Expand Down
18 changes: 4 additions & 14 deletions libmscore/systemdivider.cpp
Expand Up @@ -49,15 +49,10 @@ void SystemDivider::layout()
SymId sid;
ScoreFont* sf = score()->scoreFont();

switch (_dividerType) {
case SystemDivider::LEFT:
sid = Sym::name2id(score()->styleSt(StyleIdx::dividerLeftSym));
break;
case SystemDivider::RIGHT:
default:
sid = Sym::name2id(score()->styleSt(StyleIdx::dividerRightSym));
break;
}
if (_dividerType == SystemDivider::LEFT)
sid = Sym::name2id(score()->styleSt(StyleIdx::dividerLeftSym));
else
sid = Sym::name2id(score()->styleSt(StyleIdx::dividerRightSym));
setSym(sid, sf);
Symbol::layout();
}
Expand All @@ -72,12 +67,10 @@ void SystemDivider::setDividerType(SystemDivider::Type v)
if (v == SystemDivider::LEFT) {
setXoff(score()->styleD(StyleIdx::dividerLeftX));
setYoff(score()->styleD(StyleIdx::dividerLeftY));
setAlign(AlignmentFlags::LEFT | AlignmentFlags::VCENTER);
}
else {
setXoff(score()->styleD(StyleIdx::dividerRightX));
setYoff(score()->styleD(StyleIdx::dividerRightY));
setAlign(AlignmentFlags::RIGHT | AlignmentFlags::VCENTER);
}
}

Expand Down Expand Up @@ -111,21 +104,18 @@ void SystemDivider::write(XmlWriter& xml) const

void SystemDivider::read(XmlReader& e)
{
Align a = align() & AlignmentFlags::VMASK;
ScoreFont* sf = score()->scoreFont();
if (e.attribute("type") == "left") {
_dividerType = SystemDivider::Type::LEFT;
SymId sym = Sym::name2id(score()->styleSt(StyleIdx::dividerLeftSym));
setSym(sym, sf);
setAlign(a | AlignmentFlags::LEFT);
setXoff(score()->styleD(StyleIdx::dividerLeftX));
setYoff(score()->styleD(StyleIdx::dividerLeftY));
}
else {
_dividerType = SystemDivider::Type::RIGHT;
SymId sym = Sym::name2id(score()->styleSt(StyleIdx::dividerRightSym));
setSym(sym, sf);
setAlign(a | AlignmentFlags::RIGHT);
setXoff(score()->styleD(StyleIdx::dividerRightX));
setYoff(score()->styleD(StyleIdx::dividerRightY));
}
Expand Down

0 comments on commit ddc0f12

Please sign in to comment.