summaryrefslogtreecommitdiffstats
path: root/src/input/backend/qabstractphysicaldevicebackendnode.cpp
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2015-11-28 17:00:36 +0000
committerSean Harmer <sean.harmer@kdab.com>2015-11-29 18:35:34 +0000
commitc74ddf562cf02ac2516db0c5f492cf7198a5e25a (patch)
tree677de501c483152bf0a96c0dcf242a48ead95556 /src/input/backend/qabstractphysicaldevicebackendnode.cpp
parent91efa5068dfac494d023b92c1539806ba673257d (diff)
Add some implementation for QAbstractPhysicalDeviceBackendNode
Change-Id: Ic91c8d42847360eb8e1b64880c87dca837847a15 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/input/backend/qabstractphysicaldevicebackendnode.cpp')
-rw-r--r--src/input/backend/qabstractphysicaldevicebackendnode.cpp48
1 files changed, 47 insertions, 1 deletions
diff --git a/src/input/backend/qabstractphysicaldevicebackendnode.cpp b/src/input/backend/qabstractphysicaldevicebackendnode.cpp
index 01b8e9693..fe483eaa4 100644
--- a/src/input/backend/qabstractphysicaldevicebackendnode.cpp
+++ b/src/input/backend/qabstractphysicaldevicebackendnode.cpp
@@ -35,14 +35,60 @@
****************************************************************************/
#include "qabstractphysicaldevicebackendnode.h"
+#include "qabstractphysicaldevicebackendnode_p.h"
+#include "qabstractphysicaldevice.h"
+#include "qaxissetting.h"
+
+#include <Qt3DCore/qscenepropertychange.h>
QT_BEGIN_NAMESPACE
namespace Qt3DInput {
+QAbstractPhysicalDeviceBackendNodePrivate::QAbstractPhysicalDeviceBackendNodePrivate()
+ : Qt3DCore::QBackendNodePrivate(Qt3DCore::QBackendNode::ReadOnly)
+ , m_axisSettings()
+ , m_enabled(false)
+{
+
+}
+
QAbstractPhysicalDeviceBackendNode::QAbstractPhysicalDeviceBackendNode()
- : Qt3DCore::QBackendNode()
+ : Qt3DCore::QBackendNode(*new QAbstractPhysicalDeviceBackendNodePrivate)
+{
+}
+
+void QAbstractPhysicalDeviceBackendNode::updateFromPeer(Qt3DCore::QNode *peer)
+{
+ Q_D(QAbstractPhysicalDeviceBackendNode);
+ QAbstractPhysicalDevice *physicalDevice = static_cast<QAbstractPhysicalDevice *>(peer);
+ d->m_enabled = physicalDevice->isEnabled();
+ Q_FOREACH (QAxisSetting *axisSetting, physicalDevice->axisSettings())
+ d->m_axisSettings.push_back(axisSetting->id());
+}
+
+void QAbstractPhysicalDeviceBackendNode::cleanup()
+{
+ Q_D(QAbstractPhysicalDeviceBackendNode);
+ d->m_enabled = false;
+ d->m_axisSettings.clear();
+}
+
+void QAbstractPhysicalDeviceBackendNode::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e)
{
+ Q_D(QAbstractPhysicalDeviceBackendNode);
+ Qt3DCore::QScenePropertyChangePtr propertyChange = qSharedPointerCast<Qt3DCore::QScenePropertyChange>(e);
+ if (e->type() == Qt3DCore::NodeUpdated) {
+ if (propertyChange->propertyName() == QByteArrayLiteral("enabled")) {
+ d->m_enabled = propertyChange->value().toBool();
+ }
+ } else if (e->type() == Qt3DCore::NodeAdded) {
+ if (propertyChange->propertyName() == QByteArrayLiteral("axisSettings"))
+ d->m_axisSettings.push_back(propertyChange->value().value<Qt3DCore::QNodeId>());
+ } else if (e->type() == Qt3DCore::NodeRemoved) {
+ if (propertyChange->propertyName() == QByteArrayLiteral("axisSettings"))
+ d->m_axisSettings.removeOne(propertyChange->value().value<Qt3DCore::QNodeId>());
+ }
}
} // Qt3DInput