diff --git a/src/sensors/sensor.cpp b/src/sensors/sensor.cpp index 8483127..040b02a 100644 --- a/src/sensors/sensor.cpp +++ b/src/sensors/sensor.cpp @@ -7,8 +7,6 @@ SensorStore globalSensors; 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) @@ -69,7 +67,7 @@ void SensorStore::sensorGotState(const Sensor& sensor, sensor_update_type_t type sensors_[i].updateSeen(); 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) { @@ -88,27 +86,8 @@ void SensorStore::sensorGotState(const Sensor& sensor, sensor_update_type_t type } needsUpdate = true; } - } - else if(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) + + if(sensors_[i].field != sensor.field && type == SENSOR_UPDATE_REMOTE) { needsUpdate = true; sensors_[i].field = sensor.field; diff --git a/src/ui/sensorlistwidget.cpp b/src/ui/sensorlistwidget.cpp index b411768..dfd0e7c 100644 --- a/src/ui/sensorlistwidget.cpp +++ b/src/ui/sensorlistwidget.cpp @@ -37,15 +37,15 @@ void SensorListWidget::onDoubleClick(QTreeWidgetItem *item, int column) { if(item && item->type() == 1001) { - const Sensor& sensor = static_cast(item)->getSensor(); + Sensor sensor = static_cast(item)->getSensor(); SensorSettingsDialog diag(sensor, this); if(diag.exec()) { - Sensor updatedSensor = sensor; - updatedSensor.name = diag.getName(); - updatedSensor.hidden = diag.getHidden(); - updatedSensor.groupName = diag.getGroupName(); - globalSensors.sensorGotState(updatedSensor, SENSOR_UPDATE_USER); + sensor.name = diag.getName(); + sensor.hidden = diag.getHidden(); + sensor.groupName = diag.getGroupName(); + + globalSensors.sensorGotState(sensor, SENSOR_UPDATE_USER); } } } @@ -103,8 +103,7 @@ void SensorListWidget::sensorsChanged(std::vector sensors) itemString.append(sensor.getUnit()); } - SensorListItem* sensorItem = new SensorListItem( - sensor.name + (sensor.hidden ? " (H)" : ""), sensor); + SensorListItem* sensorItem = new SensorListItem(sensor.name + (sensor.hidden ? " (H)" : ""), sensor); sensorItem->setText(0, sensor.name + (sensor.hidden ? " (H)" : "")); sensorItem->setText(1, itemString); if(sensor.type <= 128) @@ -124,10 +123,8 @@ void SensorListWidget::sensorsChanged(std::vector sensors) groupItem->setText(0, sensor.groupName); bool wasExpanded = expandedStates.value(sensor.groupName, false); - if(!wasExpanded && pendingGroupExpandedStates_.contains(sensor.groupName)) - { - wasExpanded = pendingGroupExpandedStates_[sensor.groupName]; - } + if(pendingGroupExpandedStates_.contains(sensor.groupName)) + wasExpanded = pendingGroupExpandedStates_.take(sensor.groupName); groupItem->setExpanded(wasExpanded); groupItems[sensor.groupName] = groupItem; }