From 17e4582f85cb79b4786d03fccc65abb4c9f184c2 Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Wed, 30 Sep 2020 14:40:59 +0200 Subject: [PATCH] more hints for the night time skin --- examples/iot-dashboard/DaytimeSkin.cpp | 4 ++++ examples/iot-dashboard/Diagram.cpp | 24 ++++++++++++++++++++--- examples/iot-dashboard/Diagram.h | 13 ++++++++++++ examples/iot-dashboard/LightIntensity.cpp | 2 +- examples/iot-dashboard/MainContent.cpp | 2 +- examples/iot-dashboard/MainWindow.cpp | 1 + examples/iot-dashboard/NighttimeSkin.cpp | 7 ++++++- 7 files changed, 47 insertions(+), 6 deletions(-) diff --git a/examples/iot-dashboard/DaytimeSkin.cpp b/examples/iot-dashboard/DaytimeSkin.cpp index 1a8ab670..1c039965 100644 --- a/examples/iot-dashboard/DaytimeSkin.cpp +++ b/examples/iot-dashboard/DaytimeSkin.cpp @@ -1,6 +1,7 @@ #include "DaytimeSkin.h" #include "Box.h" +#include "Diagram.h" #include "LightIntensity.h" #include "MainContent.h" #include "MenuBar.h" @@ -12,6 +13,7 @@ #include #include #include +#include #include @@ -58,6 +60,8 @@ void DaytimeSkin::initHints() setColor( LightDisplay::Panel, "#ffffff" ); setColor( PieChartPainted::Panel, "#ffffff" ); setGradient( RoundButton::Panel, {"#f7f7f7"} ); + setBoxBorderColors( WeekdayBox::Panel, {"#f4f4f4"} ); + setColor( QskTextLabel::Text, "#000000" ); QColor color( Qt::white ); color.setAlphaF( 0.09 ); diff --git a/examples/iot-dashboard/Diagram.cpp b/examples/iot-dashboard/Diagram.cpp index c013fc99..7b1faa67 100644 --- a/examples/iot-dashboard/Diagram.cpp +++ b/examples/iot-dashboard/Diagram.cpp @@ -12,6 +12,24 @@ #include +QSK_SUBCONTROL( WeekdayBox, Panel ) + +WeekdayBox::WeekdayBox( QQuickItem* parent ) + : QskBox( true, parent ) +{ + setBoxBorderMetricsHint( WeekdayBox::Panel, {0, 0, 3, 3} ); +} + +QskAspect::Subcontrol WeekdayBox::effectiveSubcontrol( QskAspect::Subcontrol subControl ) const +{ + if( subControl == QskBox::Panel ) + { + return WeekdayBox::Panel; + } + + return subControl; +} + namespace { class CaptionItem : public QskLinearBox @@ -125,9 +143,9 @@ Diagram::Diagram( QQuickItem* parent ) for( int i = 0; i < segments; ++i ) { - auto* box = new QskBox( true, m_weekdays ); - box->setBoxBorderColorsHint( QskBox::Panel, {"#f4f4f4"} ); - box->setBoxBorderMetricsHint( QskBox::Panel, {0, 0, 3, 3} ); + auto* box = new WeekdayBox( m_weekdays ); +// box->setBoxBorderColorsHint( QskBox::Panel, {"#f4f4f4"} ); +// box->setBoxBorderMetricsHint( QskBox::Panel, {0, 0, 3, 3} ); m_weekdays->addItem( box, 0, i ); auto* label = new QskTextLabel( weekdays.at( i ), m_weekdays ); label->setFontRole( QskSkin::TinyFont ); diff --git a/examples/iot-dashboard/Diagram.h b/examples/iot-dashboard/Diagram.h index 4af9e0ce..199492cf 100644 --- a/examples/iot-dashboard/Diagram.h +++ b/examples/iot-dashboard/Diagram.h @@ -8,6 +8,19 @@ class DiagramContent; class QskGridBox; +class WeekdayBox : public QskBox +{ + Q_OBJECT + + public: + QSK_SUBCONTROLS( Panel ) + + WeekdayBox( QQuickItem* parent ); + + QskAspect::Subcontrol effectiveSubcontrol( + QskAspect::Subcontrol subControl ) const override final; +}; + class Diagram : public Box { Q_OBJECT diff --git a/examples/iot-dashboard/LightIntensity.cpp b/examples/iot-dashboard/LightIntensity.cpp index 9a5e98f7..35fbb853 100644 --- a/examples/iot-dashboard/LightIntensity.cpp +++ b/examples/iot-dashboard/LightIntensity.cpp @@ -24,7 +24,7 @@ void LightDimmer::paint( QPainter* painter ) auto size = contentsSize(); QRectF outerRect( {0, offset}, size ); - QRadialGradient gradient( size.width() / 2, size.height() / 2, 70 ); + QRadialGradient gradient( size.width() / 2, size.height() / 2, 110 ); QGradientStop stop1( 0.0, "#c0c0c0" ); QGradientStop stop2( 0.5, "#f0f0f0" ); QGradientStop stop3( 1.0, "#c0c0c0" ); diff --git a/examples/iot-dashboard/MainContent.cpp b/examples/iot-dashboard/MainContent.cpp index fdad06c1..c1e6e642 100644 --- a/examples/iot-dashboard/MainContent.cpp +++ b/examples/iot-dashboard/MainContent.cpp @@ -76,7 +76,7 @@ MainContent::MainContent( QQuickItem* parent ) : QskLinearBox( Qt::Vertical, par auto* gridBox = new QskGridBox( this ); gridBox->setSpacing( 15 ); - gridBox->setMargins( {15, 0, 27, 24} ); + gridBox->setMargins( {19, 0, 27, 24} ); gridBox->setPanel( true ); gridBox->setBoxShapeHint( QskBox::Panel, 6 ); gridBox->setBoxBorderMetricsHint( QskBox::Panel, 2 ); diff --git a/examples/iot-dashboard/MainWindow.cpp b/examples/iot-dashboard/MainWindow.cpp index 527a5110..f8c552b4 100644 --- a/examples/iot-dashboard/MainWindow.cpp +++ b/examples/iot-dashboard/MainWindow.cpp @@ -11,6 +11,7 @@ MainWindow::MainWindow() : QskWindow() setTitle( "IOT dashboard" ); m_mainLayout = new QskLinearBox( Qt::Horizontal, contentItem() ); + m_mainLayout->setSpacing( 0 ); m_menuBar = new MenuBar( m_mainLayout ); m_mainContent = new MainContent( m_mainLayout ); } diff --git a/examples/iot-dashboard/NighttimeSkin.cpp b/examples/iot-dashboard/NighttimeSkin.cpp index b82fc581..238d0cea 100644 --- a/examples/iot-dashboard/NighttimeSkin.cpp +++ b/examples/iot-dashboard/NighttimeSkin.cpp @@ -1,6 +1,7 @@ #include "NighttimeSkin.h" #include "Box.h" +#include "Diagram.h" #include "LightIntensity.h" #include "MainContent.h" #include "MenuBar.h" @@ -12,6 +13,7 @@ #include #include #include +#include #include @@ -58,8 +60,11 @@ void NighttimeSkin::initHints() setColor( LightDisplay::Panel, "#000000" ); setColor( PieChartPainted::Panel, "#000000" ); setGradient( RoundButton::Panel, {"#0a0a0a"} ); + setBoxBorderColors( WeekdayBox::Panel, {"#0c0c0c"} ); + + setColor( QskTextLabel::Text, "#ffffff" ); QColor color( Qt::white ); color.setAlphaF( 0.09 ); - setGradient( MenuItem::Panel | QskControl::Hovered, Qt::yellow ); // ### nicer color + setGradient( MenuItem::Panel | QskControl::Hovered, color ); }