diff options
author | Mike Krus <mike.krus@kdab.com> | 2019-09-30 16:42:42 +0100 |
---|---|---|
committer | Mike Krus <mike.krus@kdab.com> | 2019-10-01 09:17:57 +0100 |
commit | 90e7c5b5b4bfa4015b834adf7f0e744e48e25db3 (patch) | |
tree | 4c68a8cb916a7e02db4a0eedc837aa54ae595173 /src/input | |
parent | f06e898718851914bcb4c1d2410e7fd0bc776874 (diff) |
Update QInputSettings to use direct sync
Change-Id: Ifb5959025e9016525f8c2d57a94fed103b5b6b1a
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/input')
-rw-r--r-- | src/input/backend/inputsettings.cpp | 21 | ||||
-rw-r--r-- | src/input/backend/inputsettings_p.h | 9 | ||||
-rw-r--r-- | src/input/frontend/qinputaspect.cpp | 2 |
3 files changed, 11 insertions, 21 deletions
diff --git a/src/input/backend/inputsettings.cpp b/src/input/backend/inputsettings.cpp index b695ed600..7849640bd 100644 --- a/src/input/backend/inputsettings.cpp +++ b/src/input/backend/inputsettings.cpp @@ -52,26 +52,19 @@ namespace Qt3DInput { namespace Input { InputSettings::InputSettings() - : QBackendNode(QBackendNode::ReadOnly) + : BackendNode(QBackendNode::ReadOnly) , m_eventSource(nullptr) { } -void InputSettings::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) +void InputSettings::syncFromFrontEnd(const Qt3DCore::QNode *frontEnd, bool firstTime) { - const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QInputSettingsData>>(change); - const auto &data = typedChange->data; - m_eventSource = data.eventSource; -} + BackendNode::syncFromFrontEnd(frontEnd, firstTime); + const QInputSettings *node = qobject_cast<const QInputSettings *>(frontEnd); + if (!node) + return; -void InputSettings::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) -{ - if (e->type() == Qt3DCore::PropertyUpdated) { - Qt3DCore::QPropertyUpdatedChangePtr propertyChange = qSharedPointerCast<Qt3DCore::QPropertyUpdatedChange>(e); - if (propertyChange->propertyName() == QByteArrayLiteral("eventSource")) - m_eventSource = propertyChange->value().value<QObject *>(); - } - QBackendNode::sceneChangeEvent(e); + m_eventSource = node->eventSource(); } InputSettingsFunctor::InputSettingsFunctor(InputHandler *handler) diff --git a/src/input/backend/inputsettings_p.h b/src/input/backend/inputsettings_p.h index 87cb4debf..33f56cc0b 100644 --- a/src/input/backend/inputsettings_p.h +++ b/src/input/backend/inputsettings_p.h @@ -51,7 +51,7 @@ // We mean it. // -#include <Qt3DCore/qbackendnode.h> +#include <Qt3DInput/private/backendnode_p.h> #include <QtCore/QPointer> QT_BEGIN_NAMESPACE @@ -62,18 +62,15 @@ namespace Input { class InputHandler; -class InputSettings : public Qt3DCore::QBackendNode +class InputSettings : public BackendNode { public: InputSettings(); inline QObject *eventSource() const { return m_eventSource; } -protected: - void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) override; + void syncFromFrontEnd(const Qt3DCore::QNode *frontEnd, bool firstTime) override; private: - void initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) final; - QPointer<QObject> m_eventSource; }; diff --git a/src/input/frontend/qinputaspect.cpp b/src/input/frontend/qinputaspect.cpp index 6985e71c8..a2db40b95 100644 --- a/src/input/frontend/qinputaspect.cpp +++ b/src/input/frontend/qinputaspect.cpp @@ -160,7 +160,7 @@ QInputAspect::QInputAspect(QInputAspectPrivate &dd, QObject *parent) registerBackendType<QInputSequence, true>(QBackendNodeMapperPtr(new Input::InputNodeFunctor<Input::InputSequence, Input::InputSequenceManager>(d_func()->m_inputHandler->inputSequenceManager()))); registerBackendType<QLogicalDevice, true>(QBackendNodeMapperPtr(new Input::LogicalDeviceNodeFunctor(d_func()->m_inputHandler->logicalDeviceManager()))); registerBackendType<QGenericInputDevice, true>(QBackendNodeMapperPtr(new Input::GenericDeviceBackendFunctor(this, d_func()->m_inputHandler.data()))); - registerBackendType<QInputSettings>(QBackendNodeMapperPtr(new Input::InputSettingsFunctor(d_func()->m_inputHandler.data()))); + registerBackendType<QInputSettings, true>(QBackendNodeMapperPtr(new Input::InputSettingsFunctor(d_func()->m_inputHandler.data()))); registerBackendType<QAbstractPhysicalDeviceProxy>(QBackendNodeMapperPtr(new Input::PhysicalDeviceProxyNodeFunctor(d_func()->m_inputHandler->physicalDeviceProxyManager()))); #ifdef HAVE_QGAMEPAD |