From ce6902013a74b6a25272a1833b9795db77f85fe8 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Sun, 11 Jul 2021 22:11:12 +0200 Subject: [PATCH] Fix an issue when editing rule action params --- libnymea-app/rulemanager.cpp | 2 +- libnymea-app/types/ruleactionparams.cpp | 10 ++++++++++ libnymea-app/types/ruleactionparams.h | 1 + nymea-app/ui/magic/SelectRuleActionParamsPage.qml | 2 +- 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/libnymea-app/rulemanager.cpp b/libnymea-app/rulemanager.cpp index b18e6e01..31d903d1 100644 --- a/libnymea-app/rulemanager.cpp +++ b/libnymea-app/rulemanager.cpp @@ -196,7 +196,7 @@ void RuleManager::getRuleDetailsResponse(int commandId, const QVariantMap ¶m 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()); } diff --git a/libnymea-app/types/ruleactionparams.cpp b/libnymea-app/types/ruleactionparams.cpp index 58544eec..697ecc19 100644 --- a/libnymea-app/types/ruleactionparams.cpp +++ b/libnymea-app/types/ruleactionparams.cpp @@ -181,6 +181,16 @@ RuleActionParam *RuleActionParams::get(int index) const return m_list.at(index); } +RuleActionParam *RuleActionParams::getParam(const QUuid ¶mTypeId) +{ + 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 ¶mTypeId) const { for (int i = 0; i < m_list.count(); i++) { diff --git a/libnymea-app/types/ruleactionparams.h b/libnymea-app/types/ruleactionparams.h index 7042f3b5..3c05b7e5 100644 --- a/libnymea-app/types/ruleactionparams.h +++ b/libnymea-app/types/ruleactionparams.h @@ -64,6 +64,7 @@ public: Q_INVOKABLE void setRuleActionParamStateByName(const QString ¶mName, const QString &stateThingId, const QString &stateTypeId); Q_INVOKABLE RuleActionParam* get(int index) const; + Q_INVOKABLE RuleActionParam* getParam(const QUuid ¶mTypeId); Q_INVOKABLE bool hasRuleActionParam(const QString ¶mTypeId) const; diff --git a/nymea-app/ui/magic/SelectRuleActionParamsPage.qml b/nymea-app/ui/magic/SelectRuleActionParamsPage.qml index b1cdca03..7b90a295 100644 --- a/nymea-app/ui/magic/SelectRuleActionParamsPage.qml +++ b/nymea-app/ui/magic/SelectRuleActionParamsPage.qml @@ -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") }