From 0da128bb885570dcad239f02163f6b764b8cc45c Mon Sep 17 00:00:00 2001 From: taehoon Date: Fri, 23 Apr 2021 14:06:56 +0900 Subject: [PATCH] =?UTF-8?q?=EC=83=81=ED=83=9C=20=EC=98=81=EC=97=AD?= =?UTF-8?q?=EC=97=90=20=EC=A0=9C=EC=96=B4=20=EB=B3=B4=EB=93=9C=20=ED=86=B5?= =?UTF-8?q?=EC=8B=A0=20=EC=83=81=ED=83=9C=20=ED=91=9C=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/gui/oven_control/commicon.cpp | 38 +++++++++++++++++++++++++++++++++++ app/gui/oven_control/commicon.h | 25 +++++++++++++++++++++++ app/gui/oven_control/oven_control.pro | 2 ++ app/gui/oven_control/statusarea.ui | 16 +++++++++++++++ 4 files changed, 81 insertions(+) create mode 100644 app/gui/oven_control/commicon.cpp create mode 100644 app/gui/oven_control/commicon.h diff --git a/app/gui/oven_control/commicon.cpp b/app/gui/oven_control/commicon.cpp new file mode 100644 index 0000000..ed7b1d8 --- /dev/null +++ b/app/gui/oven_control/commicon.cpp @@ -0,0 +1,38 @@ +#include "commicon.h" + +#include +#include + +#include "udphandler.h" + +CommIcon::CommIcon(QWidget *parent) : QWidget(parent) +{ + isFault = false; + + UdpHandler *udp = UdpHandler::getInstance(); + connect(udp, SIGNAL(timeout()), SLOT(setFault())); + connect(udp, SIGNAL(recovered()), SLOT(setOK())); +} + +void CommIcon::setFault() +{ + isFault = true; + update(); +} + +void CommIcon::setOK() +{ + isFault = false; + update(); +} + +void CommIcon::paintEvent(QPaintEvent *event) +{ + if (isFault) + return; + + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing); + painter.setBrush(Qt::blue); + painter.drawEllipse(rect()); +} diff --git a/app/gui/oven_control/commicon.h b/app/gui/oven_control/commicon.h new file mode 100644 index 0000000..32cdda5 --- /dev/null +++ b/app/gui/oven_control/commicon.h @@ -0,0 +1,25 @@ +#ifndef COMMICON_H +#define COMMICON_H + +#include + +class CommIcon : public QWidget +{ + Q_OBJECT +public: + explicit CommIcon(QWidget *parent = nullptr); + +signals: + +public slots: + void setFault(); + void setOK(); + +protected: + void paintEvent(QPaintEvent *event); + +private: + bool isFault; +}; + +#endif // COMMICON_H diff --git a/app/gui/oven_control/oven_control.pro b/app/gui/oven_control/oven_control.pro index ce22679..fd87cb9 100644 --- a/app/gui/oven_control/oven_control.pro +++ b/app/gui/oven_control/oven_control.pro @@ -13,6 +13,7 @@ TEMPLATE = app SOURCES += main.cpp\ + commicon.cpp \ mainwindow.cpp \ cook.cpp \ oven.cpp \ @@ -153,6 +154,7 @@ SOURCES += main.cpp\ HEADERS += mainwindow.h \ + commicon.h \ cook.h \ oven.h \ abstractoveninterface.h \ diff --git a/app/gui/oven_control/statusarea.ui b/app/gui/oven_control/statusarea.ui index 678951c..38a4837 100644 --- a/app/gui/oven_control/statusarea.ui +++ b/app/gui/oven_control/statusarea.ui @@ -95,6 +95,16 @@ + + + + 20 + 20 + 20 + 20 + + + @@ -133,6 +143,12 @@ QLabel
waterlevelicon.h
+ + CommIcon + QWidget +
commicon.h
+ 1 +
-- 2.1.4