diff options
author | Mike Krus <mike.krus@kdab.com> | 2019-09-30 10:54:50 +0100 |
---|---|---|
committer | Mike Krus <mike.krus@kdab.com> | 2019-10-01 09:17:48 +0100 |
commit | 812bc78ce4b88f612b0d4880723547fe09181f93 (patch) | |
tree | bec2b1c473d08841c1272bfcce027f799dac7dd2 | |
parent | 5bc3eec77b7052626bac91efd05026c92b0108b5 (diff) |
Update input action classes to use direct sync
Change-Id: I6126a9b51e5d681ad312bf1df5ca694c6d712294
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
-rw-r--r-- | src/input/backend/abstractactioninput.cpp | 2 | ||||
-rw-r--r-- | src/input/backend/abstractactioninput_p.h | 4 | ||||
-rw-r--r-- | src/input/backend/actioninput.cpp | 30 | ||||
-rw-r--r-- | src/input/backend/actioninput_p.h | 4 | ||||
-rw-r--r-- | src/input/backend/inputchord.cpp | 47 | ||||
-rw-r--r-- | src/input/backend/inputchord_p.h | 4 | ||||
-rw-r--r-- | src/input/backend/inputsequence.cpp | 54 | ||||
-rw-r--r-- | src/input/backend/inputsequence_p.h | 4 | ||||
-rw-r--r-- | src/input/frontend/qinputaspect.cpp | 6 | ||||
-rw-r--r-- | src/input/frontend/qinputchord.cpp | 16 | ||||
-rw-r--r-- | src/input/frontend/qinputsequence.cpp | 15 | ||||
-rw-r--r-- | tests/auto/input/actioninput/tst_actioninput.cpp | 30 | ||||
-rw-r--r-- | tests/auto/input/inputchord/tst_inputchord.cpp | 48 | ||||
-rw-r--r-- | tests/auto/input/inputsequence/tst_inputsequence.cpp | 66 |
14 files changed, 106 insertions, 224 deletions
diff --git a/src/input/backend/abstractactioninput.cpp b/src/input/backend/abstractactioninput.cpp index 1d4366554..ec469204e 100644 --- a/src/input/backend/abstractactioninput.cpp +++ b/src/input/backend/abstractactioninput.cpp @@ -46,7 +46,7 @@ namespace Qt3DInput { namespace Input { AbstractActionInput::AbstractActionInput() - : Qt3DCore::QBackendNode() + : BackendNode() { } diff --git a/src/input/backend/abstractactioninput_p.h b/src/input/backend/abstractactioninput_p.h index 267d276c7..e200990e7 100644 --- a/src/input/backend/abstractactioninput_p.h +++ b/src/input/backend/abstractactioninput_p.h @@ -51,7 +51,7 @@ // We mean it. // -#include <Qt3DCore/qbackendnode.h> +#include <Qt3DInput/private/backendnode_p.h> #include <Qt3DCore/qnodeid.h> QT_BEGIN_NAMESPACE @@ -62,7 +62,7 @@ namespace Input { class InputHandler; -class Q_AUTOTEST_EXPORT AbstractActionInput : public Qt3DCore::QBackendNode +class Q_AUTOTEST_EXPORT AbstractActionInput : public BackendNode { public: AbstractActionInput(); diff --git a/src/input/backend/actioninput.cpp b/src/input/backend/actioninput.cpp index 46dc7f584..b02da0a4d 100644 --- a/src/input/backend/actioninput.cpp +++ b/src/input/backend/actioninput.cpp @@ -40,8 +40,7 @@ #include "actioninput_p.h" #include <Qt3DInput/qactioninput.h> -#include <Qt3DCore/qpropertyupdatedchange.h> - +#include <Qt3DInput/qabstractphysicaldevice.h> #include <Qt3DInput/private/qactioninput_p.h> #include <Qt3DInput/private/inputhandler_p.h> #include <Qt3DInput/private/utils_p.h> @@ -58,14 +57,6 @@ ActionInput::ActionInput() { } -void ActionInput::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) -{ - const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QActionInputData>>(change); - const auto &data = typedChange->data; - m_buttons = data.buttons; - m_sourceDevice = data.sourceDeviceId; -} - void ActionInput::cleanup() { setEnabled(false); @@ -73,21 +64,20 @@ void ActionInput::cleanup() m_buttons.clear(); } -void ActionInput::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) +void ActionInput::syncFromFrontEnd(const Qt3DCore::QNode *frontEnd, bool firstTime) { - if (e->type() == Qt3DCore::PropertyUpdated) { - Qt3DCore::QPropertyUpdatedChangePtr propertyChange = qSharedPointerCast<Qt3DCore::QPropertyUpdatedChange>(e); - if (propertyChange->propertyName() == QByteArrayLiteral("sourceDevice")) - m_sourceDevice = propertyChange->value().value<Qt3DCore::QNodeId>(); - else if (propertyChange->propertyName() == QByteArrayLiteral("buttons")) - m_buttons = propertyChange->value().value<QVector<int>>(); - } - AbstractActionInput::sceneChangeEvent(e); + AbstractActionInput::syncFromFrontEnd(frontEnd, firstTime); + const QActionInput *node = qobject_cast<const QActionInput *>(frontEnd); + if (!node) + return; + + m_sourceDevice = Qt3DCore::qIdForNode(node->sourceDevice()); + m_buttons = node->buttons(); } bool ActionInput::process(InputHandler *inputHandler, qint64 currentTime) { - Q_UNUSED(currentTime); + Q_UNUSED(currentTime) if (!isEnabled()) return false; diff --git a/src/input/backend/actioninput_p.h b/src/input/backend/actioninput_p.h index 00fb0475c..eecf1d10e 100644 --- a/src/input/backend/actioninput_p.h +++ b/src/input/backend/actioninput_p.h @@ -69,13 +69,11 @@ public: inline QVector<int> buttons() const { return m_buttons; } inline Qt3DCore::QNodeId sourceDevice() const { return m_sourceDevice; } - void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) override; + void syncFromFrontEnd(const Qt3DCore::QNode *frontEnd, bool firstTime) override; bool process(InputHandler *inputHandler, qint64 currentTime) override; private: - void initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) final; - QVector<int> m_buttons; Qt3DCore::QNodeId m_sourceDevice; }; diff --git a/src/input/backend/inputchord.cpp b/src/input/backend/inputchord.cpp index 731fd91e3..5716e3344 100644 --- a/src/input/backend/inputchord.cpp +++ b/src/input/backend/inputchord.cpp @@ -62,15 +62,6 @@ InputChord::InputChord() { } -void InputChord::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) -{ - const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QInputChordData>>(change); - const QInputChordData &data = typedChange->data; - m_chords = data.chordIds; - m_timeout = milliToNano(data.timeout); - m_inputsToTrigger = m_chords; -} - void InputChord::cleanup() { setEnabled(false); @@ -102,38 +93,16 @@ void InputChord::setStartTime(qint64 time) m_startTime = time; } -void InputChord::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) +void InputChord::syncFromFrontEnd(const Qt3DCore::QNode *frontEnd, bool firstTime) { - switch (e->type()) { - case Qt3DCore::PropertyUpdated: { - const auto change = qSharedPointerCast<Qt3DCore::QPropertyUpdatedChange>(e); - if (change->propertyName() == QByteArrayLiteral("timeout")) - m_timeout = milliToNano(change->value().toInt()); - break; - } + AbstractActionInput::syncFromFrontEnd(frontEnd, firstTime); + const QInputChord *node = qobject_cast<const QInputChord *>(frontEnd); + if (!node) + return; - case Qt3DCore::PropertyValueAdded: { - const auto change = qSharedPointerCast<Qt3DCore::QPropertyNodeAddedChange>(e); - if (change->propertyName() == QByteArrayLiteral("chord")) { - m_chords.push_back(change->addedNodeId()); - m_inputsToTrigger.push_back(change->addedNodeId()); - } - break; - } - - case Qt3DCore::PropertyValueRemoved: { - const auto change = qSharedPointerCast<Qt3DCore::QPropertyNodeRemovedChange>(e); - if (change->propertyName() == QByteArrayLiteral("chord")) { - m_chords.removeOne(change->removedNodeId()); - m_inputsToTrigger.removeOne(change->removedNodeId()); - } - break; - } - - default: - break; - } - AbstractActionInput::sceneChangeEvent(e); + m_timeout = milliToNano(node->timeout()); + m_chords = Qt3DCore::qIdsForNodes(node->chords()); + m_inputsToTrigger = m_chords; } bool InputChord::process(InputHandler *inputHandler, qint64 currentTime) diff --git a/src/input/backend/inputchord_p.h b/src/input/backend/inputchord_p.h index efad2c4af..0a654aa87 100644 --- a/src/input/backend/inputchord_p.h +++ b/src/input/backend/inputchord_p.h @@ -73,13 +73,11 @@ public: void setStartTime(qint64 time); void reset(); bool actionTriggered(Qt3DCore::QNodeId input); - void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) override; + void syncFromFrontEnd(const Qt3DCore::QNode *frontEnd, bool firstTime) override; bool process(InputHandler *inputHandler, qint64 currentTime) override; private: - void initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) final; - QVector<Qt3DCore::QNodeId> m_chords; QVector<Qt3DCore::QNodeId> m_inputsToTrigger; qint64 m_timeout; diff --git a/src/input/backend/inputsequence.cpp b/src/input/backend/inputsequence.cpp index e45fae364..c4d5580dd 100644 --- a/src/input/backend/inputsequence.cpp +++ b/src/input/backend/inputsequence.cpp @@ -66,16 +66,6 @@ InputSequence::InputSequence() { } -void InputSequence::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) -{ - const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QInputSequenceData>>(change); - const QInputSequenceData &data = typedChange->data; - m_sequences = data.sequenceIds; - m_timeout = milliToNano(data.timeout); - m_buttonInterval = milliToNano(data.buttonInterval); - m_inputsToTrigger = m_sequences; -} - void InputSequence::cleanup() { setEnabled(false); @@ -127,41 +117,17 @@ bool InputSequence::actionTriggered(Qt3DCore::QNodeId input, const qint64 curren return false; } -void InputSequence::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) +void InputSequence::syncFromFrontEnd(const Qt3DCore::QNode *frontEnd, bool firstTime) { - switch (e->type()) { - case Qt3DCore::PropertyUpdated: { - const auto change = qSharedPointerCast<Qt3DCore::QPropertyUpdatedChange>(e); - if (change->propertyName() == QByteArrayLiteral("timeout")) { - m_timeout = milliToNano(change->value().toInt()); - } else if (change->propertyName() == QByteArrayLiteral("buttonInterval")) { - m_buttonInterval = milliToNano(change->value().toInt()); - } - break; - } - - case Qt3DCore::PropertyValueAdded: { - const auto change = qSharedPointerCast<Qt3DCore::QPropertyNodeAddedChange>(e); - if (change->propertyName() == QByteArrayLiteral("sequence")) { - m_sequences.push_back(change->addedNodeId()); - m_inputsToTrigger.push_back(change->addedNodeId()); - } - break; - } - - case Qt3DCore::PropertyValueRemoved: { - const auto change = qSharedPointerCast<Qt3DCore::QPropertyNodeRemovedChange>(e); - if (change->propertyName() == QByteArrayLiteral("sequence")) { - m_sequences.removeOne(change->removedNodeId()); - m_inputsToTrigger.removeOne(change->removedNodeId()); - } - break; - } - - default: - break; - } - AbstractActionInput::sceneChangeEvent(e); + AbstractActionInput::syncFromFrontEnd(frontEnd, firstTime); + const QInputSequence *node = qobject_cast<const QInputSequence *>(frontEnd); + if (!node) + return; + + m_timeout = milliToNano(node->timeout()); + m_buttonInterval = milliToNano(node->buttonInterval()); + m_sequences = Qt3DCore::qIdsForNodes(node->sequences()); + m_inputsToTrigger = m_sequences; } bool InputSequence::process(InputHandler *inputHandler, qint64 currentTime) diff --git a/src/input/backend/inputsequence_p.h b/src/input/backend/inputsequence_p.h index 395021035..53407bd1d 100644 --- a/src/input/backend/inputsequence_p.h +++ b/src/input/backend/inputsequence_p.h @@ -75,13 +75,11 @@ public: bool sequenceTriggered() const; void reset(); bool actionTriggered(Qt3DCore::QNodeId input, const qint64 currentTime); - void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) override; + void syncFromFrontEnd(const Qt3DCore::QNode *frontEnd, bool firstTime) override; bool process(InputHandler *inputHandler, qint64 currentTime) override; private: - void initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) final; - QVector<Qt3DCore::QNodeId> m_sequences; QVector<Qt3DCore::QNodeId> m_inputsToTrigger; qint64 m_timeout; diff --git a/src/input/frontend/qinputaspect.cpp b/src/input/frontend/qinputaspect.cpp index da49e70e6..110d9877f 100644 --- a/src/input/frontend/qinputaspect.cpp +++ b/src/input/frontend/qinputaspect.cpp @@ -155,9 +155,9 @@ QInputAspect::QInputAspect(QInputAspectPrivate &dd, QObject *parent) registerBackendType<QButtonAxisInput, true>(QBackendNodeMapperPtr(new Input::InputNodeFunctor<Input::ButtonAxisInput, Input::ButtonAxisInputManager>(d_func()->m_inputHandler->buttonAxisInputManager()))); registerBackendType<QAxisSetting, true>(QBackendNodeMapperPtr(new Input::InputNodeFunctor<Input::AxisSetting, Input::AxisSettingManager>(d_func()->m_inputHandler->axisSettingManager()))); registerBackendType<Qt3DInput::QAction, true>(QBackendNodeMapperPtr(new Input::InputNodeFunctor<Input::Action, Input::ActionManager>(d_func()->m_inputHandler->actionManager()))); - registerBackendType<QActionInput>(QBackendNodeMapperPtr(new Input::InputNodeFunctor<Input::ActionInput, Input::ActionInputManager>(d_func()->m_inputHandler->actionInputManager()))); - registerBackendType<QInputChord>(QBackendNodeMapperPtr(new Input::InputNodeFunctor<Input::InputChord, Input::InputChordManager>(d_func()->m_inputHandler->inputChordManager()))); - registerBackendType<QInputSequence>(QBackendNodeMapperPtr(new Input::InputNodeFunctor<Input::InputSequence, Input::InputSequenceManager>(d_func()->m_inputHandler->inputSequenceManager()))); + registerBackendType<QActionInput, true>(QBackendNodeMapperPtr(new Input::InputNodeFunctor<Input::ActionInput, Input::ActionInputManager>(d_func()->m_inputHandler->actionInputManager()))); + registerBackendType<QInputChord, true>(QBackendNodeMapperPtr(new Input::InputNodeFunctor<Input::InputChord, Input::InputChordManager>(d_func()->m_inputHandler->inputChordManager()))); + registerBackendType<QInputSequence, true>(QBackendNodeMapperPtr(new Input::InputNodeFunctor<Input::InputSequence, Input::InputSequenceManager>(d_func()->m_inputHandler->inputSequenceManager()))); registerBackendType<QLogicalDevice>(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()))); diff --git a/src/input/frontend/qinputchord.cpp b/src/input/frontend/qinputchord.cpp index 7c986f297..a64cc8961 100644 --- a/src/input/frontend/qinputchord.cpp +++ b/src/input/frontend/qinputchord.cpp @@ -41,9 +41,6 @@ #include <Qt3DInput/qabstractphysicaldevice.h> #include <Qt3DCore/qnodecreatedchange.h> -#include <Qt3DCore/qpropertyupdatedchange.h> -#include <Qt3DCore/qpropertynodeaddedchange.h> -#include <Qt3DCore/qpropertynoderemovedchange.h> QT_BEGIN_NAMESPACE @@ -157,11 +154,7 @@ void QInputChord::addChord(QAbstractActionInput *input) if (!input->parent()) input->setParent(this); - if (d->m_changeArbiter != nullptr) { - const auto change = Qt3DCore::QPropertyNodeAddedChangePtr::create(id(), input); - change->setPropertyName("chord"); - d->notifyObservers(change); - } + d->update(); } } @@ -174,12 +167,7 @@ void QInputChord::removeChord(QAbstractActionInput *input) { Q_D(QInputChord); if (d->m_chords.contains(input)) { - - if (d->m_changeArbiter != nullptr) { - const auto change = Qt3DCore::QPropertyNodeRemovedChangePtr::create(id(), input); - change->setPropertyName("chord"); - d->notifyObservers(change); - } + d->update(); d->m_chords.removeOne(input); diff --git a/src/input/frontend/qinputsequence.cpp b/src/input/frontend/qinputsequence.cpp index 766674840..5e0e36aba 100644 --- a/src/input/frontend/qinputsequence.cpp +++ b/src/input/frontend/qinputsequence.cpp @@ -42,9 +42,6 @@ #include <Qt3DInput/qabstractactioninput.h> #include <Qt3DInput/qabstractphysicaldevice.h> #include <Qt3DCore/qnodecreatedchange.h> -#include <Qt3DCore/qpropertynodeaddedchange.h> -#include <Qt3DCore/qpropertynoderemovedchange.h> -#include <Qt3DCore/qpropertyupdatedchange.h> #include <Qt3DCore/private/qnode_p.h> @@ -210,11 +207,7 @@ void QInputSequence::addSequence(QAbstractActionInput *input) if (!input->parent()) input->setParent(this); - if (d->m_changeArbiter != nullptr) { - const auto change = Qt3DCore::QPropertyNodeAddedChangePtr::create(id(), input); - change->setPropertyName("sequence"); - d->notifyObservers(change); - } + d->update(); } } @@ -227,11 +220,7 @@ void QInputSequence::removeSequence(QAbstractActionInput *input) { Q_D(QInputSequence); if (d->m_sequences.contains(input)) { - if (d->m_changeArbiter != nullptr) { - const auto change = Qt3DCore::QPropertyNodeRemovedChangePtr::create(id(), input); - change->setPropertyName("sequence"); - d->notifyObservers(change); - } + d->update(); d->m_sequences.removeOne(input); diff --git a/tests/auto/input/actioninput/tst_actioninput.cpp b/tests/auto/input/actioninput/tst_actioninput.cpp index 23dfaad64..e5321c6f2 100644 --- a/tests/auto/input/actioninput/tst_actioninput.cpp +++ b/tests/auto/input/actioninput/tst_actioninput.cpp @@ -50,7 +50,7 @@ private Q_SLOTS: actionInput.setSourceDevice(&sourceDevice); // WHEN - simulateInitialization(&actionInput, &backendActionInput); + simulateInitializationSync(&actionInput, &backendActionInput); // THEN QCOMPARE(backendActionInput.peerId(), actionInput.id()); @@ -78,7 +78,7 @@ private Q_SLOTS: actionInput.setSourceDevice(&sourceDevice); // WHEN - simulateInitialization(&actionInput, &backendActionInput); + simulateInitializationSync(&actionInput, &backendActionInput); backendActionInput.cleanup(); // THEN @@ -90,32 +90,28 @@ private Q_SLOTS: void shouldHandlePropertyChanges() { // GIVEN + Qt3DInput::QActionInput actionInput; Qt3DInput::Input::ActionInput backendActionInput; + simulateInitializationSync(&actionInput, &backendActionInput); // WHEN - Qt3DCore::QPropertyUpdatedChangePtr updateChange(new Qt3DCore::QPropertyUpdatedChange(Qt3DCore::QNodeId())); - updateChange->setValue(QVariant::fromValue(QVector<int>() << 64)); - updateChange->setPropertyName("buttons"); - backendActionInput.sceneChangeEvent(updateChange); + actionInput.setButtons(QVector<int>() << 64); + backendActionInput.syncFromFrontEnd(&actionInput, false); // THEN QCOMPARE(backendActionInput.buttons(), QVector<int>() << 64); // WHEN - updateChange = QSharedPointer<Qt3DCore::QPropertyUpdatedChange>::create(Qt3DCore::QNodeId()); - updateChange->setPropertyName("enabled"); - updateChange->setValue(true); - backendActionInput.sceneChangeEvent(updateChange); + actionInput.setEnabled(false); + backendActionInput.syncFromFrontEnd(&actionInput, false); // THEN - QCOMPARE(backendActionInput.isEnabled(), true); + QCOMPARE(backendActionInput.isEnabled(), false); // WHEN TestDevice device; - updateChange = QSharedPointer<Qt3DCore::QPropertyUpdatedChange>::create(Qt3DCore::QNodeId()); - updateChange->setPropertyName("sourceDevice"); - updateChange->setValue(QVariant::fromValue(device.id())); - backendActionInput.sceneChangeEvent(updateChange); + actionInput.setSourceDevice(&device); + backendActionInput.syncFromFrontEnd(&actionInput, false); // THEN QCOMPARE(backendActionInput.sourceDevice(), device.id()); @@ -135,7 +131,7 @@ private Q_SLOTS: actionInput.setEnabled(true); actionInput.setButtons(QVector<int>() << Qt::Key_Space << Qt::Key_Return); actionInput.setSourceDevice(device); - simulateInitialization(&actionInput, &backendActionInput); + simulateInitializationSync(&actionInput, &backendActionInput); // WHEN deviceBackend->setButtonPressed(Qt::Key_Up, true); @@ -188,7 +184,7 @@ private Q_SLOTS: actionInput.setEnabled(false); actionInput.setButtons(QVector<int>() << Qt::Key_Space << Qt::Key_Return); actionInput.setSourceDevice(device); - simulateInitialization(&actionInput, &backendActionInput); + simulateInitializationSync(&actionInput, &backendActionInput); // WHEN deviceBackend->setButtonPressed(Qt::Key_Space, true); diff --git a/tests/auto/input/inputchord/tst_inputchord.cpp b/tests/auto/input/inputchord/tst_inputchord.cpp index 093bd29f7..afc324a9d 100644 --- a/tests/auto/input/inputchord/tst_inputchord.cpp +++ b/tests/auto/input/inputchord/tst_inputchord.cpp @@ -55,7 +55,7 @@ private Q_SLOTS: inputChord.addChord(&actionInput); // WHEN - simulateInitialization(&inputChord, &backendInputChord); + simulateInitializationSync(&inputChord, &backendInputChord); // THEN QCOMPARE(backendInputChord.peerId(), inputChord.id()); @@ -89,7 +89,7 @@ private Q_SLOTS: inputChord.addChord(&actionInput); // WHEN - simulateInitialization(&inputChord, &backendInputChord); + simulateInitializationSync(&inputChord, &backendInputChord); backendInputChord.cleanup(); // THEN @@ -101,41 +101,37 @@ private Q_SLOTS: void shouldHandlePropertyChanges() { // GIVEN + Qt3DInput::QInputChord inputChord; Qt3DInput::Input::InputChord backendInputChord; + simulateInitializationSync(&inputChord, &backendInputChord); // WHEN - Qt3DCore::QPropertyUpdatedChangePtr updateChange(new Qt3DCore::QPropertyUpdatedChange(Qt3DCore::QNodeId())); - updateChange->setValue(250); - updateChange->setPropertyName("timeout"); - backendInputChord.sceneChangeEvent(updateChange); + inputChord.setTimeout(250); + backendInputChord.syncFromFrontEnd(&inputChord, false); // THEN QCOMPARE(backendInputChord.timeout(), 250000000); // WHEN - updateChange = QSharedPointer<Qt3DCore::QPropertyUpdatedChange>::create(Qt3DCore::QNodeId()); - updateChange->setPropertyName("enabled"); - updateChange->setValue(true); - backendInputChord.sceneChangeEvent(updateChange); + inputChord.setEnabled(false); + backendInputChord.syncFromFrontEnd(&inputChord, false); // THEN - QCOMPARE(backendInputChord.isEnabled(), true); + QCOMPARE(backendInputChord.isEnabled(), false); // WHEN Qt3DInput::QActionInput input; const Qt3DCore::QNodeId inputId = input.id(); - const auto nodeAddedChange = Qt3DCore::QPropertyNodeAddedChangePtr::create(Qt3DCore::QNodeId(), &input); - nodeAddedChange->setPropertyName("chord"); - backendInputChord.sceneChangeEvent(nodeAddedChange); + inputChord.addChord(&input); + backendInputChord.syncFromFrontEnd(&inputChord, false); // THEN QCOMPARE(backendInputChord.chords().size(), 1); QCOMPARE(backendInputChord.chords().first(), inputId); // WHEN - const auto nodeRemovedChange = Qt3DCore::QPropertyNodeRemovedChangePtr::create(Qt3DCore::QNodeId(), &input); - nodeRemovedChange->setPropertyName("chord"); - backendInputChord.sceneChangeEvent(nodeRemovedChange); + inputChord.removeChord(&input); + backendInputChord.syncFromFrontEnd(&inputChord, false); // THEN QCOMPARE(backendInputChord.chords().size(), 0); @@ -154,13 +150,13 @@ private Q_SLOTS: firstInput->setButtons(QVector<int>() << Qt::Key_Q << Qt::Key_W); firstInput->setSourceDevice(device); auto backendFirstInput = handler.actionInputManager()->getOrCreateResource(firstInput->id()); - simulateInitialization(firstInput, backendFirstInput); + simulateInitializationSync(firstInput, backendFirstInput); auto secondInput = new Qt3DInput::QActionInput; secondInput->setButtons(QVector<int>() << Qt::Key_A << Qt::Key_S); secondInput->setSourceDevice(device); auto backendSecondInput = handler.actionInputManager()->getOrCreateResource(secondInput->id()); - simulateInitialization(secondInput, backendSecondInput); + simulateInitializationSync(secondInput, backendSecondInput); Qt3DInput::Input::InputChord backendInputChord; Qt3DInput::QInputChord inputChord; @@ -168,7 +164,7 @@ private Q_SLOTS: inputChord.setTimeout(300); inputChord.addChord(firstInput); inputChord.addChord(secondInput); - simulateInitialization(&inputChord, &backendInputChord); + simulateInitializationSync(&inputChord, &backendInputChord); // WHEN deviceBackend->setButtonPressed(Qt::Key_Up, true); @@ -242,13 +238,13 @@ private Q_SLOTS: firstInput->setButtons(QVector<int>() << Qt::Key_Q); firstInput->setSourceDevice(device); auto backendFirstInput = handler.actionInputManager()->getOrCreateResource(firstInput->id()); - simulateInitialization(firstInput, backendFirstInput); + simulateInitializationSync(firstInput, backendFirstInput); auto secondInput = new Qt3DInput::QActionInput; secondInput->setButtons(QVector<int>() << Qt::Key_W); secondInput->setSourceDevice(device); auto backendSecondInput = handler.actionInputManager()->getOrCreateResource(secondInput->id()); - simulateInitialization(secondInput, backendSecondInput); + simulateInitializationSync(secondInput, backendSecondInput); Qt3DInput::Input::InputChord backendInputChord; Qt3DInput::QInputChord inputChord; @@ -256,7 +252,7 @@ private Q_SLOTS: inputChord.setTimeout(300); inputChord.addChord(firstInput); inputChord.addChord(secondInput); - simulateInitialization(&inputChord, &backendInputChord); + simulateInitializationSync(&inputChord, &backendInputChord); // WHEN deviceBackend->setButtonPressed(Qt::Key_Q, true); @@ -290,13 +286,13 @@ private Q_SLOTS: firstInput->setButtons(QVector<int>() << Qt::Key_Q); firstInput->setSourceDevice(device); auto backendFirstInput = handler.actionInputManager()->getOrCreateResource(firstInput->id()); - simulateInitialization(firstInput, backendFirstInput); + simulateInitializationSync(firstInput, backendFirstInput); auto secondInput = new Qt3DInput::QActionInput; secondInput->setButtons(QVector<int>() << Qt::Key_W); secondInput->setSourceDevice(device); auto backendSecondInput = handler.actionInputManager()->getOrCreateResource(secondInput->id()); - simulateInitialization(secondInput, backendSecondInput); + simulateInitializationSync(secondInput, backendSecondInput); Qt3DInput::Input::InputChord backendInputChord; Qt3DInput::QInputChord inputChord; @@ -304,7 +300,7 @@ private Q_SLOTS: inputChord.setTimeout(300); inputChord.addChord(firstInput); inputChord.addChord(secondInput); - simulateInitialization(&inputChord, &backendInputChord); + simulateInitializationSync(&inputChord, &backendInputChord); // WHEN deviceBackend->setButtonPressed(Qt::Key_Q, true); diff --git a/tests/auto/input/inputsequence/tst_inputsequence.cpp b/tests/auto/input/inputsequence/tst_inputsequence.cpp index b5630ddb5..d8af3d6f6 100644 --- a/tests/auto/input/inputsequence/tst_inputsequence.cpp +++ b/tests/auto/input/inputsequence/tst_inputsequence.cpp @@ -56,7 +56,7 @@ private Q_SLOTS: inputSequence.addSequence(&actionInput); // WHEN - simulateInitialization(&inputSequence, &backendInputSequence); + simulateInitializationSync(&inputSequence, &backendInputSequence); // THEN QCOMPARE(backendInputSequence.peerId(), inputSequence.id()); @@ -93,7 +93,7 @@ private Q_SLOTS: inputSequence.addSequence(&actionInput); // WHEN - simulateInitialization(&inputSequence, &backendInputSequence); + simulateInitializationSync(&inputSequence, &backendInputSequence); backendInputSequence.cleanup(); // THEN @@ -106,50 +106,44 @@ private Q_SLOTS: void shouldHandlePropertyChanges() { // GIVEN + Qt3DInput::QInputSequence inputSequence; Qt3DInput::Input::InputSequence backendInputSequence; + simulateInitializationSync(&inputSequence, &backendInputSequence); // WHEN - Qt3DCore::QPropertyUpdatedChangePtr updateChange(new Qt3DCore::QPropertyUpdatedChange(Qt3DCore::QNodeId())); - updateChange->setValue(250); - updateChange->setPropertyName("timeout"); - backendInputSequence.sceneChangeEvent(updateChange); + inputSequence.setTimeout(250); + backendInputSequence.syncFromFrontEnd(&inputSequence, false); // THEN QCOMPARE(backendInputSequence.timeout(), 250000000); // WHEN - updateChange = QSharedPointer<Qt3DCore::QPropertyUpdatedChange>::create(Qt3DCore::QNodeId()); - updateChange->setValue(150); - updateChange->setPropertyName("buttonInterval"); - backendInputSequence.sceneChangeEvent(updateChange); + inputSequence.setButtonInterval(150); + backendInputSequence.syncFromFrontEnd(&inputSequence, false); // THEN QCOMPARE(backendInputSequence.buttonInterval(), 150000000); // WHEN - updateChange = QSharedPointer<Qt3DCore::QPropertyUpdatedChange>::create(Qt3DCore::QNodeId()); - updateChange->setPropertyName("enabled"); - updateChange->setValue(true); - backendInputSequence.sceneChangeEvent(updateChange); + inputSequence.setEnabled(false); + backendInputSequence.syncFromFrontEnd(&inputSequence, false); // THEN - QCOMPARE(backendInputSequence.isEnabled(), true); + QCOMPARE(backendInputSequence.isEnabled(), false); // WHEN Qt3DInput::QActionInput input; const Qt3DCore::QNodeId inputId = input.id(); - const auto nodeAddedChange = Qt3DCore::QPropertyNodeAddedChangePtr::create(Qt3DCore::QNodeId(), &input); - nodeAddedChange->setPropertyName("sequence"); - backendInputSequence.sceneChangeEvent(nodeAddedChange); + inputSequence.addSequence(&input); + backendInputSequence.syncFromFrontEnd(&inputSequence, false); // THEN QCOMPARE(backendInputSequence.sequences().size(), 1); QCOMPARE(backendInputSequence.sequences().first(), inputId); // WHEN - const auto nodeRemovedChange = Qt3DCore::QPropertyNodeRemovedChangePtr::create(Qt3DCore::QNodeId(), &input); - nodeRemovedChange->setPropertyName("sequence"); - backendInputSequence.sceneChangeEvent(nodeRemovedChange); + inputSequence.removeSequence(&input); + backendInputSequence.syncFromFrontEnd(&inputSequence, false); // THEN QCOMPARE(backendInputSequence.sequences().size(), 0); @@ -168,19 +162,19 @@ private Q_SLOTS: firstInput->setButtons(QVector<int>() << Qt::Key_Q << Qt::Key_A); firstInput->setSourceDevice(device); auto backendFirstInput = handler.actionInputManager()->getOrCreateResource(firstInput->id()); - simulateInitialization(firstInput, backendFirstInput); + simulateInitializationSync(firstInput, backendFirstInput); auto secondInput = new Qt3DInput::QActionInput; secondInput->setButtons(QVector<int>() << Qt::Key_S << Qt::Key_W); secondInput->setSourceDevice(device); auto backendSecondInput = handler.actionInputManager()->getOrCreateResource(secondInput->id()); - simulateInitialization(secondInput, backendSecondInput); + simulateInitializationSync(secondInput, backendSecondInput); auto thirdInput = new Qt3DInput::QActionInput; thirdInput->setButtons(QVector<int>() << Qt::Key_D << Qt::Key_E); thirdInput->setSourceDevice(device); auto backendThirdInput = handler.actionInputManager()->getOrCreateResource(thirdInput->id()); - simulateInitialization(thirdInput, backendThirdInput); + simulateInitializationSync(thirdInput, backendThirdInput); Qt3DInput::Input::InputSequence backendInputSequence; Qt3DInput::QInputSequence inputSequence; @@ -190,7 +184,7 @@ private Q_SLOTS: inputSequence.addSequence(firstInput); inputSequence.addSequence(secondInput); inputSequence.addSequence(thirdInput); - simulateInitialization(&inputSequence, &backendInputSequence); + simulateInitializationSync(&inputSequence, &backendInputSequence); // WHEN deviceBackend->setButtonPressed(Qt::Key_Up, true); @@ -294,19 +288,19 @@ private Q_SLOTS: firstInput->setButtons(QVector<int>() << Qt::Key_Q << Qt::Key_A); firstInput->setSourceDevice(device); auto backendFirstInput = handler.actionInputManager()->getOrCreateResource(firstInput->id()); - simulateInitialization(firstInput, backendFirstInput); + simulateInitializationSync(firstInput, backendFirstInput); auto secondInput = new Qt3DInput::QActionInput; secondInput->setButtons(QVector<int>() << Qt::Key_S << Qt::Key_W); secondInput->setSourceDevice(device); auto backendSecondInput = handler.actionInputManager()->getOrCreateResource(secondInput->id()); - simulateInitialization(secondInput, backendSecondInput); + simulateInitializationSync(secondInput, backendSecondInput); auto thirdInput = new Qt3DInput::QActionInput; thirdInput->setButtons(QVector<int>() << Qt::Key_D << Qt::Key_E); thirdInput->setSourceDevice(device); auto backendThirdInput = handler.actionInputManager()->getOrCreateResource(thirdInput->id()); - simulateInitialization(thirdInput, backendThirdInput); + simulateInitializationSync(thirdInput, backendThirdInput); Qt3DInput::Input::InputSequence backendInputSequence; Qt3DInput::QInputSequence inputSequence; @@ -316,7 +310,7 @@ private Q_SLOTS: inputSequence.addSequence(firstInput); inputSequence.addSequence(secondInput); inputSequence.addSequence(thirdInput); - simulateInitialization(&inputSequence, &backendInputSequence); + simulateInitializationSync(&inputSequence, &backendInputSequence); // WHEN deviceBackend->setButtonPressed(Qt::Key_Q, true); @@ -352,19 +346,19 @@ private Q_SLOTS: firstInput->setButtons(QVector<int>() << Qt::Key_Q << Qt::Key_A); firstInput->setSourceDevice(device); auto backendFirstInput = handler.actionInputManager()->getOrCreateResource(firstInput->id()); - simulateInitialization(firstInput, backendFirstInput); + simulateInitializationSync(firstInput, backendFirstInput); auto secondInput = new Qt3DInput::QActionInput; secondInput->setButtons(QVector<int>() << Qt::Key_S << Qt::Key_W); secondInput->setSourceDevice(device); auto backendSecondInput = handler.actionInputManager()->getOrCreateResource(secondInput->id()); - simulateInitialization(secondInput, backendSecondInput); + simulateInitializationSync(secondInput, backendSecondInput); auto thirdInput = new Qt3DInput::QActionInput; thirdInput->setButtons(QVector<int>() << Qt::Key_D << Qt::Key_E); thirdInput->setSourceDevice(device); auto backendThirdInput = handler.actionInputManager()->getOrCreateResource(thirdInput->id()); - simulateInitialization(thirdInput, backendThirdInput); + simulateInitializationSync(thirdInput, backendThirdInput); Qt3DInput::Input::InputSequence backendInputSequence; Qt3DInput::QInputSequence inputSequence; @@ -374,7 +368,7 @@ private Q_SLOTS: inputSequence.addSequence(firstInput); inputSequence.addSequence(secondInput); inputSequence.addSequence(thirdInput); - simulateInitialization(&inputSequence, &backendInputSequence); + simulateInitializationSync(&inputSequence, &backendInputSequence); // WHEN deviceBackend->setButtonPressed(Qt::Key_Q, true); @@ -410,13 +404,13 @@ private Q_SLOTS: firstInput->setButtons(QVector<int>() << Qt::Key_Q); firstInput->setSourceDevice(device); auto backendFirstInput = handler.actionInputManager()->getOrCreateResource(firstInput->id()); - simulateInitialization(firstInput, backendFirstInput); + simulateInitializationSync(firstInput, backendFirstInput); auto secondInput = new Qt3DInput::QActionInput; secondInput->setButtons(QVector<int>() << Qt::Key_S); secondInput->setSourceDevice(device); auto backendSecondInput = handler.actionInputManager()->getOrCreateResource(secondInput->id()); - simulateInitialization(secondInput, backendSecondInput); + simulateInitializationSync(secondInput, backendSecondInput); Qt3DInput::Input::InputSequence backendInputSequence; Qt3DInput::QInputSequence inputSequence; @@ -425,7 +419,7 @@ private Q_SLOTS: inputSequence.setTimeout(450); inputSequence.addSequence(firstInput); inputSequence.addSequence(secondInput); - simulateInitialization(&inputSequence, &backendInputSequence); + simulateInitializationSync(&inputSequence, &backendInputSequence); // WHEN deviceBackend->setButtonPressed(Qt::Key_Q, true); |