using degrees for arcs ( not multiplied by 16, what QPainter wants )
This commit is contained in:
parent
9c1265fdbe
commit
b5bc26eb63
@ -38,10 +38,10 @@ QSGNode* CircularProgressBarSkinlet::updateSubNode(
|
|||||||
}
|
}
|
||||||
case BarRole:
|
case BarRole:
|
||||||
{
|
{
|
||||||
const qreal startAngle = 90 * 16;
|
const qreal startAngle = 90.0;
|
||||||
const auto bar = static_cast< const CircularProgressBar* >( skinnable );
|
const auto bar = static_cast< const CircularProgressBar* >( skinnable );
|
||||||
const qreal spanAngle = bar->valueAsRatio() * -5760;
|
const qreal spanAngle = 360.0 * bar->valueAsRatio();
|
||||||
return updateArcNode( skinnable, node, startAngle, spanAngle,
|
return updateArcNode( skinnable, node, startAngle, -spanAngle,
|
||||||
CircularProgressBar::Bar );
|
CircularProgressBar::Bar );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -105,7 +105,7 @@ void LightDisplay::mouseMoveEvent( QMouseEvent* event )
|
|||||||
|
|
||||||
const QskArcMetrics metrics = arcMetricsHint( ColdAndWarmArc );
|
const QskArcMetrics metrics = arcMetricsHint( ColdAndWarmArc );
|
||||||
const qreal angle = angleFromPoint( rect, mousePos );
|
const qreal angle = angleFromPoint( rect, mousePos );
|
||||||
const qreal ratio = ( metrics.spanAngle() - angle * 16 ) / metrics.spanAngle();
|
const qreal ratio = ( metrics.spanAngle() - angle ) / metrics.spanAngle();
|
||||||
setValueAsRatio( ratio );
|
setValueAsRatio( ratio );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -118,10 +118,10 @@ void Skin::initHints( const Palette& palette )
|
|||||||
ed.setGradient( TopBarItem::Item4, { QskGradient::Horizontal, "#6100FF", "#6776FF" } );
|
ed.setGradient( TopBarItem::Item4, { QskGradient::Horizontal, "#6100FF", "#6776FF" } );
|
||||||
|
|
||||||
// the bar gradient is defined through the top bar items above
|
// the bar gradient is defined through the top bar items above
|
||||||
ed.setArcMetrics( CircularProgressBar::Groove, { 8.53, 90 * 16, -360 * 16 } );
|
ed.setArcMetrics( CircularProgressBar::Groove, { 8.53, 90, -360 } );
|
||||||
// the span angle will be set in the progress bar, we just give a dummy
|
// the span angle will be set in the progress bar, we just give a dummy
|
||||||
// value here:
|
// value here:
|
||||||
ed.setArcMetrics( CircularProgressBar::Bar, { 8.53, 90 * 16, -180 * 16 } );
|
ed.setArcMetrics( CircularProgressBar::Bar, { 8.53, 90, -180 } );
|
||||||
|
|
||||||
ed.setFontRole( TimeTitleLabel::Text, Skin::TitleFont );
|
ed.setFontRole( TimeTitleLabel::Text, Skin::TitleFont );
|
||||||
|
|
||||||
@ -184,7 +184,7 @@ void Skin::initHints( const Palette& palette )
|
|||||||
// light intensity:
|
// light intensity:
|
||||||
ed.setBoxShape( LightDisplay::Panel, 100, Qt::RelativeSize );
|
ed.setBoxShape( LightDisplay::Panel, 100, Qt::RelativeSize );
|
||||||
|
|
||||||
ed.setArcMetrics( LightDisplay::ColdAndWarmArc, 8.785, 0, 180 * 16 );
|
ed.setArcMetrics( LightDisplay::ColdAndWarmArc, 8.785, 0, 180 );
|
||||||
QskGradient coldGradient( Qt::Horizontal, { { 0.0, 0xffff3122 },
|
QskGradient coldGradient( Qt::Horizontal, { { 0.0, 0xffff3122 },
|
||||||
{ 0.2, 0xfffeeeb7 },
|
{ 0.2, 0xfffeeeb7 },
|
||||||
{ 0.3, 0xffa7b0ff },
|
{ 0.3, 0xffa7b0ff },
|
||||||
@ -193,7 +193,7 @@ void Skin::initHints( const Palette& palette )
|
|||||||
ed.setGradient( LightDisplay::ColdAndWarmArc, coldGradient );
|
ed.setGradient( LightDisplay::ColdAndWarmArc, coldGradient );
|
||||||
|
|
||||||
ed.setMetric( LightDisplay::Tickmarks, 1 );
|
ed.setMetric( LightDisplay::Tickmarks, 1 );
|
||||||
ed.setArcMetrics( LightDisplay::Tickmarks, { 4.69, 0, 180 * 16 } );
|
ed.setArcMetrics( LightDisplay::Tickmarks, { 4.69, 0, 180 } );
|
||||||
ed.setColor( LightDisplay::Tickmarks, 0x55929CB2 );
|
ed.setColor( LightDisplay::Tickmarks, 0x55929CB2 );
|
||||||
|
|
||||||
ed.setFontRole( LightDisplay::ValueText, QskSkin::LargeFont );
|
ed.setFontRole( LightDisplay::ValueText, QskSkin::LargeFont );
|
||||||
|
@ -40,12 +40,16 @@ void QskArcRenderer::renderArc(const QRectF& rect,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QConicalGradient gradient( rect.center(), metrics.startAngle() / 16.0 );
|
QConicalGradient gradient( rect.center(), metrics.startAngle() );
|
||||||
gradient.setStops( stops );
|
gradient.setStops( stops );
|
||||||
|
|
||||||
brush = gradient;
|
brush = gradient;
|
||||||
}
|
}
|
||||||
|
|
||||||
painter->setPen( QPen( brush, metrics.width(), Qt::SolidLine, Qt::FlatCap ) );
|
painter->setPen( QPen( brush, metrics.width(), Qt::SolidLine, Qt::FlatCap ) );
|
||||||
painter->drawArc( rect, metrics.startAngle(), metrics.spanAngle() );
|
|
||||||
|
const int startAngle = qRound( metrics.startAngle() * 16 );
|
||||||
|
const int spanAngle = qRound( metrics.spanAngle() * 16 );
|
||||||
|
|
||||||
|
painter->drawArc( rect, startAngle, spanAngle );
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user