style light intensity

This commit is contained in:
Peter Hartmann 2021-04-07 14:59:12 +02:00
parent d34e5a47d9
commit 1e2d02a74f
3 changed files with 31 additions and 4 deletions

View File

@ -11,6 +11,8 @@
#include <QPainter>
#include <QRadialGradient>
QSK_SUBCONTROL( LightIntensityValueLabel, Text )
QSK_SUBCONTROL( LightDisplay, Panel )
QSK_SUBCONTROL( LightDisplay, ColdPart )
QSK_SUBCONTROL( LightDisplay, WarmPart )
@ -138,7 +140,7 @@ void LightDimmer::paint( QPainter* painter )
LightDisplay::LightDisplay( QQuickItem* parent )
: QskControl( parent )
, m_leftLabel( new QskTextLabel( QString::number( 0 ), this ) )
, m_centreLabel( new QskTextLabel( QString::number( 50 ) + "%", this ) )
, m_centreLabel( new LightIntensityValueLabel( QString::number( 50 ) + "%", this ) )
, m_rightLabel( new QskTextLabel( QString::number( 100 ), this ) )
, m_dimmer( new LightDimmer( gradientHint( ColdPart ), gradientHint( WarmPart ), this ) )
, m_animator( new DimmerAnimator( this, m_dimmer ) )
@ -146,8 +148,6 @@ LightDisplay::LightDisplay( QQuickItem* parent )
m_leftLabel->setSizePolicy( Qt::Horizontal, QskSizePolicy::Maximum );
m_centreLabel->setSizePolicy( Qt::Horizontal, QskSizePolicy::Maximum );
m_centreLabel->setZ( 1 );
m_centreLabel->setFontRole( QskSkin::LargeFont );
m_centreLabel->setTextColor( "#929cb2" );
m_rightLabel->setSizePolicy( Qt::Horizontal, QskSizePolicy::Maximum );
m_rightLabel->setZ( 1 );

View File

@ -3,12 +3,37 @@
#include "Box.h"
#include <QskTextLabel.h>
#include <QQuickPaintedItem>
#include <QRadialGradient>
class DimmerAnimator;
class QskTextLabel;
class LightIntensityValueLabel : public QskTextLabel
{
Q_OBJECT
public:
QSK_SUBCONTROLS( Text )
LightIntensityValueLabel( const QString& text, QQuickItem* parent ) : QskTextLabel( text, parent )
{
}
QskAspect::Subcontrol effectiveSubcontrol(
QskAspect::Subcontrol subControl ) const override final
{
if( subControl == QskTextLabel::Text )
{
return Text;
}
return subControl;
}
};
class LightDimmer: public QQuickPaintedItem
{
Q_OBJECT
@ -73,7 +98,7 @@ class LightDisplay : public QskControl
private:
QskTextLabel* m_leftLabel;
QskTextLabel* m_centreLabel;
LightIntensityValueLabel* m_centreLabel;
QskTextLabel* m_rightLabel;
LightDimmer* m_dimmer;
DimmerAnimator* m_animator;

View File

@ -129,6 +129,8 @@ void Skin::initHints( const Palette& palette )
// light intensity:
ed.setGradient( LightDisplay::ColdPart, { Qt::Horizontal, "#a7b0ff", "#6776ff" } );
ed.setGradient( LightDisplay::WarmPart, { Qt::Horizontal, "#feeeb7", "#ff3122" } );
ed.setFontRole( LightIntensityValueLabel::Text, QskSkin::LargeFont );
ed.setColor( LightIntensityValueLabel::Text, "#929cb2" );
// palette dependent skin hints:
ed.setGradient( MenuBar::Panel, palette.menuBar );