add style option for barline scaling of small staves
This commit is contained in:
parent
de4961e10e
commit
93d828f8eb
5 changed files with 30 additions and 15 deletions
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -362,6 +362,7 @@ enum class StyleIdx : unsigned char {
|
|||
|
||||
barreLineWidth,
|
||||
fretMag,
|
||||
scaleBarlines,
|
||||
|
||||
|
||||
STYLES
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
||||
//---------------------------------------------------------
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in a new issue