2021-08-24 08:46:26 +02:00
|
|
|
/******************************************************************************
|
|
|
|
* QSkinny - Copyright (C) 2021 Uwe Rathmann
|
|
|
|
* This file may be used under the terms of the QSkinny License, Version 1.0
|
|
|
|
*****************************************************************************/
|
|
|
|
|
|
|
|
#include "CircularProgressBarSkinlet.h"
|
|
|
|
#include "CircularProgressBar.h"
|
|
|
|
|
|
|
|
CircularProgressBarSkinlet::CircularProgressBarSkinlet( QskSkin* skin )
|
|
|
|
: QskSkinlet( skin )
|
|
|
|
{
|
|
|
|
setNodeRoles( { GrooveRole, BarRole } );
|
|
|
|
}
|
|
|
|
|
|
|
|
CircularProgressBarSkinlet::~CircularProgressBarSkinlet()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
QRectF CircularProgressBarSkinlet::subControlRect(
|
2021-08-24 14:38:03 +02:00
|
|
|
const QskSkinnable*, const QRectF& contentsRect, QskAspect::Subcontrol ) const
|
2021-08-24 08:46:26 +02:00
|
|
|
{
|
|
|
|
return contentsRect;
|
|
|
|
}
|
|
|
|
|
|
|
|
QSGNode* CircularProgressBarSkinlet::updateSubNode(
|
|
|
|
const QskSkinnable* skinnable, quint8 nodeRole, QSGNode* node ) const
|
|
|
|
{
|
|
|
|
switch( nodeRole )
|
|
|
|
{
|
2021-10-20 07:50:25 +02:00
|
|
|
case GrooveRole:
|
|
|
|
{
|
|
|
|
return updateArcNode( skinnable, node, CircularProgressBar::Groove );
|
|
|
|
}
|
2021-08-24 08:46:26 +02:00
|
|
|
case BarRole:
|
|
|
|
{
|
2021-10-20 07:50:25 +02:00
|
|
|
const auto bar = static_cast< const CircularProgressBar* >( skinnable );
|
2022-08-03 09:40:18 +02:00
|
|
|
|
|
|
|
const qreal startAngle = 90.0;
|
2021-12-02 17:15:41 +01:00
|
|
|
const qreal spanAngle = 360.0 * bar->valueAsRatio();
|
2022-08-03 09:40:18 +02:00
|
|
|
|
2021-12-02 17:15:41 +01:00
|
|
|
return updateArcNode( skinnable, node, startAngle, -spanAngle,
|
2021-10-20 07:50:25 +02:00
|
|
|
CircularProgressBar::Bar );
|
2021-08-24 08:46:26 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return Inherited::updateSubNode( skinnable, nodeRole, node );
|
|
|
|
}
|
|
|
|
|
|
|
|
#include "moc_CircularProgressBarSkinlet.cpp"
|