mirror of https://github.com/nymea/nymea.git
Merge PR #272: Fix param values getting lost in ScriptEvents
commit
a062ab44cf
|
|
@ -32,6 +32,7 @@
|
|||
|
||||
#include <qqml.h>
|
||||
#include <QQmlEngine>
|
||||
#include <QJsonDocument>
|
||||
|
||||
namespace nymeaserver {
|
||||
|
||||
|
|
@ -104,16 +105,15 @@ void ScriptEvent::onEventTriggered(const Event &event)
|
|||
return;
|
||||
}
|
||||
|
||||
// ScriptParams *params = new ScriptParams(event.params());
|
||||
// qmlEngine(this)->setObjectOwnership(params, QQmlEngine::JavaScriptOwnership);
|
||||
QVariantMap params;
|
||||
foreach (const Param ¶m, event.params()) {
|
||||
params.insert(param.paramTypeId().toString().remove(QRegExp("[{}]")), param.value());
|
||||
params.insert(param.paramTypeId().toString().remove(QRegExp("[{}]")), param.value().toByteArray());
|
||||
QString paramName = thing->thingClass().eventTypes().findById(event.eventTypeId()).paramTypes().findById(param.paramTypeId()).name();
|
||||
params.insert(paramName, param.value());
|
||||
params.insert(paramName, param.value().toByteArray());
|
||||
}
|
||||
|
||||
emit triggered(params);
|
||||
// Note: Explicitly convert the params to a Json document because auto-casting from QVariantMap to the JS engine might drop some values.
|
||||
emit triggered(QJsonDocument::fromVariant(params).toVariant().toMap());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue