summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2020-01-13 07:53:41 +0100
committerPaul Lemire <paul.lemire@kdab.com>2020-01-28 06:27:54 +0100
commit64f983af68440ff73b985b133a73bd66178557da (patch)
tree85817af83933cfc1556efac367b7b63869e05b4c /tests
parent97c534b60f21d232dd814534fd9b53f77bc73fa3 (diff)
QMouseDevice: add updateAxesContinuously property
The default behavior is to only update axes when one of the mouse buttons is pressed. This property, when enabled, allows to record X/Y axes value changes regardless of the state of the mouse buttons. [ChangeLog] QMouseDevice add updateAxesContinuously property Change-Id: Ib54a1e54c6c278ea08722760c2d317ec46437b2f Reviewed-by: Mike Krus <mike.krus@kdab.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/input/mousedevice/tst_mousedevice.cpp73
-rw-r--r--tests/auto/input/qmousedevice/tst_qmousedevice.cpp45
2 files changed, 114 insertions, 4 deletions
diff --git a/tests/auto/input/mousedevice/tst_mousedevice.cpp b/tests/auto/input/mousedevice/tst_mousedevice.cpp
index f245e399d..95ae8de56 100644
--- a/tests/auto/input/mousedevice/tst_mousedevice.cpp
+++ b/tests/auto/input/mousedevice/tst_mousedevice.cpp
@@ -58,6 +58,7 @@ private Q_SLOTS:
QCOMPARE(backendMouseDevice.previousPos(), QPointF());
QCOMPARE(backendMouseDevice.wasPressed(), false);
QCOMPARE(backendMouseDevice.sensitivity(), 0.1f);
+ QCOMPARE(backendMouseDevice.updateAxesContinuously(), false);
}
void checkInitializeFromPeer()
@@ -85,6 +86,7 @@ private Q_SLOTS:
QCOMPARE(backendMouseDevice.previousPos(), QPointF());
QCOMPARE(backendMouseDevice.wasPressed(), false);
QCOMPARE(backendMouseDevice.sensitivity(), 0.8f);
+ QCOMPARE(backendMouseDevice.updateAxesContinuously(), false);
}
{
// WHEN
@@ -125,6 +127,7 @@ private Q_SLOTS:
QCOMPARE(backendMouseDevice.previousPos(), QPointF(400.0f, 400.0f));
QCOMPARE(backendMouseDevice.wasPressed(), true);
QCOMPARE(backendMouseDevice.sensitivity(), 0.1f);
+ QCOMPARE(backendMouseDevice.updateAxesContinuously(), false);
// WHEN
eventList = QList<QT_PREPEND_NAMESPACE(QMouseEvent)>() << QT_PREPEND_NAMESPACE(QMouseEvent)(QMouseEvent::MouseMove,
@@ -147,12 +150,13 @@ private Q_SLOTS:
QCOMPARE(backendMouseDevice.previousPos(), QPointF(600.0f, 600.0f));
QCOMPARE(backendMouseDevice.wasPressed(), true);
QCOMPARE(backendMouseDevice.sensitivity(), 0.1f);
+ QCOMPARE(backendMouseDevice.updateAxesContinuously(), false);
// WHEN
eventList = QList<QT_PREPEND_NAMESPACE(QMouseEvent)>() << QT_PREPEND_NAMESPACE(QMouseEvent)(QMouseEvent::MouseButtonRelease,
- QPointF(600.0f, 600.0f),
- QPointF(600.0f, 600.0f),
- QPointF(600.0f, 600.0f),
+ QPointF(800.0f, 800.0f),
+ QPointF(800.0f, 800.0f),
+ QPointF(800.0f, 800.0f),
Qt::LeftButton,
Qt::NoButton,
Qt::NoModifier);
@@ -166,9 +170,61 @@ private Q_SLOTS:
QCOMPARE(backendMouseDevice.mouseState().leftPressed, false);
QCOMPARE(backendMouseDevice.mouseState().rightPressed, false);
QCOMPARE(backendMouseDevice.mouseState().centerPressed, false);
- QCOMPARE(backendMouseDevice.previousPos(), QPointF(600.0f, 600.0f));
+ QCOMPARE(backendMouseDevice.previousPos(), QPointF(800.0f, 800.0f));
QCOMPARE(backendMouseDevice.wasPressed(), false);
QCOMPARE(backendMouseDevice.sensitivity(), 0.1f);
+ QCOMPARE(backendMouseDevice.updateAxesContinuously(), false);
+
+ // WHEN
+ eventList = QList<QT_PREPEND_NAMESPACE(QMouseEvent)>() << QT_PREPEND_NAMESPACE(QMouseEvent)(QMouseEvent::MouseMove,
+ QPointF(900.0f, 900.0f),
+ QPointF(900.0f, 900.0f),
+ QPointF(900.0f, 900.0f),
+ Qt::NoButton,
+ Qt::NoButton,
+ Qt::NoModifier);
+
+ // THEN -> no axes update
+ backendMouseDevice.updateMouseEvents(eventList);
+ QCOMPARE(backendMouseDevice.mouseState().xAxis, 0.0f);
+ QCOMPARE(backendMouseDevice.mouseState().yAxis, 0.0f);
+ QCOMPARE(backendMouseDevice.mouseState().wXAxis, 0.0f);
+ QCOMPARE(backendMouseDevice.mouseState().wYAxis, 0.0f);
+ QCOMPARE(backendMouseDevice.mouseState().leftPressed, false);
+ QCOMPARE(backendMouseDevice.mouseState().rightPressed, false);
+ QCOMPARE(backendMouseDevice.mouseState().centerPressed, false);
+ QCOMPARE(backendMouseDevice.previousPos(), QPointF(900.0f, 900.0f));
+ QCOMPARE(backendMouseDevice.wasPressed(), false);
+ QCOMPARE(backendMouseDevice.sensitivity(), 0.1f);
+ QCOMPARE(backendMouseDevice.updateAxesContinuously(), false);
+
+
+ // WHEN
+ eventList = QList<QT_PREPEND_NAMESPACE(QMouseEvent)>() << QT_PREPEND_NAMESPACE(QMouseEvent)(QMouseEvent::MouseMove,
+ QPointF(1000.0f, 1000.0f),
+ QPointF(1000.0f, 1000.0f),
+ QPointF(1000.0f, 1000.0f),
+ Qt::NoButton,
+ Qt::NoButton,
+ Qt::NoModifier);
+
+ Qt3DInput::QMouseDevice mouseDevice;
+ mouseDevice.setUpdateAxesContinuously(true);
+ backendMouseDevice.syncFromFrontEnd(&mouseDevice, false);
+ backendMouseDevice.updateMouseEvents(eventList);
+
+ // THEN
+ QCOMPARE(backendMouseDevice.mouseState().xAxis, (1000.0f - 900.0f) * 0.1f);
+ QCOMPARE(backendMouseDevice.mouseState().yAxis, (900.0f - 1000.0f) * 0.1f);
+ QCOMPARE(backendMouseDevice.mouseState().wXAxis, 0.0f);
+ QCOMPARE(backendMouseDevice.mouseState().wYAxis, 0.0f);
+ QCOMPARE(backendMouseDevice.mouseState().leftPressed,false);
+ QCOMPARE(backendMouseDevice.mouseState().rightPressed, false);
+ QCOMPARE(backendMouseDevice.mouseState().centerPressed, false);
+ QCOMPARE(backendMouseDevice.previousPos(), QPointF(1000.0f, 1000.0f));
+ QCOMPARE(backendMouseDevice.wasPressed(), false);
+ QCOMPARE(backendMouseDevice.sensitivity(), 0.1f);
+ QCOMPARE(backendMouseDevice.updateAxesContinuously(), true);
}
void checkMouseWheelState()
@@ -241,6 +297,15 @@ private Q_SLOTS:
// THEN
QCOMPARE(backendMouseDevice.sensitivity(), newValue);
}
+ {
+ // WHEN
+ const bool newValue = true;
+ mouseDevice.setUpdateAxesContinuously(newValue);
+ backendMouseDevice.syncFromFrontEnd(&mouseDevice, false);
+
+ // THEN
+ QCOMPARE(backendMouseDevice.updateAxesContinuously(), newValue);
+ }
}
};
diff --git a/tests/auto/input/qmousedevice/tst_qmousedevice.cpp b/tests/auto/input/qmousedevice/tst_qmousedevice.cpp
index fd2c8e603..6a8f39c71 100644
--- a/tests/auto/input/qmousedevice/tst_qmousedevice.cpp
+++ b/tests/auto/input/qmousedevice/tst_qmousedevice.cpp
@@ -50,6 +50,7 @@ private Q_SLOTS:
// THEN
QCOMPARE(mouseDevice.sensitivity(), 0.1f);
+ QCOMPARE(mouseDevice.updateAxesContinuously(), false);
QCOMPARE(mouseDevice.axisCount(), 4);
QCOMPARE(mouseDevice.buttonCount(), 3);
QCOMPARE(mouseDevice.axisNames(), QStringList()
@@ -96,6 +97,25 @@ private Q_SLOTS:
QCOMPARE(mouseDevice.sensitivity(), newValue);
QCOMPARE(spy.count(), 0);
}
+ {
+ // WHEN
+ QSignalSpy spy(&mouseDevice, SIGNAL(updateAxesContinuouslyChanged(bool)));
+ const bool newValue = true;
+ mouseDevice.setUpdateAxesContinuously(newValue);
+
+ // THEN
+ QVERIFY(spy.isValid());
+ QCOMPARE(mouseDevice.updateAxesContinuously(), newValue);
+ QCOMPARE(spy.count(), 1);
+
+ // WHEN
+ spy.clear();
+ mouseDevice.setUpdateAxesContinuously(newValue);
+
+ // THEN
+ QCOMPARE(mouseDevice.updateAxesContinuously(), newValue);
+ QCOMPARE(spy.count(), 0);
+ }
}
void checkCreationData()
@@ -175,6 +195,31 @@ private Q_SLOTS:
}
+ void checkUpdateAxesContinuouslyUpdate()
+ {
+ // GIVEN
+ TestArbiter arbiter;
+ Qt3DInput::QMouseDevice mouseDevice;
+ arbiter.setArbiterOnNode(&mouseDevice);
+
+ {
+ // WHEN
+ mouseDevice.setUpdateAxesContinuously(true);
+ // THEN
+ QCOMPARE(arbiter.dirtyNodes.size(), 1);
+ QCOMPARE(arbiter.dirtyNodes.front(), &mouseDevice);
+ }
+
+ {
+ // WHEN
+ mouseDevice.setSensitivity(true);
+
+ QCOMPARE(arbiter.dirtyNodes.size(), 1);
+ QCOMPARE(arbiter.dirtyNodes.front(), &mouseDevice);
+ }
+
+ }
+
};
QTEST_MAIN(tst_QMouseDevice)