on xenial help sign in
Merge pull request #68 from vanyasem/bionic

Fix Qt >= 5.9

commit577830933f6e98dc29dd25d981093fba4295f324 authorMarius Gripsgard <marius@ubports.com> dateSat 15 Sep 2018, 17:47 (8 years ago) parent24d39b3291ed4e
8 files changed+53−8
debian/unity8-tests.install+1 tests/plugins/Ubuntu/CMakeLists.txt+1−1 tests/plugins/Ubuntu/Gestures/GestureTest.cpp+10−1 tests/plugins/Ubuntu/Gestures/tst_TouchGate.cpp+10−1 tests/qmltests/CMakeLists.txt+1−1 tests/qmltests/Components/tst_DragHandle.cpp+19−2 tests/utils/CMakeLists.txt+1−1 tests/utils/modules/Unity/Test/TouchEventSequenceWrapper.cpp+10−1
debian/unity8-tests.install+1
@@ -3,6 +3,7 @@ usr/bin/unity-mock-indicator-service
33usr/lib/*/unity8/qml/mocks
44usr/lib/*/unity8/qml/nonmirplugins
55usr/lib/*/unity8/qml/scopefakes
6+usr/lib/*/unity8/qml/utils
67usr/lib/*/unity8/tests
78usr/lib/*/unity8/uqmlscene
89usr/share/unity8/mocks
tests/plugins/Ubuntu/CMakeLists.txt+1−1
@@ -1 +1 @@
1−#add_subdirectory(Gestures) #FIXME broken with qt 5.9
1+add_subdirectory(Gestures)
tests/plugins/Ubuntu/Gestures/GestureTest.cpp+10−1
@@ -17,6 +17,7 @@
1717#include "GestureTest.h"
1818
1919#include <qpa/qwindowsysteminterface.h>
20+#include <private/qquickanimatorcontroller_p.h>
2021#include <private/qquickwindow_p.h>
2122#include <QQmlEngine>
2223#include <QQuickView>
@@ -108,7 +109,15 @@ void GestureTest::sendTouch(qint64 timestamp, int id, QPointF pos,
108109 QCoreApplication::sendEvent(m_view, &touchEvent);
109110
110111 QQuickWindowPrivate *windowPrivate = QQuickWindowPrivate::get(m_view);
111− windowPrivate->flushDelayedTouchEvent();
112+ if (windowPrivate->delayedTouch) {
113+ windowPrivate->deliverDelayedTouchEvent();
114+
115+ // Touch events which constantly start animations (such as a behavior tracking
116+ // the mouse point) need animations to start.
117+ QQmlAnimationTimer *ut = QQmlAnimationTimer::instance();
118+ if (ut && ut->hasStartAnimationPending())
119+ ut->startAnimations();
120+ }
112121}
113122
114123void GestureTest::passTime(qint64 timeSpanMs)
tests/plugins/Ubuntu/Gestures/tst_TouchGate.cpp+10−1
@@ -19,6 +19,7 @@
1919#include <QQmlEngine>
2020#include <QQuickView>
2121#include <QSharedPointer>
22+#include <private/qquickanimatorcontroller_p.h>
2223#include <private/qquickwindow_p.h>
2324
2425// C++ std lib
@@ -191,7 +192,15 @@ void tst_TouchGate::holdsEventsUntilGainsOwnership()
191192 if (!ownershipAfterTouchEnd) {
192193 touchRegistry->removeCandidateOwnerForTouch(0, candidateItem);
193194 QQuickWindowPrivate *wp = QQuickWindowPrivate::get(testItem->window());
194− wp->flushDelayedTouchEvent();
195+ if (wp->delayedTouch) {
196+ wp->deliverDelayedTouchEvent();
197+
198+ // Touch events which constantly start animations (such as a behavior tracking
199+ // the mouse point) need animations to start.
200+ QQmlAnimationTimer *ut = QQmlAnimationTimer::instance();
201+ if (ut && ut->hasStartAnimationPending())
202+ ut->startAnimations();
203+ }
195204 // TouchGate should now open its flood gates and let testItem get all
196205 // events from touch 0 produced so far
197206 QCOMPARE(testItem->touchEventsReceived.count(), 2);
tests/qmltests/CMakeLists.txt+1−1
@@ -1,5 +1,5 @@
11
2−#add_subdirectory(Components) #FIXME broken with qt 5.9
2+add_subdirectory(Components)
33
44add_unity8_qmltest(. OrientedShell)
55add_unity8_qmltest(. DisabledScreenNotice)
tests/qmltests/Components/tst_DragHandle.cpp+19−2
@@ -20,6 +20,7 @@
2020#include <qpa/qwindowsysteminterface.h>
2121#include <QtQuick/QQuickView>
2222#include <QtQml/QQmlEngine>
23+#include <private/qquickanimatorcontroller_p.h>
2324#include <private/qquickwindow_p.h>
2425#include <UbuntuGestures/private/ucswipearea_p_p.h>
2526
@@ -179,7 +180,15 @@ void tst_DragHandle::flickAndHold(QQuickItem *dragHandle,
179180 QTest::touchEvent(m_view, m_device).release(0, touchPoint.toPoint());
180181
181182 QQuickWindowPrivate *windowPrivate = QQuickWindowPrivate::get(m_view);
182− windowPrivate->flushDelayedTouchEvent();
183+ if (windowPrivate->delayedTouch) {
184+ windowPrivate->deliverDelayedTouchEvent();
185+
186+ // Touch events which constantly start animations (such as a behavior tracking
187+ // the mouse point) need animations to start.
188+ QQmlAnimationTimer *ut = QQmlAnimationTimer::instance();
189+ if (ut && ut->hasStartAnimationPending())
190+ ut->startAnimations();
191+ }
183192}
184193
185194void tst_DragHandle::drag(QPointF &touchPoint, const QPointF& direction, qreal distance,
@@ -194,7 +203,15 @@ void tst_DragHandle::drag(QPointF &touchPoint, const QPointF& direction, qreal d
194203 m_fakeTimeSource->m_msecsSinceReference += timeStep;
195204 QTest::touchEvent(m_view, m_device).move(0, touchPoint.toPoint());
196205
197− windowPrivate->flushDelayedTouchEvent();
206+ if (windowPrivate->delayedTouch) {
207+ windowPrivate->deliverDelayedTouchEvent();
208+
209+ // Touch events which constantly start animations (such as a behavior tracking
210+ // the mouse point) need animations to start.
211+ QQmlAnimationTimer *ut = QQmlAnimationTimer::instance();
212+ if (ut && ut->hasStartAnimationPending())
213+ ut->startAnimations();
214+ }
198215 }
199216}
200217
tests/utils/CMakeLists.txt+1−1
@@ -1 +1 @@
1−#add_subdirectory(modules) #FIXME broken with qt 5.9
1+add_subdirectory(modules)
tests/utils/modules/Unity/Test/TouchEventSequenceWrapper.cpp+10−1
@@ -15,6 +15,7 @@
1515 */
1616
1717#include "TouchEventSequenceWrapper.h"
18+#include <private/qquickanimatorcontroller_p.h>
1819#include <private/qquickwindow_p.h>
1920
2021TouchEventSequenceWrapper::TouchEventSequenceWrapper(QTest::QTouchEventSequence eventSequence, QQuickItem *item)
@@ -34,7 +35,15 @@ void TouchEventSequenceWrapper::commit(bool processEvents)
3435
3536 if (window) {
3637 QQuickWindowPrivate *wp = QQuickWindowPrivate::get(window);
37− wp->flushDelayedTouchEvent();
38+ if (wp->delayedTouch) {
39+ wp->deliverDelayedTouchEvent();
40+
41+ // Touch events which constantly start animations (such as a behavior tracking
42+ // the mouse point) need animations to start.
43+ QQmlAnimationTimer *ut = QQmlAnimationTimer::instance();
44+ if (ut && ut->hasStartAnimationPending())
45+ ut->startAnimations();
46+ }
3847 }
3948}
4049