diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2016-04-23 10:41:05 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-04-27 11:18:28 +0000 |
commit | b98358e4711de04d2f47f2dbbaab0352f469b69e (patch) | |
tree | 114f550cd719503fbe8ff64de561bfbbbd5dd308 /src/input/frontend/qabstractphysicaldevice.cpp | |
parent | 80bc99ab02173944b5ce968a30bc3431b10f5861 (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.cpp | 21 |
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); + } } /*! |