add style option for barline scaling of small staves

This commit is contained in:
ws 2015-01-22 15:31:32 +01:00
parent de4961e10e
commit 93d828f8eb
5 changed files with 30 additions and 15 deletions

View file

@ -318,8 +318,9 @@ void BarLine::draw(QPainter* painter) const
if (y2-y1 < 0.1)
return;
// qreal _spatium = spatium();
qreal lw = point(score()->styleS(StyleIdx::barWidth));
qreal _spatium = score()->styleB(StyleIdx::scaleBarlines) ? spatium() : score()->spatium();
qreal lw = score()->styleS(StyleIdx::barWidth).val() * _spatium;
QPen pen(curColor(), lw, Qt::SolidLine, Qt::FlatCap);
painter->setPen(pen);
@ -341,8 +342,8 @@ void BarLine::draw(QPainter* painter) const
case BarLineType::END:
{
qreal lw2 = point(score()->styleS(StyleIdx::endBarWidth));
qreal d = point(score()->styleS(StyleIdx::endBarDistance));
qreal lw2 = score()->styleS(StyleIdx::endBarWidth).val() * _spatium;
qreal d = score()->styleS(StyleIdx::endBarDistance).val() * _spatium;
painter->drawLine(QLineF(lw * .5, y1, lw * .5, y2));
pen.setWidthF(lw2);
@ -354,8 +355,8 @@ void BarLine::draw(QPainter* painter) const
case BarLineType::DOUBLE:
{
lw = point(score()->styleS(StyleIdx::doubleBarWidth));
qreal d = point(score()->styleS(StyleIdx::doubleBarDistance));
lw = score()->styleS(StyleIdx::doubleBarWidth).val() * _spatium;
qreal d = score()->styleS(StyleIdx::doubleBarDistance).val() * _spatium;
pen.setWidthF(lw);
painter->setPen(pen);
@ -368,8 +369,8 @@ void BarLine::draw(QPainter* painter) const
case BarLineType::START_REPEAT:
{
qreal lw2 = point(score()->styleS(StyleIdx::endBarWidth));
qreal d1 = point(score()->styleS(StyleIdx::endBarDistance));
qreal lw2 = score()->styleS(StyleIdx::endBarWidth).val() * _spatium;
qreal d1 = score()->styleS(StyleIdx::endBarDistance).val() * _spatium;
qreal x2 = lw2 * .5; // thick line (lw2)
qreal x1 = lw2 + d1 + lw * .5; // thin line (lw)
@ -392,8 +393,8 @@ void BarLine::draw(QPainter* painter) const
case BarLineType::END_REPEAT:
{
qreal lw2 = point(score()->styleS(StyleIdx::endBarWidth));
qreal d1 = point(score()->styleS(StyleIdx::endBarDistance));
qreal lw2 = score()->styleS(StyleIdx::endBarWidth).val() * _spatium;
qreal d1 = score()->styleS(StyleIdx::endBarDistance).val() * _spatium;
qreal dotw = symWidth(SymId::repeatDot);
qreal x1 = dotw + d1 + lw * .5;
qreal x2 = dotw + d1 + lw + d1 + lw2 * .5;
@ -415,8 +416,8 @@ void BarLine::draw(QPainter* painter) const
case BarLineType::END_START_REPEAT:
{
qreal lw2 = point(score()->styleS(StyleIdx::endBarWidth));
qreal d1 = point(score()->styleS(StyleIdx::endBarDistance));
qreal lw2 = score()->styleS(StyleIdx::endBarWidth).val() * _spatium;
qreal d1 = score()->styleS(StyleIdx::endBarDistance).val() * _spatium;
qreal dotw = symWidth(SymId::repeatDot);
qreal x1 = dotw + d1 + lw * .5; // thin bar
@ -895,7 +896,9 @@ void BarLine::endEditDrag()
qreal BarLine::layoutWidth(Score* score, BarLineType type, qreal mag)
{
qreal _spatium = score->spatium() * mag;
qreal _spatium = score->spatium();
if (score->styleB(StyleIdx::scaleBarlines))
_spatium *= mag;
qreal dw = score->styleS(StyleIdx::barWidth).val() * _spatium;
qreal dotwidth = score->scoreFont()->width(SymId::repeatDot, mag);

View file

@ -224,6 +224,7 @@ static const StyleTypes2 styleTypes2[] = {
{ StyleIdx::tupletNoteRightDistance, StyleType("tupletNoteRightDistance", StyleValueType::SPATIUM) },
{ StyleIdx::barreLineWidth, StyleType("barreLineWidth", StyleValueType::DOUBLE) },
{ StyleIdx::fretMag, StyleType("fretMag", StyleValueType::DOUBLE) },
{ StyleIdx::scaleBarlines, StyleType("scaleBarlines", StyleValueType::BOOL) }
};
class StyleTypes {
@ -562,7 +563,8 @@ StyleData::StyleData()
{ StyleIdx::tupletNoteLeftDistance, QVariant(0.0) },
{ StyleIdx::tupletNoteRightDistance, QVariant(0.0) },
{ StyleIdx::barreLineWidth, QVariant(1.0) },
{ StyleIdx::fretMag, QVariant(1.0) }
{ StyleIdx::fretMag, QVariant(1.0) },
{ StyleIdx::scaleBarlines, QVariant(true) }
};
for (unsigned i = 0; i < sizeof(values2)/sizeof(*values2); ++i)
_values[int(values2[i].idx)] = values2[i].val;

View file

@ -362,6 +362,7 @@ enum class StyleIdx : unsigned char {
barreLineWidth,
fretMag,
scaleBarlines,
STYLES

View file

@ -518,6 +518,7 @@ void EditStyle::getValues()
lstyle.set(StyleIdx::barreLineWidth, barreLineWidth->value());
lstyle.set(StyleIdx::fretMag, fretMag->value());
lstyle.set(StyleIdx::scaleBarlines, scaleBarlines->isChecked());
}
//---------------------------------------------------------
@ -816,6 +817,7 @@ void EditStyle::setValues()
barreLineWidth->setValue(lstyle.value(StyleIdx::barreLineWidth).toDouble());
fretMag->setValue(lstyle.value(StyleIdx::fretMag).toDouble());
scaleBarlines->setChecked(lstyle.value(StyleIdx::scaleBarlines).toBool());
}
//---------------------------------------------------------

View file

@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>904</width>
<height>577</height>
<height>739</height>
</rect>
</property>
<property name="windowTitle">
@ -2221,6 +2221,13 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="scaleBarlines">
<property name="text">
<string>Scale Barlines to staff size</string>
</property>
</widget>
</item>
</layout>
</item>
<item>