diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2015-11-27 14:35:56 +0100 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2015-11-28 08:15:14 +0000 |
commit | 6d14e81d8e25f9d7a37579f0b0d93b2bb66d0adc (patch) | |
tree | e07e2a262ae723be879451c3c9182c6c56b4a370 /src/input/backend/actioninput.cpp | |
parent | c49d1183596d6f896611804bc677ad7f103915cc (diff) |
QActionInput/QAxisInput: add property for keys
Change-Id: Ia8cb306dfc63027d66e4e0ad58ae453ddf1ed1f3
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/input/backend/actioninput.cpp')
-rw-r--r-- | src/input/backend/actioninput.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/input/backend/actioninput.cpp b/src/input/backend/actioninput.cpp index e49f1483e..43570bf0b 100644 --- a/src/input/backend/actioninput.cpp +++ b/src/input/backend/actioninput.cpp @@ -43,6 +43,18 @@ namespace Qt3DInput { namespace Input { +namespace { + +qint64 keysToBitArray(const QVariantList &keys) +{ + qint64 keyBits; + Q_FOREACH (const QVariant &key, keys) + keyBits |= key.toInt(); + return keyBits; +} + +} // anonymous + ActionInput::ActionInput() : Qt3DCore::QBackendNode() , m_enabled(false) @@ -54,7 +66,7 @@ void ActionInput::updateFromPeer(Qt3DCore::QNode *peer) { QActionInput *input = static_cast<QActionInput *>(peer); m_enabled = input->isEnabled(); - m_keys = input->keysBitArray(); + m_keys = keysToBitArray(input->keys()); // TO DO: sourceDevice should be a QNode // if (input->sourceDevice()) // m_sourceDevice = input->sourceDevice()->id(); @@ -64,10 +76,10 @@ void ActionInput::cleanup() { m_enabled = false; m_sourceDevice = Qt3DCore::QNodeId(); - m_keys.clear(); + m_keys = 0; } -QBitArray ActionInput::keys() const +qint64 ActionInput::keys() const { return m_keys; } @@ -81,7 +93,7 @@ void ActionInput::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) } else if (propertyChange->propertyName() == QByteArrayLiteral("enabled")) { m_enabled = propertyChange->value().toBool(); } else if (propertyChange->propertyName() == QByteArrayLiteral("keys")) { - m_keys = propertyChange->value().value<QBitArray>(); + m_keys = keysToBitArray(propertyChange->value().value<QVariantList>()); } } } |