diff --git a/platform/qt/sacn/universewindow.cpp b/platform/qt/sacn/universewindow.cpp index 95c756e..642202d 100644 --- a/platform/qt/sacn/universewindow.cpp +++ b/platform/qt/sacn/universewindow.cpp @@ -39,15 +39,23 @@ UniverseWindow::UniverseWindow(QWidget *parent, std::shared_ptr u : QMainWindow(parent) , ui(new Ui::UniverseWindow()) , universe_(universe) + , status_watchdog_(new QTimer(this)) { ui->setupUi(this); + // set the status watchdog to update the status if the universe + // isn't showing frequent activity + status_watchdog_->callOnTimeout([this](){update_status_();}); + status_watchdog_->setInterval(DMX::E111_DATA_LOSS_TIMEOUT / 10); + status_watchdog_->start(); + auto model = new UniverseModel(this, universe); ui->tableView->setModel(model); // update the status bar whenever the universe refreshes connect(model, &UniverseModel::dataChanged, this, [this]() { update_status_(); + status_watchdog_->start(); }); // add data format combobox to toolbar diff --git a/platform/qt/sacn/universewindow.h b/platform/qt/sacn/universewindow.h index e4cf7fb..91a8a0a 100644 --- a/platform/qt/sacn/universewindow.h +++ b/platform/qt/sacn/universewindow.h @@ -25,6 +25,7 @@ #include #include +#include QT_BEGIN_NAMESPACE namespace Ui { @@ -52,4 +53,5 @@ private: std::shared_ptr universe_; void update_status_(); + QTimer *status_watchdog_; };