From 39b66cfaba6872b2b967b8a55dba17a51182e0bb Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Fri, 14 Aug 2020 16:28:47 +0200 Subject: [PATCH] implement Humidity --- examples/iot-dashboard/Humidity.cpp | 55 +++++++++++++++++++++ examples/iot-dashboard/Humidity.h | 12 +++++ examples/iot-dashboard/MainContent.cpp | 4 ++ examples/iot-dashboard/images.qrc | 1 + examples/iot-dashboard/images/humidity.png | Bin 0 -> 799 bytes examples/iot-dashboard/images/humidity.svg | 8 +++ examples/iot-dashboard/iot-dashboard.pro | 2 + 7 files changed, 82 insertions(+) create mode 100644 examples/iot-dashboard/Humidity.cpp create mode 100644 examples/iot-dashboard/Humidity.h create mode 100644 examples/iot-dashboard/images/humidity.png create mode 100644 examples/iot-dashboard/images/humidity.svg diff --git a/examples/iot-dashboard/Humidity.cpp b/examples/iot-dashboard/Humidity.cpp new file mode 100644 index 00000000..47537796 --- /dev/null +++ b/examples/iot-dashboard/Humidity.cpp @@ -0,0 +1,55 @@ +#include "Humidity.h" +#include "DaytimeSkin.h" +#include "RoundedIcon.h" + +#include +#include +#include +#include +#include + +#include + +Humidity::Humidity(QQuickItem *parent) + : QskLinearBox(Qt::Horizontal, parent) +{ + setMargins(17); + setSpacing(20); + + QskGradient gradient(QskGradient::Vertical, "#6776FF", "#6100FF"); + auto* icon = new RoundedIcon("humidity", gradient, this); + + auto *titleAndValue = new QskLinearBox(Qt::Vertical, this); + + auto* title = new QskTextLabel("Humidity", titleAndValue); + title->setFontRole(DaytimeSkin::TitleFont); + + auto* value = new QskTextLabel("30%", titleAndValue); + value->setFontRole(QskSkin::HugeFont); + value->setTextColor("#929CB2"); + + auto* buttons = new QskLinearBox(Qt::Vertical, this); + buttons->setSpacing(0); + + QImage upImage( ":/images/up.png"); + auto upGraphic = QskGraphic::fromImage( upImage ); + upGraphic.setDefaultSize({10, 5.71}); + auto* upButton = new QskPushButton(buttons); + upButton->setBoxShapeHint(QskPushButton::Panel, {30, 30, 0, 0}); + upButton->setSizePolicy(QskSizePolicy::Fixed, QskSizePolicy::Expanding); + upButton->setFixedWidth(32); + upButton->setGradientHint(QskPushButton::Panel, {"#f7f7f7"}); + upButton->setGraphic(upGraphic); + upButton->setGraphicSourceSize({10, 5.71}); + + QImage downImage( ":/images/down.png"); + auto downGraphic = QskGraphic::fromImage( downImage ); + downGraphic.setDefaultSize({10, 5.71}); + auto* downButton = new QskPushButton(buttons); + downButton->setBoxShapeHint(QskPushButton::Panel, {0, 0, 30, 30}); + downButton->setSizePolicy(QskSizePolicy::Fixed, QskSizePolicy::Expanding); + downButton->setFixedWidth(32); + downButton->setGradientHint(QskPushButton::Panel, {"#f7f7f7"}); + downButton->setGraphic(downGraphic); + downButton->setGraphicSourceSize({10, 5.71}); +} diff --git a/examples/iot-dashboard/Humidity.h b/examples/iot-dashboard/Humidity.h new file mode 100644 index 00000000..49d9be42 --- /dev/null +++ b/examples/iot-dashboard/Humidity.h @@ -0,0 +1,12 @@ +#ifndef HUMIDITY_H +#define HUMIDITY_H + +#include + +class Humidity : public QskLinearBox +{ +public: + Humidity( QQuickItem* parent ); +}; + +#endif // HUMIDITY_H diff --git a/examples/iot-dashboard/MainContent.cpp b/examples/iot-dashboard/MainContent.cpp index d0cede61..f1d0fcf5 100644 --- a/examples/iot-dashboard/MainContent.cpp +++ b/examples/iot-dashboard/MainContent.cpp @@ -1,6 +1,7 @@ #include "MainContent.h" #include "Card.h" +#include "Humidity.h" #include "IndoorTemperature.h" #include "PieChart.h" #include "TopBar.h" @@ -34,6 +35,9 @@ MainContent::MainContent( QQuickItem *parent ) : QskLinearBox( Qt::Vertical, par auto* indoorTemperature = new IndoorTemperature(gridBox); gridBox->addItem(indoorTemperature, 0, 1); + + auto* humidity = new Humidity(gridBox); + gridBox->addItem(humidity, 1, 1); } void MainContent::addCard( const QString &title, QskControl *content, int column ) diff --git a/examples/iot-dashboard/images.qrc b/examples/iot-dashboard/images.qrc index b0f697a4..423b6367 100644 --- a/examples/iot-dashboard/images.qrc +++ b/examples/iot-dashboard/images.qrc @@ -9,6 +9,7 @@ images/members.png images/logout.png images/indoor-temperature.png + images/humidity.png images/up.png images/down.png diff --git a/examples/iot-dashboard/images/humidity.png b/examples/iot-dashboard/images/humidity.png new file mode 100644 index 0000000000000000000000000000000000000000..d280cf4ed4b4b0ae6fe729bbeb75b959a717f9b9 GIT binary patch literal 799 zcmV+)1K|9LP)|}BG{~}p~frL4ytHj5lq%2@K-~OJM5rl-LvMj9GM(s1iMUb z+8A5Ex2%6?ArUOr#`?VuZkh)-wlT)cj)t9goJ<8Q<&3vio3_qXd4P;-Cm)@KUk2v7 z-W*s~5x}i|loJSDdEc3rqif9%3E*P_P{q6i3>8^_)QOBWUb^A$5+9E-<1EXb`9rku zk>!saYa2RpSqqGq{1YxhNU^?9TAo>b9%=z5y7PEZvA$ATP8@{Lf%SI4f&!#2g6uf( z?rTxZZ=7|4|AW$Ud$P4sTZJr5$~t3r?m7!=?bz;Pr2{dlFIb53RN9vgKo_ttJVXsf z5g^km$Y!Dj%LX1D;7wfAC znb*)n;kEaAslMu}XuXf;I?#8cXqJxcGG6j|$2x{y4Z++-d%8e)siwJt%qpC*3c*^~ zSrj6Jxl^^KnPj}Zl77FlE*^@Jp~&XO5)w~546sX*f!#J$$8IPsU5X5yubW@23U}4y zj2c4d8x0_X`$&TSKWh>2g!DYq?k)VG3I(F?m=Nf#4!0)rVhAApCkkCM#+TYT+KkeJ zQ|iQHVkn_nnZRH^4(u0m$^bKC`9j}1x_H+t#z!}LcRwdR5UK;Bt3>mJ`l%|q}jo!@Vwe_6ke?Uyr}AqaHQ9AutA d@G!M;e*@@c%Pg;6WTXH9002ovPDHLkV1iMxXd?gs literal 0 HcmV?d00001 diff --git a/examples/iot-dashboard/images/humidity.svg b/examples/iot-dashboard/images/humidity.svg new file mode 100644 index 00000000..1d5c6814 --- /dev/null +++ b/examples/iot-dashboard/images/humidity.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/examples/iot-dashboard/iot-dashboard.pro b/examples/iot-dashboard/iot-dashboard.pro index b1273538..dec833b7 100644 --- a/examples/iot-dashboard/iot-dashboard.pro +++ b/examples/iot-dashboard/iot-dashboard.pro @@ -4,6 +4,7 @@ SOURCES += \ Card.cpp \ CircularProgressBar.cpp \ DaytimeSkin.cpp \ + Humidity.cpp \ IndoorTemperature.cpp \ MainContent.cpp \ MenuBar.cpp \ @@ -20,6 +21,7 @@ HEADERS += \ Card.h \ CircularProgressBar.h \ DaytimeSkin.h \ + Humidity.h \ IndoorTemperature.h \ MainContent.h \ MainWindow.h \