diff options
author | Kevin Ottens <kevin.ottens@kdab.com> | 2016-10-06 19:45:17 +0200 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-10-29 11:31:30 +0000 |
commit | 67fa5fb9e7ae7a762c1d829c31f0098ced0775b9 (patch) | |
tree | 300d0d9987b070fc9ca66b1afab2b1a8fef9fc35 | |
parent | acb2bad7fe2fed502cb41ec8f58dad8a035ef3fb (diff) |
InputChords shouldn't process when disabled
Change-Id: I5d087edb422ed45d1a51d07b4e52aba084451a9b
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
-rw-r--r-- | src/input/backend/inputchord.cpp | 3 | ||||
-rw-r--r-- | tests/auto/input/inputchord/tst_inputchord.cpp | 39 |
2 files changed, 42 insertions, 0 deletions
diff --git a/src/input/backend/inputchord.cpp b/src/input/backend/inputchord.cpp index a37bb8ea4..ebcf79737 100644 --- a/src/input/backend/inputchord.cpp +++ b/src/input/backend/inputchord.cpp @@ -136,6 +136,9 @@ void InputChord::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) bool InputChord::process(InputHandler *inputHandler, qint64 currentTime) { + if (!isEnabled()) + return false; + const qint64 startTime = m_startTime; bool triggered = false; int activeInputs = 0; diff --git a/tests/auto/input/inputchord/tst_inputchord.cpp b/tests/auto/input/inputchord/tst_inputchord.cpp index a840d7dee..d3ad1c84a 100644 --- a/tests/auto/input/inputchord/tst_inputchord.cpp +++ b/tests/auto/input/inputchord/tst_inputchord.cpp @@ -164,6 +164,7 @@ private Q_SLOTS: Qt3DInput::Input::InputChord backendInputChord; Qt3DInput::QInputChord inputChord; + inputChord.setEnabled(true); inputChord.setTimeout(300); inputChord.addChord(firstInput); inputChord.addChord(secondInput); @@ -251,6 +252,7 @@ private Q_SLOTS: Qt3DInput::Input::InputChord backendInputChord; Qt3DInput::QInputChord inputChord; + inputChord.setEnabled(true); inputChord.setTimeout(300); inputChord.addChord(firstInput); inputChord.addChord(secondInput); @@ -274,6 +276,43 @@ private Q_SLOTS: // THEN QCOMPARE(backendInputChord.process(&handler, 1800000000), false); } + + void shouldNotProcessWhenDisabled() + { + // GIVEN + TestDeviceIntegration deviceIntegration; + TestDevice *device = deviceIntegration.createPhysicalDevice("keyboard"); + TestDeviceBackendNode *deviceBackend = deviceIntegration.physicalDevice(device->id()); + Qt3DInput::Input::InputHandler handler; + handler.addInputDeviceIntegration(&deviceIntegration); + + auto firstInput = new Qt3DInput::QActionInput; + firstInput->setButtons(QVector<int>() << Qt::Key_Q); + firstInput->setSourceDevice(device); + auto backendFirstInput = handler.actionInputManager()->getOrCreateResource(firstInput->id()); + simulateInitialization(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); + + Qt3DInput::Input::InputChord backendInputChord; + Qt3DInput::QInputChord inputChord; + inputChord.setEnabled(false); + inputChord.setTimeout(300); + inputChord.addChord(firstInput); + inputChord.addChord(secondInput); + simulateInitialization(&inputChord, &backendInputChord); + + // WHEN + deviceBackend->setButtonPressed(Qt::Key_Q, true); + deviceBackend->setButtonPressed(Qt::Key_W, true); + + // THEN + QCOMPARE(backendInputChord.process(&handler, 1000000000), false); + } }; QTEST_APPLESS_MAIN(tst_InputChord) |