Update removeConfiguredDevice to update rules as appropriate

pull/148/head
Michael Zanetti 2019-03-28 13:04:27 +01:00
parent 6afe3e5161
commit 5fcfe1a11c
2 changed files with 32 additions and 2 deletions

View File

@ -809,6 +809,15 @@ QList<RuleId> RuleEngine::findRules(const DeviceId &deviceId) const
offending = true;
break;
}
foreach (const RuleActionParam &ruleActionParam, action.ruleActionParams()) {
if (ruleActionParam.stateDeviceId() == deviceId) {
offending = true;
break;
}
}
if (offending) {
break;
}
}
}
@ -818,6 +827,15 @@ QList<RuleId> RuleEngine::findRules(const DeviceId &deviceId) const
offending = true;
break;
}
foreach (const RuleActionParam &ruleActionParam, action.ruleActionParams()) {
if (ruleActionParam.stateDeviceId() == deviceId) {
offending = true;
break;
}
}
if (offending) {
break;
}
}
}
@ -886,6 +904,13 @@ void RuleEngine::removeDeviceFromRule(const RuleId &id, const DeviceId &deviceId
for (int i = 0; i < actions.count(); i++) {
if (actions.at(i).deviceId() == deviceId) {
removeIndexes.append(i);
continue;
}
foreach (const RuleActionParam &param, actions.at(i).ruleActionParams()) {
if (param.stateDeviceId() == deviceId) {
removeIndexes.append(i);
break;
}
}
}
while (removeIndexes.count() > 0) {
@ -897,6 +922,13 @@ void RuleEngine::removeDeviceFromRule(const RuleId &id, const DeviceId &deviceId
for (int i = 0; i < exitActions.count(); i++) {
if (exitActions.at(i).deviceId() == deviceId) {
removeIndexes.append(i);
continue;
}
foreach (const RuleActionParam &param, exitActions.at(i).ruleActionParams()) {
if (param.stateDeviceId() == deviceId) {
removeIndexes.append(i);
break;
}
}
}
while (removeIndexes.count() > 0) {
@ -1464,7 +1496,6 @@ void RuleEngine::init()
param.setStateDeviceId(stateDeviceId);
param.setStateTypeId(stateTypeId);
params.append(param);
params.append(param);
settings.endGroup();
}
}

View File

@ -119,7 +119,6 @@ private slots:
void testHousekeeping_data();
void testHousekeeping();
};
void TestRules::cleanupMockHistory() {