summaryrefslogtreecommitdiffstats
path: root/src/input/frontend
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2015-12-02 12:50:42 +0100
committerSean Harmer <sean.harmer@kdab.com>2015-12-04 19:07:29 +0000
commitae4b285959cb901ed9dc9f328116a5ea8e22d4ef (patch)
tree3a21690d19af18a048a4ff24762035b562827f41 /src/input/frontend
parenteb1f2fb369d41787d9a96bd89018c1951c677b48 (diff)
Further improve axis/action dispatch
Change-Id: I6c6dd6b6c78f1c348ef75f6dae4c68b64ba638b2 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/input/frontend')
-rw-r--r--src/input/frontend/qaxisactionhandler.cpp26
1 files changed, 14 insertions, 12 deletions
diff --git a/src/input/frontend/qaxisactionhandler.cpp b/src/input/frontend/qaxisactionhandler.cpp
index ae47ab519..d69400e5b 100644
--- a/src/input/frontend/qaxisactionhandler.cpp
+++ b/src/input/frontend/qaxisactionhandler.cpp
@@ -93,20 +93,22 @@ void QAxisActionHandler::copy(const QNode *ref)
void QAxisActionHandler::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &change)
{
Qt3DCore::QBackendScenePropertyChangePtr e = qSharedPointerCast<Qt3DCore::QBackendScenePropertyChange>(change);
- if (e->type() == Qt3DCore::NodeUpdated && e->propertyName() == QByteArrayLiteral("payload")) {
- Qt3DInput::Input::AxisActionPayload payload = e->value().value<Qt3DInput::Input::AxisActionPayload>();
-
- Q_FOREACH (const Qt3DInput::Input::AxisUpdate &axisUpdate, payload.axes)
- axisValueChanged(axisUpdate.name, axisUpdate.value);
-
- Q_FOREACH (const Qt3DInput::Input::ActionUpdate &actionUpdate, payload.actions) {
- if (actionUpdate.triggered)
- actionStarted(actionUpdate.name);
- else
- actionFinished(actionUpdate.name);
+ if (e->type() == Qt3DCore::NodeUpdated) {
+ if (e->propertyName() == QByteArrayLiteral("axisPayload")) {
+ Qt3DInput::Input::AxisPayload payload = e->value().value<Qt3DInput::Input::AxisPayload>();
+ Q_FOREACH (const Qt3DInput::Input::AxisUpdate &axisUpdate, payload.axes)
+ axisValueChanged(axisUpdate.name, axisUpdate.value);
+
+ } else if (e->propertyName() == QByteArrayLiteral("actionPayload")) {
+ Qt3DInput::Input::ActionPayload payload = e->value().value<Qt3DInput::Input::ActionPayload>();
+ Q_FOREACH (const Qt3DInput::Input::ActionUpdate &actionUpdate, payload.actions) {
+ if (actionUpdate.triggered)
+ actionStarted(actionUpdate.name);
+ else
+ actionFinished(actionUpdate.name);
+ }
}
}
-
}
QT_END_NAMESPACE