Compare commits

...

2 commits

2 changed files with 12 additions and 36 deletions

View file

@ -7,8 +7,6 @@ SensorStore globalSensors;
SensorStore::SensorStore(QObject *parent): QObject(parent) SensorStore::SensorStore(QObject *parent): QObject(parent)
{ {
sensors_.push_back(Sensor(Sensor::TYPE_DOOR,1,0,"Front door"));
sensors_.push_back(Sensor(Sensor::TYPE_DOOR,0,0,"Bedroom door"));
} }
void SensorStore::store(QJsonObject& json) void SensorStore::store(QJsonObject& json)
@ -69,7 +67,7 @@ void SensorStore::sensorGotState(const Sensor& sensor, sensor_update_type_t type
sensors_[i].updateSeen(); sensors_[i].updateSeen();
bool needsUpdate = false; bool needsUpdate = false;
if(type == SENSOR_UPDATE_USER) if(type == SENSOR_UPDATE_USER || type == SENSOR_UPDATE_REMOTE)
{ {
if(sensors_[i].name != sensor.name || sensors_[i].hidden != sensor.hidden || sensors_[i].groupName != sensor.groupName) if(sensors_[i].name != sensor.name || sensors_[i].hidden != sensor.hidden || sensors_[i].groupName != sensor.groupName)
{ {
@ -88,27 +86,8 @@ void SensorStore::sensorGotState(const Sensor& sensor, sensor_update_type_t type
} }
needsUpdate = true; needsUpdate = true;
} }
}
else if(type == SENSOR_UPDATE_REMOTE) if(sensors_[i].field != sensor.field && type == SENSOR_UPDATE_REMOTE)
{
if(sensors_[i].name != sensor.name || sensors_[i].hidden != sensor.hidden || sensors_[i].groupName != sensor.groupName)
{
sensors_[i].name = sensor.name;
sensors_[i].hidden = sensor.hidden;
sensors_[i].groupName = sensor.groupName;
for(Sensor& known : knownSensors_)
{
if(sensor.type == known.type && sensor.id == known.id)
{
known.name = sensor.name;
known.hidden = sensor.hidden;
known.groupName = sensor.groupName;
break;
}
}
needsUpdate = true;
}
if(sensors_[i].field != sensor.field)
{ {
needsUpdate = true; needsUpdate = true;
sensors_[i].field = sensor.field; sensors_[i].field = sensor.field;

View file

@ -37,15 +37,15 @@ void SensorListWidget::onDoubleClick(QTreeWidgetItem *item, int column)
{ {
if(item && item->type() == 1001) if(item && item->type() == 1001)
{ {
const Sensor& sensor = static_cast<SensorListItem*>(item)->getSensor(); Sensor sensor = static_cast<SensorListItem*>(item)->getSensor();
SensorSettingsDialog diag(sensor, this); SensorSettingsDialog diag(sensor, this);
if(diag.exec()) if(diag.exec())
{ {
Sensor updatedSensor = sensor; sensor.name = diag.getName();
updatedSensor.name = diag.getName(); sensor.hidden = diag.getHidden();
updatedSensor.hidden = diag.getHidden(); sensor.groupName = diag.getGroupName();
updatedSensor.groupName = diag.getGroupName();
globalSensors.sensorGotState(updatedSensor, SENSOR_UPDATE_USER); globalSensors.sensorGotState(sensor, SENSOR_UPDATE_USER);
} }
} }
} }
@ -103,8 +103,7 @@ void SensorListWidget::sensorsChanged(std::vector<Sensor> sensors)
itemString.append(sensor.getUnit()); itemString.append(sensor.getUnit());
} }
SensorListItem* sensorItem = new SensorListItem( SensorListItem* sensorItem = new SensorListItem(sensor.name + (sensor.hidden ? " (H)" : ""), sensor);
sensor.name + (sensor.hidden ? " (H)" : ""), sensor);
sensorItem->setText(0, sensor.name + (sensor.hidden ? " (H)" : "")); sensorItem->setText(0, sensor.name + (sensor.hidden ? " (H)" : ""));
sensorItem->setText(1, itemString); sensorItem->setText(1, itemString);
if(sensor.type <= 128) if(sensor.type <= 128)
@ -124,10 +123,8 @@ void SensorListWidget::sensorsChanged(std::vector<Sensor> sensors)
groupItem->setText(0, sensor.groupName); groupItem->setText(0, sensor.groupName);
bool wasExpanded = expandedStates.value(sensor.groupName, false); bool wasExpanded = expandedStates.value(sensor.groupName, false);
if(!wasExpanded && pendingGroupExpandedStates_.contains(sensor.groupName)) if(pendingGroupExpandedStates_.contains(sensor.groupName))
{ wasExpanded = pendingGroupExpandedStates_.take(sensor.groupName);
wasExpanded = pendingGroupExpandedStates_[sensor.groupName];
}
groupItem->setExpanded(wasExpanded); groupItem->setExpanded(wasExpanded);
groupItems[sensor.groupName] = groupItem; groupItems[sensor.groupName] = groupItem;
} }