diff options
author | Paul Lemire <paul.lemire.ecortex@kdab.com> | 2014-11-10 08:29:06 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2014-11-14 17:45:03 +0100 |
commit | 09f0eb1409fecaa7405bcecaf048b9562edddd7d (patch) | |
tree | 791ed9329acfbaf59e1e62ac508fd2087151832c /src/input | |
parent | ffc5df11e7c69ddaee375129c462e9d6eff24b4b (diff) |
KeyboardInput backend functor creator added
Change-Id: I9025c3ad9201424c04a34dbf0f188749f00942c7
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/input')
-rw-r--r-- | src/input/keyboardinput.cpp | 24 | ||||
-rw-r--r-- | src/input/keyboardinput_p.h | 15 |
2 files changed, 39 insertions, 0 deletions
diff --git a/src/input/keyboardinput.cpp b/src/input/keyboardinput.cpp index 8c82757c0..3a6e945ba 100644 --- a/src/input/keyboardinput.cpp +++ b/src/input/keyboardinput.cpp @@ -42,6 +42,8 @@ #include "keyboardinput_p.h" #include "qkeyboardinput.h" #include "qkeyboardcontroller.h" +#include "inputhandler_p.h" +#include "inputmanagers_p.h" #include <QVariant> #include <Qt3DCore/qscenepropertychange.h> @@ -77,6 +79,28 @@ void KeyboardInput::sceneChangeEvent(const QSceneChangePtr &e) } } +KeyboardInputFunctor::KeyboardInputFunctor(InputHandler *handler) + : m_handler(handler) +{ +} + +QBackendNode *KeyboardInputFunctor::create(QNode *frontend) const +{ + KeyboardInput *input = m_handler->keyboardInputManager()->getOrCreateResource(frontend->uuid()); + input->setPeer(frontend); + return input; +} + +QBackendNode *KeyboardInputFunctor::get(QNode *frontend) const +{ + return m_handler->keyboardInputManager()->lookupResource(frontend->uuid()); +} + +void KeyboardInputFunctor::destroy(QNode *frontend) const +{ + m_handler->keyboardInputManager()->releaseResource(frontend->uuid()); +} + } // Input } // Qt3D diff --git a/src/input/keyboardinput_p.h b/src/input/keyboardinput_p.h index 8dc32f4d5..01360e4fa 100644 --- a/src/input/keyboardinput_p.h +++ b/src/input/keyboardinput_p.h @@ -51,6 +51,8 @@ namespace Qt3D { namespace Input { +class InputHandler; + class KeyboardInput : public QBackendNode { public: @@ -65,6 +67,19 @@ private: QNodeUuid m_keyboardController; }; +class KeyboardInputFunctor : public QBackendNodeFunctor +{ +public: + explicit KeyboardInputFunctor(InputHandler *handler); + + QBackendNode *create(QNode *frontend) const Q_DECL_OVERRIDE; + QBackendNode *get(QNode *frontend) const Q_DECL_OVERRIDE; + void destroy(QNode *frontend) const Q_DECL_OVERRIDE; + +private: + InputHandler *m_handler; +}; + } // Input } // Qt3D |