summaryrefslogtreecommitdiffstats
path: root/src/input/frontend/qabstractphysicaldevice.cpp
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2016-04-23 10:41:05 +0100
committerSean Harmer <sean.harmer@kdab.com>2016-04-27 11:18:28 +0000
commitb98358e4711de04d2f47f2dbbaab0352f469b69e (patch)
tree114f550cd719503fbe8ff64de561bfbbbd5dd308 /src/input/frontend/qabstractphysicaldevice.cpp
parent80bc99ab02173944b5ce968a30bc3431b10f5861 (diff)
AbstractPhysicalDevice use new added/removed change types
Also implement missing notification sending from the frontend. Change-Id: Iab9ff424496ee1db91101dc70f9b074ca093d2a6 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/input/frontend/qabstractphysicaldevice.cpp')
-rw-r--r--src/input/frontend/qabstractphysicaldevice.cpp21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/input/frontend/qabstractphysicaldevice.cpp b/src/input/frontend/qabstractphysicaldevice.cpp
index af9849cce..ab56ca57b 100644
--- a/src/input/frontend/qabstractphysicaldevice.cpp
+++ b/src/input/frontend/qabstractphysicaldevice.cpp
@@ -40,7 +40,10 @@
#include "qabstractphysicaldevice.h"
#include "qabstractphysicaldevice_p.h"
#include <Qt3DInput/qphysicaldevicecreatedchange.h>
+#include <Qt3DInput/qaxissetting.h>
#include <Qt3DCore/qnodepropertychange.h>
+#include <Qt3DCore/qnodeaddedpropertychange.h>
+#include <Qt3DCore/qnoderemovedpropertychange.h>
#include <Qt3DCore/private/qnode_p.h>
QT_BEGIN_NAMESPACE
@@ -160,8 +163,15 @@ int QAbstractPhysicalDevice::buttonIdentifier(const QString &name) const
void QAbstractPhysicalDevice::addAxisSetting(QAxisSetting *axisSetting)
{
Q_D(QAbstractPhysicalDevice);
- if (!d->m_axisSettings.contains(axisSetting))
+ if (axisSetting && !d->m_axisSettings.contains(axisSetting)) {
+ if (d->m_changeArbiter) {
+ const auto change = Qt3DCore::QNodeAddedPropertyChangePtr::create(id(), axisSetting->id());
+ change->setPropertyName("axisSettings");
+ d->notifyObservers(change);
+ }
+
d->m_axisSettings.push_back(axisSetting);
+ }
}
/*!
@@ -170,8 +180,15 @@ void QAbstractPhysicalDevice::addAxisSetting(QAxisSetting *axisSetting)
void QAbstractPhysicalDevice::removeAxisSetting(QAxisSetting *axisSetting)
{
Q_D(QAbstractPhysicalDevice);
- if (d->m_axisSettings.contains(axisSetting))
+ if (axisSetting && d->m_axisSettings.contains(axisSetting)) {
+ if (d->m_changeArbiter) {
+ const auto change = Qt3DCore::QNodeRemovedPropertyChangePtr::create(id(), axisSetting->id());
+ change->setPropertyName("axisSettings");
+ d->notifyObservers(change);
+ }
+
d->m_axisSettings.removeOne(axisSetting);
+ }
}
/*!