From 1e2d02a74fcc08a11668b2e4d735ac588d58be4a Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Wed, 7 Apr 2021 14:59:12 +0200 Subject: [PATCH] style light intensity --- examples/iot-dashboard/LightIntensity.cpp | 6 ++--- examples/iot-dashboard/LightIntensity.h | 27 ++++++++++++++++++++++- examples/iot-dashboard/Skin.cpp | 2 ++ 3 files changed, 31 insertions(+), 4 deletions(-) diff --git a/examples/iot-dashboard/LightIntensity.cpp b/examples/iot-dashboard/LightIntensity.cpp index 637dd24d..ab05e9da 100644 --- a/examples/iot-dashboard/LightIntensity.cpp +++ b/examples/iot-dashboard/LightIntensity.cpp @@ -11,6 +11,8 @@ #include #include +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 ); diff --git a/examples/iot-dashboard/LightIntensity.h b/examples/iot-dashboard/LightIntensity.h index 5d1af890..60d8ac7f 100644 --- a/examples/iot-dashboard/LightIntensity.h +++ b/examples/iot-dashboard/LightIntensity.h @@ -3,12 +3,37 @@ #include "Box.h" +#include + #include #include 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; diff --git a/examples/iot-dashboard/Skin.cpp b/examples/iot-dashboard/Skin.cpp index edb6fcef..f0f8b6b1 100644 --- a/examples/iot-dashboard/Skin.cpp +++ b/examples/iot-dashboard/Skin.cpp @@ -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 );