fix initialisation of the rule engine
after loading rules from config we need to evaluate their active state immedately
This commit is contained in:
parent
a6f4ddf188
commit
15f7b2517c
@ -356,6 +356,7 @@ RuleEngine::RuleEngine(QObject *parent) :
|
|||||||
rule.setExitActions(exitActions);
|
rule.setExitActions(exitActions);
|
||||||
rule.setEnabled(enabled);
|
rule.setEnabled(enabled);
|
||||||
rule.setExecutable(executable);
|
rule.setExecutable(executable);
|
||||||
|
rule.setStatesActive(rule.stateEvaluator().evaluate());
|
||||||
appendRule(rule);
|
appendRule(rule);
|
||||||
settings.endGroup();
|
settings.endGroup();
|
||||||
}
|
}
|
||||||
@ -388,8 +389,10 @@ QList<Rule> RuleEngine::evaluateEvent(const Event &event)
|
|||||||
QList<Rule> rules;
|
QList<Rule> rules;
|
||||||
foreach (const RuleId &id, ruleIds()) {
|
foreach (const RuleId &id, ruleIds()) {
|
||||||
Rule rule = m_rules.value(id);
|
Rule rule = m_rules.value(id);
|
||||||
if (!rule.enabled())
|
if (!rule.enabled()) {
|
||||||
|
qCDebug(dcRuleEngineDebug()) << "Skipping rule" << rule.name() << "because it is disabled";
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
// If we have a state based on this event
|
// If we have a state based on this event
|
||||||
if (containsState(rule.stateEvaluator(), event)) {
|
if (containsState(rule.stateEvaluator(), event)) {
|
||||||
@ -1204,6 +1207,7 @@ bool RuleEngine::containsEvent(const Rule &rule, const Event &event, const Devic
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qCDebug(dcRuleEngineDebug()) << "Rule" << rule.name() << "does not match event descriptors";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user