Compare commits
No commits in common. "e52de7de50ccf5196262a04a1fabeb8c8df7580e" and "34f129967b84ea3bd8af99ad9831aa67e8724da4" have entirely different histories.
e52de7de50
...
34f129967b
2 changed files with 36 additions and 12 deletions
|
|
@ -7,6 +7,8 @@ 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)
|
||||||
|
|
@ -67,7 +69,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 || type == SENSOR_UPDATE_REMOTE)
|
if(type == SENSOR_UPDATE_USER)
|
||||||
{
|
{
|
||||||
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)
|
||||||
{
|
{
|
||||||
|
|
@ -86,8 +88,27 @@ void SensorStore::sensorGotState(const Sensor& sensor, sensor_update_type_t type
|
||||||
}
|
}
|
||||||
needsUpdate = true;
|
needsUpdate = true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if(sensors_[i].field != sensor.field && type == SENSOR_UPDATE_REMOTE)
|
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)
|
||||||
{
|
{
|
||||||
needsUpdate = true;
|
needsUpdate = true;
|
||||||
sensors_[i].field = sensor.field;
|
sensors_[i].field = sensor.field;
|
||||||
|
|
|
||||||
|
|
@ -37,15 +37,15 @@ void SensorListWidget::onDoubleClick(QTreeWidgetItem *item, int column)
|
||||||
{
|
{
|
||||||
if(item && item->type() == 1001)
|
if(item && item->type() == 1001)
|
||||||
{
|
{
|
||||||
Sensor sensor = static_cast<SensorListItem*>(item)->getSensor();
|
const Sensor& sensor = static_cast<SensorListItem*>(item)->getSensor();
|
||||||
SensorSettingsDialog diag(sensor, this);
|
SensorSettingsDialog diag(sensor, this);
|
||||||
if(diag.exec())
|
if(diag.exec())
|
||||||
{
|
{
|
||||||
sensor.name = diag.getName();
|
Sensor updatedSensor = sensor;
|
||||||
sensor.hidden = diag.getHidden();
|
updatedSensor.name = diag.getName();
|
||||||
sensor.groupName = diag.getGroupName();
|
updatedSensor.hidden = diag.getHidden();
|
||||||
|
updatedSensor.groupName = diag.getGroupName();
|
||||||
globalSensors.sensorGotState(sensor, SENSOR_UPDATE_USER);
|
globalSensors.sensorGotState(updatedSensor, SENSOR_UPDATE_USER);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -103,7 +103,8 @@ void SensorListWidget::sensorsChanged(std::vector<Sensor> sensors)
|
||||||
itemString.append(sensor.getUnit());
|
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(0, sensor.name + (sensor.hidden ? " (H)" : ""));
|
||||||
sensorItem->setText(1, itemString);
|
sensorItem->setText(1, itemString);
|
||||||
if(sensor.type <= 128)
|
if(sensor.type <= 128)
|
||||||
|
|
@ -123,8 +124,10 @@ 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(pendingGroupExpandedStates_.contains(sensor.groupName))
|
if(!wasExpanded && 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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue