Fix an issue when editing rule action params

This commit is contained in:
Michael Zanetti 2021-07-11 22:11:12 +02:00
parent aa411c7dc2
commit ce6902013a
4 changed files with 13 additions and 2 deletions

View File

@ -196,7 +196,7 @@ void RuleManager::getRuleDetailsResponse(int commandId, const QVariantMap &param
parseRuleExitActions(ruleMap.value("exitActions").toList(), rule);
parseTimeDescriptor(ruleMap.value("timeDescriptor").toMap(), rule);
rule->setStateEvaluator(parseStateEvaluator(ruleMap.value("stateEvaluator").toMap()));
// qDebug() << "** Rule details received:" << rule;
qCDebug(dcRuleManager()) << "Rule details received:" << rule;
// qDebug() << "Rule JSON:" << qUtf8Printable(QJsonDocument::fromVariant(ruleMap).toJson());
}

View File

@ -181,6 +181,16 @@ RuleActionParam *RuleActionParams::get(int index) const
return m_list.at(index);
}
RuleActionParam *RuleActionParams::getParam(const QUuid &paramTypeId)
{
for (int i = 0; i < m_list.count(); i++) {
if (m_list.at(i)->paramTypeId() == paramTypeId) {
return m_list.at(i);
}
}
return nullptr;
}
bool RuleActionParams::hasRuleActionParam(const QString &paramTypeId) const
{
for (int i = 0; i < m_list.count(); i++) {

View File

@ -64,6 +64,7 @@ public:
Q_INVOKABLE void setRuleActionParamStateByName(const QString &paramName, const QString &stateThingId, const QString &stateTypeId);
Q_INVOKABLE RuleActionParam* get(int index) const;
Q_INVOKABLE RuleActionParam* getParam(const QUuid &paramTypeId);
Q_INVOKABLE bool hasRuleActionParam(const QString &paramTypeId) const;

View File

@ -125,7 +125,7 @@ Page {
paramType: root.actionType.paramTypes.get(index)
enabled: staticParamRadioButton.checked
nameVisible: false
value: root.ruleAction.ruleActionParams.get(index).value
value: root.ruleAction.ruleActionParams.getParam(root.actionType.paramTypes.get(index).id).value
visible: staticParamRadioButton.checked
placeholderText: qsTr("Insert value here")
}