summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@theqtcompany.com>2016-06-03 07:50:35 +0200
committerAlex Blasche <alexander.blasche@theqtcompany.com>2016-06-03 07:50:35 +0200
commit970174b9e95709ccacc5123dbc81dc3c11f27705 (patch)
tree17534e581dae4da5ba6edc5a78a4cbf3bae2faee
parentfa0560ef9f23ab8e3bf3a0ea82d835468a3d2449 (diff)
parentf46abef02cf5c883deba753afeff0042fa36b6e4 (diff)
downloadqtlocation-970174b9e95709ccacc5123dbc81dc3c11f27705.tar.gz
Merge remote-tracking branch 'gerrit/5.7' into dev
Change-Id: Ica8afd5e07240d2279a0f098cc03f8443663a209
-rw-r--r--.qmake.conf1
-rw-r--r--dist/changes-5.7.037
-rw-r--r--examples/positioning/geoflickr/geoflickr.pro2
-rw-r--r--examples/positioning/satelliteinfo/satelliteinfo.pro2
-rw-r--r--src/imports/location/location.cpp6
-rw-r--r--src/imports/location/plugins.qmltypes14
-rw-r--r--src/imports/location/qdeclarativegeomap.cpp6
-rw-r--r--src/imports/location/qdeclarativegeomapcopyrightsnotice.cpp4
-rw-r--r--src/imports/positioning/plugins.qmltypes4
-rw-r--r--src/imports/positioning/positioning.cpp2
-rw-r--r--src/location/doc/qtlocation.qdocconf2
-rw-r--r--src/plugins/position/corelocation/qgeopositioninfosource_cl.mm2
-rw-r--r--src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp14
-rw-r--r--src/plugins/position/winrt/winrt.pro1
-rw-r--r--src/positioning/doc/qtpositioning.qdocconf2
-rw-r--r--tests/auto/declarative_geoshape/tst_locationsingleton.qml2
-rw-r--r--tests/auto/declarative_ui/tst_map_flick.qml1
-rw-r--r--tests/auto/declarative_ui/tst_map_item.qml176
-rw-r--r--tests/auto/declarative_ui/tst_map_item_details.qml219
-rw-r--r--tests/auto/declarative_ui/tst_map_item_fit_viewport.qml2
-rw-r--r--tests/auto/qmlinterface/qmlinterface.pro6
-rw-r--r--tests/plugins/declarativetestplugin/declarativetestplugin.pro16
-rw-r--r--tests/plugins/declarativetestplugin/locationtest.cpp10
-rw-r--r--tests/plugins/declarativetestplugin/qdeclarativelocationtestmodel.cpp4
-rw-r--r--tests/plugins/declarativetestplugin/qdeclarativelocationtestmodel_p.h4
-rw-r--r--tests/plugins/declarativetestplugin/qdeclarativepinchgenerator.cpp4
-rw-r--r--tests/plugins/declarativetestplugin/qdeclarativepinchgenerator_p.h4
-rw-r--r--tests/plugins/declarativetestplugin/testhelper.h58
-rw-r--r--tests/plugins/imports.pri9
29 files changed, 290 insertions, 324 deletions
diff --git a/.qmake.conf b/.qmake.conf
index aa9ded07..aefa1e70 100644
--- a/.qmake.conf
+++ b/.qmake.conf
@@ -1,4 +1,3 @@
load(qt_build_config)
-CONFIG += qt_example_installs
MODULE_VERSION = 5.8.0
diff --git a/dist/changes-5.7.0 b/dist/changes-5.7.0
new file mode 100644
index 00000000..23947c4e
--- /dev/null
+++ b/dist/changes-5.7.0
@@ -0,0 +1,37 @@
+Qt 5.7 introduces many new features and improvements as well as bugfixes
+over the 5.6.x series. For more details, refer to the online documentation
+included in this distribution. The documentation is also available online:
+
+ http://doc.qt.io/qt-5/index.html
+
+The Qt version 5.7 series is binary compatible with the 5.6.x series.
+Applications compiled for 5.6 will continue to run with 5.7.
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+ https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+QtPositioning
+-------------
+
+ - Added support for tvOs to iOS/OS X positioning engine
+ - Added qHash() function for QGeoCoordinate
+ - Fixed negative QGeoCoordinate.azimuthTo results
+ - Added experimental support for GeoPosition API on Windows desktop
+ running Windows 8 or later
+
+QtLocation
+----------
+
+ - [QTBUG-47025] Added option to hide map data copyright information
+ - Adjusted minimum map zoom level to prevent gray bounds. It prevents the map
+ from being smaller than the canvas size.
+ - Fixed several internal performance issues
diff --git a/examples/positioning/geoflickr/geoflickr.pro b/examples/positioning/geoflickr/geoflickr.pro
index 97e8b57f..4bbb7959 100644
--- a/examples/positioning/geoflickr/geoflickr.pro
+++ b/examples/positioning/geoflickr/geoflickr.pro
@@ -11,5 +11,5 @@ OTHER_FILES += flickr.qml \
flickrcommon/* \
flickrmobile/*
-target.path = $$[QT_INSTALL_EXAMPLES]/positioning/flickr
+target.path = $$[QT_INSTALL_EXAMPLES]/positioning/geoflickr
INSTALLS += target
diff --git a/examples/positioning/satelliteinfo/satelliteinfo.pro b/examples/positioning/satelliteinfo/satelliteinfo.pro
index fe4f728e..4aef9d0e 100644
--- a/examples/positioning/satelliteinfo/satelliteinfo.pro
+++ b/examples/positioning/satelliteinfo/satelliteinfo.pro
@@ -15,7 +15,7 @@ OTHER_FILES += \
RESOURCES += \
satelliteinfo.qrc
-target.path = $$[QT_INSTALL_EXAMPLES]/qtpositioning/satelliteinfo
+target.path = $$[QT_INSTALL_EXAMPLES]/positioning/satelliteinfo
INSTALLS += target
diff --git a/src/imports/location/location.cpp b/src/imports/location/location.cpp
index f299d153..b42933f0 100644
--- a/src/imports/location/location.cpp
+++ b/src/imports/location/location.cpp
@@ -153,9 +153,6 @@ public:
// Introduction of 5.3 version; existing 5.0 exports automatically become available under 5.3 as well
// 5.3 is committed QML API despite missing release of QtLocation 5.3
- // Register the 5.5 types
- // Implicitly registers 5.3 & 5.4
-
minor = 5;
//TODO: this is broken QTBUG-50990
qmlRegisterUncreatableType<QDeclarativeGeoMapType, 1>(uri, major, minor, "MapType",
@@ -165,6 +162,9 @@ public:
qmlRegisterUncreatableType<QQuickGeoMapGestureArea, 1>(uri, major, minor, "MapGestureArea",
QStringLiteral("(Map)GestureArea is not intended instantiable by developer."));
+ // Register the 5.7 types
+ minor = 7;
+ qmlRegisterType<QDeclarativeGeoManeuver>(uri, major, minor, "RouteManeuver");
//registrations below are version independent
qRegisterMetaType<QPlaceCategory>();
diff --git a/src/imports/location/plugins.qmltypes b/src/imports/location/plugins.qmltypes
index 61a1cd28..4e8749da 100644
--- a/src/imports/location/plugins.qmltypes
+++ b/src/imports/location/plugins.qmltypes
@@ -4,7 +4,7 @@ import QtQuick.tooling 1.2
// It is used for QML tooling purposes only.
//
// This file was auto-generated by:
-// 'qmlplugindump -nonrelocatable QtLocation 5.6'
+// 'qmlplugindump -nonrelocatable QtLocation 5.7'
Module {
dependencies: ["QtQuick 2.0"]
@@ -93,8 +93,11 @@ Module {
Component {
name: "QDeclarativeGeoManeuver"
prototype: "QObject"
- exports: ["QtLocation/RouteManeuver 5.0"]
- exportMetaObjectRevisions: [0]
+ exports: [
+ "QtLocation/RouteManeuver 5.0",
+ "QtLocation/RouteManeuver 5.7"
+ ]
+ exportMetaObjectRevisions: [0, 0]
Enum {
name: "Direction"
values: {
@@ -144,6 +147,7 @@ Module {
Property { name: "error"; type: "QGeoServiceProvider::Error"; isReadonly: true }
Property { name: "errorString"; type: "string"; isReadonly: true }
Property { name: "visibleRegion"; type: "QGeoShape" }
+ Property { name: "copyrightsVisible"; type: "bool" }
Property { name: "color"; type: "QColor" }
Signal {
name: "pluginChanged"
@@ -162,6 +166,10 @@ Module {
Parameter { name: "link"; type: "string" }
}
Signal {
+ name: "copyrightsVisibleChanged"
+ Parameter { name: "visible"; type: "bool" }
+ }
+ Signal {
name: "colorChanged"
Parameter { name: "color"; type: "QColor" }
}
diff --git a/src/imports/location/qdeclarativegeomap.cpp b/src/imports/location/qdeclarativegeomap.cpp
index c72e5666..545ef608 100644
--- a/src/imports/location/qdeclarativegeomap.cpp
+++ b/src/imports/location/qdeclarativegeomap.cpp
@@ -684,7 +684,7 @@ void QDeclarativeGeoMap::setZoomLevel(qreal zoomLevel)
//small optiomatization to avoid double setCameraData
bool centerHasChanged = false;
- if (m_map) {
+ if (m_initialized) {
m_cameraData.setZoomLevel(qBound(minimumZoomLevel(), zoomLevel, maximumZoomLevel()));
m_maximumViewportLatitude = m_map->maximumLatitudeForZoom(m_cameraData.zoomLevel());
QGeoCoordinate coord = m_cameraData.center();
@@ -724,7 +724,7 @@ void QDeclarativeGeoMap::setCenter(const QGeoCoordinate &center)
if (!center.isValid())
return;
- if (m_map) {
+ if (m_initialized) {
QGeoCoordinate coord(center);
coord.setLatitude(qBound(-m_maximumViewportLatitude, center.latitude(), m_maximumViewportLatitude));
m_cameraData.setCenter(coord);
@@ -799,6 +799,8 @@ QGeoShape QDeclarativeGeoMap::visibleRegion() const
\note Many map providers require the notice to be visible as part of the terms and conditions.
Please consult the relevant provider documentation before turning this notice off.
+
+ \since 5.7
*/
void QDeclarativeGeoMap::setCopyrightsVisible(bool visible)
{
diff --git a/src/imports/location/qdeclarativegeomapcopyrightsnotice.cpp b/src/imports/location/qdeclarativegeomapcopyrightsnotice.cpp
index 8e0f3b1e..289ea3d9 100644
--- a/src/imports/location/qdeclarativegeomapcopyrightsnotice.cpp
+++ b/src/imports/location/qdeclarativegeomapcopyrightsnotice.cpp
@@ -50,8 +50,8 @@ QDeclarativeGeoMapCopyrightNotice::QDeclarativeGeoMapCopyrightNotice(QQuickItem
{
QQuickAnchors *anchors = property("anchors").value<QQuickAnchors *>();
if (anchors) {
- anchors->setLeft(QQuickAnchorLine(parent, QQuickAnchorLine::Left));
- anchors->setBottom(QQuickAnchorLine(parent, QQuickAnchorLine::Bottom));
+ anchors->setLeft(QQuickAnchorLine(parent, QQuickAnchors::LeftAnchor));
+ anchors->setBottom(QQuickAnchorLine(parent, QQuickAnchors::BottomAnchor));
}
}
diff --git a/src/imports/positioning/plugins.qmltypes b/src/imports/positioning/plugins.qmltypes
index c3451c2a..55fcbba2 100644
--- a/src/imports/positioning/plugins.qmltypes
+++ b/src/imports/positioning/plugins.qmltypes
@@ -4,7 +4,7 @@ import QtQuick.tooling 1.2
// It is used for QML tooling purposes only.
//
// This file was auto-generated by:
-// 'qmlplugindump -nonrelocatable QtPositioning 5.6'
+// 'qmlplugindump -nonrelocatable QtPositioning 5.7'
Module {
dependencies: ["QtQuick 2.0"]
@@ -106,7 +106,7 @@ Module {
"QtPositioning/Position 5.0",
"QtPositioning/Position 5.3",
"QtPositioning/Position 5.4",
- "QtPositioning/Position 5.6"
+ "QtPositioning/Position 5.7"
]
exportMetaObjectRevisions: [0, 1, 2, 2]
Property { name: "latitudeValid"; type: "bool"; isReadonly: true }
diff --git a/src/imports/positioning/positioning.cpp b/src/imports/positioning/positioning.cpp
index 8a4fef47..5137da22 100644
--- a/src/imports/positioning/positioning.cpp
+++ b/src/imports/positioning/positioning.cpp
@@ -553,7 +553,7 @@ public:
minor = 4;
qmlRegisterType<QDeclarativePosition, 2>(uri, major, minor, "Position");
- minor = 6;
+ minor = 7;
qmlRegisterType<QDeclarativePosition, 2>(uri, major, minor, "Position");
} else {
qDebug() << "Unsupported URI given to load positioning QML plugin: " << QLatin1String(uri);
diff --git a/src/location/doc/qtlocation.qdocconf b/src/location/doc/qtlocation.qdocconf
index abe48974..695860a0 100644
--- a/src/location/doc/qtlocation.qdocconf
+++ b/src/location/doc/qtlocation.qdocconf
@@ -41,7 +41,7 @@ sourcedirs += .. \
../../imports/location \
../../plugins/geoservices/nokia
-examplesinstallpath = qtlocation/location
+examplesinstallpath = location
exampledirs += ../../../examples/location \
snippets/
diff --git a/src/plugins/position/corelocation/qgeopositioninfosource_cl.mm b/src/plugins/position/corelocation/qgeopositioninfosource_cl.mm
index d94d3fe6..54a079a2 100644
--- a/src/plugins/position/corelocation/qgeopositioninfosource_cl.mm
+++ b/src/plugins/position/corelocation/qgeopositioninfosource_cl.mm
@@ -112,7 +112,7 @@ QGeoPositionInfoSourceCL::QGeoPositionInfoSourceCL(QObject *parent)
, m_started(false)
, m_updateTimer(0)
, m_updateTimeout(0)
- , m_positionError(QGeoPositionInfoSource::UnknownSourceError)
+ , m_positionError(QGeoPositionInfoSource::NoError)
{
}
diff --git a/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp b/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp
index 5dbbacb5..245d855e 100644
--- a/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp
+++ b/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp
@@ -39,7 +39,9 @@
#include <QCoreApplication>
#include <QMutex>
#include <qfunctions_winrt.h>
+#ifdef Q_OS_WINRT
#include <private/qeventdispatcher_winrt_p.h>
+#endif
#include <functional>
#include <windows.system.h>
@@ -64,6 +66,16 @@ QT_BEGIN_NAMESPACE
Q_DECLARE_METATYPE(QGeoPositionInfo)
+#ifndef Q_OS_WINRT
+namespace QEventDispatcherWinRT {
+HRESULT runOnXamlThread(const std::function<HRESULT ()> &delegate, bool waitForRun = true)
+{
+ Q_UNUSED(waitForRun);
+ return delegate();
+}
+}
+#endif
+
class QGeoPositionInfoSourceWinRTPrivate {
public:
ComPtr<IGeolocator> locator;
@@ -490,7 +502,7 @@ HRESULT QGeoPositionInfoSourceWinRT::onStatusChanged(IGeolocator*, IStatusChange
bool QGeoPositionInfoSourceWinRT::requestAccess() const
{
-#if _MSC_VER >= 1900
+#if _MSC_VER >= 1900 && defined(Q_OS_WINRT)
static GeolocationAccessStatus accessStatus = GeolocationAccessStatus_Unspecified;
static ComPtr<IGeolocatorStatics> statics;
diff --git a/src/plugins/position/winrt/winrt.pro b/src/plugins/position/winrt/winrt.pro
index bc740671..5e02ec9a 100644
--- a/src/plugins/position/winrt/winrt.pro
+++ b/src/plugins/position/winrt/winrt.pro
@@ -12,4 +12,5 @@ OTHER_FILES += \
PLUGIN_TYPE = position
PLUGIN_CLASS_NAME = QGeoPositionInfoSourceFactoryWinRT
+win32-msvc201*: LIBS += runtimeobject.lib
load(qt_plugin)
diff --git a/src/positioning/doc/qtpositioning.qdocconf b/src/positioning/doc/qtpositioning.qdocconf
index 1645c092..608b30a1 100644
--- a/src/positioning/doc/qtpositioning.qdocconf
+++ b/src/positioning/doc/qtpositioning.qdocconf
@@ -40,7 +40,7 @@ headerdirs += .. \
sourcedirs += .. \
../../imports/positioning
-examplesinstallpath = qtlocation/positioning
+examplesinstallpath = positioning
exampledirs += ../../../examples/positioning \
snippets/
diff --git a/tests/auto/declarative_geoshape/tst_locationsingleton.qml b/tests/auto/declarative_geoshape/tst_locationsingleton.qml
index 4b0a55ae..e38e4ec7 100644
--- a/tests/auto/declarative_geoshape/tst_locationsingleton.qml
+++ b/tests/auto/declarative_geoshape/tst_locationsingleton.qml
@@ -204,7 +204,7 @@ Item {
function test_path_operations() {
compare(mapPolyline.path[1].latitude, -27)
compare(mapPolyline.path[1].longitude, 154.1)
- compare(mapPolyline.coordinateAt(1), QtPositioning.coordinate(27, 154.1))
+ compare(mapPolyline.coordinateAt(1), QtPositioning.coordinate(-27, 154.1))
compare(mapPolyline.path.length, mapPolyline.pathLength())
mapPolyline.removeCoordinate(1);
diff --git a/tests/auto/declarative_ui/tst_map_flick.qml b/tests/auto/declarative_ui/tst_map_flick.qml
index 304ca4f2..15f13b5f 100644
--- a/tests/auto/declarative_ui/tst_map_flick.qml
+++ b/tests/auto/declarative_ui/tst_map_flick.qml
@@ -283,7 +283,6 @@ Item {
{
map.center.latitude = 50
map.center.longitude = 50
- waitForRendering(map)
mousePress(page, 0, 0)
for (var i = 0; i < 50; i += 5) {
wait(20)
diff --git a/tests/auto/declarative_ui/tst_map_item.qml b/tests/auto/declarative_ui/tst_map_item.qml
index 2f6fedc3..8ede357f 100644
--- a/tests/auto/declarative_ui/tst_map_item.qml
+++ b/tests/auto/declarative_ui/tst_map_item.qml
@@ -30,6 +30,7 @@ import QtQuick 2.0
import QtTest 1.0
import QtLocation 5.6
import QtPositioning 5.5
+import QtLocation.Test 5.6
/*
@@ -62,7 +63,6 @@ Item {
height: 240
Plugin { id: testPlugin; name : "qmlgeo.test.plugin"; allowExperimental: true }
- property variant mapDefaultCenter: QtPositioning.coordinate(20, 20)
property variant someCoordinate1: QtPositioning.coordinate(15, 15)
property variant someCoordinate2: QtPositioning.coordinate(16, 16)
@@ -110,21 +110,10 @@ Item {
id: map;
x: 20; y: 20; width: 200; height: 200
zoomLevel: 9
- center: mapDefaultCenter
plugin: testPlugin;
MapRectangle {
id: preMapRect
- color: 'darkcyan'
- border.width: 0
- topLeft {
- latitude: 20
- longitude: 20
- }
- bottomRight {
- latitude: 10
- longitude: 30
- }
MouseArea {
id: preMapRectMa
anchors.fill: parent
@@ -139,13 +128,6 @@ Item {
}
MapCircle {
id: preMapCircle
- color: 'darkmagenta'
- border.width: 0
- center {
- latitude: 10
- longitude: 30
- }
- radius: 10000
MouseArea {
id: preMapCircleMa
anchors.fill: parent
@@ -170,11 +152,8 @@ Item {
SignalSpy { id: preMapQuickItemClicked; target: parent; signalName: "clicked" }
SignalSpy { id: preMapQuickItemActiveChanged; target: parent.drag; signalName: "activeChanged" }
}
- coordinate {
- latitude: 35
- longitude: 3
- }
sourceItem: Rectangle {
+ id: preMapQuickItemSource
color: 'darkgreen'
width: 20
height: 20
@@ -235,21 +214,69 @@ Item {
name: "MapItems"
when: windowShown
- function test_aa_items_on_map() { // aa et al. for execution order
- wait(10)
+ function initTestCase()
+ {
// sanity check that the coordinate conversion works, as
// rest of the case relies on it. for robustness cut
// a little slack with fuzzy compare
var mapcenter = map.fromCoordinate(map.center)
verify (fuzzy_compare(mapcenter.x, 100, 2))
verify (fuzzy_compare(mapcenter.y, 100, 2))
+ }
- // precondition
- compare(preMapRectClicked.count, 0)
- compare(preMapCircleClicked.count, 0)
+ function init()
+ {
+ map.center = QtPositioning.coordinate(20, 20)
+ preMapCircle.center = QtPositioning.coordinate(10,30)
+ preMapCircle.border.width = 0
+ preMapCircle.color = 'red'
+ preMapCircle.radius = 10000
+ preMapCircleClicked.clear()
+ preMapCircleCenterChanged.clear()
+ preMapCircleColorChanged.clear()
+ preMapCircleRadiusChanged.clear()
+ preMapCircleBorderColorChanged.clear()
+ preMapCircleBorderWidthChanged.clear()
+
+ preMapRect.color = 'red'
+ preMapRect.border.width = 0
+ preMapRect.topLeft = QtPositioning.coordinate(20, 20)
+ preMapRect.bottomRight = QtPositioning.coordinate(10, 30)
+ preMapRectTopLeftChanged.clear()
+ preMapRectBottomRightChanged.clear()
+ preMapRectColorChanged.clear()
+ preMapRectClicked.clear()
+ preMapRectActiveChanged.clear()
+
+ preMapQuickItem.sourceItem = preMapQuickItemSource
+ preMapQuickItem.zoomLevel = 0
+ preMapQuickItem.coordinate = QtPositioning.coordinate(35, 3)
+ preMapQuickItemClicked.clear()
+ preMapQuickItem.anchorPoint = Qt.point(0,0)
+ preMapQuickItemCoordinateChanged.clear()
+ preMapQuickItemAnchorPointChanged.clear()
+ preMapQuickItemZoomLevelChanged.clear()
+ preMapQuickItemSourceItemChanged.clear()
+
+ preMapPolygonClicked.clear()
+ preMapPolylineColorChanged.clear()
+ preMapPolylineWidthChanged.clear()
+ preMapPolylinePathChanged.clear()
+ preMapPolygonPathChanged.clear()
+ preMapPolygonColorChanged.clear()
+ preMapPolygonBorderColorChanged.clear()
+ preMapPolygonBorderWidthChanged.clear()
+ preMapRouteRouteChanged.clear()
+ preMapRouteLineColorChanged.clear()
+ preMapRouteLineWidthChanged.clear()
+ verify(LocationTestHelper.waitForPolished(map))
+ }
+ function test_items_on_map()
+ {
// click rect
map.center = preMapRect.topLeft
+ verify(LocationTestHelper.waitForPolished(map))
var point = map.fromCoordinate(preMapRect.topLeft)
mouseClick(map, point.x + 5, point.y + 5)
tryCompare(preMapRectClicked, "count", 1)
@@ -259,11 +286,11 @@ Item {
// click circle, overlaps and is above rect
map.center = preMapCircle.center
- verify(waitForRendering(map))
+ verify(LocationTestHelper.waitForPolished(map))
point = map.fromCoordinate(preMapCircle.center)
mouseClick(map, point.x - 5, point.y - 5)
- tryCompare(preMapRectClicked, "count", 1)
- compare(preMapCircleClicked.count, 1)
+ tryCompare(preMapCircleClicked, "count", 1)
+ compare(preMapRectClicked.count, 1)
// click within circle bounding rect but not inside the circle geometry
map.center = preMapCircle.center.atDistanceAndAzimuth(preMapCircle.radius, -45)
@@ -274,7 +301,7 @@ Item {
// click quick item
compare(preMapQuickItemClicked.count, 0)
map.center = preMapQuickItem.coordinate
- verify(waitForRendering(map))
+ verify(LocationTestHelper.waitForPolished(map))
point = map.fromCoordinate(preMapQuickItem.coordinate)
mouseClick(map, point.x + 5, point.y + 5)
tryCompare(preMapQuickItemClicked, "count", 1)
@@ -282,20 +309,22 @@ Item {
// click polygon
compare (preMapPolygonClicked.count, 0)
map.center = preMapPolygon.path[1]
- verify(waitForRendering(map))
+ verify(LocationTestHelper.waitForPolished(map))
point = map.fromCoordinate(preMapPolygon.path[1])
mouseClick(map, point.x - 5, point.y)
tryCompare(preMapPolygonClicked, "count", 1)
+ }
+ function test_no_items_on_map()
+ {
// remove items and repeat clicks to verify they are gone
map.clearMapItems()
- clear_data()
compare (map.mapItems.length, 0)
map.center = preMapRect.topLeft
- point = map.fromCoordinate(preMapRect.topLeft)
+ var point = map.fromCoordinate(preMapRect.topLeft)
mouseClick(map, point.x + 5, point.y + 5)
compare(preMapRectClicked.count, 0)
- visualInspectionPoint()
+ verify(LocationTestHelper.waitForPolished(map))
map.center = preMapCircle.center
point = map.fromCoordinate(preMapCircle.center)
mouseClick(map, point.x - 5, point.y - 5)
@@ -324,30 +353,31 @@ Item {
map.addMapItem(preMapPolyline)
map.addMapItem(preMapRoute)
compare (map.mapItems.length, 6)
- visualInspectionPoint()
+
map.center = preMapRect.topLeft
- verify(waitForRendering(map))
+ verify(LocationTestHelper.waitForPolished(map))
point = map.fromCoordinate(preMapRect.topLeft)
mouseClick(map, point.x + 5, point.y + 5)
tryCompare(preMapRectClicked, "count", 1)
map.center = preMapCircle.center
- verify(waitForRendering(map))
+ verify(LocationTestHelper.waitForPolished(map))
point = map.fromCoordinate(preMapCircle.center)
mouseClick(map, point.x - 5, point.y - 5)
tryCompare(preMapRectClicked, "count", 1)
compare(preMapCircleClicked.count, 1)
map.center = preMapCircle.center.atDistanceAndAzimuth(preMapCircle.radius, -45)
+ verify(LocationTestHelper.waitForPolished(map))
mouseClick(map, preMapCircle.x + 4, preMapCircle.y + 4)
tryCompare(preMapRectClicked, "count", 2)
compare(preMapCircleClicked.count, 1)
compare(preMapQuickItemClicked.count, 0)
map.center = preMapQuickItem.coordinate
- verify(waitForRendering(map))
+ verify(LocationTestHelper.waitForPolished(map))
point = map.fromCoordinate(preMapQuickItem.coordinate)
mouseClick(map, point.x + 5, point.y + 5)
tryCompare(preMapQuickItemClicked, "count", 1)
map.center = preMapPolygon.path[1]
- verify(waitForRendering(map))
+ verify(LocationTestHelper.waitForPolished(map))
point = map.fromCoordinate(preMapPolygon.path[1])
mouseClick(map, point.x - 5, point.y)
tryCompare(preMapPolygonClicked, "count", 1)
@@ -356,8 +386,7 @@ Item {
// item clips to map. not sure if this is sensible test
map.addMapItem(extMapCircle)
map.center = extMapCircle.center
- verify(waitForRendering(map))
- visualInspectionPoint();
+ verify(LocationTestHelper.waitForPolished(map))
point = map.fromCoordinate(extMapCircle.center)
mouseClick(map, point.x, point.y)
tryCompare(extMapCircleClicked, "count", 1)
@@ -367,8 +396,7 @@ Item {
map.addMapItem(extMapQuickItem)
map.center = extMapQuickItem.coordinate
- verify(waitForRendering(map))
- visualInspectionPoint();
+ verify(LocationTestHelper.waitForPolished(map))
point = map.fromCoordinate(extMapQuickItem.coordinate)
mouseClick(map, point.x + 5, point.y + 5)
tryCompare(extMapQuickItemClicked, "count", 1)
@@ -377,13 +405,12 @@ Item {
map.removeMapItem(extMapQuickItem)
}
- function test_ab_drag() {
- clear_data()
+ function test_drag()
+ {
// basic drags, drag rectangle
compare (preMapRectActiveChanged.count, 0)
map.center = preMapRect.topLeft
- verify(waitForRendering(map))
-
+ verify(LocationTestHelper.waitForPolished(map))
var i
var point = map.fromCoordinate(preMapRect.topLeft)
var targetCoordinate = map.toCoordinate(51, 51)
@@ -406,7 +433,7 @@ Item {
// drag circle
compare (preMapCircleActiveChanged.count, 0)
map.center = preMapCircle.center
- verify(waitForRendering(map))
+ verify(LocationTestHelper.waitForPolished(map))
point = map.fromCoordinate(preMapCircle.center)
targetCoordinate = map.toCoordinate(51, 51)
mousePress(map, point.x, point.y)
@@ -415,7 +442,7 @@ Item {
mouseMove(map, point.x - i, point.y - i)
}
mouseRelease(map, point.x - i, point.y - i)
- visualInspectionPoint()
+ verify(LocationTestHelper.waitForPolished(map))
compare(preMapRectActiveChanged.count, 2)
compare(preMapCircleActiveChanged.count, 2)
verify(preMapCircleCenterChanged.count > 1)
@@ -425,7 +452,7 @@ Item {
// drag quick item
compare (preMapQuickItemActiveChanged.count, 0)
map.center = preMapQuickItem.coordinate
- verify(waitForRendering(map))
+ verify(LocationTestHelper.waitForPolished(map))
point = map.fromCoordinate(preMapQuickItem.coordinate)
targetCoordinate = map.toCoordinate(51, 51)
mousePress(map, point.x + 5, point.y + 5)
@@ -434,15 +461,15 @@ Item {
mouseMove(map, point.x - i, point.y - i)
}
mouseRelease(map, point.x - i, point.y - i)
- visualInspectionPoint()
+ verify(LocationTestHelper.waitForPolished(map))
compare(preMapQuickItemActiveChanged.count, 2)
verify(preMapQuickItemCoordinateChanged.count > 1)
verify(fuzzy_compare(preMapQuickItem.coordinate.latitude, targetCoordinate.latitude, 0.2))
verify(fuzzy_compare(preMapQuickItem.coordinate.longitude, targetCoordinate.longitude, 0.2))
}
- function test_ac_basic_properties() {
- clear_data()
+ function test_basic_items_properties()
+ {
// circle
preMapCircle.center = someCoordinate1
compare (preMapCircleCenterChanged.count, 1)
@@ -558,35 +585,6 @@ Item {
compare (preMapQuickItemSourceItemChanged.count, 1)
}
- function clear_data() {
- preMapRectClicked.clear()
- preMapCircleClicked.clear()
- preMapQuickItemClicked.clear()
- preMapPolygonClicked.clear()
- preMapCircleCenterChanged.clear()
- preMapCircleColorChanged.clear()
- preMapCircleRadiusChanged.clear()
- preMapCircleBorderColorChanged.clear()
- preMapCircleBorderWidthChanged.clear()
- preMapRectTopLeftChanged.clear()
- preMapRectBottomRightChanged.clear()
- preMapRectColorChanged.clear()
- preMapPolylineColorChanged.clear()
- preMapPolylineWidthChanged.clear()
- preMapPolylinePathChanged.clear()
- preMapPolygonPathChanged.clear()
- preMapPolygonColorChanged.clear()
- preMapPolygonBorderColorChanged.clear()
- preMapPolygonBorderWidthChanged.clear()
- preMapRouteRouteChanged.clear()
- preMapRouteLineColorChanged.clear()
- preMapRouteLineWidthChanged.clear()
- preMapQuickItemCoordinateChanged.clear()
- preMapQuickItemAnchorPointChanged.clear()
- preMapQuickItemZoomLevelChanged.clear()
- preMapQuickItemSourceItemChanged.clear()
- }
-
function fuzzy_compare(val, ref, tol) {
var tolerance = 2
if (tol !== undefined)
@@ -597,16 +595,6 @@ Item {
return false;
}
- // call to visualInspectionPoint testcase (for dev time visual inspection)
- function visualInspectionPoint(time) {
- var waitTime = 0 // 300
- if (time !== undefined)
- waitTime = time
- if (waitTime > 0) {
- console.log('halting for ' + waitTime + ' milliseconds')
- wait (waitTime)
- }
- }
// these 'real_' prefixed functions do sequences as
// it would occur on real app (e.g. doubleclick is in fact
// a sequence of press, release, doubleclick, release).
diff --git a/tests/auto/declarative_ui/tst_map_item_details.qml b/tests/auto/declarative_ui/tst_map_item_details.qml
index 586d7018..ef11ba6c 100644
--- a/tests/auto/declarative_ui/tst_map_item_details.qml
+++ b/tests/auto/declarative_ui/tst_map_item_details.qml
@@ -30,6 +30,7 @@ import QtQuick 2.0
import QtTest 1.0
import QtPositioning 5.5
import QtLocation 5.6
+import QtLocation.Test 5.6
Item {
id: page
@@ -269,7 +270,6 @@ Item {
Map {
id: map;
x: 20; y: 20; width: 200; height: 200
- zoomLevel: 3
center: mapDefaultCenter
plugin: testPlugin;
}
@@ -303,22 +303,35 @@ Item {
(0,240) ---------------------------------------------------- (240,240)
*/
- function test_aa_precondition() {
- wait(10)
+ function initTestCase()
+ {
// sanity check that the coordinate conversion works
var mapcenter = map.fromCoordinate(map.center)
verify (fuzzy_compare(mapcenter.x, 100, 2))
verify (fuzzy_compare(mapcenter.y, 100, 2))
}
- function test_polygon() {
+ function init()
+ {
map.clearMapItems()
- clear_data()
- compare (extMapPolygon.border.width, 1.0)
- compare (extMapPolygonClicked.count, 0)
+ map.zoomLevel = 3
+ extMapPolygon.border.width = 1.0
+ extMapPolygonClicked.clear()
+ extMapPolylineColorChanged.clear()
+ extMapPolylineWidthChanged.clear()
+ extMapPolylinePathChanged.clear()
+ extMapPolygonPathChanged.clear()
+ extMapPolygonColorChanged.clear()
+ extMapPolygonBorderColorChanged.clear()
+ extMapPolygonBorderWidthChanged.clear()
+ }
+
+ function test_polygon()
+ {
map.center = extMapPolygon.path[1]
var point = map.fromCoordinate(extMapPolygon.path[1])
map.addMapItem(extMapPolygon)
+ verify(LocationTestHelper.waitForPolished(map))
verify(extMapPolygon.path.length == 2)
mouseClick(map, point.x - 5, point.y)
compare(extMapPolygonClicked.count, 0)
@@ -326,7 +339,7 @@ Item {
verify(extMapPolygon0.path.length == 0)
extMapPolygon.addCoordinate(polyCoordinate)
verify(extMapPolygon.path.length == 3)
- verify(waitForRendering(map))
+ verify(LocationTestHelper.waitForPolished(map))
mouseClick(map, point.x - 5, point.y)
tryCompare(extMapPolygonClicked, "count", 1)
@@ -347,9 +360,8 @@ Item {
verify(extMapPolygon.path.length == 0)
}
- function test_polyline() {
- map.clearMapItems()
- clear_data()
+ function test_polyline()
+ {
compare (extMapPolyline.line.width, 1.0)
var point = map.fromCoordinate(extMapPolyline.path[1])
map.addMapItem(extMapPolyline0) // mustn't crash or ill-behave
@@ -406,12 +418,9 @@ Item {
(0,240) ---------------------------------------------------- (600,240)
*/
- function test_yz_dateline() {
- map.clearMapItems()
- clear_data()
+ function test_dateline() {
map.center = datelineCoordinate
map.zoomLevel = 2.2
-
// rectangle
// item spanning across dateline
map.addMapItem(extMapRectDateline)
@@ -427,10 +436,10 @@ Item {
verify(point.x > map.width / 2.0)
// move item edge onto dateline
extMapRectDateline.topLeft.longitude = datelineCoordinate.longitude
- verify(waitForRendering(map))
point = map.fromCoordinate(extMapRectDateline.topLeft)
verify(point.x == map.width / 2.0)
// drag item back onto dateline
+ verify(LocationTestHelper.waitForPolished(map))
mousePress(map, point.x + 5, point.y + 5)
var i
for (i=0; i < 20; i += 2) {
@@ -438,6 +447,7 @@ Item {
mouseMove(map, point.x + 5 - i, point.y + 5 )
}
mouseRelease(map, point.x + 5 - i, point.y + 5)
+ verify(LocationTestHelper.waitForPolished(map))
point = map.fromCoordinate(extMapRectDateline.topLeft)
verify(point.x < map.width / 2.0)
point = map.fromCoordinate(extMapRectDateline.bottomRight)
@@ -451,15 +461,16 @@ Item {
point = map.fromCoordinate(extMapCircleDateline.center)
verify(point.x == map.width / 2.0)
extMapCircleDateline.center.longitude = datelineCoordinateRight.longitude
- verify(waitForRendering(map))
point = map.fromCoordinate(extMapCircleDateline.center)
verify(point.x > map.width / 2.0)
+ verify(LocationTestHelper.waitForPolished(map))
mousePress(map, point.x, point.y)
for (i=0; i < 40; i += 4) {
wait(1)
mouseMove(map, point.x - i, point.y)
}
mouseRelease(map, point.x - i, point.y)
+ verify(LocationTestHelper.waitForPolished(map))
point = map.fromCoordinate(extMapCircleDateline.center)
verify(point.x < map.width / 2.0)
map.removeMapItem(extMapCircleDateline)
@@ -471,15 +482,16 @@ Item {
point = map.fromCoordinate(extMapQuickItemDateline.coordinate)
verify(point.x < map.width / 2.0)
extMapQuickItemDateline.coordinate.longitude = datelineCoordinateRight.longitude
- verify(waitForRendering(map))
point = map.fromCoordinate(extMapQuickItemDateline.coordinate)
verify(point.x > map.width / 2.0)
+ verify(LocationTestHelper.waitForPolished(map))
mousePress(map, point.x + 5, point.y + 5)
for (i=0; i < 50; i += 5) {
wait(1)
mouseMove(map, point.x + 5 - i, point.y + 5 )
}
mouseRelease(map, point.x + 5 - i, point.y + 5)
+ verify(LocationTestHelper.waitForPolished(map))
point = map.fromCoordinate(extMapQuickItemDateline.coordinate)
verify(point.x < map.width / 2.0)
map.removeMapItem(extMapQuickItemDateline)
@@ -513,16 +525,16 @@ Item {
path = extMapPolygonDateline.path;
path[3].longitude = datelineCoordinate.longitude;
extMapPolygonDateline.path = path;
- verify(waitForRendering(map))
point = map.fromCoordinate(extMapPolygonDateline.path[3])
verify(point.x == map.width / 2.0)
+ verify(LocationTestHelper.waitForPolished(map))
mousePress(map, point.x + 5, point.y - 5)
for (i=0; i < 16; i += 2) {
wait(1)
mouseMove(map, point.x + 5 - i, point.y - 5 )
}
mouseRelease(map, point.x + 5 - i, point.y - 5)
- verify(waitForRendering(map,10000))
+ verify(LocationTestHelper.waitForPolished(map))
point = map.fromCoordinate(extMapPolygonDateline.path[0])
verify(point.x < map.width / 2.0)
point = map.fromCoordinate(extMapPolygonDateline.path[1])
@@ -564,167 +576,6 @@ Item {
map.removeMapItem(extMapRouteDateline)
}
- /*
-
- (0,0) ---------------------------------------------------- (600,0)
- | no map |
- | (20,20) |
- (0,20) | ------------------------------------------ | (600,20)
- | | | |
- | | map | |
- | | | |
- | | | |
- | | | |
- | | (lat 20, lon 180) | |
- | | x | |
- | | | |
- | | | |
- | | | |
- | | | |
- | | | |
- | ------------------------------------------ |
- | |
- (0,240) ---------------------------------------------------- (600,240)
-
- */
- function test_zz_border_drag() {
- map.clearMapItems()
- clear_data()
- map.center = datelineCoordinate
-
- // lower zoom level and change widths to reveal map border.
- // Note: items are not visible at zoom level < 2.0,
- // but for testing it's ok
- map.zoomLevel = 1
- page.width = 600
- map.width = 560
-
- // rectangle
- map.addMapItem(extMapRectEdge)
- verify(waitForRendering(map))
- verify(extMapRectEdge.topLeft.longitude == -15)
- verify(extMapRectEdge.bottomRight.longitude == -5)
- var point = map.fromCoordinate(extMapRectEdge.topLeft)
- verify(point.x < map.width)
- verify(point.x > map.width / 2.0)
- point = map.fromCoordinate(extMapRectEdge.bottomRight)
- verify(point.x < map.width)
- verify(point.x > map.width / 2.0)
- var originalWidth = extMapRectEdge.width;
- verify(originalWidth < map.width / 2.0)
- // drag item onto map border
- point = map.fromCoordinate(extMapRectEdge.topLeft)
- mousePress(map, point.x + 5, point.y + 5)
- var i
- for (i=0; i < 20; i += 2) {
- wait(1)
- mouseMove(map, point.x + 5 + i, point.y + 5)
- }
- mouseRelease(map, point.x + 5 + i, point.y + 5)
- // currently the bottom right screen point is unwrapped and drawn
- // out of the map border, but in the future culling may take place
- // so tests for points outside the map border are ignored,
- // instead we check the item width
- point = map.fromCoordinate(extMapRectEdge.topLeft)
- verify(point.x < map.width)
- verify(point.x > map.width / 2.0)
- compare(extMapRectEdge.width, originalWidth)
- map.removeMapItem(extMapRectEdge)
-
- // circle
- map.addMapItem(extMapCircleEdge)
- map.center = datelineCoordinate
- verify(extMapCircleEdge.center.longitude == -15)
- var point = map.fromCoordinate(extMapCircleEdge.center)
- verify(point.x < map.width)
- verify(point.x > map.width / 2.0)
- originalWidth = extMapCircleEdge.width;
- verify(originalWidth < map.width / 2.0)
- point = map.fromCoordinate(extMapCircleEdge.center)
- mousePress(map, point.x, point.y)
- for (i=0; i < 20; i += 2) {
- wait(1)
- mouseMove(map, point.x + i, point.y)
- }
- mouseRelease(map, point.x + i, point.y)
- point = map.fromCoordinate(extMapCircleEdge.center)
- verify(point.x < map.width)
- verify(point.x > map.width / 2.0)
- fuzzy_compare(extMapCircleEdge.width, originalWidth)
- map.removeMapItem(extMapCircleEdge)
-
- // quickitem
- map.addMapItem(extMapQuickItemEdge)
- map.center = datelineCoordinate
- verify(waitForRendering(map))
- verify(extMapQuickItemEdge.coordinate.longitude == -15)
- point = map.fromCoordinate(extMapQuickItemEdge.coordinate)
- verify(point.x < map.width)
- verify(point.x > map.width / 2.0)
- originalWidth = extMapQuickItemEdge.width;
- verify(originalWidth < map.width / 2.0)
- mousePress(map, point.x + 5, point.y + 5)
- for (i=0; i < 20; i += 2) {
- wait(1)
- mouseMove(map, point.x + 5 + i, point.y + 5)
- }
- mouseRelease(map, point.x + 5 + i, point.y + 5)
- point = map.fromCoordinate(extMapQuickItemEdge.coordinate)
- verify(point.x < map.width)
- verify(point.x > map.width / 2.0)
- compare(extMapQuickItemEdge.width, originalWidth)
- map.removeMapItem(extMapQuickItemEdge)
-
- // polygon
- map.center = datelineCoordinate
- map.addMapItem(extMapPolygonEdge)
- verify(waitForRendering(map))
- verify(extMapPolygonEdge.path[0].longitude == -15)
- verify(extMapPolygonEdge.path[1].longitude == -5)
- verify(extMapPolygonEdge.path[2].longitude == -5)
- verify(extMapPolygonEdge.path[3].longitude == -15)
- point = map.fromCoordinate(extMapPolygonEdge.path[0])
- verify(point.x < map.width)
- verify(point.x > map.width / 2.0)
- point = map.fromCoordinate(extMapPolygonEdge.path[1])
- verify(point.x < map.width)
- verify(point.x > map.width / 2.0)
- point = map.fromCoordinate(extMapPolygonEdge.path[2])
- verify(point.x < map.width)
- verify(point.x > map.width / 2.0)
- point = map.fromCoordinate(extMapPolygonEdge.path[3])
- verify(point.x < map.width)
- verify(point.x > map.width / 2.0)
- originalWidth = extMapPolygonEdge.width;
- verify(originalWidth < map.width / 2.0)
- mousePress(map, point.x + 5, point.y - 5)
- for (i=0; i < 20; i += 2) {
- wait(1)
- mouseMove(map, point.x + 5 + i, point.y - 5)
- }
- mouseRelease(map, point.x + 5 + i, point.y - 5)
- point = map.fromCoordinate(extMapPolygonEdge.path[0])
- verify(point.x < map.width)
- verify(point.x > map.width / 2.0)
- point = map.fromCoordinate(extMapPolygonEdge.path[3])
- verify(point.x < map.width)
- verify(point.x > map.width / 2.0)
- compare(extMapPolygonEdge.width, originalWidth)
- map.removeMapItem(extMapPolygonEdge)
- }
-
-
- function clear_data() {
- extMapPolygonClicked.clear()
- extMapPolylineColorChanged.clear()
- extMapPolylineWidthChanged.clear()
- extMapPolylinePathChanged.clear()
- extMapPolygonPathChanged.clear()
- extMapPolygonColorChanged.clear()
- extMapPolygonBorderColorChanged.clear()
- extMapPolygonBorderWidthChanged.clear()
- }
-
function fuzzy_compare(val, ref, tol) {
var tolerance = 2
if (tol !== undefined)
@@ -734,11 +585,5 @@ Item {
console.log('map fuzzy cmp returns false for value, ref, tolerance: ' + val + ', ' + ref + ', ' + tolerance)
return false;
}
-
- // call to visualInspectionPoint testcase (only for development time visual inspection)
- function visualInspectionPoint(text) {
- progressText.text = text
- //wait (500)
- }
}
}
diff --git a/tests/auto/declarative_ui/tst_map_item_fit_viewport.qml b/tests/auto/declarative_ui/tst_map_item_fit_viewport.qml
index f8797ecb..e296fd8d 100644
--- a/tests/auto/declarative_ui/tst_map_item_fit_viewport.qml
+++ b/tests/auto/declarative_ui/tst_map_item_fit_viewport.qml
@@ -235,7 +235,6 @@ Item {
// normal case - fit viewport to items which are all already visible
verify_visibility_all_items()
map.fitViewportToMapItems()
- verify(waitForRendering(map))
visualInspectionPoint()
verify_visibility_all_items()
}
@@ -573,7 +572,6 @@ Item {
map.addMapItem(preMapPolygon)
map.addMapItem(preMapPolyline)
map.addMapItem(preMapRoute)
- verify(waitForRendering(map))
compare (map.mapItems.length, 6)
calculate_bounds()
}
diff --git a/tests/auto/qmlinterface/qmlinterface.pro b/tests/auto/qmlinterface/qmlinterface.pro
index c95547ed..9f1acad8 100644
--- a/tests/auto/qmlinterface/qmlinterface.pro
+++ b/tests/auto/qmlinterface/qmlinterface.pro
@@ -1,9 +1,3 @@
-#-------------------------------------------------
-#
-# Project created by QtCreator 2011-11-09T15:45:51
-#
-#-------------------------------------------------
-
QT += location qml testlib
#QT -= gui
diff --git a/tests/plugins/declarativetestplugin/declarativetestplugin.pro b/tests/plugins/declarativetestplugin/declarativetestplugin.pro
index a27267d7..0a99e7a7 100644
--- a/tests/plugins/declarativetestplugin/declarativetestplugin.pro
+++ b/tests/plugins/declarativetestplugin/declarativetestplugin.pro
@@ -7,13 +7,15 @@ QT += gui-private qml quick location testlib
INCLUDEPATH += ../../../src/imports/location
INCLUDEPATH += ../../../src/location
-HEADERS += qdeclarativepinchgenerator_p.h \
- qdeclarativelocationtestmodel_p.h
-
-
-SOURCES += locationtest.cpp \
- qdeclarativepinchgenerator.cpp \
- qdeclarativelocationtestmodel.cpp
+HEADERS += \
+ qdeclarativepinchgenerator_p.h \
+ qdeclarativelocationtestmodel_p.h \
+ testhelper.h
+
+SOURCES += \
+ locationtest.cpp \
+ qdeclarativepinchgenerator.cpp \
+ qdeclarativelocationtestmodel.cpp
IMPORT_FILES = \
qmldir
diff --git a/tests/plugins/declarativetestplugin/locationtest.cpp b/tests/plugins/declarativetestplugin/locationtest.cpp
index 85812b39..f0389d90 100644
--- a/tests/plugins/declarativetestplugin/locationtest.cpp
+++ b/tests/plugins/declarativetestplugin/locationtest.cpp
@@ -28,6 +28,7 @@
#include "qdeclarativepinchgenerator_p.h"
#include "qdeclarativelocationtestmodel_p.h"
+#include "testhelper.h"
#include <QtQml/QQmlExtensionPlugin>
#include <QtQml/qqml.h>
@@ -36,6 +37,14 @@
QT_BEGIN_NAMESPACE
+static QObject *helper_factory(QQmlEngine *engine, QJSEngine *scriptEngine)
+{
+ Q_UNUSED(engine);
+ Q_UNUSED(scriptEngine);
+ TestHelper *helper = new TestHelper();
+ return helper;
+}
+
class QLocationDeclarativeTestModule: public QQmlExtensionPlugin
{
Q_OBJECT
@@ -46,6 +55,7 @@ public:
if (QLatin1String(uri) == QLatin1String("QtLocation.Test")) {
qmlRegisterType<QDeclarativePinchGenerator>(uri, 5, 5, "PinchGenerator");
qmlRegisterType<QDeclarativeLocationTestModel>(uri, 5, 5, "TestModel");
+ qmlRegisterSingletonType<TestHelper>(uri, 5, 6, "LocationTestHelper", helper_factory);
} else {
qWarning() << "Unsupported URI given to load location test QML plugin: " << QLatin1String(uri);
}
diff --git a/tests/plugins/declarativetestplugin/qdeclarativelocationtestmodel.cpp b/tests/plugins/declarativetestplugin/qdeclarativelocationtestmodel.cpp
index eb8bd054..e0004596 100644
--- a/tests/plugins/declarativetestplugin/qdeclarativelocationtestmodel.cpp
+++ b/tests/plugins/declarativetestplugin/qdeclarativelocationtestmodel.cpp
@@ -31,6 +31,8 @@
#include <QtCore/QTime>
#include <QtCore>
+QT_BEGIN_NAMESPACE
+
QDeclarativeLocationTestModel::QDeclarativeLocationTestModel(QObject *parent):
QAbstractListModel(parent),
delay_(0),
@@ -242,3 +244,5 @@ QHash<int, QByteArray> QDeclarativeLocationTestModel::roleNames() const
roles.insert(TestDataRole, "modeldata");
return roles;
}
+
+QT_END_NAMESPACE
diff --git a/tests/plugins/declarativetestplugin/qdeclarativelocationtestmodel_p.h b/tests/plugins/declarativetestplugin/qdeclarativelocationtestmodel_p.h
index 5d6f2395..925125af 100644
--- a/tests/plugins/declarativetestplugin/qdeclarativelocationtestmodel_p.h
+++ b/tests/plugins/declarativetestplugin/qdeclarativelocationtestmodel_p.h
@@ -36,6 +36,8 @@
#include <QList>
#include <QtPositioning/QGeoCoordinate>
+QT_BEGIN_NAMESPACE
+
class DataObject: public QObject
{
Q_OBJECT
@@ -123,4 +125,6 @@ private:
bool crazyMode_;
};
+QT_END_NAMESPACE
+
#endif
diff --git a/tests/plugins/declarativetestplugin/qdeclarativepinchgenerator.cpp b/tests/plugins/declarativetestplugin/qdeclarativepinchgenerator.cpp
index 37f0583d..3026cd92 100644
--- a/tests/plugins/declarativetestplugin/qdeclarativepinchgenerator.cpp
+++ b/tests/plugins/declarativetestplugin/qdeclarativepinchgenerator.cpp
@@ -33,6 +33,8 @@
#include <QtGui/qpa/qwindowsysteminterface.h>
#include <QtGui/QStyleHints>
+QT_BEGIN_NAMESPACE
+
QDeclarativePinchGenerator::QDeclarativePinchGenerator():
target_(0),
state_(Invalid),
@@ -376,3 +378,5 @@ int QDeclarativePinchGenerator::startDragDistance()
{
return qApp->styleHints()->startDragDistance();
}
+
+QT_END_NAMESPACE
diff --git a/tests/plugins/declarativetestplugin/qdeclarativepinchgenerator_p.h b/tests/plugins/declarativetestplugin/qdeclarativepinchgenerator_p.h
index f3b06943..23d8b650 100644
--- a/tests/plugins/declarativetestplugin/qdeclarativepinchgenerator_p.h
+++ b/tests/plugins/declarativetestplugin/qdeclarativepinchgenerator_p.h
@@ -41,6 +41,8 @@
#define SWIPES_REQUIRED 2
+QT_BEGIN_NAMESPACE
+
typedef struct {
QList<QPoint> touchPoints;
QList<int> durations;
@@ -132,4 +134,6 @@ private:
QTouchDevice* device_;
};
+QT_END_NAMESPACE
+
#endif
diff --git a/tests/plugins/declarativetestplugin/testhelper.h b/tests/plugins/declarativetestplugin/testhelper.h
new file mode 100644
index 00000000..c6d9f3b3
--- /dev/null
+++ b/tests/plugins/declarativetestplugin/testhelper.h
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** As a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef TESTHELPER_H
+#define TESTHELPER_H
+
+#include <QObject>
+#include <QSignalSpy>
+#include <QQuickItem>
+#include <QQuickWindow>
+
+QT_BEGIN_NAMESPACE
+
+class TestHelper: public QObject
+{
+ Q_OBJECT
+public:
+ TestHelper(QObject *parent = Q_NULLPTR):QObject(parent){}
+ Q_INVOKABLE bool waitForPolished(QQuickItem *item, int timeout = 10000) const
+ {
+ QSignalSpy spy(item->window(), &QQuickWindow::afterAnimating);
+ return spy.wait(timeout);
+ }
+};
+
+QT_END_NAMESPACE
+
+#endif // TESTHELPER_H
diff --git a/tests/plugins/imports.pri b/tests/plugins/imports.pri
index e7ff1d42..00f93330 100644
--- a/tests/plugins/imports.pri
+++ b/tests/plugins/imports.pri
@@ -1,8 +1,5 @@
!contains(DESTDIR, $$[QT_INSTALL_QML]/$$TARGETPATH) {
- copyimportfiles.input = IMPORT_FILES
- copyimportfiles.output = $$DESTDIR/${QMAKE_FILE_IN_BASE}${QMAKE_FILE_EXT}
- copyimportfiles.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
- copyimportfiles.CONFIG += no_link_no_clean
- copyimportfiles.variable_out = PRE_TARGETDEPS
- QMAKE_EXTRA_COMPILERS += copyimportfiles
+ importfiles.files = $$IMPORT_FILES
+ importfiles.path = $$DESTDIR
+ COPIES += importfiles
}