summaryrefslogtreecommitdiffstats
path: root/src/input/backend/actioninput.cpp
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2015-11-27 14:35:56 +0100
committerPaul Lemire <paul.lemire@kdab.com>2015-11-28 08:15:14 +0000
commit6d14e81d8e25f9d7a37579f0b0d93b2bb66d0adc (patch)
treee07e2a262ae723be879451c3c9182c6c56b4a370 /src/input/backend/actioninput.cpp
parentc49d1183596d6f896611804bc677ad7f103915cc (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.cpp20
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>());
}
}
}