Add time to the sensor list widget, also broadcast and recive the time of a sensor

This commit is contained in:
uvos 2023-11-08 23:35:50 +01:00
parent 260334ef35
commit a301bdbaa7
15 changed files with 557 additions and 266 deletions

View file

@ -7,14 +7,14 @@
SensorListWidget::SensorListWidget(const bool showHidden, QWidget *parent): QTableWidget(parent),
showHidden_(showHidden)
{
setColumnCount(2);
setColumnCount(3);
setSelectionBehavior(QAbstractItemView::SelectRows);
horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch);
QScroller::grabGesture(this, QScroller::LeftMouseButtonGesture);
setAutoScroll(true);
setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
setHorizontalHeaderItem(0, new QTableWidgetItem("Sensor"));
setHorizontalHeaderItem(1, new QTableWidgetItem("Value"));
sensorsChanged(std::vector<Sensor>());
verticalHeader()->hide();
}
SensorListWidget::SensorListWidget(SensorStore& sensorStore, const bool showHidden,
@ -28,8 +28,11 @@ void SensorListWidget::sensorsChanged(std::vector<Sensor> sensors)
clear();
setHorizontalHeaderItem(0, new QTableWidgetItem("Sensor"));
setHorizontalHeaderItem(1, new QTableWidgetItem("Value"));
setHorizontalHeaderItem(2, new QTableWidgetItem("Time"));
size_t listLen = 0;
for(size_t i = 0; i < sensors.size(); ++i) if(showHidden_ || !sensors[i].hidden) ++listLen;
for(size_t i = 0; i < sensors.size(); ++i)
if(showHidden_ || !sensors[i].hidden)
++listLen;
setRowCount(static_cast<int>(listLen));
size_t row = 0;
for(size_t i = 0; i < sensors.size(); ++i)
@ -42,20 +45,25 @@ void SensorListWidget::sensorsChanged(std::vector<Sensor> sensors)
if(sensors[i].type == Sensor::TYPE_DOOR)
{
if(static_cast<bool>(sensors[i].field)) itemString.append("\"Open\"");
if(static_cast<bool>(sensors[i].field))
itemString.append("\"Open\"");
else itemString.append("\"Closed\"");
}
else if(sensors[i].type == Sensor::TYPE_AUDIO_OUTPUT)
{
if(static_cast<bool>(sensors[i].field)) itemString.append("\"Playing\"");
if(static_cast<bool>(sensors[i].field))
itemString.append("\"Playing\"");
else itemString.append("\"Silent\"");
}
setItem(static_cast<int>(row), 0, new QTableWidgetItem(sensors[i].name + (sensors[i].hidden ? "(H)" : "")));
setItem(static_cast<int>(row), 0, new QTableWidgetItem(sensors[i].name + (sensors[i].hidden ? " (H)" : "")));
setItem(static_cast<int>(row), 1, new QTableWidgetItem(itemString));
setItem(static_cast<int>(row), 2, new QTableWidgetItem(sensors[i].lastSeen.time().toString("hh:mm")));
++row;
}
}
sortItems(0, Qt::AscendingOrder);
resizeColumnsToContents();
}
void SensorListWidget::setShowHidden(const bool showHidden)