From 3e33972288dcb0b12a41a553c58428d05c4da53c Mon Sep 17 00:00:00 2001 From: Richard Genoud Date: Wed, 12 Feb 2020 12:45:50 +0100 Subject: [PATCH] thermostat: zoneitem: implement long_clicked signal --- soft/thermostat/inc/zoneitem.h | 4 ++++ soft/thermostat/src/zoneitem.cpp | 16 ++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/soft/thermostat/inc/zoneitem.h b/soft/thermostat/inc/zoneitem.h index f457fcd..43cd9e3 100644 --- a/soft/thermostat/inc/zoneitem.h +++ b/soft/thermostat/inc/zoneitem.h @@ -11,6 +11,7 @@ #include #include +#include #include "boost_dlg.h" @@ -34,9 +35,12 @@ public: signals: void clicked(); + void long_clicked(); protected: + void mousePressEvent(QMouseEvent* event); void mouseReleaseEvent(QMouseEvent* event); + QElapsedTimer m_click_chrono; }; #endif // ZONEITEM_H diff --git a/soft/thermostat/src/zoneitem.cpp b/soft/thermostat/src/zoneitem.cpp index 948687c..02aa684 100644 --- a/soft/thermostat/src/zoneitem.cpp +++ b/soft/thermostat/src/zoneitem.cpp @@ -46,9 +46,21 @@ ZoneItem::~ZoneItem() { } +void ZoneItem::mousePressEvent(QMouseEvent* event) +{ + Q_UNUSED(event); + + m_click_chrono.start(); +} + void ZoneItem::mouseReleaseEvent(QMouseEvent* event) { - (void)event; - emit clicked(); + Q_UNUSED(event); + + if (m_click_chrono.elapsed() > 1000) { + emit long_clicked(); + } else { + emit clicked(); + } } void ZoneItem::refresh(void)