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)