diff options
Diffstat (limited to 'src/input/qinputaspect.cpp')
-rw-r--r-- | src/input/qinputaspect.cpp | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/input/qinputaspect.cpp b/src/input/qinputaspect.cpp index e8ac79068..5d2231b6d 100644 --- a/src/input/qinputaspect.cpp +++ b/src/input/qinputaspect.cpp @@ -44,7 +44,8 @@ #include "inputhandler_p.h" #include "keyboardcontroller_p.h" #include "keyboardinput_p.h" - +#include <Qt3DCore/qnodevisitor.h> +#include <Qt3DCore/qscenepropertychange.h> #include <Qt3DInput/qkeyboardcontroller.h> #include <Qt3DInput/qkeyboardinput.h> @@ -75,22 +76,29 @@ QVector<QAspectJobPtr> QInputAspect::jobsToExecute() void QInputAspect::sceneNodeAdded(QSceneChangePtr &e) { - + QScenePropertyChangePtr propertyChange = e.staticCast<QScenePropertyChange>(); + QNodePtr nodePtr = propertyChange->value().value<QNodePtr>(); + QNode *n = nodePtr.data(); + QNodeVisitor visitor; + visitor.traverse(n, this, &QInputAspect::visitNode, &QInputAspect::visitNode); } void QInputAspect::sceneNodeRemoved(QSceneChangePtr &e) { - + QScenePropertyChangePtr propertyChange = e.staticCast<QScenePropertyChange>(); + QNodePtr nodePtr = propertyChange->value().value<QNodePtr>(); + QNode *n = nodePtr.data(); + QAbstractAspect::clearBackendNode(n); } void QInputAspect::setRootEntity(QEntity *rootObject) { - + Q_UNUSED(rootObject); } void QInputAspect::onInitialize(const QVariantMap &data) { - + Q_UNUSED(data); } void QInputAspect::onCleanup() @@ -98,6 +106,11 @@ void QInputAspect::onCleanup() } +void QInputAspect::visitNode(QNode *node) +{ + Q_UNUSED(node); +} + } // Qt3D QT_END_NAMESPACE |