diff -Nru qtlocation-opensource-src-5.9.5+dfsg/debian/changelog qtlocation-opensource-src-5.11.1+dfsg/debian/changelog --- qtlocation-opensource-src-5.9.5+dfsg/debian/changelog 2018-04-14 17:41:06.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/debian/changelog 2018-08-15 22:18:17.000000000 +0000 @@ -1,26 +1,78 @@ -qtlocation-opensource-src (5.9.5+dfsg-0ubuntu2) bionic; urgency=medium +qtlocation-opensource-src (5.11.1+dfsg-4) unstable; urgency=medium + * Make qtpositioning5-dev depend upon libqt5positioningquick5 + (Closes: #905049). Thanks Andreas Beckmann for the bug report. + * Update symbols files with buildds' logs. + * Update Standards-Version to 4.2.0, no changes required. + + -- Lisandro Damián Nicanor Pérez Meyer Wed, 15 Aug 2018 19:18:17 -0300 + +qtlocation-opensource-src (5.11.1+dfsg-3) unstable; urgency=medium + + * Upload to Sid. + + -- Simon Quigley Wed, 25 Jul 2018 04:49:31 -0500 + +qtlocation-opensource-src (5.11.1+dfsg-2) experimental; urgency=medium + + * Remove the dbgsym migration section of debian/rules; it isn't needed + anymore. + * Update symbols from buildd logs. + + -- Simon Quigley Fri, 22 Jun 2018 14:41:16 -0500 + +qtlocation-opensource-src (5.11.1+dfsg-1) experimental; urgency=medium + + * New changelog entry. + * Bump build dependencies to 5.11.1. * Update symbols from build logs. - -- Simon Quigley Sat, 14 Apr 2018 12:41:06 -0500 + -- Simon Quigley Tue, 19 Jun 2018 18:09:38 -0500 -qtlocation-opensource-src (5.9.5+dfsg-0ubuntu1) bionic; urgency=medium +qtlocation-opensource-src (5.11.0+dfsg-1) experimental; urgency=medium * New upstream release. + * Bump build dependencies to 5.11.0. + * Bump Standards-version to 4.1.4, no changes needed. + * Bump debhelper compat to 11, no changes needed. + * Update Vcs-* for the move to Salsa. + * Add my name to the copyright for the package. + * Add two new binary packages, libqt5positioningquick5 and qml-module- + qt-labs-location, for the new upstream release. Thanks to Bhushan + Shah from Neon for the patch! + * Update symbols from build logs. - -- Simon Quigley Sat, 14 Apr 2018 12:12:43 -0500 + -- Simon Quigley Fri, 15 Jun 2018 02:31:43 -0500 -qtlocation-opensource-src (5.9.4+dfsg-0ubuntu1) bionic; urgency=medium +qtlocation-opensource-src (5.10.1+dfsg-3) unstable; urgency=medium - * New upstream release. + * Release to unstable. + + -- Lisandro Damián Nicanor Pérez Meyer Sat, 07 Apr 2018 17:11:39 -0300 + +qtlocation-opensource-src (5.10.1+dfsg-2) experimental; urgency=medium + + * Move the QGeoPolygon headers to the correct -dev package. - -- Simon Quigley Sat, 24 Feb 2018 13:29:02 -0600 + -- Dmitry Shachnev Fri, 09 Mar 2018 00:03:12 +0300 -qtlocation-opensource-src (5.9.3+dfsg-0ubuntu1) bionic; urgency=medium +qtlocation-opensource-src (5.10.1+dfsg-1) experimental; urgency=medium + [ Lisandro Damián Nicanor Pérez Meyer ] * New upstream release. + - Bump Qt build dependencies. + * Fix debian/watch to check for the new upstream tarball name. + * Update qtlocation5-dev.install, new class QGeoPolygon. + * Update symbols files with current build log. + + [ Dmitry Shachnev ] + * Update debian/copyright. + * Add support for the nodoc build profile. + * Bump debhelper dependency to 10.9.2, for dh_auto_configure. + * Remove no longer needed code from debian/rules. + * Bump Standards-Version to 4.1.3, no changes needed. - -- Simon Quigley Sat, 09 Dec 2017 18:49:43 -0600 + -- Dmitry Shachnev Fri, 23 Feb 2018 22:53:54 +0300 qtlocation-opensource-src (5.9.2+dfsg-3) unstable; urgency=medium diff -Nru qtlocation-opensource-src-5.9.5+dfsg/debian/compat qtlocation-opensource-src-5.11.1+dfsg/debian/compat --- qtlocation-opensource-src-5.9.5+dfsg/debian/compat 2018-04-14 17:11:27.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/debian/compat 2018-07-25 12:53:55.000000000 +0000 @@ -1 +1 @@ -10 +11 diff -Nru qtlocation-opensource-src-5.9.5+dfsg/debian/control qtlocation-opensource-src-5.11.1+dfsg/debian/control --- qtlocation-opensource-src-5.9.5+dfsg/debian/control 2018-04-14 17:12:23.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/debian/control 2018-08-15 22:17:23.000000000 +0000 @@ -1,29 +1,27 @@ Source: qtlocation-opensource-src Section: libs Priority: optional -Maintainer: Ubuntu Developers -XSBC-Original-Maintainer: Debian Qt/KDE Maintainers +Maintainer: Debian Qt/KDE Maintainers Uploaders: Timo Jyrinki , Lisandro Damián Nicanor Pérez Meyer , Dmitry Shachnev , Simon Quigley -Build-Depends: debhelper (>= 10.3), +Build-Depends: debhelper (>= 11), libicu-dev, - libqt5opengl5-dev (>= 5.9.5+dfsg~), + libqt5opengl5-dev (>= 5.11.1+dfsg~), pkg-kde-tools, - qml-module-qttest (>= 5.9.5~), - qtbase5-private-dev (>= 5.9.5+dfsg~), - qtdeclarative5-private-dev (>= 5.9.5~), + qml-module-qttest (>= 5.11.1~), + qtbase5-private-dev (>= 5.11.1+dfsg~), + qtdeclarative5-private-dev (>= 5.11.1~), xauth, xvfb, zlib1g-dev -Build-Depends-Indep: libqt5sql5-sqlite (>= 5.9.5+dfsg~), - qtbase5-doc-html (>= 5.9.5+dfsg~), - qttools5-dev-tools (>= 5.9.5~) -Standards-Version: 4.1.1 +Build-Depends-Indep: qtbase5-doc-html (>= 5.11.1+dfsg~) , + qttools5-dev-tools (>= 5.11.1~) +Standards-Version: 4.2.0 Homepage: http://qt-project.org/ -Vcs-Git: https://anonscm.debian.org/git/pkg-kde/qt/qtlocation.git -Vcs-Browser: https://anonscm.debian.org/cgit/pkg-kde/qt/qtlocation.git +Vcs-Git: https://salsa.debian.org/qt-kde-team/qt/qtlocation.git +Vcs-Browser: https://salsa.debian.org/qt-kde-team/qt/qtlocation Package: libqt5location5 Architecture: any @@ -36,6 +34,19 @@ . This package contains Qt Location module. +Package: libqt5positioningquick5 +Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Depends: libqt5location5 (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends} +Description: Qt Positioning module - Qt Quick module + Qt is a cross-platform C++ application framework. Qt's primary feature + is its rich set of widgets that provide standard GUI functionality. + . + This package contain the Qt Quick interface for the Qt Positioning module. + Package: libqt5positioning5 Architecture: any Multi-Arch: same @@ -79,6 +90,7 @@ Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: libqt5location5-plugins (= ${binary:Version}), + libqt5positioningquick5 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends} Description: Qt Location QML module @@ -100,6 +112,19 @@ . This package contains the Qt Positioning QML plugin for Qt Declarative. +Package: qml-module-qt-labs-location +Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Depends: libqt5positioning5-plugins (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends} +Description: Qt Location Labs module + Qt is a cross-platform C++ application framework. Qt's primary feature + is its rich set of widgets that provide standard GUI functionality. + . + This package contains the Qt Positioning labs plugin for Qt Declarative. + Package: qtlocation5-dev Architecture: any Section: libdevel @@ -121,9 +146,12 @@ Section: libdevel Depends: libqt5positioning5 (= ${binary:Version}), libqt5positioning5-plugins (= ${binary:Version}), + libqt5positioningquick5 (= ${binary:Version}), qtbase5-dev, qtdeclarative5-dev, ${misc:Depends} +Breaks: qtlocation5-dev (<< 5.10.1+dfsg-2~) +Replaces: qtlocation5-dev (<< 5.10.1+dfsg-2~) Description: Qt 5 Positioning development files Qt is a cross-platform C++ application framework. Qt's primary feature is its rich set of widgets that provide standard GUI functionality. @@ -151,6 +179,7 @@ This package contains Qt 5 Location and Positioning examples. Package: qtlocation5-doc +Build-Profiles: Architecture: all Section: doc Depends: ${misc:Depends} @@ -164,6 +193,7 @@ library and binaries. Package: qtlocation5-doc-html +Build-Profiles: Architecture: all Section: doc Depends: ${misc:Depends} diff -Nru qtlocation-opensource-src-5.9.5+dfsg/debian/copyright qtlocation-opensource-src-5.11.1+dfsg/debian/copyright --- qtlocation-opensource-src-5.9.5+dfsg/debian/copyright 2018-04-14 17:11:38.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/debian/copyright 2018-07-25 12:53:55.000000000 +0000 @@ -1,5 +1,5 @@ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: qtlocation-opensource-src +Upstream-Name: qtlocation-everywhere-src Source: https://download.qt.io/official_releases/qt/*/submodules/ Files-Excluded: src/3rdparty/mapbox-gl-native @@ -16,7 +16,7 @@ Files: examples/* src/location/doc/snippets/* src/positioning/doc/snippets/* -Copyright: 2015-2017 The Qt Company Ltd. +Copyright: 2017 The Qt Company Ltd. License: BSD-3-clause Files: src/3rdparty/clip2tri/* @@ -41,7 +41,7 @@ Files: config.tests/* tests/* -Copyright: 2016 The Qt Company Ltd. +Copyright: 2016-2018 The Qt Company Ltd. License: GPL-3 with Qt-1.0 exception Files: tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.cpp @@ -53,11 +53,6 @@ Copyright: 2016 Aaron McCarthy License: GPL-3 with Qt-1.0 exception -Files: tests/auto/qgeotiledmap/tst_qgeotiledmap.cpp - tests/plugins/declarativetestplugin/testhelper.h -Copyright: 2016 The Qt Company Ltd. -License: LGPL-2.1-or-3 with Qt-1.1 exception - Files: *.qdoc Copyright: 2015-2017 The Qt Company Ltd. License: GFDL-NIV-1.3 @@ -81,49 +76,9 @@ 2012 Timo Jyrinki 2014 Lisandro Damián Nicanor Pérez Meyer 2014-2017 Dmitry Shachnev + 2018 Simon Quigley License: LGPL-3 or GPL-2 -License: LGPL-2.1-or-3 with Qt-1.1 exception - GNU Lesser General Public License: - 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. - . - In addition, as a special exception, The Qt Company gives you certain - additional rights. These rights are described in The Qt Company Qt LGPL - Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this - package. - . - On Debian systems, the complete text of the GNU Lesser General Public - License version 2.1 can be found in `/usr/share/common-licenses/LGPL-2.1`. - The complete text of the GNU Lesser General Public License version 3 can be - found in `/usr/share/common-licenses/LGPL-3`. - . - The Qt Company LGPL Exception version 1.1: - As an additional permission to the GNU Lesser General Public License version - 2.1, the object code form of a "work that uses the Library" may incorporate - material from a header file that is part of the Library. You may distribute - such object code under terms of your choice, provided that: - (i) the header files of the Library have not been modified; and - (ii) the incorporated material is limited to numerical parameters, data - structure layouts, accessors, macros, inline functions and - templates; and - (iii) you comply with the terms of Section 6 of the GNU Lesser General - Public License version 2.1. - . - Moreover, you may apply this exception to a modified version of the Library, - provided that such modification does not involve copying material from the - Library into the modified Library's header files unless such material is - limited to (i) numerical parameters; (ii) data structure layouts; - (iii) accessors; and (iv) small macros, templates and inline functions of - five lines or less in length. - . - Furthermore, you are not required to apply this additional permission to a - modified version of the Library. - License: LGPL-3 This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 3 diff -Nru qtlocation-opensource-src-5.9.5+dfsg/debian/libqt5location5.symbols qtlocation-opensource-src-5.11.1+dfsg/debian/libqt5location5.symbols --- qtlocation-opensource-src-5.9.5+dfsg/debian/libqt5location5.symbols 2018-04-14 17:40:44.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/debian/libqt5location5.symbols 2018-08-15 22:10:51.000000000 +0000 @@ -1,6 +1,8 @@ -# SymbolsHelper-Confirmed: 5.9.5 amd64 arm64 armhf i386 ppc64el s390x +# SymbolsHelper-Confirmed: 5.11.1 amd64 arm64 armel armhf hppa hurd-i386 i386 m68k mips mips64el mipsel powerpc powerpcspe ppc64 ppc64el s390x sh4 sparc64 libQt5Location.so.5 libqt5location5 #MINVER# Qt_5.0@Qt_5.0 5.6.0 + Qt_5.10@Qt_5.10 5.10.1 + Qt_5.11@Qt_5.11 5.11.0 Qt_5.1@Qt_5.1 5.6.0 Qt_5.2@Qt_5.2 5.6.0 Qt_5.3@Qt_5.3 5.6.0 @@ -12,7 +14,14 @@ Qt_5.9@Qt_5.9 5.9.0 Qt_5@Qt_5 5.6.0 Qt_5_PRIVATE_API@Qt_5_PRIVATE_API 5.6.0 + _Z11parseCircleRK8QJSValuePb@Qt_5 5.11.0 + _Z14parseRectangleRK8QJSValuePb@Qt_5 5.11.0 + _Z15parseCoordinateRK8QJSValuePb@Qt_5 5.11.0 + _Z15parseCoordinateRK8QVariantPb@Qt_5 5.11.0 _Z5qHashRK12QGeoTileSpec@Qt_5_PRIVATE_API 5.6.0 + _Z6toListPK7QObjectRK8QJSValue@Qt_5 5.11.0 + _Z8fromListPK7QObjectRK5QListI14QGeoCoordinateE@Qt_5 5.11.0 + _ZGVZN9QMetaType17registerConverterIP23QDeclarativeGeoWaypoint14QGeoCoordinatePFS3_PKS1_EEEbT1_E1f@Qt_5_PRIVATE_API 5.11.0 _ZN10QPlaceIcon10setManagerEP13QPlaceManager@Qt_5 5.6.0 _ZN10QPlaceIcon13setParametersERK4QMapI7QString8QVariantE@Qt_5 5.6.0 _ZN10QPlaceIcon9SingleUrlE@Qt_5 5.6.0 @@ -32,10 +41,10 @@ _ZN10QPlaceUserD1Ev@Qt_5 5.6.0 _ZN10QPlaceUserD2Ev@Qt_5 5.6.0 _ZN10QPlaceUseraSERKS_@Qt_5 5.6.0 - _ZN11QGeoMapTypeC1ENS_8MapStyleERK7QStringS3_bbi10QByteArray@Qt_5_PRIVATE_API 5.9.0 + _ZN11QGeoMapTypeC1ENS_8MapStyleERK7QStringS3_bbiRK10QByteArrayRK22QGeoCameraCapabilitiesRK4QMapIS1_8QVariantE@Qt_5_PRIVATE_API 5.10.1 _ZN11QGeoMapTypeC1ERKS_@Qt_5_PRIVATE_API 5.6.0 _ZN11QGeoMapTypeC1Ev@Qt_5_PRIVATE_API 5.6.0 - _ZN11QGeoMapTypeC2ENS_8MapStyleERK7QStringS3_bbi10QByteArray@Qt_5_PRIVATE_API 5.9.0 + _ZN11QGeoMapTypeC2ENS_8MapStyleERK7QStringS3_bbiRK10QByteArrayRK22QGeoCameraCapabilitiesRK4QMapIS1_8QVariantE@Qt_5_PRIVATE_API 5.10.1 _ZN11QGeoMapTypeC2ERKS_@Qt_5_PRIVATE_API 5.6.0 _ZN11QGeoMapTypeC2Ev@Qt_5_PRIVATE_API 5.6.0 _ZN11QGeoMapTypeD1Ev@Qt_5_PRIVATE_API 5.6.0 @@ -67,14 +76,24 @@ _ZN11QPlaceReplyD0Ev@Qt_5 5.6.0 _ZN11QPlaceReplyD1Ev@Qt_5 5.6.0 _ZN11QPlaceReplyD2Ev@Qt_5 5.6.0 + _ZN11VisibleNode10setVisibleEb@Qt_5_PRIVATE_API 5.11.0 + _ZN11VisibleNode17setSubtreeBlockedEb@Qt_5_PRIVATE_API 5.11.0 + _ZN11VisibleNodeC1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN11VisibleNodeC2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN11VisibleNodeD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN11VisibleNodeD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN11VisibleNodeD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN12QGeoManeuver11setPositionERK14QGeoCoordinate@Qt_5 5.6.0 _ZN12QGeoManeuver11setWaypointERK14QGeoCoordinate@Qt_5 5.6.0 _ZN12QGeoManeuver12setDirectionENS_20InstructionDirectionE@Qt_5 5.6.0 _ZN12QGeoManeuver18setInstructionTextERK7QString@Qt_5 5.6.0 + _ZN12QGeoManeuver21setExtendedAttributesERK4QMapI7QString8QVariantE@Qt_5 5.11.0 _ZN12QGeoManeuver24setTimeToNextInstructionEi@Qt_5 5.6.0 _ZN12QGeoManeuver28setDistanceToNextInstructionEd@Qt_5 5.6.0 + _ZN12QGeoManeuverC1ERK18QSharedDataPointerI19QGeoManeuverPrivateE@Qt_5_PRIVATE_API 5.11.0 _ZN12QGeoManeuverC1ERKS_@Qt_5 5.6.0 _ZN12QGeoManeuverC1Ev@Qt_5 5.6.0 + _ZN12QGeoManeuverC2ERK18QSharedDataPointerI19QGeoManeuverPrivateE@Qt_5_PRIVATE_API 5.11.0 _ZN12QGeoManeuverC2ERKS_@Qt_5 5.6.0 _ZN12QGeoManeuverC2Ev@Qt_5 5.6.0 _ZN12QGeoManeuverD1Ev@Qt_5 5.6.0 @@ -104,7 +123,7 @@ _ZN12QGeoTiledMap16staticMetaObjectE@Qt_5_PRIVATE_API 5.6.0 _ZN12QGeoTiledMap16updateSceneGraphEP7QSGNodeP12QQuickWindow@Qt_5_PRIVATE_API 5.6.0 _ZN12QGeoTiledMap18evaluateCopyrightsERK4QSetI12QGeoTileSpecE@Qt_5_PRIVATE_API 5.6.0 - _ZN12QGeoTiledMap19setCopyrightVisibleEb@Qt_5_PRIVATE_API 5.9.5 + _ZN12QGeoTiledMap19setCopyrightVisibleEb@Qt_5_PRIVATE_API 5.10.1 _ZN12QGeoTiledMap24handleTileVersionChangedEv@Qt_5_PRIVATE_API 5.6.0 _ZN12QGeoTiledMap9clearDataEv@Qt_5_PRIVATE_API 5.6.0 _ZN12QGeoTiledMap9tileCacheEv@Qt_5_PRIVATE_API 5.6.0 @@ -159,6 +178,25 @@ _ZN13QGeoCodeReplyD0Ev@Qt_5 5.6.0 _ZN13QGeoCodeReplyD1Ev@Qt_5 5.6.0 _ZN13QGeoCodeReplyD2Ev@Qt_5 5.6.0 + _ZN13QGeoMapObject10classBeginEv@Qt_5_PRIVATE_API 5.11.0 + _ZN13QGeoMapObject10setVisibleEb@Qt_5_PRIVATE_API 5.11.0 + _ZN13QGeoMapObject11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.11.0 + _ZN13QGeoMapObject11qt_metacastEPKc@Qt_5_PRIVATE_API 5.11.0 + _ZN13QGeoMapObject14visibleChangedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN13QGeoMapObject16staticMetaObjectE@Qt_5_PRIVATE_API 5.11.0 + _ZN13QGeoMapObject17completeComponentEv@Qt_5_PRIVATE_API 5.11.0 + _ZN13QGeoMapObject17componentCompleteEv@Qt_5_PRIVATE_API 5.11.0 + _ZN13QGeoMapObject17setImplementationERK28QExplicitlySharedDataPointerI20QGeoMapObjectPrivateE@Qt_5_PRIVATE_API 5.11.0 + _ZN13QGeoMapObject18setParentVisiblityEb@Qt_5_PRIVATE_API 5.11.0 + _ZN13QGeoMapObject21setChildrenVisibilityEv@Qt_5_PRIVATE_API 5.11.0 + _ZN13QGeoMapObject6setMapEP7QGeoMap@Qt_5_PRIVATE_API 5.11.0 + _ZN13QGeoMapObject8selectedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN13QGeoMapObject9completedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN13QGeoMapObjectC1ERK28QExplicitlySharedDataPointerI20QGeoMapObjectPrivateEP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN13QGeoMapObjectC2ERK28QExplicitlySharedDataPointerI20QGeoMapObjectPrivateEP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN13QGeoMapObjectD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN13QGeoMapObjectD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN13QGeoMapObjectD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN13QPlaceContent11setSupplierERK14QPlaceSupplier@Qt_5 5.6.0 _ZN13QPlaceContent14setAttributionERK7QString@Qt_5 5.6.0 _ZN13QPlaceContent7setUserERK10QPlaceUser@Qt_5 5.6.0 @@ -206,6 +244,13 @@ _ZN13QPlaceManagerD0Ev@Qt_5 5.6.0 _ZN13QPlaceManagerD1Ev@Qt_5 5.6.0 _ZN13QPlaceManagerD2Ev@Qt_5 5.6.0 + _ZN13QPlacePrivateC1ERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZN13QPlacePrivateC1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN13QPlacePrivateC2ERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZN13QPlacePrivateC2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN13QPlacePrivateD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN13QPlacePrivateD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN13QPlacePrivateD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN13QPlaceRatings10setAverageEd@Qt_5 5.6.0 _ZN13QPlaceRatings10setMaximumEd@Qt_5 5.6.0 _ZN13QPlaceRatings8setCountEi@Qt_5 5.6.0 @@ -216,6 +261,19 @@ _ZN13QPlaceRatingsD1Ev@Qt_5 5.6.0 _ZN13QPlaceRatingsD2Ev@Qt_5 5.6.0 _ZN13QPlaceRatingsaSERKS_@Qt_5 5.6.0 + _ZN13QQSGMapObject14updateGeometryEv@Qt_5_PRIVATE_API 5.11.0 + _ZN13QQSGMapObject19updateMapObjectNodeEP7QSGNodePP11VisibleNodeS1_P12QQuickWindow@Qt_5_PRIVATE_API 5.11.0 + _ZN13QQSGMapObjectC1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN13QQSGMapObjectC2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN13QQSGMapObjectD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN13QQSGMapObjectD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN13QQSGMapObjectD2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN14MapPolygonNode6updateERK6QColorS2_PK19QGeoMapItemGeometryS5_@Qt_5_PRIVATE_API 5.11.0 + _ZN14MapPolygonNodeC1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN14MapPolygonNodeC2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN14MapPolygonNodeD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN14MapPolygonNodeD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN14MapPolygonNodeD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN14QGeoCameraData10setBearingEd@Qt_5_PRIVATE_API 5.6.0 _ZN14QGeoCameraData12setZoomLevelEd@Qt_5_PRIVATE_API 5.6.0 _ZN14QGeoCameraData14setFieldOfViewEd@Qt_5_PRIVATE_API 5.9.0 @@ -233,13 +291,16 @@ _ZN14QGeoMapPrivate12addParameterEP16QGeoMapParameter@Qt_5_PRIVATE_API 5.9.0 _ZN14QGeoMapPrivate13removeMapItemEP26QDeclarativeGeoMapItemBase@Qt_5_PRIVATE_API 5.9.0 _ZN14QGeoMapPrivate15removeParameterEP16QGeoMapParameter@Qt_5_PRIVATE_API 5.9.0 - _ZN14QGeoMapPrivate19setCopyrightVisibleEb@Qt_5_PRIVATE_API 5.9.5 + _ZN14QGeoMapPrivate19setCopyrightVisibleEb@Qt_5_PRIVATE_API 5.10.1 _ZN14QGeoMapPrivate21setCameraCapabilitiesERK22QGeoCameraCapabilities@Qt_5_PRIVATE_API 5.9.0 + _ZN14QGeoMapPrivate29createMapObjectImplementationEP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN14QGeoMapPrivate3getERK7QGeoMap@Qt_5_PRIVATE_API 5.11.0 _ZN14QGeoMapPrivateC1EP24QGeoMappingManagerEngineP14QGeoProjection@Qt_5_PRIVATE_API 5.9.0 _ZN14QGeoMapPrivateC2EP24QGeoMappingManagerEngineP14QGeoProjection@Qt_5_PRIVATE_API 5.9.0 _ZN14QGeoMapPrivateD0Ev@Qt_5_PRIVATE_API 5.9.0 _ZN14QGeoMapPrivateD1Ev@Qt_5_PRIVATE_API 5.9.0 _ZN14QGeoMapPrivateD2Ev@Qt_5_PRIVATE_API 5.9.0 + _ZN14QGeoProjection10setBearingEdRK14QGeoCoordinate@Qt_5_PRIVATE_API 5.11.0 _ZN14QGeoProjectionC1Ev@Qt_5_PRIVATE_API 5.9.0 _ZN14QGeoProjectionC2Ev@Qt_5_PRIVATE_API 5.9.0 _ZN14QGeoProjectionD0Ev@Qt_5_PRIVATE_API 5.9.0 @@ -263,6 +324,46 @@ _ZN14QGeoRouteReplyD0Ev@Qt_5 5.6.0 _ZN14QGeoRouteReplyD1Ev@Qt_5 5.6.0 _ZN14QGeoRouteReplyD2Ev@Qt_5 5.6.0 + _ZN14QMapIconObject10setContentE8QVariant@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapIconObject11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapIconObject11qt_metacastEPKc@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapIconObject11sizeChangedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapIconObject13setCoordinateERK14QGeoCoordinate@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapIconObject14contentChangedE8QVariant@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapIconObject16staticMetaObjectE@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapIconObject17coordinateChangedE14QGeoCoordinate@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapIconObject6setMapEP7QGeoMap@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapIconObject7setSizeERK6QSizeF@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapIconObjectC1EP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapIconObjectC2EP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapIconObjectD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapIconObjectD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapIconObjectD2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapObjectView10classBeginEv@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapObjectView11createdItemEiP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapObjectView11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapObjectView11qt_metacastEPKc@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapObjectView11setDelegateEP13QQmlComponent@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapObjectView12addMapObjectEP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapObjectView12modelChangedE8QVariant@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapObjectView12modelUpdatedERK13QQmlChangeSetb@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapObjectView14destroyingItemEP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapObjectView15delegateChangedEP13QQmlComponent@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapObjectView15removeMapObjectEP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapObjectView16staticMetaObjectE@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapObjectView17addMapObjectToMapEP13QGeoMapObjecti@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapObjectView17componentCompleteEv@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapObjectView18flushDelegateModelEv@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapObjectView22removeMapObjectFromMapEi@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapObjectView24flushUserAddedMapObjectsEv@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapObjectView6setMapEP7QGeoMap@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapObjectView8initItemEiP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapObjectView8setModelE8QVariant@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapObjectViewC1EP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapObjectViewC2EP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapObjectViewD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapObjectViewD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN14QMapObjectViewD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN14QPlaceCategory13setCategoryIdERK7QString@Qt_5 5.6.0 _ZN14QPlaceCategory13setVisibilityEN9QLocation10VisibilityE@Qt_5 5.6.0 _ZN14QPlaceCategory7setIconERK10QPlaceIcon@Qt_5 5.6.0 @@ -286,6 +387,12 @@ _ZN14QPlaceSupplierD1Ev@Qt_5 5.6.0 _ZN14QPlaceSupplierD2Ev@Qt_5 5.6.0 _ZN14QPlaceSupplieraSERKS_@Qt_5 5.6.0 + _ZN15MapPolylineNode6updateERK6QColorPK19QGeoMapItemGeometry@Qt_5_PRIVATE_API 5.11.0 + _ZN15MapPolylineNodeC1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN15MapPolylineNodeC2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN15MapPolylineNodeD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN15MapPolylineNodeD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN15MapPolylineNodeD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN15QGeoCameraTiles10setMapTypeERK11QGeoMapType@Qt_5_PRIVATE_API 5.6.0 _ZN15QGeoCameraTiles11createTilesEv@Qt_5_PRIVATE_API 5.7.0 _ZN15QGeoCameraTiles11setTileSizeEi@Qt_5_PRIVATE_API 5.6.0 @@ -328,6 +435,17 @@ _ZN15QGeoTileTextureC2Ev@Qt_5_PRIVATE_API 5.6.0 _ZN15QGeoTileTextureD1Ev@Qt_5_PRIVATE_API 5.6.0 _ZN15QGeoTileTextureD2Ev@Qt_5_PRIVATE_API 5.6.0 + _ZN15QMapRouteObject11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.11.0 + _ZN15QMapRouteObject11qt_metacastEPKc@Qt_5_PRIVATE_API 5.11.0 + _ZN15QMapRouteObject12routeChangedEP20QDeclarativeGeoRoute@Qt_5_PRIVATE_API 5.11.0 + _ZN15QMapRouteObject16staticMetaObjectE@Qt_5_PRIVATE_API 5.11.0 + _ZN15QMapRouteObject6setMapEP7QGeoMap@Qt_5_PRIVATE_API 5.11.0 + _ZN15QMapRouteObject8setRouteEP20QDeclarativeGeoRoute@Qt_5_PRIVATE_API 5.11.0 + _ZN15QMapRouteObjectC1EP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN15QMapRouteObjectC2EP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN15QMapRouteObjectD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN15QMapRouteObjectD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN15QMapRouteObjectD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN15QPlaceAttribute12OpeningHoursE@Qt_5 5.6.0 _ZN15QPlaceAttribute7PaymentE@Qt_5 5.6.0 _ZN15QPlaceAttribute7setTextERK7QString@Qt_5 5.6.0 @@ -358,17 +476,37 @@ _ZN16QGeoMapParameter16staticMetaObjectE@Qt_5_PRIVATE_API 5.9.0 _ZN16QGeoMapParameter7setTypeERK7QString@Qt_5_PRIVATE_API 5.9.0 _ZN16QGeoMapParameterC1EP7QObject@Qt_5_PRIVATE_API 5.9.0 + _ZN16QGeoMapParameterC1ERK5QListI5QPairI13QLatin1String8QVariantEEP7QObject@Qt_5_PRIVATE_API 5.11.0 _ZN16QGeoMapParameterC2EP7QObject@Qt_5_PRIVATE_API 5.9.0 + _ZN16QGeoMapParameterC2ERK5QListI5QPairI13QLatin1String8QVariantEEP7QObject@Qt_5_PRIVATE_API 5.11.0 _ZN16QGeoMapParameterD0Ev@Qt_5_PRIVATE_API 5.9.0 _ZN16QGeoMapParameterD1Ev@Qt_5_PRIVATE_API 5.9.0 _ZN16QGeoMapParameterD2Ev@Qt_5_PRIVATE_API 5.9.0 + _ZN16QGeoRoutePrivate10setRequestERK16QGeoRouteRequest@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoRoutePrivate11setDistanceEd@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoRoutePrivate13setTravelModeEN16QGeoRouteRequest10TravelModeE@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoRoutePrivate13setTravelTimeEi@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoRoutePrivate15setFirstSegmentERK16QGeoRouteSegment@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoRoutePrivate16routePrivateDataERK9QGeoRoute@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoRoutePrivate5setIdERK7QString@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoRoutePrivate7setPathERK5QListI14QGeoCoordinateE@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoRoutePrivate9setBoundsERK13QGeoRectangle@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoRoutePrivateC1ERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoRoutePrivateC1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoRoutePrivateC2ERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoRoutePrivateC2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoRoutePrivateD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoRoutePrivateD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoRoutePrivateD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN16QGeoRouteRequest12setWaypointsERK5QListI14QGeoCoordinateE@Qt_5 5.6.0 _ZN16QGeoRouteRequest14setTravelModesE6QFlagsINS_10TravelModeEE@Qt_5 5.6.0 _ZN16QGeoRouteRequest15setExcludeAreasERK5QListI13QGeoRectangleE@Qt_5 5.6.0 _ZN16QGeoRouteRequest16setFeatureWeightENS_11FeatureTypeENS_13FeatureWeightE@Qt_5 5.6.0 _ZN16QGeoRouteRequest16setSegmentDetailENS_13SegmentDetailE@Qt_5 5.6.0 _ZN16QGeoRouteRequest17setManeuverDetailENS_14ManeuverDetailE@Qt_5 5.6.0 + _ZN16QGeoRouteRequest18setExtraParametersERK4QMapI7QString8QVariantE@Qt_5 5.11.0 _ZN16QGeoRouteRequest20setRouteOptimizationE6QFlagsINS_17RouteOptimizationEE@Qt_5 5.6.0 + _ZN16QGeoRouteRequest20setWaypointsMetadataERK5QListI4QMapI7QString8QVariantEE@Qt_5 5.11.0 _ZN16QGeoRouteRequest26setNumberAlternativeRoutesEi@Qt_5 5.6.0 _ZN16QGeoRouteRequestC1ERK14QGeoCoordinateS2_@Qt_5 5.6.0 _ZN16QGeoRouteRequestC1ERK5QListI14QGeoCoordinateE@Qt_5 5.6.0 @@ -383,16 +521,46 @@ _ZN16QGeoRouteSegment11setManeuverERK12QGeoManeuver@Qt_5 5.6.0 _ZN16QGeoRouteSegment13setTravelTimeEi@Qt_5 5.6.0 _ZN16QGeoRouteSegment19setNextRouteSegmentERKS_@Qt_5 5.6.0 + _ZN16QGeoRouteSegment1dEv@Qt_5 5.11.0 _ZN16QGeoRouteSegment7setPathERK5QListI14QGeoCoordinateE@Qt_5 5.6.0 - _ZN16QGeoRouteSegmentC1ER28QExplicitlySharedDataPointerI23QGeoRouteSegmentPrivateE@Qt_5 5.6.0 + _ZN16QGeoRouteSegmentC1ERK28QExplicitlySharedDataPointerI23QGeoRouteSegmentPrivateE@Qt_5_PRIVATE_API 5.11.0 _ZN16QGeoRouteSegmentC1ERKS_@Qt_5 5.6.0 _ZN16QGeoRouteSegmentC1Ev@Qt_5 5.6.0 - _ZN16QGeoRouteSegmentC2ER28QExplicitlySharedDataPointerI23QGeoRouteSegmentPrivateE@Qt_5 5.6.0 + _ZN16QGeoRouteSegmentC2ERK28QExplicitlySharedDataPointerI23QGeoRouteSegmentPrivateE@Qt_5_PRIVATE_API 5.11.0 _ZN16QGeoRouteSegmentC2ERKS_@Qt_5 5.6.0 _ZN16QGeoRouteSegmentC2Ev@Qt_5 5.6.0 _ZN16QGeoRouteSegmentD1Ev@Qt_5 5.6.0 _ZN16QGeoRouteSegmentD2Ev@Qt_5 5.6.0 _ZN16QGeoRouteSegmentaSERKS_@Qt_5 5.6.0 + _ZN16QGeoTiledMapLabs11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoTiledMapLabs11qt_metacastEPKc@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoTiledMapLabs15removeMapObjectEP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoTiledMapLabs16staticMetaObjectE@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoTiledMapLabs16updateSceneGraphEP7QSGNodeP12QQuickWindow@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoTiledMapLabs29createMapObjectImplementationEP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoTiledMapLabsC1EP29QGeoTiledMappingManagerEngineP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoTiledMapLabsC1ER23QGeoTiledMapLabsPrivateP29QGeoTiledMappingManagerEngineP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoTiledMapLabsC2EP29QGeoTiledMappingManagerEngineP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoTiledMapLabsC2ER23QGeoTiledMapLabsPrivateP29QGeoTiledMappingManagerEngineP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoTiledMapLabsD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoTiledMapLabsD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN16QGeoTiledMapLabsD2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN16QMapCircleObject11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.11.0 + _ZN16QMapCircleObject11qt_metacastEPKc@Qt_5_PRIVATE_API 5.11.0 + _ZN16QMapCircleObject12colorChangedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN16QMapCircleObject13centerChangedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN16QMapCircleObject13radiusChangedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN16QMapCircleObject16staticMetaObjectE@Qt_5_PRIVATE_API 5.11.0 + _ZN16QMapCircleObject6borderEv@Qt_5_PRIVATE_API 5.11.0 + _ZN16QMapCircleObject6setMapEP7QGeoMap@Qt_5_PRIVATE_API 5.11.0 + _ZN16QMapCircleObject8setColorERK6QColor@Qt_5_PRIVATE_API 5.11.0 + _ZN16QMapCircleObject9setCenterERK14QGeoCoordinate@Qt_5_PRIVATE_API 5.11.0 + _ZN16QMapCircleObject9setRadiusEd@Qt_5_PRIVATE_API 5.11.0 + _ZN16QMapCircleObjectC1EP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN16QMapCircleObjectC2EP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN16QMapCircleObjectD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN16QMapCircleObjectD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN16QMapCircleObjectD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN16QPlaceMatchReply10setRequestERK18QPlaceMatchRequest@Qt_5 5.6.0 _ZN16QPlaceMatchReply11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5 5.6.0 _ZN16QPlaceMatchReply11qt_metacastEPKc@Qt_5 5.6.0 @@ -450,9 +618,9 @@ _ZN17QDeclarativePlace21primaryWebsiteChangedEv@Qt_5_PRIVATE_API 5.9.0 _ZN17QDeclarativePlace21synchronizeCategoriesEv@Qt_5_PRIVATE_API 5.9.0 _ZN17QDeclarativePlace22primarySignalsEmissionERK7QString@Qt_5_PRIVATE_API 5.9.0 + _ZN17QDeclarativePlace22pullExtendedAttributesEv@Qt_5_PRIVATE_API 5.11.0 _ZN17QDeclarativePlace24cleanupDeletedCategoriesEv@Qt_5_PRIVATE_API 5.9.0 _ZN17QDeclarativePlace25extendedAttributesChangedEv@Qt_5_PRIVATE_API 5.9.0 - _ZN17QDeclarativePlace29synchronizeExtendedAttributesEv@Qt_5_PRIVATE_API 5.9.0 _ZN17QDeclarativePlace4saveEv@Qt_5_PRIVATE_API 5.9.0 _ZN17QDeclarativePlace5placeEv@Qt_5_PRIVATE_API 5.9.0 _ZN17QDeclarativePlace6removeEv@Qt_5_PRIVATE_API 5.9.0 @@ -559,6 +727,20 @@ _ZN17QGeoTiledMapSceneD0Ev@Qt_5_PRIVATE_API 5.7.0 _ZN17QGeoTiledMapSceneD1Ev@Qt_5_PRIVATE_API 5.7.0 _ZN17QGeoTiledMapSceneD2Ev@Qt_5_PRIVATE_API 5.7.0 + _ZN17QMapPolygonObject11pathChangedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN17QMapPolygonObject11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.11.0 + _ZN17QMapPolygonObject11qt_metacastEPKc@Qt_5_PRIVATE_API 5.11.0 + _ZN17QMapPolygonObject12colorChangedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN17QMapPolygonObject16staticMetaObjectE@Qt_5_PRIVATE_API 5.11.0 + _ZN17QMapPolygonObject6borderEv@Qt_5_PRIVATE_API 5.11.0 + _ZN17QMapPolygonObject6setMapEP7QGeoMap@Qt_5_PRIVATE_API 5.11.0 + _ZN17QMapPolygonObject7setPathERK5QListI8QVariantE@Qt_5_PRIVATE_API 5.11.0 + _ZN17QMapPolygonObject8setColorERK6QColor@Qt_5_PRIVATE_API 5.11.0 + _ZN17QMapPolygonObjectC1EP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN17QMapPolygonObjectC2EP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN17QMapPolygonObjectD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN17QMapPolygonObjectD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN17QMapPolygonObjectD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN17QPlaceSearchReply10setRequestERK19QPlaceSearchRequest@Qt_5 5.6.0 _ZN17QPlaceSearchReply10setResultsERK5QListI18QPlaceSearchResultE@Qt_5 5.6.0 _ZN17QPlaceSearchReply11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5 5.6.0 @@ -573,8 +755,10 @@ _ZN17QPlaceSearchReplyD2Ev@Qt_5 5.6.0 _ZN18QDeclarativeGeoMap10addMapItemEP26QDeclarativeGeoMapItemBase@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap10initializeEv@Qt_5_PRIVATE_API 5.9.0 - _ZN18QDeclarativeGeoMap10itemChangeEN10QQuickItem10ItemChangeERKNS0_14ItemChangeDataE@Qt_5_PRIVATE_API 5.9.5 + _ZN18QDeclarativeGeoMap10itemChangeEN10QQuickItem10ItemChangeERKNS0_14ItemChangeDataE@Qt_5_PRIVATE_API 5.10.1 + _ZN18QDeclarativeGeoMap10mapObjectsEv@Qt_5_PRIVATE_API 5.11.0 _ZN18QDeclarativeGeoMap10setBearingEd@Qt_5_PRIVATE_API 5.9.0 + _ZN18QDeclarativeGeoMap10setBearingEdRK14QGeoCoordinate@Qt_5_PRIVATE_API 5.10.1 _ZN18QDeclarativeGeoMap10touchEventEP11QTouchEvent@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap10wheelEventEP11QWheelEvent@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap11pluginReadyEv@Qt_5_PRIVATE_API 5.9.0 @@ -582,6 +766,7 @@ _ZN18QDeclarativeGeoMap11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap11qt_metacastEPKc@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap11tiltChangedEd@Qt_5_PRIVATE_API 5.9.0 + _ZN18QDeclarativeGeoMap12addMapObjectEP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 _ZN18QDeclarativeGeoMap12colorChangedERK6QColor@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap12errorChangedEv@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap12prefetchDataEv@Qt_5_PRIVATE_API 5.9.0 @@ -594,6 +779,7 @@ _ZN18QDeclarativeGeoMap13mapParametersEv@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap13pluginChangedEP30QDeclarativeGeoServiceProvider@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap13removeMapItemEP26QDeclarativeGeoMapItemBase@Qt_5_PRIVATE_API 5.9.0 + _ZN18QDeclarativeGeoMap14addMapItemViewEP26QDeclarativeGeoMapItemView@Qt_5_PRIVATE_API 5.10.1 _ZN18QDeclarativeGeoMap14bearingChangedEd@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap14mouseMoveEventEP11QMouseEvent@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap14sendMouseEventEP11QMouseEvent@Qt_5_PRIVATE_API 5.9.0 @@ -603,10 +789,12 @@ _ZN18QDeclarativeGeoMap14setMinimumTiltEdb@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap15addMapItemGroupEP27QDeclarativeGeoMapItemGroup@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap15addMapParameterEP27QDeclarativeGeoMapParameter@Qt_5_PRIVATE_API 5.9.0 + _ZN18QDeclarativeGeoMap15clearMapObjectsEv@Qt_5_PRIVATE_API 5.11.0 _ZN18QDeclarativeGeoMap15geometryChangedERK6QRectFS2_@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap15mapItemsChangedEv@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap15mapReadyChangedEb@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap15mousePressEventEP11QMouseEvent@Qt_5_PRIVATE_API 5.9.0 + _ZN18QDeclarativeGeoMap15removeMapObjectEP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 _ZN18QDeclarativeGeoMap15updatePaintNodeEP7QSGNodePN10QQuickItem19UpdatePaintNodeDataE@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap16mouseUngrabEventEv@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap16setActiveMapTypeEP22QDeclarativeGeoMapType@Qt_5_PRIVATE_API 5.9.0 @@ -617,7 +805,9 @@ _ZN18QDeclarativeGeoMap17componentCompleteEv@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap17copyrightsChangedERK6QImage@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap17copyrightsChangedERK7QString@Qt_5_PRIVATE_API 5.9.0 + _ZN18QDeclarativeGeoMap17mapObjectsChangedEv@Qt_5_PRIVATE_API 5.11.0 _ZN18QDeclarativeGeoMap17mouseReleaseEventEP11QMouseEvent@Qt_5_PRIVATE_API 5.9.0 + _ZN18QDeclarativeGeoMap17removeMapItemViewEP26QDeclarativeGeoMapItemView@Qt_5_PRIVATE_API 5.10.1 _ZN18QDeclarativeGeoMap17supportedMapTypesEv@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap18clearMapParametersEv@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap18fieldOfViewChangedEd@Qt_5_PRIVATE_API 5.9.0 @@ -630,13 +820,14 @@ _ZN18QDeclarativeGeoMap19setMinimumZoomLevelEdb@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap20activeMapTypeChangedEv@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap20setCopyrightsVisibleEb@Qt_5_PRIVATE_API 5.9.0 - _ZN18QDeclarativeGeoMap21attachCopyrightNoticeEb@Qt_5_PRIVATE_API 5.9.5 + _ZN18QDeclarativeGeoMap21attachCopyrightNoticeEb@Qt_5_PRIVATE_API 5.10.1 _ZN18QDeclarativeGeoMap21childMouseEventFilterEP10QQuickItemP6QEvent@Qt_5_PRIVATE_API 5.9.0 - _ZN18QDeclarativeGeoMap21detachCopyrightNoticeEb@Qt_5_PRIVATE_API 5.9.5 + _ZN18QDeclarativeGeoMap21detachCopyrightNoticeEb@Qt_5_PRIVATE_API 5.10.1 _ZN18QDeclarativeGeoMap21fitViewportToGeoShapeEv@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap21fitViewportToMapItemsEv@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap21setMaximumFieldOfViewEdb@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap21setMinimumFieldOfViewEdb@Qt_5_PRIVATE_API 5.9.0 + _ZN18QDeclarativeGeoMap22alignCoordinateToPointERK14QGeoCoordinateRK7QPointF@Qt_5_PRIVATE_API 5.10.1 _ZN18QDeclarativeGeoMap22copyrightLinkActivatedERK7QString@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap23maximumZoomLevelChangedEv@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap23minimumZoomLevelChangedEv@Qt_5_PRIVATE_API 5.9.0 @@ -650,7 +841,7 @@ _ZN18QDeclarativeGeoMap27onCameraCapabilitiesChangedERK22QGeoCameraCapabilities@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap28fitViewportToVisibleMapItemsEv@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap3panEii@Qt_5_PRIVATE_API 5.9.0 - _ZN18QDeclarativeGeoMap42onAttachedCopyrightNoticeVisibilityChangedEv@Qt_5_PRIVATE_API 5.9.5 + _ZN18QDeclarativeGeoMap42onAttachedCopyrightNoticeVisibilityChangedEv@Qt_5_PRIVATE_API 5.10.1 _ZN18QDeclarativeGeoMap7gestureEv@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap7setTiltEd@Qt_5_PRIVATE_API 5.9.0 _ZN18QDeclarativeGeoMap8mapItemsEv@Qt_5_PRIVATE_API 5.9.0 @@ -690,6 +881,38 @@ _ZN18QGeoRoutingManagerD0Ev@Qt_5 5.6.0 _ZN18QGeoRoutingManagerD1Ev@Qt_5 5.6.0 _ZN18QGeoRoutingManagerD2Ev@Qt_5 5.6.0 + _ZN18QMapPolylineObject11pathChangedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN18QMapPolylineObject11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.11.0 + _ZN18QMapPolylineObject11qt_metacastEPKc@Qt_5_PRIVATE_API 5.11.0 + _ZN18QMapPolylineObject16staticMetaObjectE@Qt_5_PRIVATE_API 5.11.0 + _ZN18QMapPolylineObject6borderEv@Qt_5_PRIVATE_API 5.11.0 + _ZN18QMapPolylineObject6setMapEP7QGeoMap@Qt_5_PRIVATE_API 5.11.0 + _ZN18QMapPolylineObject7setPathERK5QListI8QVariantE@Qt_5_PRIVATE_API 5.11.0 + _ZN18QMapPolylineObjectC1EP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN18QMapPolylineObjectC2EP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN18QMapPolylineObjectD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN18QMapPolylineObjectD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN18QMapPolylineObjectD2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN18QNavigationManager11initializedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN18QNavigationManager11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.11.0 + _ZN18QNavigationManager11qt_metacastEPKc@Qt_5_PRIVATE_API 5.11.0 + _ZN18QNavigationManager12setNavigatorEP28QDeclarativeNavigatorPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZN18QNavigationManager13activeChangedEb@Qt_5_PRIVATE_API 5.11.0 + _ZN18QNavigationManager13setParametersERK5QListIP16QGeoMapParameterE@Qt_5_PRIVATE_API 5.11.0 + _ZN18QNavigationManager15waypointReachedEPK23QDeclarativeGeoWaypoint@Qt_5_PRIVATE_API 5.11.0 + _ZN18QNavigationManager16staticMetaObjectE@Qt_5_PRIVATE_API 5.11.0 + _ZN18QNavigationManager18destinationReachedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN18QNavigationManager19currentRouteChangedERK9QGeoRoute@Qt_5_PRIVATE_API 5.11.0 + _ZN18QNavigationManager21currentSegmentChangedEi@Qt_5_PRIVATE_API 5.11.0 + _ZN18QNavigationManager4stopEv@Qt_5_PRIVATE_API 5.11.0 + _ZN18QNavigationManager5startEv@Qt_5_PRIVATE_API 5.11.0 + _ZN18QNavigationManager6engineEv@Qt_5_PRIVATE_API 5.11.0 + _ZN18QNavigationManager9setLocaleERK7QLocale@Qt_5_PRIVATE_API 5.11.0 + _ZN18QNavigationManagerC1EP24QNavigationManagerEngineP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN18QNavigationManagerC2EP24QNavigationManagerEngineP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN18QNavigationManagerD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN18QNavigationManagerD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN18QNavigationManagerD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN18QPlaceContentReply10setContentERK4QMapIi13QPlaceContentE@Qt_5 5.6.0 _ZN18QPlaceContentReply10setRequestERK20QPlaceContentRequest@Qt_5 5.6.0 _ZN18QPlaceContentReply11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5 5.6.0 @@ -736,6 +959,9 @@ _ZN18QPlaceSearchResultD1Ev@Qt_5 5.6.0 _ZN18QPlaceSearchResultD2Ev@Qt_5 5.6.0 _ZN18QPlaceSearchResultaSERKS_@Qt_5 5.6.0 + _ZN19MapItemGeometryNodeD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN19MapItemGeometryNodeD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN19MapItemGeometryNodeD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN19QDeclarativeRatings10setAverageEd@Qt_5_PRIVATE_API 5.9.0 _ZN19QDeclarativeRatings10setMaximumEd@Qt_5_PRIVATE_API 5.9.0 _ZN19QDeclarativeRatings10setRatingsERK13QPlaceRatings@Qt_5_PRIVATE_API 5.9.0 @@ -753,6 +979,27 @@ _ZN19QDeclarativeRatingsD0Ev@Qt_5_PRIVATE_API 5.9.0 _ZN19QDeclarativeRatingsD1Ev@Qt_5_PRIVATE_API 5.9.0 _ZN19QDeclarativeRatingsD2Ev@Qt_5_PRIVATE_API 5.9.0 + _ZN19QGeoManeuverPrivate11setPositionERK14QGeoCoordinate@Qt_5_PRIVATE_API 5.11.0 + _ZN19QGeoManeuverPrivate11setWaypointERK14QGeoCoordinate@Qt_5_PRIVATE_API 5.11.0 + _ZN19QGeoManeuverPrivate12setDirectionEN12QGeoManeuver20InstructionDirectionE@Qt_5_PRIVATE_API 5.11.0 + _ZN19QGeoManeuverPrivate21setExtendedAttributesERK4QMapI7QString8QVariantE@Qt_5_PRIVATE_API 5.11.0 + _ZN19QGeoManeuverPrivate24setTimeToNextInstructionEi@Qt_5_PRIVATE_API 5.11.0 + _ZN19QGeoManeuverPrivate28setDistanceToNextInstructionEd@Qt_5_PRIVATE_API 5.11.0 + _ZN19QGeoManeuverPrivate5setIdE7QString@Qt_5_PRIVATE_API 5.11.0 + _ZN19QGeoManeuverPrivate7setTextERK7QString@Qt_5_PRIVATE_API 5.11.0 + _ZN19QGeoManeuverPrivate8setValidEb@Qt_5_PRIVATE_API 5.11.0 + _ZN19QGeoManeuverPrivateC1ERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZN19QGeoManeuverPrivateC1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN19QGeoManeuverPrivateC2ERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZN19QGeoManeuverPrivateC2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN19QGeoManeuverPrivateD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN19QGeoManeuverPrivateD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN19QGeoManeuverPrivateD2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN19QGeoMapItemGeometry23translateToCommonOriginERK5QListIPS_E@Qt_5_PRIVATE_API 5.11.0 + _ZN19QGeoMapItemGeometry24geoDistanceToScreenWidthERK7QGeoMapRK14QGeoCoordinateS5_@Qt_5_PRIVATE_API 5.11.0 + _ZN19QGeoMapItemGeometry9translateERK7QPointF@Qt_5_PRIVATE_API 5.11.0 + _ZN19QGeoMapItemGeometryC1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN19QGeoMapItemGeometryC2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN19QGeoServiceProvider11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5 5.6.0 _ZN19QGeoServiceProvider11qt_metacastEPKc@Qt_5 5.6.0 _ZN19QGeoServiceProvider13setParametersERK4QMapI7QString8QVariantE@Qt_5 5.6.0 @@ -873,17 +1120,18 @@ _ZN20QDeclarativeCategoryD0Ev@Qt_5_PRIVATE_API 5.9.0 _ZN20QDeclarativeCategoryD1Ev@Qt_5_PRIVATE_API 5.9.0 _ZN20QDeclarativeCategoryD2Ev@Qt_5_PRIVATE_API 5.9.0 + _ZN20QDeclarativeGeoRoute10routeQueryEv@Qt_5_PRIVATE_API 5.11.0 _ZN20QDeclarativeGeoRoute11pathChangedEv@Qt_5_PRIVATE_API 5.9.0 _ZN20QDeclarativeGeoRoute11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.9.0 _ZN20QDeclarativeGeoRoute11qt_metacastEPKc@Qt_5_PRIVATE_API 5.9.0 _ZN20QDeclarativeGeoRoute11segments_atEP16QQmlListPropertyI27QDeclarativeGeoRouteSegmentEi@Qt_5_PRIVATE_API 5.9.0 + _ZN20QDeclarativeGeoRoute12initSegmentsEj@Qt_5_PRIVATE_API 5.11.0 _ZN20QDeclarativeGeoRoute13appendSegmentEP27QDeclarativeGeoRouteSegment@Qt_5_PRIVATE_API 5.9.0 _ZN20QDeclarativeGeoRoute13clearSegmentsEv@Qt_5_PRIVATE_API 5.9.0 _ZN20QDeclarativeGeoRoute14segments_clearEP16QQmlListPropertyI27QDeclarativeGeoRouteSegmentE@Qt_5_PRIVATE_API 5.9.0 _ZN20QDeclarativeGeoRoute14segments_countEP16QQmlListPropertyI27QDeclarativeGeoRouteSegmentE@Qt_5_PRIVATE_API 5.9.0 _ZN20QDeclarativeGeoRoute15segments_appendEP16QQmlListPropertyI27QDeclarativeGeoRouteSegmentEPS1_@Qt_5_PRIVATE_API 5.9.0 _ZN20QDeclarativeGeoRoute16staticMetaObjectE@Qt_5_PRIVATE_API 5.9.0 - _ZN20QDeclarativeGeoRoute4initEv@Qt_5_PRIVATE_API 5.9.0 _ZN20QDeclarativeGeoRoute7setPathERK8QJSValue@Qt_5_PRIVATE_API 5.9.0 _ZN20QDeclarativeGeoRoute8segmentsEv@Qt_5_PRIVATE_API 5.9.0 _ZN20QDeclarativeGeoRoute9routePathEv@Qt_5_PRIVATE_API 5.9.0 @@ -915,6 +1163,18 @@ _ZN20QDeclarativeSupplierD0Ev@Qt_5_PRIVATE_API 5.9.0 _ZN20QDeclarativeSupplierD1Ev@Qt_5_PRIVATE_API 5.9.0 _ZN20QDeclarativeSupplierD2Ev@Qt_5_PRIVATE_API 5.9.0 + _ZN20QGeoMapObjectPrivate10setVisibleEb@Qt_5_PRIVATE_API 5.11.0 + _ZN20QGeoMapObjectPrivate19setParentVisibilityEb@Qt_5_PRIVATE_API 5.11.0 + _ZN20QGeoMapObjectPrivate6setMapEP7QGeoMap@Qt_5_PRIVATE_API 5.11.0 + _ZN20QGeoMapObjectPrivateC1EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN20QGeoMapObjectPrivateC1ERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZN20QGeoMapObjectPrivateC1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN20QGeoMapObjectPrivateC2EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN20QGeoMapObjectPrivateC2ERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZN20QGeoMapObjectPrivateC2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN20QGeoMapObjectPrivateD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN20QGeoMapObjectPrivateD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN20QGeoMapObjectPrivateD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN20QPlaceContentRequest10setPlaceIdERK7QString@Qt_5 5.6.0 _ZN20QPlaceContentRequest14setContentTypeEN13QPlaceContent4TypeE@Qt_5 5.6.0 _ZN20QPlaceContentRequest17setContentContextERK8QVariant@Qt_5 5.6.0 @@ -927,6 +1187,26 @@ _ZN20QPlaceContentRequestD1Ev@Qt_5 5.6.0 _ZN20QPlaceContentRequestD2Ev@Qt_5 5.6.0 _ZN20QPlaceContentRequestaSERKS_@Qt_5 5.6.0 + _ZN20QPlacePrivateDefault10setPlaceIdERK7QString@Qt_5_PRIVATE_API 5.11.0 + _ZN20QPlacePrivateDefault10setRatingsERK13QPlaceRatings@Qt_5_PRIVATE_API 5.11.0 + _ZN20QPlacePrivateDefault11setLocationERK12QGeoLocation@Qt_5_PRIVATE_API 5.11.0 + _ZN20QPlacePrivateDefault11setSupplierERK14QPlaceSupplier@Qt_5_PRIVATE_API 5.11.0 + _ZN20QPlacePrivateDefault13setCategoriesERK5QListI14QPlaceCategoryE@Qt_5_PRIVATE_API 5.11.0 + _ZN20QPlacePrivateDefault13setVisibilityEN9QLocation10VisibilityE@Qt_5_PRIVATE_API 5.11.0 + _ZN20QPlacePrivateDefault14setAttributionERK7QString@Qt_5_PRIVATE_API 5.11.0 + _ZN20QPlacePrivateDefault17setDetailsFetchedEb@Qt_5_PRIVATE_API 5.11.0 + _ZN20QPlacePrivateDefault18extendedAttributesEv@Qt_5_PRIVATE_API 5.11.0 + _ZN20QPlacePrivateDefault5cloneEv@Qt_5_PRIVATE_API 5.11.0 + _ZN20QPlacePrivateDefault7setIconERK10QPlaceIcon@Qt_5_PRIVATE_API 5.11.0 + _ZN20QPlacePrivateDefault7setNameERK7QString@Qt_5_PRIVATE_API 5.11.0 + _ZN20QPlacePrivateDefault8contactsEv@Qt_5_PRIVATE_API 5.11.0 + _ZN20QPlacePrivateDefaultC1ERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZN20QPlacePrivateDefaultC1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN20QPlacePrivateDefaultC2ERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZN20QPlacePrivateDefaultC2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN20QPlacePrivateDefaultD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN20QPlacePrivateDefaultD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN20QPlacePrivateDefaultD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN21QAbstractGeoTileCache10printStatsEv@Qt_5_PRIVATE_API 5.6.0 _ZN21QAbstractGeoTileCache11handleErrorERK12QGeoTileSpecRK7QString@Qt_5_PRIVATE_API 5.6.0 _ZN21QAbstractGeoTileCache11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.6.0 @@ -941,6 +1221,38 @@ _ZN21QAbstractGeoTileCacheD0Ev@Qt_5_PRIVATE_API 5.6.0 _ZN21QAbstractGeoTileCacheD1Ev@Qt_5_PRIVATE_API 5.6.0 _ZN21QAbstractGeoTileCacheD2Ev@Qt_5_PRIVATE_API 5.6.0 + _ZN21QDeclarativeNavigator10classBeginEv@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator10mapChangedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator11pluginReadyEv@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator11qt_metacastEPKc@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator12ensureEngineEv@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator12routeChangedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator13activeChangedEb@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator13pluginChangedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator15waypointReachedEPK23QDeclarativeGeoWaypoint@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator16staticMetaObjectE@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator16updateReadyStateEv@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator17componentCompleteEv@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator17setPositionSourceEP26QDeclarativePositionSource@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator18destinationReachedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator19currentRouteChangedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator21currentSegmentChangedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator21navigatorReadyChangedEb@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator21onCurrentRouteChangedERK9QGeoRoute@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator21positionSourceChangedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator23onCurrentSegmentChangedEi@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator4stopEv@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator5startEv@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator6setMapEP18QDeclarativeGeoMap@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator8setRouteEP20QDeclarativeGeoRoute@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator9setActiveEb@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigator9setPluginEP30QDeclarativeGeoServiceProvider@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigatorC1EP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigatorC2EP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigatorD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigatorD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN21QDeclarativeNavigatorD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN21QDeclarativePlaceIcon11pluginReadyEv@Qt_5_PRIVATE_API 5.9.0 _ZN21QDeclarativePlaceIcon11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.9.0 _ZN21QDeclarativePlaceIcon11qt_metacastEPKc@Qt_5_PRIVATE_API 5.9.0 @@ -972,6 +1284,9 @@ _ZN21QDeclarativePlaceUserD0Ev@Qt_5_PRIVATE_API 5.9.0 _ZN21QDeclarativePlaceUserD1Ev@Qt_5_PRIVATE_API 5.9.0 _ZN21QDeclarativePlaceUserD2Ev@Qt_5_PRIVATE_API 5.9.0 + _ZN21QGeoMapCircleGeometry24updateScreenPointsInvertERK5QListI15QDoubleVector2DERK7QGeoMap@Qt_5_PRIVATE_API 5.11.0 + _ZN21QGeoMapCircleGeometryC1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN21QGeoMapCircleGeometryC2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN21QGeoRouteParserOsrmV411qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.7.1 _ZN21QGeoRouteParserOsrmV411qt_metacastEPKc@Qt_5_PRIVATE_API 5.7.1 _ZN21QGeoRouteParserOsrmV416staticMetaObjectE@Qt_5_PRIVATE_API 5.7.1 @@ -982,12 +1297,23 @@ _ZN21QGeoRouteParserOsrmV4D2Ev@Qt_5_PRIVATE_API 5.7.1 _ZN21QGeoRouteParserOsrmV511qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.7.1 _ZN21QGeoRouteParserOsrmV511qt_metacastEPKc@Qt_5_PRIVATE_API 5.7.1 + _ZN21QGeoRouteParserOsrmV512setExtensionEPK30QGeoRouteParserOsrmV5Extension@Qt_5_PRIVATE_API 5.11.0 _ZN21QGeoRouteParserOsrmV516staticMetaObjectE@Qt_5_PRIVATE_API 5.7.1 _ZN21QGeoRouteParserOsrmV5C1EP7QObject@Qt_5_PRIVATE_API 5.7.1 _ZN21QGeoRouteParserOsrmV5C2EP7QObject@Qt_5_PRIVATE_API 5.7.1 _ZN21QGeoRouteParserOsrmV5D0Ev@Qt_5_PRIVATE_API 5.7.1 _ZN21QGeoRouteParserOsrmV5D1Ev@Qt_5_PRIVATE_API 5.7.1 _ZN21QGeoRouteParserOsrmV5D2Ev@Qt_5_PRIVATE_API 5.7.1 + _ZN21QMapIconObjectPrivateC1EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN21QMapIconObjectPrivateC2EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN21QMapIconObjectPrivateD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN21QMapIconObjectPrivateD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN21QMapIconObjectPrivateD2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN21QMapObjectViewPrivateC1EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN21QMapObjectViewPrivateC2EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN21QMapObjectViewPrivateD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN21QMapObjectViewPrivateD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN21QMapObjectViewPrivateD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN22QDeclarativeGeoMapType11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.9.0 _ZN22QDeclarativeGeoMapType11qt_metacastEPKc@Qt_5_PRIVATE_API 5.9.0 _ZN22QDeclarativeGeoMapType16staticMetaObjectE@Qt_5_PRIVATE_API 5.9.0 @@ -1014,17 +1340,51 @@ _ZN22QGeoCameraCapabilitiesD1Ev@Qt_5_PRIVATE_API 5.6.0 _ZN22QGeoCameraCapabilitiesD2Ev@Qt_5_PRIVATE_API 5.6.0 _ZN22QGeoCameraCapabilitiesaSERKS_@Qt_5_PRIVATE_API 5.6.0 + _ZN22QGeoMapPolygonGeometry18updateScreenPointsERK7QGeoMapd@Qt_5_PRIVATE_API 5.11.0 + _ZN22QGeoMapPolygonGeometry18updateSourcePointsERK7QGeoMapRK5QListI15QDoubleVector2DE@Qt_5_PRIVATE_API 5.11.0 + _ZN22QGeoMapPolygonGeometryC1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN22QGeoMapPolygonGeometryC2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN22QGeoTileFetcherPrivateC1Ev@Qt_5_PRIVATE_API 5.9.0 _ZN22QGeoTileFetcherPrivateC2Ev@Qt_5_PRIVATE_API 5.9.0 _ZN22QGeoTileFetcherPrivateD0Ev@Qt_5_PRIVATE_API 5.9.0 _ZN22QGeoTileFetcherPrivateD1Ev@Qt_5_PRIVATE_API 5.9.0 _ZN22QGeoTileFetcherPrivateD2Ev@Qt_5_PRIVATE_API 5.9.0 + _ZN22QGeoTileRequestManager11tileFetchedERK12QGeoTileSpec@Qt_5_PRIVATE_API 5.11.0 + _ZN22QGeoTileRequestManager11tileTextureERK12QGeoTileSpec@Qt_5_PRIVATE_API 5.11.0 + _ZN22QGeoTileRequestManager12requestTilesERK4QSetI12QGeoTileSpecE@Qt_5_PRIVATE_API 5.11.0 + _ZN22QGeoTileRequestManager9tileErrorERK12QGeoTileSpecRK7QString@Qt_5_PRIVATE_API 5.11.0 + _ZN22QGeoTileRequestManagerC1EP12QGeoTiledMapP29QGeoTiledMappingManagerEngine@Qt_5_PRIVATE_API 5.11.0 + _ZN22QGeoTileRequestManagerC2EP12QGeoTiledMapP29QGeoTiledMappingManagerEngine@Qt_5_PRIVATE_API 5.11.0 + _ZN22QGeoTileRequestManagerD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN22QGeoTileRequestManagerD2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN22QMapRouteObjectPrivate5cloneEv@Qt_5_PRIVATE_API 5.11.0 + _ZN22QMapRouteObjectPrivate8setRouteEPK20QDeclarativeGeoRoute@Qt_5_PRIVATE_API 5.11.0 + _ZN22QMapRouteObjectPrivateC1EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN22QMapRouteObjectPrivateC1ERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZN22QMapRouteObjectPrivateC2EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN22QMapRouteObjectPrivateC2ERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZN22QMapRouteObjectPrivateD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN22QMapRouteObjectPrivateD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN22QMapRouteObjectPrivateD2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN22QParameterizableObject11appendChildEP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN22QParameterizableObject11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.11.0 + _ZN22QParameterizableObject11qt_metacastEPKc@Qt_5_PRIVATE_API 5.11.0 + _ZN22QParameterizableObject13clearChildrenEv@Qt_5_PRIVATE_API 5.11.0 + _ZN22QParameterizableObject16staticMetaObjectE@Qt_5_PRIVATE_API 5.11.0 + _ZN22QParameterizableObject19declarativeChildrenEv@Qt_5_PRIVATE_API 5.11.0 + _ZN22QParameterizableObject2atEP16QQmlListPropertyI7QObjectEi@Qt_5_PRIVATE_API 5.11.0 + _ZN22QParameterizableObject5clearEP16QQmlListPropertyI7QObjectE@Qt_5_PRIVATE_API 5.11.0 + _ZN22QParameterizableObject5countEP16QQmlListPropertyI7QObjectE@Qt_5_PRIVATE_API 5.11.0 + _ZN22QParameterizableObject6appendEP16QQmlListPropertyI7QObjectEPS1_@Qt_5_PRIVATE_API 5.11.0 + _ZN22QParameterizableObjectC1EP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN22QParameterizableObjectC2EP7QObject@Qt_5_PRIVATE_API 5.11.0 _ZN22QPlaceReplyUnsupported11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.6.0 _ZN22QPlaceReplyUnsupported11qt_metacastEPKc@Qt_5_PRIVATE_API 5.6.0 _ZN22QPlaceReplyUnsupported16staticMetaObjectE@Qt_5_PRIVATE_API 5.6.0 _ZN23QDeclarativeGeoManeuver11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.9.0 _ZN23QDeclarativeGeoManeuver11qt_metacastEPKc@Qt_5_PRIVATE_API 5.9.0 _ZN23QDeclarativeGeoManeuver16staticMetaObjectE@Qt_5_PRIVATE_API 5.9.0 + _ZN23QDeclarativeGeoManeuver25extendedAttributesChangedEv@Qt_5_PRIVATE_API 5.11.0 _ZN23QDeclarativeGeoManeuverC1EP7QObject@Qt_5_PRIVATE_API 5.9.0 _ZN23QDeclarativeGeoManeuverC1ERK12QGeoManeuverP7QObject@Qt_5_PRIVATE_API 5.9.0 _ZN23QDeclarativeGeoManeuverC2EP7QObject@Qt_5_PRIVATE_API 5.9.0 @@ -1032,6 +1392,30 @@ _ZN23QDeclarativeGeoManeuverD0Ev@Qt_5_PRIVATE_API 5.9.0 _ZN23QDeclarativeGeoManeuverD1Ev@Qt_5_PRIVATE_API 5.9.0 _ZN23QDeclarativeGeoManeuverD2Ev@Qt_5_PRIVATE_API 5.9.0 + _ZN23QDeclarativeGeoWaypoint10setBearingEd@Qt_5_PRIVATE_API 5.11.0 + _ZN23QDeclarativeGeoWaypoint11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.11.0 + _ZN23QDeclarativeGeoWaypoint11qt_metacastEPKc@Qt_5_PRIVATE_API 5.11.0 + _ZN23QDeclarativeGeoWaypoint11setAltitudeEd@Qt_5_PRIVATE_API 5.11.0 + _ZN23QDeclarativeGeoWaypoint11setLatitudeEd@Qt_5_PRIVATE_API 5.11.0 + _ZN23QDeclarativeGeoWaypoint11setMetadataERK4QMapI7QString8QVariantE@Qt_5_PRIVATE_API 5.11.0 + _ZN23QDeclarativeGeoWaypoint12setLongitudeEd@Qt_5_PRIVATE_API 5.11.0 + _ZN23QDeclarativeGeoWaypoint14bearingChangedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN23QDeclarativeGeoWaypoint16staticMetaObjectE@Qt_5_PRIVATE_API 5.11.0 + _ZN23QDeclarativeGeoWaypoint19declarativeChildrenEv@Qt_5_PRIVATE_API 5.11.0 + _ZN23QDeclarativeGeoWaypoint21extraParameterChangedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN23QDeclarativeGeoWaypoint22extraParametersChangedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN23QDeclarativeGeoWaypoint22waypointDetailsChangedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN23QDeclarativeGeoWaypoint2atEP16QQmlListPropertyI7QObjectEi@Qt_5_PRIVATE_API 5.11.0 + _ZN23QDeclarativeGeoWaypoint5clearEP16QQmlListPropertyI7QObjectE@Qt_5_PRIVATE_API 5.11.0 + _ZN23QDeclarativeGeoWaypoint5countEP16QQmlListPropertyI7QObjectE@Qt_5_PRIVATE_API 5.11.0 + _ZN23QDeclarativeGeoWaypoint6appendEP16QQmlListPropertyI7QObjectEPS1_@Qt_5_PRIVATE_API 5.11.0 + _ZN23QDeclarativeGeoWaypoint8metadataEv@Qt_5_PRIVATE_API 5.11.0 + _ZN23QDeclarativeGeoWaypoint9completedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN23QDeclarativeGeoWaypointC1EP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN23QDeclarativeGeoWaypointC2EP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN23QDeclarativeGeoWaypointD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN23QDeclarativeGeoWaypointD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN23QDeclarativeGeoWaypointD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN23QDeclarativeReviewModel11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.9.0 _ZN23QDeclarativeReviewModel11qt_metacastEPKc@Qt_5_PRIVATE_API 5.9.0 _ZN23QDeclarativeReviewModel16staticMetaObjectE@Qt_5_PRIVATE_API 5.9.0 @@ -1056,6 +1440,52 @@ _ZN23QGeoCodingManagerEngineD0Ev@Qt_5 5.6.0 _ZN23QGeoCodingManagerEngineD1Ev@Qt_5 5.6.0 _ZN23QGeoCodingManagerEngineD2Ev@Qt_5 5.6.0 + _ZN23QGeoMapObjectQSGSupport15removeMapObjectEP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN23QGeoMapObjectQSGSupport16updateMapObjectsEP7QSGNodeP12QQuickWindow@Qt_5_PRIVATE_API 5.11.0 + _ZN23QGeoMapObjectQSGSupport21updateObjectsGeometryEv@Qt_5_PRIVATE_API 5.11.0 + _ZN23QGeoMapObjectQSGSupport29createMapObjectImplementationEP13QGeoMapObjectP14QGeoMapPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZN23QGeoMapObjectQSGSupport36createMapObjectImplementationPrivateEP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN23QGeoMapPolylineGeometry11clearSourceEv@Qt_5_PRIVATE_API 5.11.0 + _ZN23QGeoMapPolylineGeometry12pathToScreenERK7QGeoMapRK5QListIS3_I15QDoubleVector2DEERKS4_@Qt_5_PRIVATE_API 5.11.0 + _ZN23QGeoMapPolylineGeometry18updateScreenPointsERK7QGeoMapdb@Qt_5_PRIVATE_API 5.11.0 + _ZN23QGeoMapPolylineGeometry18updateSourcePointsERK7QGeoMapRK5QListI15QDoubleVector2DE14QGeoCoordinate@Qt_5_PRIVATE_API 5.11.0 + _ZN23QGeoMapPolylineGeometry8clipPathERK7QGeoMapRK5QListI15QDoubleVector2DERS4_@Qt_5_PRIVATE_API 5.11.0 + _ZN23QGeoMapPolylineGeometryC1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN23QGeoMapPolylineGeometryC2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN23QGeoRoutePrivateDefault10setRequestERK16QGeoRouteRequest@Qt_5 5.11.0 + _ZN23QGeoRoutePrivateDefault11setDistanceEd@Qt_5 5.11.0 + _ZN23QGeoRoutePrivateDefault13setTravelModeEN16QGeoRouteRequest10TravelModeE@Qt_5 5.11.0 + _ZN23QGeoRoutePrivateDefault13setTravelTimeEi@Qt_5 5.11.0 + _ZN23QGeoRoutePrivateDefault15setFirstSegmentERK16QGeoRouteSegment@Qt_5 5.11.0 + _ZN23QGeoRoutePrivateDefault5cloneEv@Qt_5 5.11.0 + _ZN23QGeoRoutePrivateDefault5setIdERK7QString@Qt_5 5.11.0 + _ZN23QGeoRoutePrivateDefault7setPathERK5QListI14QGeoCoordinateE@Qt_5 5.11.0 + _ZN23QGeoRoutePrivateDefault9setBoundsERK13QGeoRectangle@Qt_5 5.11.0 + _ZN23QGeoRoutePrivateDefaultC1ERKS_@Qt_5 5.11.0 + _ZN23QGeoRoutePrivateDefaultC1Ev@Qt_5 5.11.0 + _ZN23QGeoRoutePrivateDefaultC2ERKS_@Qt_5 5.11.0 + _ZN23QGeoRoutePrivateDefaultC2Ev@Qt_5 5.11.0 + _ZN23QGeoRoutePrivateDefaultD0Ev@Qt_5 5.11.0 + _ZN23QGeoRoutePrivateDefaultD1Ev@Qt_5 5.11.0 + _ZN23QGeoRoutePrivateDefaultD2Ev@Qt_5 5.11.0 + _ZN23QGeoRouteSegmentPrivate11setDistanceEd@Qt_5_PRIVATE_API 5.11.0 + _ZN23QGeoRouteSegmentPrivate11setManeuverERK12QGeoManeuver@Qt_5_PRIVATE_API 5.11.0 + _ZN23QGeoRouteSegmentPrivate13setTravelTimeEi@Qt_5_PRIVATE_API 5.11.0 + _ZN23QGeoRouteSegmentPrivate19setNextRouteSegmentERK28QExplicitlySharedDataPointerIS_E@Qt_5_PRIVATE_API 5.11.0 + _ZN23QGeoRouteSegmentPrivate7setPathERK5QListI14QGeoCoordinateE@Qt_5_PRIVATE_API 5.11.0 + _ZN23QGeoRouteSegmentPrivate8setValidEb@Qt_5_PRIVATE_API 5.11.0 + _ZN23QGeoRouteSegmentPrivateC1ERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZN23QGeoRouteSegmentPrivateC1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN23QGeoRouteSegmentPrivateC2ERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZN23QGeoRouteSegmentPrivateC2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN23QGeoRouteSegmentPrivateD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN23QGeoRouteSegmentPrivateD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN23QGeoRouteSegmentPrivateD2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN23QMapCircleObjectPrivateC1EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN23QMapCircleObjectPrivateC2EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN23QMapCircleObjectPrivateD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN23QMapCircleObjectPrivateD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN23QMapCircleObjectPrivateD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN23QQuickGeoMapGestureArea10panStartedEv@Qt_5_PRIVATE_API 5.9.0 _ZN23QQuickGeoMapGestureArea10setEnabledEb@Qt_5_PRIVATE_API 5.9.0 _ZN23QQuickGeoMapGestureArea10startFlickEiii@Qt_5_PRIVATE_API 5.9.0 @@ -1223,6 +1653,41 @@ _ZN24QGeoRoutingManagerEngineD0Ev@Qt_5 5.6.0 _ZN24QGeoRoutingManagerEngineD1Ev@Qt_5 5.6.0 _ZN24QGeoRoutingManagerEngineD2Ev@Qt_5 5.6.0 + _ZN24QMapIconObjectPrivateQSG10setContentERK8QVariant@Qt_5_PRIVATE_API 5.11.0 + _ZN24QMapIconObjectPrivateQSG12clearContentEv@Qt_5_PRIVATE_API 5.11.0 + _ZN24QMapIconObjectPrivateQSG13setCoordinateERK14QGeoCoordinate@Qt_5_PRIVATE_API 5.11.0 + _ZN24QMapIconObjectPrivateQSG14updateGeometryEv@Qt_5_PRIVATE_API 5.11.0 + _ZN24QMapIconObjectPrivateQSG19updateMapObjectNodeEP7QSGNodePP11VisibleNodeS1_P12QQuickWindow@Qt_5_PRIVATE_API 5.11.0 + _ZN24QMapIconObjectPrivateQSG5cloneEv@Qt_5_PRIVATE_API 5.11.0 + _ZN24QMapIconObjectPrivateQSG7setSizeERK6QSizeF@Qt_5_PRIVATE_API 5.11.0 + _ZN24QMapIconObjectPrivateQSGC1EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN24QMapIconObjectPrivateQSGC1ERK21QMapIconObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZN24QMapIconObjectPrivateQSGC2EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN24QMapIconObjectPrivateQSGC2ERK21QMapIconObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZN24QMapIconObjectPrivateQSGD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN24QMapIconObjectPrivateQSGD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN24QMapIconObjectPrivateQSGD2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN24QMapPolygonObjectPrivateC1EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN24QMapPolygonObjectPrivateC2EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN24QMapPolygonObjectPrivateD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN24QMapPolygonObjectPrivateD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN24QMapPolygonObjectPrivateD2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN24QNavigationManagerEngine11initializedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN24QNavigationManagerEngine11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.11.0 + _ZN24QNavigationManagerEngine11qt_metacastEPKc@Qt_5_PRIVATE_API 5.11.0 + _ZN24QNavigationManagerEngine14setManagerNameERK7QString@Qt_5_PRIVATE_API 5.11.0 + _ZN24QNavigationManagerEngine16staticMetaObjectE@Qt_5_PRIVATE_API 5.11.0 + _ZN24QNavigationManagerEngine17engineInitializedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN24QNavigationManagerEngine17setManagerVersionEi@Qt_5_PRIVATE_API 5.11.0 + _ZN24QNavigationManagerEngine20setMeasurementSystemEN7QLocale17MeasurementSystemE@Qt_5_PRIVATE_API 5.11.0 + _ZN24QNavigationManagerEngine4stopER28QDeclarativeNavigatorPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZN24QNavigationManagerEngine5startER28QDeclarativeNavigatorPrivateRK5QListIP16QGeoMapParameterE@Qt_5_PRIVATE_API 5.11.0 + _ZN24QNavigationManagerEngine9setLocaleERK7QLocale@Qt_5_PRIVATE_API 5.11.0 + _ZN24QNavigationManagerEngineC1ERK4QMapI7QString8QVariantEP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN24QNavigationManagerEngineC2ERK4QMapI7QString8QVariantEP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN24QNavigationManagerEngineD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN24QNavigationManagerEngineD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN24QNavigationManagerEngineD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN24QPlaceIdReplyUnsupported11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.6.0 _ZN24QPlaceIdReplyUnsupported11qt_metacastEPKc@Qt_5_PRIVATE_API 5.6.0 _ZN24QPlaceIdReplyUnsupported16staticMetaObjectE@Qt_5_PRIVATE_API 5.6.0 @@ -1237,11 +1702,11 @@ _ZN25QDeclarativeCircleMapItem16staticMetaObjectE@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeCircleMapItem16updateCirclePathEv@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeCircleMapItem20afterViewportChangedERK26QGeoMapViewportChangeEvent@Qt_5_PRIVATE_API 5.9.0 - _ZN25QDeclarativeCircleMapItem22preserveCircleGeometryER5QListI15QDoubleVector2DERK14QGeoCoordinated@Qt_5_PRIVATE_API 5.9.0 + _ZN25QDeclarativeCircleMapItem22preserveCircleGeometryER5QListI15QDoubleVector2DERK14QGeoCoordinatedRK25QGeoProjectionWebMercator@Qt_5_PRIVATE_API 5.11.0 _ZN25QDeclarativeCircleMapItem22updateMapItemPaintNodeEP7QSGNodePN10QQuickItem19UpdatePaintNodeDataE@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeCircleMapItem24markSourceDirtyAndUpdateEv@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeCircleMapItem25calculatePeripheralPointsER5QListI14QGeoCoordinateERKS1_diRS1_@Qt_5_PRIVATE_API 5.9.2 - _ZN25QDeclarativeCircleMapItem28updateCirclePathForRenderingER5QListI15QDoubleVector2DERK14QGeoCoordinated@Qt_5_PRIVATE_API 5.9.0 + _ZN25QDeclarativeCircleMapItem28updateCirclePathForRenderingER5QListI15QDoubleVector2DERK14QGeoCoordinatedRK25QGeoProjectionWebMercator@Qt_5_PRIVATE_API 5.11.0 _ZN25QDeclarativeCircleMapItem6borderEv@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeCircleMapItem6centerEv@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeCircleMapItem6setMapEP18QDeclarativeGeoMapP7QGeoMap@Qt_5_PRIVATE_API 5.9.0 @@ -1300,16 +1765,21 @@ _ZN25QDeclarativeGeoRouteModelD0Ev@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeGeoRouteModelD1Ev@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeGeoRouteModelD2Ev@Qt_5_PRIVATE_API 5.9.0 - _ZN25QDeclarativeGeoRouteQuery11addWaypointERK14QGeoCoordinate@Qt_5_PRIVATE_API 5.9.0 + _ZN25QDeclarativeGeoRouteQuery11addWaypointERK8QVariant@Qt_5_PRIVATE_API 5.11.0 _ZN25QDeclarativeGeoRouteQuery11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeGeoRouteQuery11qt_metacastEPKc@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeGeoRouteQuery12featureTypesEv@Qt_5_PRIVATE_API 5.9.0 - _ZN25QDeclarativeGeoRouteQuery12setWaypointsERK8QJSValue@Qt_5_PRIVATE_API 5.9.0 + _ZN25QDeclarativeGeoRouteQuery12routeRequestEv@Qt_5_PRIVATE_API 5.11.0 + _ZN25QDeclarativeGeoRouteQuery12setWaypointsERK5QListI8QVariantE@Qt_5_PRIVATE_API 5.11.0 _ZN25QDeclarativeGeoRouteQuery13featureWeightENS_11FeatureTypeE@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeGeoRouteQuery14clearWaypointsEv@Qt_5_PRIVATE_API 5.9.0 - _ZN25QDeclarativeGeoRouteQuery14removeWaypointERK14QGeoCoordinate@Qt_5_PRIVATE_API 5.9.0 + _ZN25QDeclarativeGeoRouteQuery14flushWaypointsER5QListIP23QDeclarativeGeoWaypointE@Qt_5_PRIVATE_API 5.11.0 + _ZN25QDeclarativeGeoRouteQuery14removeWaypointERK8QVariant@Qt_5_PRIVATE_API 5.11.0 _ZN25QDeclarativeGeoRouteQuery14setTravelModesE6QFlagsINS_10TravelModeEE@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeGeoRouteQuery15addExcludedAreaERK13QGeoRectangle@Qt_5_PRIVATE_API 5.9.0 + _ZN25QDeclarativeGeoRouteQuery15extraParametersEv@Qt_5_PRIVATE_API 5.11.0 + _ZN25QDeclarativeGeoRouteQuery15waypointChangedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN25QDeclarativeGeoRouteQuery15waypointObjectsEv@Qt_5_PRIVATE_API 5.11.0 _ZN25QDeclarativeGeoRouteQuery16setExcludedAreasERK8QJSValue@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeGeoRouteQuery16setFeatureWeightENS_11FeatureTypeENS_13FeatureWeightE@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeGeoRouteQuery16setSegmentDetailENS_13SegmentDetailE@Qt_5_PRIVATE_API 5.9.0 @@ -1320,26 +1790,36 @@ _ZN25QDeclarativeGeoRouteQuery18clearExcludedAreasEv@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeGeoRouteQuery18removeExcludedAreaERK13QGeoRectangle@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeGeoRouteQuery18travelModesChangedEv@Qt_5_PRIVATE_API 5.9.0 + _ZN25QDeclarativeGeoRouteQuery19declarativeChildrenEv@Qt_5_PRIVATE_API 5.11.0 _ZN25QDeclarativeGeoRouteQuery19doCoordinateChangedEv@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeGeoRouteQuery19featureTypesChangedEv@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeGeoRouteQuery19queryDetailsChangedEv@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeGeoRouteQuery19resetFeatureWeightsEv@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeGeoRouteQuery20excludedAreasChangedEv@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeGeoRouteQuery20segmentDetailChangedEv@Qt_5_PRIVATE_API 5.9.0 + _ZN25QDeclarativeGeoRouteQuery21extraParameterChangedEv@Qt_5_PRIVATE_API 5.11.0 _ZN25QDeclarativeGeoRouteQuery21maneuverDetailChangedEv@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeGeoRouteQuery21setRouteOptimizationsE6QFlagsINS_17RouteOptimizationEE@Qt_5_PRIVATE_API 5.9.0 + _ZN25QDeclarativeGeoRouteQuery22extraParametersChangedEv@Qt_5_PRIVATE_API 5.11.0 _ZN25QDeclarativeGeoRouteQuery25routeOptimizationsChangedEv@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeGeoRouteQuery26setNumberAlternativeRoutesEi@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeGeoRouteQuery29excludedAreaCoordinateChangedEv@Qt_5_PRIVATE_API 5.9.0 + _ZN25QDeclarativeGeoRouteQuery2atEP16QQmlListPropertyI7QObjectEi@Qt_5_PRIVATE_API 5.11.0 _ZN25QDeclarativeGeoRouteQuery30numberAlternativeRoutesChangedEv@Qt_5_PRIVATE_API 5.9.0 + _ZN25QDeclarativeGeoRouteQuery5clearEP16QQmlListPropertyI7QObjectE@Qt_5_PRIVATE_API 5.11.0 + _ZN25QDeclarativeGeoRouteQuery5countEP16QQmlListPropertyI7QObjectE@Qt_5_PRIVATE_API 5.11.0 + _ZN25QDeclarativeGeoRouteQuery6appendEP16QQmlListPropertyI7QObjectEPS1_@Qt_5_PRIVATE_API 5.11.0 _ZN25QDeclarativeGeoRouteQuery9waypointsEv@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeGeoRouteQueryC1EP7QObject@Qt_5_PRIVATE_API 5.9.0 + _ZN25QDeclarativeGeoRouteQueryC1ERK16QGeoRouteRequestP7QObject@Qt_5_PRIVATE_API 5.11.0 _ZN25QDeclarativeGeoRouteQueryC2EP7QObject@Qt_5_PRIVATE_API 5.9.0 + _ZN25QDeclarativeGeoRouteQueryC2ERK16QGeoRouteRequestP7QObject@Qt_5_PRIVATE_API 5.11.0 _ZN25QDeclarativeGeoRouteQueryD0Ev@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeGeoRouteQueryD1Ev@Qt_5_PRIVATE_API 5.9.0 _ZN25QDeclarativeGeoRouteQueryD2Ev@Qt_5_PRIVATE_API 5.9.0 + _ZN25QGeoProjectionWebMercator10setBearingEdRK14QGeoCoordinate@Qt_5_PRIVATE_API 5.11.0 _ZN25QGeoProjectionWebMercator11setupCameraEv@Qt_5_PRIVATE_API 5.9.0 - _ZN25QGeoProjectionWebMercator13setCameraDataERK14QGeoCameraData@Qt_5_PRIVATE_API 5.9.0 + _ZN25QGeoProjectionWebMercator13setCameraDataERK14QGeoCameraDatab@Qt_5_PRIVATE_API 5.11.0 _ZN25QGeoProjectionWebMercator15setViewportSizeERK5QSize@Qt_5_PRIVATE_API 5.9.0 _ZN25QGeoProjectionWebMercator19updateVisibleRegionEv@Qt_5_PRIVATE_API 5.9.0 _ZN25QGeoProjectionWebMercator5PlaneC1ERK15QDoubleVector3DS3_@Qt_5_PRIVATE_API 5.9.0 @@ -1355,6 +1835,24 @@ _ZN25QGeoProjectionWebMercatorD0Ev@Qt_5_PRIVATE_API 5.9.0 _ZN25QGeoProjectionWebMercatorD1Ev@Qt_5_PRIVATE_API 5.9.0 _ZN25QGeoProjectionWebMercatorD2Ev@Qt_5_PRIVATE_API 5.9.0 + _ZN25QMapPolylineObjectPrivateC1EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN25QMapPolylineObjectPrivateC2EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN25QMapPolylineObjectPrivateD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN25QMapPolylineObjectPrivateD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN25QMapPolylineObjectPrivateD2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN25QMapRouteObjectPrivateQSG10setVisibleEb@Qt_5_PRIVATE_API 5.11.0 + _ZN25QMapRouteObjectPrivateQSG14updateGeometryEv@Qt_5_PRIVATE_API 5.11.0 + _ZN25QMapRouteObjectPrivateQSG19updateMapObjectNodeEP7QSGNodePP11VisibleNodeS1_P12QQuickWindow@Qt_5_PRIVATE_API 5.11.0 + _ZN25QMapRouteObjectPrivateQSG5cloneEv@Qt_5_PRIVATE_API 5.11.0 + _ZN25QMapRouteObjectPrivateQSG6setMapEP7QGeoMap@Qt_5_PRIVATE_API 5.11.0 + _ZN25QMapRouteObjectPrivateQSG8setRouteEPK20QDeclarativeGeoRoute@Qt_5_PRIVATE_API 5.11.0 + _ZN25QMapRouteObjectPrivateQSGC1EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN25QMapRouteObjectPrivateQSGC1ERK22QMapRouteObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZN25QMapRouteObjectPrivateQSGC2EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN25QMapRouteObjectPrivateQSGC2ERK22QMapRouteObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZN25QMapRouteObjectPrivateQSGD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN25QMapRouteObjectPrivateQSGD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN25QMapRouteObjectPrivateQSGD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN26QCache3QTileEvictionPolicy16aboutToBeEvictedERK12QGeoTileSpec14QSharedPointerI18QGeoCachedTileDiskE@Qt_5_PRIVATE_API 5.9.0 _ZN26QCache3QTileEvictionPolicy16aboutToBeRemovedERK12QGeoTileSpec14QSharedPointerI18QGeoCachedTileDiskE@Qt_5_PRIVATE_API 5.9.0 _ZN26QDeclarativeContactDetails11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.9.0 @@ -1373,36 +1871,41 @@ _ZN26QDeclarativeGeoMapItemBase21baseCameraDataChangedERK14QGeoCameraData@Qt_5_PRIVATE_API 5.9.0 _ZN26QDeclarativeGeoMapItemBase21childMouseEventFilterEP10QQuickItemP6QEvent@Qt_5_PRIVATE_API 5.9.0 _ZN26QDeclarativeGeoMapItemBase21mapItemOpacityChangedEv@Qt_5_PRIVATE_API 5.9.0 + _ZN26QDeclarativeGeoMapItemBase21prepareExitTransitionEv@Qt_5_PRIVATE_API 5.11.0 + _ZN26QDeclarativeGeoMapItemBase22exitTransitionFinishedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN26QDeclarativeGeoMapItemBase22finalizeExitTransitionEv@Qt_5_PRIVATE_API 5.11.0 + _ZN26QDeclarativeGeoMapItemBase22prepareEnterTransitionEv@Qt_5_PRIVATE_API 5.11.0 _ZN26QDeclarativeGeoMapItemBase22updateMapItemPaintNodeEP7QSGNodePN10QQuickItem19UpdatePaintNodeDataE@Qt_5_PRIVATE_API 5.9.0 + _ZN26QDeclarativeGeoMapItemBase23enterTransitionFinishedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN26QDeclarativeGeoMapItemBase23finalizeEnterTransitionEv@Qt_5_PRIVATE_API 5.11.0 _ZN26QDeclarativeGeoMapItemBase6setMapEP18QDeclarativeGeoMapP7QGeoMap@Qt_5_PRIVATE_API 5.9.0 _ZN26QDeclarativeGeoMapItemBaseC1EP10QQuickItem@Qt_5_PRIVATE_API 5.9.0 _ZN26QDeclarativeGeoMapItemBaseC2EP10QQuickItem@Qt_5_PRIVATE_API 5.9.0 _ZN26QDeclarativeGeoMapItemBaseD0Ev@Qt_5_PRIVATE_API 5.9.0 _ZN26QDeclarativeGeoMapItemBaseD1Ev@Qt_5_PRIVATE_API 5.9.0 _ZN26QDeclarativeGeoMapItemBaseD2Ev@Qt_5_PRIVATE_API 5.9.0 - _ZN26QDeclarativeGeoMapItemView10repopulateEv@Qt_5_PRIVATE_API 5.9.0 + _ZN26QDeclarativeGeoMapItemView10classBeginEv@Qt_5_PRIVATE_API 5.11.0 + _ZN26QDeclarativeGeoMapItemView11createdItemEiP7QObject@Qt_5_PRIVATE_API 5.11.0 _ZN26QDeclarativeGeoMapItemView11fitViewportEv@Qt_5_PRIVATE_API 5.9.0 _ZN26QDeclarativeGeoMapItemView11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.9.0 _ZN26QDeclarativeGeoMapItemView11qt_metacastEPKc@Qt_5_PRIVATE_API 5.9.0 _ZN26QDeclarativeGeoMapItemView11setDelegateEP13QQmlComponent@Qt_5_PRIVATE_API 5.9.0 + _ZN26QDeclarativeGeoMapItemView12addItemToMapEP26QDeclarativeGeoMapItemBasei@Qt_5_PRIVATE_API 5.11.0 _ZN26QDeclarativeGeoMapItemView12modelChangedEv@Qt_5_PRIVATE_API 5.9.0 - _ZN26QDeclarativeGeoMapItemView14itemModelResetEv@Qt_5_PRIVATE_API 5.9.0 - _ZN26QDeclarativeGeoMapItemView14removeItemDataEP34QDeclarativeGeoMapItemViewItemData@Qt_5_PRIVATE_API 5.9.0 + _ZN26QDeclarativeGeoMapItemView12modelUpdatedERK13QQmlChangeSetb@Qt_5_PRIVATE_API 5.11.0 + _ZN26QDeclarativeGeoMapItemView14destroyingItemEP7QObject@Qt_5_PRIVATE_API 5.11.0 _ZN26QDeclarativeGeoMapItemView15delegateChangedEv@Qt_5_PRIVATE_API 5.9.0 _ZN26QDeclarativeGeoMapItemView16staticMetaObjectE@Qt_5_PRIVATE_API 5.9.0 _ZN26QDeclarativeGeoMapItemView17componentCompleteEv@Qt_5_PRIVATE_API 5.9.0 - _ZN26QDeclarativeGeoMapItemView18createItemForIndexERK11QModelIndexb@Qt_5_PRIVATE_API 5.9.0 - _ZN26QDeclarativeGeoMapItemView18itemModelRowsMovedERK11QModelIndexiiS2_i@Qt_5_PRIVATE_API 5.9.0 + _ZN26QDeclarativeGeoMapItemView17removeItemFromMapEi@Qt_5_PRIVATE_API 5.11.0 _ZN26QDeclarativeGeoMapItemView18setAutoFitViewportERKb@Qt_5_PRIVATE_API 5.9.0 _ZN26QDeclarativeGeoMapItemView19instantiateAllItemsEv@Qt_5_PRIVATE_API 5.9.0 - _ZN26QDeclarativeGeoMapItemView20itemModelDataChangedERK11QModelIndexS2_RK7QVectorIiE@Qt_5_PRIVATE_API 5.9.0 - _ZN26QDeclarativeGeoMapItemView20itemModelRowsRemovedERK11QModelIndexii@Qt_5_PRIVATE_API 5.9.0 - _ZN26QDeclarativeGeoMapItemView21itemModelRowsInsertedERK11QModelIndexii@Qt_5_PRIVATE_API 5.9.0 _ZN26QDeclarativeGeoMapItemView22autoFitViewportChangedEv@Qt_5_PRIVATE_API 5.9.0 - _ZN26QDeclarativeGeoMapItemView22incubatorStatusChangedEP28MapItemViewDelegateIncubatorN13QQmlIncubator6StatusEb@Qt_5_PRIVATE_API 5.9.0 + _ZN26QDeclarativeGeoMapItemView22exitTransitionFinishedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN26QDeclarativeGeoMapItemView22insertInstantiatedItemEiP26QDeclarativeGeoMapItemBase@Qt_5_PRIVATE_API 5.11.1 _ZN26QDeclarativeGeoMapItemView23removeInstantiatedItemsEv@Qt_5_PRIVATE_API 5.9.0 - _ZN26QDeclarativeGeoMapItemView28terminateOngoingRepopulationEv@Qt_5_PRIVATE_API 5.9.0 _ZN26QDeclarativeGeoMapItemView6setMapEP18QDeclarativeGeoMap@Qt_5_PRIVATE_API 5.9.0 + _ZN26QDeclarativeGeoMapItemView8initItemEiP7QObject@Qt_5_PRIVATE_API 5.11.0 _ZN26QDeclarativeGeoMapItemView8setModelERK8QVariant@Qt_5_PRIVATE_API 5.9.0 _ZN26QDeclarativeGeoMapItemViewC1EP10QQuickItem@Qt_5_PRIVATE_API 5.9.0 _ZN26QDeclarativeGeoMapItemViewC2EP10QQuickItem@Qt_5_PRIVATE_API 5.9.0 @@ -1448,11 +1951,44 @@ _ZN26QDeclarativePolygonMapItemD0Ev@Qt_5_PRIVATE_API 5.9.0 _ZN26QDeclarativePolygonMapItemD1Ev@Qt_5_PRIVATE_API 5.9.0 _ZN26QDeclarativePolygonMapItemD2Ev@Qt_5_PRIVATE_API 5.9.0 + _ZN26QGeoManeuverPrivateDefault11setPositionERK14QGeoCoordinate@Qt_5_PRIVATE_API 5.11.0 + _ZN26QGeoManeuverPrivateDefault11setWaypointERK14QGeoCoordinate@Qt_5_PRIVATE_API 5.11.0 + _ZN26QGeoManeuverPrivateDefault12setDirectionEN12QGeoManeuver20InstructionDirectionE@Qt_5_PRIVATE_API 5.11.0 + _ZN26QGeoManeuverPrivateDefault21setExtendedAttributesERK4QMapI7QString8QVariantE@Qt_5_PRIVATE_API 5.11.0 + _ZN26QGeoManeuverPrivateDefault24setTimeToNextInstructionEi@Qt_5_PRIVATE_API 5.11.0 + _ZN26QGeoManeuverPrivateDefault28setDistanceToNextInstructionEd@Qt_5_PRIVATE_API 5.11.0 + _ZN26QGeoManeuverPrivateDefault5cloneEv@Qt_5_PRIVATE_API 5.11.0 + _ZN26QGeoManeuverPrivateDefault5setIdE7QString@Qt_5_PRIVATE_API 5.11.0 + _ZN26QGeoManeuverPrivateDefault7setTextERK7QString@Qt_5_PRIVATE_API 5.11.0 + _ZN26QGeoManeuverPrivateDefault8setValidEb@Qt_5_PRIVATE_API 5.11.0 + _ZN26QGeoManeuverPrivateDefaultC1ERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZN26QGeoManeuverPrivateDefaultC1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN26QGeoManeuverPrivateDefaultC2ERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZN26QGeoManeuverPrivateDefaultC2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN26QGeoManeuverPrivateDefaultD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN26QGeoManeuverPrivateDefaultD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN26QGeoManeuverPrivateDefaultD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN26QGeoMapViewportChangeEventC1ERKS_@Qt_5_PRIVATE_API 5.9.0 _ZN26QGeoMapViewportChangeEventC1Ev@Qt_5_PRIVATE_API 5.9.0 _ZN26QGeoMapViewportChangeEventC2ERKS_@Qt_5_PRIVATE_API 5.9.0 _ZN26QGeoMapViewportChangeEventC2Ev@Qt_5_PRIVATE_API 5.9.0 _ZN26QGeoMapViewportChangeEventaSERKS_@Qt_5_PRIVATE_API 5.9.0 + _ZN26QMapCircleObjectPrivateQSG14setBorderColorERK6QColor@Qt_5_PRIVATE_API 5.11.0 + _ZN26QMapCircleObjectPrivateQSG14setBorderWidthEd@Qt_5_PRIVATE_API 5.11.0 + _ZN26QMapCircleObjectPrivateQSG14updateGeometryEv@Qt_5_PRIVATE_API 5.11.0 + _ZN26QMapCircleObjectPrivateQSG16updateCirclePathEv@Qt_5_PRIVATE_API 5.11.0 + _ZN26QMapCircleObjectPrivateQSG19updateMapObjectNodeEP7QSGNodePP11VisibleNodeS1_P12QQuickWindow@Qt_5_PRIVATE_API 5.11.0 + _ZN26QMapCircleObjectPrivateQSG5cloneEv@Qt_5_PRIVATE_API 5.11.0 + _ZN26QMapCircleObjectPrivateQSG8setColorERK6QColor@Qt_5_PRIVATE_API 5.11.0 + _ZN26QMapCircleObjectPrivateQSG9setCenterERK14QGeoCoordinate@Qt_5_PRIVATE_API 5.11.0 + _ZN26QMapCircleObjectPrivateQSG9setRadiusEd@Qt_5_PRIVATE_API 5.11.0 + _ZN26QMapCircleObjectPrivateQSGC1EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN26QMapCircleObjectPrivateQSGC1ERK23QMapCircleObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZN26QMapCircleObjectPrivateQSGC2EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN26QMapCircleObjectPrivateQSGC2ERK23QMapCircleObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZN26QMapCircleObjectPrivateQSGD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN26QMapCircleObjectPrivateQSGD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN26QMapCircleObjectPrivateQSGD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN26QPlaceProposedSearchResult16setSearchRequestERK19QPlaceSearchRequest@Qt_5 5.6.0 _ZN26QPlaceProposedSearchResultC1ERK18QPlaceSearchResult@Qt_5 5.6.0 _ZN26QPlaceProposedSearchResultC1Ev@Qt_5 5.6.0 @@ -1546,6 +2082,7 @@ _ZN27QDeclarativePolylineMapItem32updateAfterLinePropertiesChangedEv@Qt_5_PRIVATE_API 5.9.0 _ZN27QDeclarativePolylineMapItem4lineEv@Qt_5_PRIVATE_API 5.9.0 _ZN27QDeclarativePolylineMapItem6setMapEP18QDeclarativeGeoMapP7QGeoMap@Qt_5_PRIVATE_API 5.9.0 + _ZN27QDeclarativePolylineMapItem7setPathERK8QGeoPath@Qt_5_PRIVATE_API 5.10.1 _ZN27QDeclarativePolylineMapItem7setPathERK8QJSValue@Qt_5_PRIVATE_API 5.9.0 _ZN27QDeclarativePolylineMapItemC1EP10QQuickItem@Qt_5_PRIVATE_API 5.9.0 _ZN27QDeclarativePolylineMapItemC2EP10QQuickItem@Qt_5_PRIVATE_API 5.9.0 @@ -1582,6 +2119,21 @@ _ZN27QDeclarativeSearchModelBaseD0Ev@Qt_5_PRIVATE_API 5.9.0 _ZN27QDeclarativeSearchModelBaseD1Ev@Qt_5_PRIVATE_API 5.9.0 _ZN27QDeclarativeSearchModelBaseD2Ev@Qt_5_PRIVATE_API 5.9.0 + _ZN27QMapPolygonObjectPrivateQSG11projectPathEv@Qt_5_PRIVATE_API 5.11.0 + _ZN27QMapPolygonObjectPrivateQSG12setFillColorERK6QColor@Qt_5_PRIVATE_API 5.11.0 + _ZN27QMapPolygonObjectPrivateQSG14setBorderColorERK6QColor@Qt_5_PRIVATE_API 5.11.0 + _ZN27QMapPolygonObjectPrivateQSG14setBorderWidthEd@Qt_5_PRIVATE_API 5.11.0 + _ZN27QMapPolygonObjectPrivateQSG14updateGeometryEv@Qt_5_PRIVATE_API 5.11.0 + _ZN27QMapPolygonObjectPrivateQSG19updateMapObjectNodeEP7QSGNodePP11VisibleNodeS1_P12QQuickWindow@Qt_5_PRIVATE_API 5.11.0 + _ZN27QMapPolygonObjectPrivateQSG5cloneEv@Qt_5_PRIVATE_API 5.11.0 + _ZN27QMapPolygonObjectPrivateQSG7setPathERK5QListI14QGeoCoordinateE@Qt_5_PRIVATE_API 5.11.0 + _ZN27QMapPolygonObjectPrivateQSGC1EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN27QMapPolygonObjectPrivateQSGC1ERK24QMapPolygonObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZN27QMapPolygonObjectPrivateQSGC2EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN27QMapPolygonObjectPrivateQSGC2ERK24QMapPolygonObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZN27QMapPolygonObjectPrivateQSGD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN27QMapPolygonObjectPrivateQSGD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN27QMapPolygonObjectPrivateQSGD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN27QPlaceMatchReplyUnsupported11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.6.0 _ZN27QPlaceMatchReplyUnsupported11qt_metacastEPKc@Qt_5_PRIVATE_API 5.6.0 _ZN27QPlaceMatchReplyUnsupported16staticMetaObjectE@Qt_5_PRIVATE_API 5.6.0 @@ -1594,9 +2146,8 @@ _ZN27QPlaceSearchSuggestionReplyD0Ev@Qt_5 5.6.0 _ZN27QPlaceSearchSuggestionReplyD1Ev@Qt_5 5.6.0 _ZN27QPlaceSearchSuggestionReplyD2Ev@Qt_5 5.6.0 - _ZN28MapItemViewDelegateIncubator13statusChangedEN13QQmlIncubator6StatusE@Qt_5_PRIVATE_API 5.9.0 - _ZN28MapItemViewDelegateIncubatorC1EP26QDeclarativeGeoMapItemViewP34QDeclarativeGeoMapItemViewItemDatab@Qt_5_PRIVATE_API 5.9.0 - _ZN28MapItemViewDelegateIncubatorC2EP26QDeclarativeGeoMapItemViewP34QDeclarativeGeoMapItemViewItemDatab@Qt_5_PRIVATE_API 5.9.0 + _ZN28QDeclarativeNavigatorPrivateC1EP22QParameterizableObject@Qt_5_PRIVATE_API 5.11.0 + _ZN28QDeclarativeNavigatorPrivateC2EP22QParameterizableObject@Qt_5_PRIVATE_API 5.11.0 _ZN28QDeclarativeRectangleMapItem10setTopLeftERK14QGeoCoordinate@Qt_5_PRIVATE_API 5.9.0 _ZN28QDeclarativeRectangleMapItem10updatePathEv@Qt_5_PRIVATE_API 5.9.0 _ZN28QDeclarativeRectangleMapItem11bottomRightEv@Qt_5_PRIVATE_API 5.9.0 @@ -1621,6 +2172,39 @@ _ZN28QDeclarativeRectangleMapItemD0Ev@Qt_5_PRIVATE_API 5.9.0 _ZN28QDeclarativeRectangleMapItemD1Ev@Qt_5_PRIVATE_API 5.9.0 _ZN28QDeclarativeRectangleMapItemD2Ev@Qt_5_PRIVATE_API 5.9.0 + _ZN28QMapIconObjectPrivateDefault10setContentERK8QVariant@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapIconObjectPrivateDefault13setCoordinateERK14QGeoCoordinate@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapIconObjectPrivateDefault5cloneEv@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapIconObjectPrivateDefault7setSizeERK6QSizeF@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapIconObjectPrivateDefaultC1EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapIconObjectPrivateDefaultC1ERK21QMapIconObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapIconObjectPrivateDefaultC2EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapIconObjectPrivateDefaultC2ERK21QMapIconObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapIconObjectPrivateDefaultD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapIconObjectPrivateDefaultD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapIconObjectPrivateDefaultD2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapObjectViewPrivateDefault5cloneEv@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapObjectViewPrivateDefaultC1EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapObjectViewPrivateDefaultC1ERK21QMapObjectViewPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapObjectViewPrivateDefaultC2EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapObjectViewPrivateDefaultC2ERK21QMapObjectViewPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapObjectViewPrivateDefaultD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapObjectViewPrivateDefaultD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapObjectViewPrivateDefaultD2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapPolylineObjectPrivateQSG11projectPathEv@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapPolylineObjectPrivateQSG14updateGeometryEv@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapPolylineObjectPrivateQSG19updateMapObjectNodeEP7QSGNodePP11VisibleNodeS1_P12QQuickWindow@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapPolylineObjectPrivateQSG5cloneEv@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapPolylineObjectPrivateQSG7setPathERK5QListI14QGeoCoordinateE@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapPolylineObjectPrivateQSG8setColorERK6QColor@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapPolylineObjectPrivateQSG8setWidthEd@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapPolylineObjectPrivateQSGC1EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapPolylineObjectPrivateQSGC1ERK25QMapPolylineObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapPolylineObjectPrivateQSGC2EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapPolylineObjectPrivateQSGC2ERK25QMapPolylineObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapPolylineObjectPrivateQSGD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapPolylineObjectPrivateQSGD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN28QMapPolylineObjectPrivateQSGD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN28QPlaceSearchReplyUnsupported11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.6.0 _ZN28QPlaceSearchReplyUnsupported11qt_metacastEPKc@Qt_5_PRIVATE_API 5.6.0 _ZN28QPlaceSearchReplyUnsupported16staticMetaObjectE@Qt_5_PRIVATE_API 5.6.0 @@ -1744,6 +2328,32 @@ _ZN30QDeclarativeGeoServiceProviderD0Ev@Qt_5_PRIVATE_API 5.9.0 _ZN30QDeclarativeGeoServiceProviderD1Ev@Qt_5_PRIVATE_API 5.9.0 _ZN30QDeclarativeGeoServiceProviderD2Ev@Qt_5_PRIVATE_API 5.9.0 + _ZN30QGeoRouteSegmentPrivateDefault11setDistanceEd@Qt_5_PRIVATE_API 5.11.0 + _ZN30QGeoRouteSegmentPrivateDefault11setManeuverERK12QGeoManeuver@Qt_5_PRIVATE_API 5.11.0 + _ZN30QGeoRouteSegmentPrivateDefault13setTravelTimeEi@Qt_5_PRIVATE_API 5.11.0 + _ZN30QGeoRouteSegmentPrivateDefault5cloneEv@Qt_5_PRIVATE_API 5.11.0 + _ZN30QGeoRouteSegmentPrivateDefault7setPathERK5QListI14QGeoCoordinateE@Qt_5_PRIVATE_API 5.11.0 + _ZN30QGeoRouteSegmentPrivateDefault8setValidEb@Qt_5_PRIVATE_API 5.11.0 + _ZN30QGeoRouteSegmentPrivateDefaultC1ERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZN30QGeoRouteSegmentPrivateDefaultC1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN30QGeoRouteSegmentPrivateDefaultC2ERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZN30QGeoRouteSegmentPrivateDefaultC2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN30QGeoRouteSegmentPrivateDefaultD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN30QGeoRouteSegmentPrivateDefaultD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN30QGeoRouteSegmentPrivateDefaultD2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN30QMapCircleObjectPrivateDefault14setBorderColorERK6QColor@Qt_5_PRIVATE_API 5.11.0 + _ZN30QMapCircleObjectPrivateDefault14setBorderWidthEd@Qt_5_PRIVATE_API 5.11.0 + _ZN30QMapCircleObjectPrivateDefault5cloneEv@Qt_5_PRIVATE_API 5.11.0 + _ZN30QMapCircleObjectPrivateDefault8setColorERK6QColor@Qt_5_PRIVATE_API 5.11.0 + _ZN30QMapCircleObjectPrivateDefault9setCenterERK14QGeoCoordinate@Qt_5_PRIVATE_API 5.11.0 + _ZN30QMapCircleObjectPrivateDefault9setRadiusEd@Qt_5_PRIVATE_API 5.11.0 + _ZN30QMapCircleObjectPrivateDefaultC1EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN30QMapCircleObjectPrivateDefaultC1ERK23QMapCircleObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZN30QMapCircleObjectPrivateDefaultC2EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN30QMapCircleObjectPrivateDefaultC2ERK23QMapCircleObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZN30QMapCircleObjectPrivateDefaultD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN30QMapCircleObjectPrivateDefaultD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN30QMapCircleObjectPrivateDefaultD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN31QDeclarativePlaceEditorialModel11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.9.0 _ZN31QDeclarativePlaceEditorialModel11qt_metacastEPKc@Qt_5_PRIVATE_API 5.9.0 _ZN31QDeclarativePlaceEditorialModel16staticMetaObjectE@Qt_5_PRIVATE_API 5.9.0 @@ -1752,13 +2362,44 @@ _ZN31QDeclarativePlaceEditorialModelD0Ev@Qt_5_PRIVATE_API 5.9.0 _ZN31QDeclarativePlaceEditorialModelD1Ev@Qt_5_PRIVATE_API 5.9.0 _ZN31QDeclarativePlaceEditorialModelD2Ev@Qt_5_PRIVATE_API 5.9.0 + _ZN31QMapPolygonObjectPrivateDefault12setFillColorERK6QColor@Qt_5_PRIVATE_API 5.11.0 + _ZN31QMapPolygonObjectPrivateDefault14setBorderColorERK6QColor@Qt_5_PRIVATE_API 5.11.0 + _ZN31QMapPolygonObjectPrivateDefault14setBorderWidthEd@Qt_5_PRIVATE_API 5.11.0 + _ZN31QMapPolygonObjectPrivateDefault5cloneEv@Qt_5_PRIVATE_API 5.11.0 + _ZN31QMapPolygonObjectPrivateDefault7setPathERK5QListI14QGeoCoordinateE@Qt_5_PRIVATE_API 5.11.0 + _ZN31QMapPolygonObjectPrivateDefaultC1EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN31QMapPolygonObjectPrivateDefaultC1ERK24QMapPolygonObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZN31QMapPolygonObjectPrivateDefaultC2EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN31QMapPolygonObjectPrivateDefaultC2ERK24QMapPolygonObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZN31QMapPolygonObjectPrivateDefaultD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN31QMapPolygonObjectPrivateDefaultD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN31QMapPolygonObjectPrivateDefaultD2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN32QMapPolylineObjectPrivateDefault5cloneEv@Qt_5_PRIVATE_API 5.11.0 + _ZN32QMapPolylineObjectPrivateDefault7setPathERK5QListI14QGeoCoordinateE@Qt_5_PRIVATE_API 5.11.0 + _ZN32QMapPolylineObjectPrivateDefault8setColorERK6QColor@Qt_5_PRIVATE_API 5.11.0 + _ZN32QMapPolylineObjectPrivateDefault8setWidthEd@Qt_5_PRIVATE_API 5.11.0 + _ZN32QMapPolylineObjectPrivateDefaultC1EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN32QMapPolylineObjectPrivateDefaultC1ERK25QMapPolylineObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZN32QMapPolylineObjectPrivateDefaultC2EP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZN32QMapPolylineObjectPrivateDefaultC2ERK25QMapPolylineObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZN32QMapPolylineObjectPrivateDefaultD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN32QMapPolylineObjectPrivateDefaultD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN32QMapPolylineObjectPrivateDefaultD2Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN33QDeclarativeGeoCameraCapabilities11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.10.1 + _ZN33QDeclarativeGeoCameraCapabilities11qt_metacastEPKc@Qt_5_PRIVATE_API 5.10.1 + _ZN33QDeclarativeGeoCameraCapabilities16staticMetaObjectE@Qt_5_PRIVATE_API 5.10.1 + _ZN33QDeclarativeGeoCameraCapabilitiesC1ERK22QGeoCameraCapabilitiesP7QObject@Qt_5_PRIVATE_API 5.10.1 + _ZN33QDeclarativeGeoCameraCapabilitiesC2ERK22QGeoCameraCapabilitiesP7QObject@Qt_5_PRIVATE_API 5.10.1 + _ZN33QDeclarativeGeoCameraCapabilitiesD0Ev@Qt_5_PRIVATE_API 5.10.1 + _ZN33QDeclarativeGeoCameraCapabilitiesD1Ev@Qt_5_PRIVATE_API 5.10.1 + _ZN33QDeclarativeGeoCameraCapabilitiesD2Ev@Qt_5_PRIVATE_API 5.10.1 _ZN33QDeclarativeGeoMapCopyrightNotice10connectMapEv@Qt_5_PRIVATE_API 5.9.1 _ZN33QDeclarativeGeoMapCopyrightNotice11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.9.0 _ZN33QDeclarativeGeoMapCopyrightNotice11qt_metacastEPKc@Qt_5_PRIVATE_API 5.9.0 _ZN33QDeclarativeGeoMapCopyrightNotice12setMapSourceEP18QDeclarativeGeoMap@Qt_5_PRIVATE_API 5.9.0 _ZN33QDeclarativeGeoMapCopyrightNotice13linkActivatedERK7QString@Qt_5_PRIVATE_API 5.9.0 _ZN33QDeclarativeGeoMapCopyrightNotice13setStyleSheetERK7QString@Qt_5_PRIVATE_API 5.9.0 - _ZN33QDeclarativeGeoMapCopyrightNotice14setCopyrightsZEd@Qt_5_PRIVATE_API 5.9.5 + _ZN33QDeclarativeGeoMapCopyrightNotice14setCopyrightsZEd@Qt_5_PRIVATE_API 5.10.1 _ZN33QDeclarativeGeoMapCopyrightNotice15createCopyrightEv@Qt_5_PRIVATE_API 5.9.0 _ZN33QDeclarativeGeoMapCopyrightNotice15mousePressEventEP11QMouseEvent@Qt_5_PRIVATE_API 5.9.0 _ZN33QDeclarativeGeoMapCopyrightNotice16mapSourceChangedEv@Qt_5_PRIVATE_API 5.9.0 @@ -1771,7 +2412,7 @@ _ZN33QDeclarativeGeoMapCopyrightNotice20setCopyrightsVisibleEb@Qt_5_PRIVATE_API 5.9.0 _ZN33QDeclarativeGeoMapCopyrightNotice22backgroundColorChangedERK6QColor@Qt_5_PRIVATE_API 5.9.0 _ZN33QDeclarativeGeoMapCopyrightNotice22rasterizeHtmlAndUpdateEv@Qt_5_PRIVATE_API 5.9.0 - _ZN33QDeclarativeGeoMapCopyrightNotice24copyrightsVisibleChangedEv@Qt_5_PRIVATE_API 5.9.5 + _ZN33QDeclarativeGeoMapCopyrightNotice24copyrightsVisibleChangedEv@Qt_5_PRIVATE_API 5.10.1 _ZN33QDeclarativeGeoMapCopyrightNotice29onCopyrightsStyleSheetChangedERK7QString@Qt_5_PRIVATE_API 5.9.0 _ZN33QDeclarativeGeoMapCopyrightNotice5paintEP8QPainter@Qt_5_PRIVATE_API 5.9.0 _ZN33QDeclarativeGeoMapCopyrightNotice9mapSourceEv@Qt_5_PRIVATE_API 5.9.0 @@ -1865,20 +2506,25 @@ _ZN6QPlace17setContactDetailsERK7QString5QListI19QPlaceContactDetailE@Qt_5 5.6.0 _ZN6QPlace17setDetailsFetchedEb@Qt_5 5.6.0 _ZN6QPlace19appendContactDetailERK7QStringRK19QPlaceContactDetail@Qt_5 5.6.0 + _ZN6QPlace1dEv@Qt_5 5.11.0 _ZN6QPlace20removeContactDetailsERK7QString@Qt_5 5.6.0 _ZN6QPlace20setExtendedAttributeERK7QStringRK15QPlaceAttribute@Qt_5 5.6.0 _ZN6QPlace20setTotalContentCountEN13QPlaceContent4TypeEi@Qt_5 5.6.0 _ZN6QPlace23removeExtendedAttributeERK7QString@Qt_5 5.6.0 _ZN6QPlace7setIconERK10QPlaceIcon@Qt_5 5.6.0 _ZN6QPlace7setNameERK7QString@Qt_5 5.6.0 + _ZN6QPlaceC1ERK18QSharedDataPointerI13QPlacePrivateE@Qt_5_PRIVATE_API 5.11.0 _ZN6QPlaceC1ERKS_@Qt_5 5.6.0 _ZN6QPlaceC1Ev@Qt_5 5.6.0 + _ZN6QPlaceC2ERK18QSharedDataPointerI13QPlacePrivateE@Qt_5_PRIVATE_API 5.11.0 _ZN6QPlaceC2ERKS_@Qt_5 5.6.0 _ZN6QPlaceC2Ev@Qt_5 5.6.0 _ZN6QPlaceD1Ev@Qt_5 5.6.0 _ZN6QPlaceD2Ev@Qt_5 5.6.0 _ZN6QPlaceaSERKS_@Qt_5 5.6.0 _ZN7QGeoMap10addMapItemEP26QDeclarativeGeoMapItemBase@Qt_5_PRIVATE_API 5.9.0 + _ZN7QGeoMap10setBearingEdRK14QGeoCoordinate@Qt_5_PRIVATE_API 5.11.0 + _ZN7QGeoMap11handleEventEP6QEvent@Qt_5_PRIVATE_API 5.11.0 _ZN7QGeoMap11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.6.0 _ZN7QGeoMap11qt_metacastEPKc@Qt_5_PRIVATE_API 5.6.0 _ZN7QGeoMap12addParameterEP16QGeoMapParameter@Qt_5_PRIVATE_API 5.9.0 @@ -1888,6 +2534,7 @@ _ZN7QGeoMap13setCameraDataERK14QGeoCameraData@Qt_5_PRIVATE_API 5.6.0 _ZN7QGeoMap13sgNodeChangedEv@Qt_5_PRIVATE_API 5.7.0 _ZN7QGeoMap15clearParametersEv@Qt_5_PRIVATE_API 5.9.0 + _ZN7QGeoMap15removeMapObjectEP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 _ZN7QGeoMap15removeParameterEP16QGeoMapParameter@Qt_5_PRIVATE_API 5.9.0 _ZN7QGeoMap15setViewportSizeERK5QSize@Qt_5_PRIVATE_API 5.9.0 _ZN7QGeoMap16setActiveMapTypeE11QGeoMapType@Qt_5_PRIVATE_API 5.6.0 @@ -1895,11 +2542,15 @@ _ZN7QGeoMap17cameraDataChangedERK14QGeoCameraData@Qt_5_PRIVATE_API 5.6.0 _ZN7QGeoMap17copyrightsChangedERK6QImage@Qt_5_PRIVATE_API 5.6.0 _ZN7QGeoMap17copyrightsChangedERK7QString@Qt_5_PRIVATE_API 5.6.0 - _ZN7QGeoMap19setCopyrightVisibleEb@Qt_5_PRIVATE_API 5.9.5 + _ZN7QGeoMap19setAcceptedGesturesEbbbbb@Qt_5_PRIVATE_API 5.11.0 + _ZN7QGeoMap19setCopyrightVisibleEb@Qt_5_PRIVATE_API 5.10.1 _ZN7QGeoMap20activeMapTypeChangedEv@Qt_5_PRIVATE_API 5.6.0 _ZN7QGeoMap21setCameraCapabilitiesERK22QGeoCameraCapabilities@Qt_5_PRIVATE_API 5.9.0 + _ZN7QGeoMap23anchorCoordinateToPointERK14QGeoCoordinateRK7QPointF@Qt_5_PRIVATE_API 5.11.0 _ZN7QGeoMap25cameraCapabilitiesChangedERK22QGeoCameraCapabilities@Qt_5_PRIVATE_API 5.9.0 + _ZN7QGeoMap25fitViewportToGeoRectangleERK13QGeoRectangle@Qt_5_PRIVATE_API 5.11.0 _ZN7QGeoMap27copyrightsStyleSheetChangedERK7QString@Qt_5_PRIVATE_API 5.9.0 + _ZN7QGeoMap29createMapObjectImplementationEP13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 _ZN7QGeoMap9clearDataEv@Qt_5_PRIVATE_API 5.6.0 _ZN7QGeoMapC1ER14QGeoMapPrivateP7QObject@Qt_5_PRIVATE_API 5.6.0 _ZN7QGeoMapC2ER14QGeoMapPrivateP7QObject@Qt_5_PRIVATE_API 5.6.0 @@ -1911,11 +2562,14 @@ _ZN9QGeoRoute11setDistanceEd@Qt_5 5.6.0 _ZN9QGeoRoute13setTravelModeEN16QGeoRouteRequest10TravelModeE@Qt_5 5.6.0 _ZN9QGeoRoute13setTravelTimeEi@Qt_5 5.6.0 + _ZN9QGeoRoute1dEv@Qt_5 5.11.0 _ZN9QGeoRoute20setFirstRouteSegmentERK16QGeoRouteSegment@Qt_5 5.6.0 _ZN9QGeoRoute7setPathERK5QListI14QGeoCoordinateE@Qt_5 5.6.0 _ZN9QGeoRoute9setBoundsERK13QGeoRectangle@Qt_5 5.6.0 + _ZN9QGeoRouteC1ERK28QExplicitlySharedDataPointerI16QGeoRoutePrivateE@Qt_5_PRIVATE_API 5.11.0 _ZN9QGeoRouteC1ERKS_@Qt_5 5.6.0 _ZN9QGeoRouteC1Ev@Qt_5 5.6.0 + _ZN9QGeoRouteC2ERK28QExplicitlySharedDataPointerI16QGeoRoutePrivateE@Qt_5_PRIVATE_API 5.11.0 _ZN9QGeoRouteC2ERKS_@Qt_5 5.6.0 _ZN9QGeoRouteC2Ev@Qt_5 5.6.0 _ZN9QGeoRouteD1Ev@Qt_5 5.6.0 @@ -1931,11 +2585,13 @@ _ZNK10QPlaceUsereqERKS_@Qt_5 5.6.0 _ZNK11QGeoMapType10pluginNameEv@Qt_5_PRIVATE_API 5.9.0 _ZNK11QGeoMapType11descriptionEv@Qt_5_PRIVATE_API 5.6.0 + _ZNK11QGeoMapType18cameraCapabilitiesEv@Qt_5_PRIVATE_API 5.10.1 _ZNK11QGeoMapType4nameEv@Qt_5_PRIVATE_API 5.6.0 _ZNK11QGeoMapType5mapIdEv@Qt_5_PRIVATE_API 5.6.0 _ZNK11QGeoMapType5nightEv@Qt_5_PRIVATE_API 5.6.0 _ZNK11QGeoMapType5styleEv@Qt_5_PRIVATE_API 5.6.0 _ZNK11QGeoMapType6mobileEv@Qt_5_PRIVATE_API 5.6.0 + _ZNK11QGeoMapType8metadataEv@Qt_5_PRIVATE_API 5.10.1 _ZNK11QGeoMapTypeeqERKS_@Qt_5_PRIVATE_API 5.6.0 _ZNK11QGeoMapTypeneERKS_@Qt_5_PRIVATE_API 5.6.0 _ZNK11QPlaceImage3urlEv@Qt_5 5.6.0 @@ -1946,7 +2602,10 @@ _ZNK11QPlaceReply11errorStringEv@Qt_5 5.6.0 _ZNK11QPlaceReply4typeEv@Qt_5 5.6.0 _ZNK11QPlaceReply5errorEv@Qt_5 5.6.0 + _ZNK11VisibleNode14subtreeBlockedEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK11VisibleNode7visibleEv@Qt_5_PRIVATE_API 5.11.0 _ZNK12QGeoManeuver15instructionTextEv@Qt_5 5.6.0 + _ZNK12QGeoManeuver18extendedAttributesEv@Qt_5 5.11.0 _ZNK12QGeoManeuver21timeToNextInstructionEv@Qt_5 5.6.0 _ZNK12QGeoManeuver25distanceToNextInstructionEv@Qt_5 5.6.0 _ZNK12QGeoManeuver7isValidEv@Qt_5 5.6.0 @@ -1964,6 +2623,7 @@ _ZNK12QGeoTileSpeceqERKS_@Qt_5_PRIVATE_API 5.6.0 _ZNK12QGeoTileSpecltERKS_@Qt_5_PRIVATE_API 5.6.0 _ZNK12QGeoTiledMap10metaObjectEv@Qt_5_PRIVATE_API 5.6.0 + _ZNK12QGeoTiledMap12capabilitiesEv@Qt_5_PRIVATE_API 5.11.0 _ZNK12QPlaceResult11isSponsoredEv@Qt_5 5.6.0 _ZNK12QPlaceResult5placeEv@Qt_5 5.6.0 _ZNK12QPlaceResult8distanceEv@Qt_5 5.6.0 @@ -1981,6 +2641,16 @@ _ZNK13QGeoCodeReply6offsetEv@Qt_5 5.6.0 _ZNK13QGeoCodeReply8viewportEv@Qt_5 5.6.0 _ZNK13QGeoCodeReply9locationsEv@Qt_5 5.6.0 + _ZNK13QGeoMapObject10metaObjectEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK13QGeoMapObject11implementedEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK13QGeoMapObject14implementationEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK13QGeoMapObject20geoMapObjectChildrenEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK13QGeoMapObject3mapEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK13QGeoMapObject4typeEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK13QGeoMapObject7visibleEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK13QGeoMapObject8featuresEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK13QGeoMapObjecteqERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZNK13QGeoMapObjectneERKS_@Qt_5_PRIVATE_API 5.11.0 _ZNK13QPlaceContent11attributionEv@Qt_5 5.6.0 _ZNK13QPlaceContent4typeEv@Qt_5 5.6.0 _ZNK13QPlaceContent4userEv@Qt_5 5.6.0 @@ -2004,6 +2674,9 @@ _ZNK13QPlaceManager6searchERK19QPlaceSearchRequest@Qt_5 5.6.0 _ZNK13QPlaceManager7localesEv@Qt_5 5.6.0 _ZNK13QPlaceManager8categoryERK7QString@Qt_5 5.6.0 + _ZNK13QPlacePrivate17extendedAttributeERK7QString@Qt_5_PRIVATE_API 5.11.0 + _ZNK13QPlacePrivate7isEmptyEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK13QPlacePrivateeqERKS_@Qt_5_PRIVATE_API 5.11.0 _ZNK13QPlaceRatings5countEv@Qt_5 5.6.0 _ZNK13QPlaceRatings7averageEv@Qt_5 5.6.0 _ZNK13QPlaceRatings7isEmptyEv@Qt_5 5.6.0 @@ -2017,15 +2690,29 @@ _ZNK14QGeoCameraData9zoomLevelEv@Qt_5_PRIVATE_API 5.6.0 _ZNK14QGeoCameraDataeqERKS_@Qt_5_PRIVATE_API 5.6.0 _ZNK14QGeoCameraDataneERKS_@Qt_5_PRIVATE_API 5.6.0 - _ZNK14QGeoMapPrivate16copyrightVisibleEv@Qt_5_PRIVATE_API 5.9.5 + _ZNK14QGeoMapPrivate10mapObjectsEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK14QGeoMapPrivate16copyrightVisibleEv@Qt_5_PRIVATE_API 5.10.1 _ZNK14QGeoMapPrivate18cameraCapabilitiesEv@Qt_5_PRIVATE_API 5.9.0 _ZNK14QGeoMapPrivate21supportedMapItemTypesEv@Qt_5_PRIVATE_API 5.9.0 + _ZNK14QGeoMapPrivate27maximumCenterLatitudeAtZoomERK14QGeoCameraData@Qt_5_PRIVATE_API 5.11.0 + _ZNK14QGeoMapPrivate8mapWidthEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK14QGeoMapPrivate9mapHeightEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK14QGeoProjection13visibleRegionEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK14QGeoProjection23anchorCoordinateToPointERK14QGeoCoordinateRK7QPointF@Qt_5_PRIVATE_API 5.10.1 _ZNK14QGeoRouteReply10isFinishedEv@Qt_5 5.6.0 _ZNK14QGeoRouteReply10metaObjectEv@Qt_5 5.6.0 _ZNK14QGeoRouteReply11errorStringEv@Qt_5 5.6.0 _ZNK14QGeoRouteReply5errorEv@Qt_5 5.6.0 _ZNK14QGeoRouteReply6routesEv@Qt_5 5.6.0 _ZNK14QGeoRouteReply7requestEv@Qt_5 5.6.0 + _ZNK14QMapIconObject10coordinateEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK14QMapIconObject10metaObjectEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK14QMapIconObject4sizeEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK14QMapIconObject7contentEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK14QMapObjectView10metaObjectEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK14QMapObjectView20geoMapObjectChildrenEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK14QMapObjectView5modelEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK14QMapObjectView8delegateEv@Qt_5_PRIVATE_API 5.11.0 _ZNK14QPlaceCategory10categoryIdEv@Qt_5 5.6.0 _ZNK14QPlaceCategory10visibilityEv@Qt_5 5.6.0 _ZNK14QPlaceCategory4iconEv@Qt_5 5.6.0 @@ -2046,6 +2733,10 @@ _ZNK15QGeoRouteParser10requestUrlERK16QGeoRouteRequestRK7QString@Qt_5_PRIVATE_API 5.7.1 _ZNK15QGeoTileFetcher10metaObjectEv@Qt_5_PRIVATE_API 5.6.0 _ZNK15QGeoTileFetcher11initializedEv@Qt_5_PRIVATE_API 5.7.1 + _ZNK15QGeoTileFetcher15fetchingEnabledEv@Qt_5_PRIVATE_API 5.10.1 + _ZNK15QMapRouteObject10metaObjectEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK15QMapRouteObject5routeEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK15QMapRouteObject8geoRouteEv@Qt_5_PRIVATE_API 5.11.0 _ZNK15QPlaceAttribute4textEv@Qt_5 5.6.0 _ZNK15QPlaceAttribute5labelEv@Qt_5 5.6.0 _ZNK15QPlaceAttribute7isEmptyEv@Qt_5 5.6.0 @@ -2055,14 +2746,29 @@ _ZNK15QPlaceEditorial5titleEv@Qt_5 5.6.0 _ZNK15QPlaceEditorial8languageEv@Qt_5 5.6.0 _ZNK16QGeoMapParameter10metaObjectEv@Qt_5_PRIVATE_API 5.9.0 + _ZNK16QGeoMapParameter12toVariantMapEv@Qt_5_PRIVATE_API 5.11.0 _ZNK16QGeoMapParameter4typeEv@Qt_5_PRIVATE_API 5.9.0 + _ZNK16QGeoMapParametereqERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZNK16QGeoRoutePrivate10travelModeEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK16QGeoRoutePrivate10travelTimeEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK16QGeoRoutePrivate12firstSegmentEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK16QGeoRoutePrivate2idEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK16QGeoRoutePrivate4pathEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK16QGeoRoutePrivate6boundsEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK16QGeoRoutePrivate6equalsERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZNK16QGeoRoutePrivate7requestEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK16QGeoRoutePrivate8distanceEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK16QGeoRoutePrivate8metadataEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK16QGeoRoutePrivateeqERKS_@Qt_5_PRIVATE_API 5.11.0 _ZNK16QGeoRouteRequest11travelModesEv@Qt_5 5.6.0 _ZNK16QGeoRouteRequest12excludeAreasEv@Qt_5 5.6.0 _ZNK16QGeoRouteRequest12featureTypesEv@Qt_5 5.6.0 _ZNK16QGeoRouteRequest13featureWeightENS_11FeatureTypeE@Qt_5 5.6.0 _ZNK16QGeoRouteRequest13segmentDetailEv@Qt_5 5.6.0 _ZNK16QGeoRouteRequest14maneuverDetailEv@Qt_5 5.6.0 + _ZNK16QGeoRouteRequest15extraParametersEv@Qt_5 5.11.0 _ZNK16QGeoRouteRequest17routeOptimizationEv@Qt_5 5.6.0 + _ZNK16QGeoRouteRequest17waypointsMetadataEv@Qt_5 5.11.0 _ZNK16QGeoRouteRequest23numberAlternativeRoutesEv@Qt_5 5.6.0 _ZNK16QGeoRouteRequest9waypointsEv@Qt_5 5.6.0 _ZNK16QGeoRouteRequesteqERKS_@Qt_5 5.6.0 @@ -2075,6 +2781,11 @@ _ZNK16QGeoRouteSegment8maneuverEv@Qt_5 5.6.0 _ZNK16QGeoRouteSegmenteqERKS_@Qt_5 5.6.0 _ZNK16QGeoRouteSegmentneERKS_@Qt_5 5.6.0 + _ZNK16QGeoTiledMapLabs10metaObjectEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK16QMapCircleObject10metaObjectEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK16QMapCircleObject5colorEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK16QMapCircleObject6centerEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK16QMapCircleObject6radiusEv@Qt_5_PRIVATE_API 5.11.0 _ZNK16QPlaceMatchReply10metaObjectEv@Qt_5 5.6.0 _ZNK16QPlaceMatchReply4typeEv@Qt_5 5.6.0 _ZNK16QPlaceMatchReply6placesEv@Qt_5 5.6.0 @@ -2128,6 +2839,9 @@ _ZNK17QGeoTiledMapReply8tileSpecEv@Qt_5_PRIVATE_API 5.6.0 _ZNK17QGeoTiledMapScene10metaObjectEv@Qt_5_PRIVATE_API 5.7.0 _ZNK17QGeoTiledMapScene12visibleTilesEv@Qt_5_PRIVATE_API 5.7.0 + _ZNK17QMapPolygonObject10metaObjectEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK17QMapPolygonObject4pathEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK17QMapPolygonObject5colorEv@Qt_5_PRIVATE_API 5.11.0 _ZNK17QPlaceSearchReply10metaObjectEv@Qt_5 5.6.0 _ZNK17QPlaceSearchReply15nextPageRequestEv@Qt_5 5.6.0 _ZNK17QPlaceSearchReply19previousPageRequestEv@Qt_5 5.6.0 @@ -2148,8 +2862,9 @@ _ZNK18QDeclarativeGeoMap17copyrightsVisibleEv@Qt_5_PRIVATE_API 5.9.0 _ZNK18QDeclarativeGeoMap18maximumFieldOfViewEv@Qt_5_PRIVATE_API 5.9.0 _ZNK18QDeclarativeGeoMap18minimumFieldOfViewEv@Qt_5_PRIVATE_API 5.9.0 - _ZNK18QDeclarativeGeoMap24implicitMinimumZoomLevelEv@Qt_5_PRIVATE_API 5.9.5 - _ZNK18QDeclarativeGeoMap25effectiveMinimumZoomLevelEv@Qt_5_PRIVATE_API 5.9.5 + _ZNK18QDeclarativeGeoMap24implicitMinimumZoomLevelEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK18QDeclarativeGeoMap25effectiveMinimumZoomLevelEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK18QDeclarativeGeoMap3mapEv@Qt_5_PRIVATE_API 5.11.0 _ZNK18QDeclarativeGeoMap4tiltEv@Qt_5_PRIVATE_API 5.9.0 _ZNK18QDeclarativeGeoMap5colorEv@Qt_5_PRIVATE_API 5.9.0 _ZNK18QDeclarativeGeoMap5errorEv@Qt_5_PRIVATE_API 5.9.0 @@ -2175,6 +2890,17 @@ _ZNK18QGeoRoutingManager24supportedManeuverDetailsEv@Qt_5 5.6.0 _ZNK18QGeoRoutingManager27supportedRouteOptimizationsEv@Qt_5 5.6.0 _ZNK18QGeoRoutingManager6localeEv@Qt_5 5.6.0 + _ZNK18QMapPolylineObject10metaObjectEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK18QMapPolylineObject4pathEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK18QNavigationManager10metaObjectEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK18QNavigationManager10parametersEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK18QNavigationManager11managerNameEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK18QNavigationManager13isInitializedEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK18QNavigationManager14managerVersionEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK18QNavigationManager20declarativeNavigatorEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK18QNavigationManager5readyEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK18QNavigationManager6activeEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK18QNavigationManager6localeEv@Qt_5_PRIVATE_API 5.11.0 _ZNK18QPlaceContentReply10metaObjectEv@Qt_5 5.6.0 _ZNK18QPlaceContentReply10totalCountEv@Qt_5 5.6.0 _ZNK18QPlaceContentReply15nextPageRequestEv@Qt_5 5.6.0 @@ -2193,11 +2919,24 @@ _ZNK18QPlaceSearchResult4typeEv@Qt_5 5.6.0 _ZNK18QPlaceSearchResult5titleEv@Qt_5 5.6.0 _ZNK18QPlaceSearchResulteqERKS_@Qt_5 5.6.0 + _ZNK19MapItemGeometryNode16isSubtreeBlockedEv@Qt_5_PRIVATE_API 5.11.0 _ZNK19QDeclarativeRatings10metaObjectEv@Qt_5_PRIVATE_API 5.9.0 _ZNK19QDeclarativeRatings5countEv@Qt_5_PRIVATE_API 5.9.0 _ZNK19QDeclarativeRatings7averageEv@Qt_5_PRIVATE_API 5.9.0 _ZNK19QDeclarativeRatings7maximumEv@Qt_5_PRIVATE_API 5.9.0 _ZNK19QDeclarativeRatings7ratingsEv@Qt_5_PRIVATE_API 5.9.0 + _ZNK19QGeoManeuverPrivate18extendedAttributesEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK19QGeoManeuverPrivate21timeToNextInstructionEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK19QGeoManeuverPrivate25distanceToNextInstructionEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK19QGeoManeuverPrivate2idEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK19QGeoManeuverPrivate4textEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK19QGeoManeuverPrivate5validEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK19QGeoManeuverPrivate6equalsERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZNK19QGeoManeuverPrivate8positionEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK19QGeoManeuverPrivate8waypointEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK19QGeoManeuverPrivate9directionEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK19QGeoManeuverPrivateeqERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZNK19QGeoMapItemGeometry15allocateAndFillEP11QSGGeometry@Qt_5_PRIVATE_API 5.11.0 _ZNK19QGeoServiceProvider10metaObjectEv@Qt_5 5.6.0 _ZNK19QGeoServiceProvider11errorStringEv@Qt_5 5.6.0 _ZNK19QGeoServiceProvider12placeManagerEv@Qt_5 5.6.0 @@ -2208,6 +2947,8 @@ _ZNK19QGeoServiceProvider15routingFeaturesEv@Qt_5 5.6.0 _ZNK19QGeoServiceProvider16geocodingManagerEv@Qt_5 5.6.0 _ZNK19QGeoServiceProvider17geocodingFeaturesEv@Qt_5 5.6.0 + _ZNK19QGeoServiceProvider17navigationManagerEv@Qt_5 5.11.0 + _ZNK19QGeoServiceProvider18navigationFeaturesEv@Qt_5 5.11.0 _ZNK19QGeoServiceProvider5errorEv@Qt_5 5.6.0 _ZNK19QPlaceContactDetail5labelEv@Qt_5 5.6.0 _ZNK19QPlaceContactDetail5valueEv@Qt_5 5.6.0 @@ -2244,7 +2985,9 @@ _ZNK20QDeclarativeCategory6statusEv@Qt_5_PRIVATE_API 5.9.0 _ZNK20QDeclarativeGeoRoute10metaObjectEv@Qt_5_PRIVATE_API 5.9.0 _ZNK20QDeclarativeGeoRoute10travelTimeEv@Qt_5_PRIVATE_API 5.9.0 + _ZNK20QDeclarativeGeoRoute13segmentsCountEv@Qt_5_PRIVATE_API 5.11.0 _ZNK20QDeclarativeGeoRoute4pathEv@Qt_5_PRIVATE_API 5.9.0 + _ZNK20QDeclarativeGeoRoute5routeEv@Qt_5_PRIVATE_API 5.11.0 _ZNK20QDeclarativeGeoRoute6boundsEv@Qt_5_PRIVATE_API 5.9.0 _ZNK20QDeclarativeGeoRoute8distanceEv@Qt_5_PRIVATE_API 5.9.0 _ZNK20QDeclarativeSupplier10metaObjectEv@Qt_5_PRIVATE_API 5.9.0 @@ -2252,17 +2995,45 @@ _ZNK20QDeclarativeSupplier3urlEv@Qt_5_PRIVATE_API 5.9.0 _ZNK20QDeclarativeSupplier4iconEv@Qt_5_PRIVATE_API 5.9.0 _ZNK20QDeclarativeSupplier4nameEv@Qt_5_PRIVATE_API 5.9.0 + _ZNK20QGeoMapObjectPrivate10engineNameEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK20QGeoMapObjectPrivate4typeEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK20QGeoMapObjectPrivate6equalsERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZNK20QGeoMapObjectPrivate7visibleEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK20QGeoMapObjectPrivate8featuresEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK20QGeoMapObjectPrivateeqERKS_@Qt_5_PRIVATE_API 5.11.0 _ZNK20QPlaceContentRequest11contentTypeEv@Qt_5 5.6.0 _ZNK20QPlaceContentRequest14contentContextEv@Qt_5 5.6.0 _ZNK20QPlaceContentRequest5limitEv@Qt_5 5.6.0 _ZNK20QPlaceContentRequest7placeIdEv@Qt_5 5.6.0 _ZNK20QPlaceContentRequesteqERKS_@Qt_5 5.6.0 _ZNK20QPlaceContentRequestneERKS_@Qt_5 5.6.0 + _ZNK20QPlacePrivateDefault10categoriesEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK20QPlacePrivateDefault10visibilityEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK20QPlacePrivateDefault11attributionEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK20QPlacePrivateDefault14detailsFetchedEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK20QPlacePrivateDefault18extendedAttributesEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK20QPlacePrivateDefault4iconEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK20QPlacePrivateDefault4nameEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK20QPlacePrivateDefault7placeIdEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK20QPlacePrivateDefault7ratingsEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK20QPlacePrivateDefault8contactsEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK20QPlacePrivateDefault8locationEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK20QPlacePrivateDefault8supplierEv@Qt_5_PRIVATE_API 5.11.0 _ZNK21QAbstractGeoTileCache10metaObjectEv@Qt_5_PRIVATE_API 5.6.0 _ZNK21QAbstractGeoTileCache11memoryUsageEv@Qt_5_PRIVATE_API 5.6.0 _ZNK21QAbstractGeoTileCache12maxDiskUsageEv@Qt_5_PRIVATE_API 5.6.0 _ZNK21QAbstractGeoTileCache14maxMemoryUsageEv@Qt_5_PRIVATE_API 5.6.0 _ZNK21QAbstractGeoTileCache9diskUsageEv@Qt_5_PRIVATE_API 5.6.0 + _ZNK21QDeclarativeNavigator10metaObjectEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK21QDeclarativeNavigator12currentRouteEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK21QDeclarativeNavigator14currentSegmentEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK21QDeclarativeNavigator14navigatorReadyEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK21QDeclarativeNavigator14positionSourceEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK21QDeclarativeNavigator17navigationManagerEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK21QDeclarativeNavigator3mapEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK21QDeclarativeNavigator5routeEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK21QDeclarativeNavigator6activeEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK21QDeclarativeNavigator6pluginEv@Qt_5_PRIVATE_API 5.11.0 _ZNK21QDeclarativePlaceIcon10metaObjectEv@Qt_5_PRIVATE_API 5.9.0 _ZNK21QDeclarativePlaceIcon10parametersEv@Qt_5_PRIVATE_API 5.9.0 _ZNK21QDeclarativePlaceIcon3urlERK5QSize@Qt_5_PRIVATE_API 5.9.0 @@ -2275,12 +3046,17 @@ _ZNK21QDeclarativePlaceUser6userIdEv@Qt_5_PRIVATE_API 5.9.0 _ZNK21QGeoRouteParserOsrmV410metaObjectEv@Qt_5_PRIVATE_API 5.7.1 _ZNK21QGeoRouteParserOsrmV510metaObjectEv@Qt_5_PRIVATE_API 5.7.1 + _ZNK21QMapIconObjectPrivate4typeEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK21QMapIconObjectPrivate6equalsERK20QGeoMapObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZNK21QMapObjectViewPrivate4typeEv@Qt_5_PRIVATE_API 5.11.0 _ZNK22QDeclarativeGeoMapType10metaObjectEv@Qt_5_PRIVATE_API 5.9.0 _ZNK22QDeclarativeGeoMapType11descriptionEv@Qt_5_PRIVATE_API 5.9.0 + _ZNK22QDeclarativeGeoMapType18cameraCapabilitiesEv@Qt_5_PRIVATE_API 5.10.1 _ZNK22QDeclarativeGeoMapType4nameEv@Qt_5_PRIVATE_API 5.9.0 _ZNK22QDeclarativeGeoMapType5nightEv@Qt_5_PRIVATE_API 5.9.0 _ZNK22QDeclarativeGeoMapType5styleEv@Qt_5_PRIVATE_API 5.9.0 _ZNK22QDeclarativeGeoMapType6mobileEv@Qt_5_PRIVATE_API 5.9.0 + _ZNK22QDeclarativeGeoMapType8metadataEv@Qt_5_PRIVATE_API 5.10.1 _ZNK22QGeoCameraCapabilities11maximumTiltEv@Qt_5_PRIVATE_API 5.6.0 _ZNK22QGeoCameraCapabilities11minimumTiltEv@Qt_5_PRIVATE_API 5.6.0 _ZNK22QGeoCameraCapabilities15overzoomEnabledEv@Qt_5_PRIVATE_API 5.9.0 @@ -2297,16 +3073,29 @@ _ZNK22QGeoCameraCapabilities8tileSizeEv@Qt_5_PRIVATE_API 5.9.0 _ZNK22QGeoCameraCapabilitieseqERKS_@Qt_5_PRIVATE_API 5.9.0 _ZNK22QGeoCameraCapabilitiesneERKS_@Qt_5_PRIVATE_API 5.9.0 + _ZNK22QMapRouteObjectPrivate19declarativeGeoRouteEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK22QMapRouteObjectPrivate4typeEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK22QMapRouteObjectPrivate5routeEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK22QMapRouteObjectPrivate6equalsERK20QGeoMapObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZNK22QParameterizableObject10metaObjectEv@Qt_5_PRIVATE_API 5.11.0 _ZNK22QPlaceReplyUnsupported10metaObjectEv@Qt_5_PRIVATE_API 5.6.0 _ZNK23QDeclarativeGeoManeuver10metaObjectEv@Qt_5_PRIVATE_API 5.9.0 _ZNK23QDeclarativeGeoManeuver13waypointValidEv@Qt_5_PRIVATE_API 5.9.0 _ZNK23QDeclarativeGeoManeuver15instructionTextEv@Qt_5_PRIVATE_API 5.9.0 + _ZNK23QDeclarativeGeoManeuver18extendedAttributesEv@Qt_5_PRIVATE_API 5.11.0 _ZNK23QDeclarativeGeoManeuver21timeToNextInstructionEv@Qt_5_PRIVATE_API 5.9.0 _ZNK23QDeclarativeGeoManeuver25distanceToNextInstructionEv@Qt_5_PRIVATE_API 5.9.0 _ZNK23QDeclarativeGeoManeuver5validEv@Qt_5_PRIVATE_API 5.9.0 _ZNK23QDeclarativeGeoManeuver8positionEv@Qt_5_PRIVATE_API 5.9.0 _ZNK23QDeclarativeGeoManeuver8waypointEv@Qt_5_PRIVATE_API 5.9.0 _ZNK23QDeclarativeGeoManeuver9directionEv@Qt_5_PRIVATE_API 5.9.0 + _ZNK23QDeclarativeGeoWaypoint10metaObjectEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK23QDeclarativeGeoWaypoint7bearingEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK23QDeclarativeGeoWaypoint7isValidEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK23QDeclarativeGeoWaypoint8altitudeEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK23QDeclarativeGeoWaypoint8latitudeEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK23QDeclarativeGeoWaypoint9longitudeEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK23QDeclarativeGeoWaypointeqERKS_@Qt_5_PRIVATE_API 5.11.0 _ZNK23QDeclarativeReviewModel10metaObjectEv@Qt_5_PRIVATE_API 5.9.0 _ZNK23QDeclarativeReviewModel4dataERK11QModelIndexi@Qt_5_PRIVATE_API 5.9.0 _ZNK23QDeclarativeReviewModel9roleNamesEv@Qt_5_PRIVATE_API 5.9.0 @@ -2314,6 +3103,28 @@ _ZNK23QGeoCodingManagerEngine11managerNameEv@Qt_5 5.6.0 _ZNK23QGeoCodingManagerEngine14managerVersionEv@Qt_5 5.6.0 _ZNK23QGeoCodingManagerEngine6localeEv@Qt_5 5.6.0 + _ZNK23QGeoMapObjectQSGSupport10mapObjectsEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK23QGeoMapPolylineGeometry8containsERK7QPointF@Qt_5_PRIVATE_API 5.11.0 + _ZNK23QGeoRoutePrivateDefault10engineNameEv@Qt_5 5.11.0 + _ZNK23QGeoRoutePrivateDefault10travelModeEv@Qt_5 5.11.0 + _ZNK23QGeoRoutePrivateDefault10travelTimeEv@Qt_5 5.11.0 + _ZNK23QGeoRoutePrivateDefault12firstSegmentEv@Qt_5 5.11.0 + _ZNK23QGeoRoutePrivateDefault13segmentsCountEv@Qt_5 5.11.0 + _ZNK23QGeoRoutePrivateDefault2idEv@Qt_5 5.11.0 + _ZNK23QGeoRoutePrivateDefault4pathEv@Qt_5 5.11.0 + _ZNK23QGeoRoutePrivateDefault6boundsEv@Qt_5 5.11.0 + _ZNK23QGeoRoutePrivateDefault7requestEv@Qt_5 5.11.0 + _ZNK23QGeoRoutePrivateDefault8distanceEv@Qt_5 5.11.0 + _ZNK23QGeoRouteSegmentPrivate10travelTimeEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK23QGeoRouteSegmentPrivate16nextRouteSegmentEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK23QGeoRouteSegmentPrivate4pathEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK23QGeoRouteSegmentPrivate5validEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK23QGeoRouteSegmentPrivate6equalsERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZNK23QGeoRouteSegmentPrivate8distanceEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK23QGeoRouteSegmentPrivate8maneuverEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK23QGeoRouteSegmentPrivateeqERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZNK23QMapCircleObjectPrivate4typeEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK23QMapCircleObjectPrivate6equalsERK20QGeoMapObjectPrivate@Qt_5_PRIVATE_API 5.11.0 _ZNK23QQuickGeoMapGestureArea10metaObjectEv@Qt_5_PRIVATE_API 5.9.0 _ZNK23QQuickGeoMapGestureArea10panEnabledEv@Qt_5_PRIVATE_API 5.9.0 _ZNK23QQuickGeoMapGestureArea11isPanActiveEv@Qt_5_PRIVATE_API 5.9.0 @@ -2366,6 +3177,14 @@ _ZNK24QGeoRoutingManagerEngine24supportedManeuverDetailsEv@Qt_5 5.6.0 _ZNK24QGeoRoutingManagerEngine27supportedRouteOptimizationsEv@Qt_5 5.6.0 _ZNK24QGeoRoutingManagerEngine6localeEv@Qt_5 5.6.0 + _ZNK24QMapPolygonObjectPrivate4typeEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK24QMapPolygonObjectPrivate6equalsERK20QGeoMapObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZNK24QNavigationManagerEngine10metaObjectEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK24QNavigationManagerEngine11managerNameEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK24QNavigationManagerEngine13isInitializedEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK24QNavigationManagerEngine14managerVersionEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK24QNavigationManagerEngine17measurementSystemEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK24QNavigationManagerEngine6localeEv@Qt_5_PRIVATE_API 5.11.0 _ZNK24QPlaceIdReplyUnsupported10metaObjectEv@Qt_5_PRIVATE_API 5.6.0 _ZNK25QDeclarativeCircleMapItem10metaObjectEv@Qt_5_PRIVATE_API 5.9.0 _ZNK25QDeclarativeCircleMapItem5colorEv@Qt_5_PRIVATE_API 5.9.0 @@ -2391,21 +3210,26 @@ _ZNK25QDeclarativeGeoRouteModel9roleNamesEv@Qt_5_PRIVATE_API 5.9.0 _ZNK25QDeclarativeGeoRouteQuery10metaObjectEv@Qt_5_PRIVATE_API 5.9.0 _ZNK25QDeclarativeGeoRouteQuery11travelModesEv@Qt_5_PRIVATE_API 5.9.0 - _ZNK25QDeclarativeGeoRouteQuery12routeRequestEv@Qt_5_PRIVATE_API 5.9.0 _ZNK25QDeclarativeGeoRouteQuery13excludedAreasEv@Qt_5_PRIVATE_API 5.9.0 _ZNK25QDeclarativeGeoRouteQuery13segmentDetailEv@Qt_5_PRIVATE_API 5.9.0 _ZNK25QDeclarativeGeoRouteQuery14maneuverDetailEv@Qt_5_PRIVATE_API 5.9.0 _ZNK25QDeclarativeGeoRouteQuery18routeOptimizationsEv@Qt_5_PRIVATE_API 5.9.0 _ZNK25QDeclarativeGeoRouteQuery23numberAlternativeRoutesEv@Qt_5_PRIVATE_API 5.9.0 + _ZNK25QGeoProjectionWebMercator10cameraDataEv@Qt_5_PRIVATE_API 5.10.1 _ZNK25QGeoProjectionWebMercator11minimumZoomEv@Qt_5_PRIVATE_API 5.9.0 _ZNK25QGeoProjectionWebMercator13isProjectableERK15QDoubleVector2D@Qt_5_PRIVATE_API 5.9.0 _ZNK25QGeoProjectionWebMercator13visibleRegionEv@Qt_5_PRIVATE_API 5.9.0 - _ZNK25QGeoProjectionWebMercator17projectableRegionEv@Qt_5_PRIVATE_API 5.9.2 + _ZNK25QGeoProjectionWebMercator14projectionTypeEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK25QGeoProjectionWebMercator15projectionGroupEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK25QGeoProjectionWebMercator15visibleGeometryEv@Qt_5_PRIVATE_API 5.11.0 _ZNK25QGeoProjectionWebMercator17wrapMapProjectionERK15QDoubleVector2D@Qt_5_PRIVATE_API 5.9.0 _ZNK25QGeoProjectionWebMercator18geoToMapProjectionERK14QGeoCoordinate@Qt_5_PRIVATE_API 5.9.0 _ZNK25QGeoProjectionWebMercator18mapProjectionToGeoERK15QDoubleVector2D@Qt_5_PRIVATE_API 5.9.0 + _ZNK25QGeoProjectionWebMercator19projectableGeometryEv@Qt_5_PRIVATE_API 5.11.0 _ZNK25QGeoProjectionWebMercator19unwrapMapProjectionERK15QDoubleVector2D@Qt_5_PRIVATE_API 5.9.0 + _ZNK25QGeoProjectionWebMercator23anchorCoordinateToPointERK14QGeoCoordinateRK7QPointF@Qt_5_PRIVATE_API 5.11.0 _ZNK25QGeoProjectionWebMercator23quickItemTransformationERK14QGeoCoordinateRK7QPointFd@Qt_5_PRIVATE_API 5.9.0 + _ZNK25QGeoProjectionWebMercator23visibleGeometryExpandedEv@Qt_5_PRIVATE_API 5.11.0 _ZNK25QGeoProjectionWebMercator24coordinateToItemPositionERK14QGeoCoordinateb@Qt_5_PRIVATE_API 5.9.0 _ZNK25QGeoProjectionWebMercator24itemPositionToCoordinateERK15QDoubleVector2Db@Qt_5_PRIVATE_API 5.9.0 _ZNK25QGeoProjectionWebMercator25geoToWrappedMapProjectionERK14QGeoCoordinate@Qt_5_PRIVATE_API 5.9.0 @@ -2416,9 +3240,12 @@ _ZNK25QGeoProjectionWebMercator5Plane16lineIntersectionERK15QDoubleVector3DS3_@Qt_5_PRIVATE_API 5.9.0 _ZNK25QGeoProjectionWebMercator5Plane19planeXYIntersectionEv@Qt_5_PRIVATE_API 5.9.0 _ZNK25QGeoProjectionWebMercator5Plane7isValidEv@Qt_5_PRIVATE_API 5.9.0 + _ZNK25QGeoProjectionWebMercator5datumEv@Qt_5_PRIVATE_API 5.11.0 _ZNK25QGeoProjectionWebMercator6Line2D7isValidEv@Qt_5_PRIVATE_API 5.9.0 _ZNK25QGeoProjectionWebMercator8mapWidthEv@Qt_5_PRIVATE_API 5.9.0 _ZNK25QGeoProjectionWebMercator9mapHeightEv@Qt_5_PRIVATE_API 5.9.0 + _ZNK25QMapPolylineObjectPrivate4typeEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK25QMapPolylineObjectPrivate6equalsERK20QGeoMapObjectPrivate@Qt_5_PRIVATE_API 5.11.0 _ZNK26QDeclarativeContactDetails10metaObjectEv@Qt_5_PRIVATE_API 5.9.0 _ZNK26QDeclarativeGeoMapItemBase10metaObjectEv@Qt_5_PRIVATE_API 5.9.0 _ZNK26QDeclarativeGeoMapItemBase14mapItemOpacityEv@Qt_5_PRIVATE_API 5.9.0 @@ -2438,6 +3265,15 @@ _ZNK26QDeclarativePolygonMapItem8containsERK7QPointF@Qt_5_PRIVATE_API 5.9.0 _ZNK26QDeclarativePolygonMapItem8geoShapeEv@Qt_5_PRIVATE_API 5.9.0 _ZNK26QDeclarativePolygonMapItem8itemTypeEv@Qt_5_PRIVATE_API 5.9.0 + _ZNK26QGeoManeuverPrivateDefault18extendedAttributesEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK26QGeoManeuverPrivateDefault21timeToNextInstructionEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK26QGeoManeuverPrivateDefault25distanceToNextInstructionEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK26QGeoManeuverPrivateDefault2idEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK26QGeoManeuverPrivateDefault4textEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK26QGeoManeuverPrivateDefault5validEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK26QGeoManeuverPrivateDefault8positionEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK26QGeoManeuverPrivateDefault8waypointEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK26QGeoManeuverPrivateDefault9directionEv@Qt_5_PRIVATE_API 5.11.0 _ZNK26QGeoServiceProviderFactory24createPlaceManagerEngineERK4QMapI7QString8QVariantEPN19QGeoServiceProvider5ErrorEPS1_@Qt_5 5.6.0 _ZNK26QGeoServiceProviderFactory26createMappingManagerEngineERK4QMapI7QString8QVariantEPN19QGeoServiceProvider5ErrorEPS1_@Qt_5 5.6.0 _ZNK26QGeoServiceProviderFactory26createRoutingManagerEngineERK4QMapI7QString8QVariantEPN19QGeoServiceProvider5ErrorEPS1_@Qt_5 5.6.0 @@ -2476,6 +3312,10 @@ _ZNK27QDeclarativeSearchModelBase5limitEv@Qt_5_PRIVATE_API 5.9.0 _ZNK27QDeclarativeSearchModelBase6pluginEv@Qt_5_PRIVATE_API 5.9.0 _ZNK27QDeclarativeSearchModelBase6statusEv@Qt_5_PRIVATE_API 5.9.0 + _ZNK27QMapPolygonObjectPrivateQSG11borderColorEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK27QMapPolygonObjectPrivateQSG11borderWidthEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK27QMapPolygonObjectPrivateQSG4pathEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK27QMapPolygonObjectPrivateQSG9fillColorEv@Qt_5_PRIVATE_API 5.11.0 _ZNK27QPlaceMatchReplyUnsupported10metaObjectEv@Qt_5_PRIVATE_API 5.6.0 _ZNK27QPlaceSearchSuggestionReply10metaObjectEv@Qt_5 5.6.0 _ZNK27QPlaceSearchSuggestionReply11suggestionsEv@Qt_5 5.6.0 @@ -2485,6 +3325,13 @@ _ZNK28QDeclarativeRectangleMapItem8containsERK7QPointF@Qt_5_PRIVATE_API 5.9.0 _ZNK28QDeclarativeRectangleMapItem8geoShapeEv@Qt_5_PRIVATE_API 5.9.0 _ZNK28QDeclarativeRectangleMapItem8itemTypeEv@Qt_5_PRIVATE_API 5.9.0 + _ZNK28QGeoServiceProviderFactoryV229createNavigationManagerEngineERK4QMapI7QString8QVariantEPN19QGeoServiceProvider5ErrorEPS1_@Qt_5 5.11.0 + _ZNK28QMapIconObjectPrivateDefault10coordinateEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK28QMapIconObjectPrivateDefault4sizeEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK28QMapIconObjectPrivateDefault7contentEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK28QMapPolylineObjectPrivateQSG4pathEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK28QMapPolylineObjectPrivateQSG5colorEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK28QMapPolylineObjectPrivateQSG5widthEv@Qt_5_PRIVATE_API 5.11.0 _ZNK28QPlaceSearchReplyUnsupported10metaObjectEv@Qt_5_PRIVATE_API 5.6.0 _ZNK29QDeclarativeMapLineProperties10metaObjectEv@Qt_5_PRIVATE_API 5.9.0 _ZNK29QDeclarativeMapLineProperties5colorEv@Qt_5_PRIVATE_API 5.9.0 @@ -2524,16 +3371,42 @@ _ZNK30QDeclarativeGeoServiceProvider15supportsRoutingERK6QFlagsINS_14RoutingFeatureEE@Qt_5_PRIVATE_API 5.9.0 _ZNK30QDeclarativeGeoServiceProvider17allowExperimentalEv@Qt_5_PRIVATE_API 5.9.0 _ZNK30QDeclarativeGeoServiceProvider17supportsGeocodingERK6QFlagsINS_16GeocodingFeatureEE@Qt_5_PRIVATE_API 5.9.0 + _ZNK30QDeclarativeGeoServiceProvider18supportsNavigationERKNS_17NavigationFeatureE@Qt_5_PRIVATE_API 5.11.0 _ZNK30QDeclarativeGeoServiceProvider24sharedGeoServiceProviderEv@Qt_5_PRIVATE_API 5.9.0 _ZNK30QDeclarativeGeoServiceProvider4nameEv@Qt_5_PRIVATE_API 5.9.0 _ZNK30QDeclarativeGeoServiceProvider7localesEv@Qt_5_PRIVATE_API 5.9.0 _ZNK30QDeclarativeGeoServiceProvider9preferredEv@Qt_5_PRIVATE_API 5.9.0 + _ZNK30QGeoRouteSegmentPrivateDefault10travelTimeEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK30QGeoRouteSegmentPrivateDefault4pathEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK30QGeoRouteSegmentPrivateDefault5validEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK30QGeoRouteSegmentPrivateDefault8distanceEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK30QGeoRouteSegmentPrivateDefault8maneuverEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK30QGeoRouteSegmentPrivateDefaulteqERKS_@Qt_5_PRIVATE_API 5.11.0 + _ZNK30QMapCircleObjectPrivateDefault11borderColorEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK30QMapCircleObjectPrivateDefault11borderWidthEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK30QMapCircleObjectPrivateDefault5colorEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK30QMapCircleObjectPrivateDefault6centerEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK30QMapCircleObjectPrivateDefault6radiusEv@Qt_5_PRIVATE_API 5.11.0 _ZNK31QDeclarativePlaceEditorialModel10metaObjectEv@Qt_5_PRIVATE_API 5.9.0 _ZNK31QDeclarativePlaceEditorialModel4dataERK11QModelIndexi@Qt_5_PRIVATE_API 5.9.0 _ZNK31QDeclarativePlaceEditorialModel9roleNamesEv@Qt_5_PRIVATE_API 5.9.0 + _ZNK31QMapPolygonObjectPrivateDefault11borderColorEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK31QMapPolygonObjectPrivateDefault11borderWidthEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK31QMapPolygonObjectPrivateDefault4pathEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK31QMapPolygonObjectPrivateDefault9fillColorEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK32QMapPolylineObjectPrivateDefault4pathEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK32QMapPolylineObjectPrivateDefault5colorEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK32QMapPolylineObjectPrivateDefault5widthEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK33QDeclarativeGeoCameraCapabilities10metaObjectEv@Qt_5_PRIVATE_API 5.10.1 + _ZNK33QDeclarativeGeoCameraCapabilities11maximumTiltEv@Qt_5_PRIVATE_API 5.10.1 + _ZNK33QDeclarativeGeoCameraCapabilities11minimumTiltEv@Qt_5_PRIVATE_API 5.10.1 + _ZNK33QDeclarativeGeoCameraCapabilities16maximumZoomLevelEv@Qt_5_PRIVATE_API 5.10.1 + _ZNK33QDeclarativeGeoCameraCapabilities16minimumZoomLevelEv@Qt_5_PRIVATE_API 5.10.1 + _ZNK33QDeclarativeGeoCameraCapabilities18maximumFieldOfViewEv@Qt_5_PRIVATE_API 5.10.1 + _ZNK33QDeclarativeGeoCameraCapabilities18minimumFieldOfViewEv@Qt_5_PRIVATE_API 5.10.1 _ZNK33QDeclarativeGeoMapCopyrightNotice10metaObjectEv@Qt_5_PRIVATE_API 5.9.0 _ZNK33QDeclarativeGeoMapCopyrightNotice10styleSheetEv@Qt_5_PRIVATE_API 5.9.0 - _ZNK33QDeclarativeGeoMapCopyrightNotice17copyrightsVisibleEv@Qt_5_PRIVATE_API 5.9.5 + _ZNK33QDeclarativeGeoMapCopyrightNotice17copyrightsVisibleEv@Qt_5_PRIVATE_API 5.10.1 _ZNK33QDeclarativeSearchSuggestionModel10metaObjectEv@Qt_5_PRIVATE_API 5.9.0 _ZNK33QDeclarativeSearchSuggestionModel10searchTermEv@Qt_5_PRIVATE_API 5.9.0 _ZNK33QDeclarativeSearchSuggestionModel11suggestionsEv@Qt_5_PRIVATE_API 5.9.0 @@ -2588,12 +3461,15 @@ _ZNK6QPlaceeqERKS_@Qt_5 5.6.0 _ZNK6QPlaceneERKS_@Qt_5 5.6.0 _ZNK7QGeoMap10cameraDataEv@Qt_5_PRIVATE_API 5.6.0 + _ZNK7QGeoMap10mapObjectsEv@Qt_5_PRIVATE_API 5.11.0 _ZNK7QGeoMap10metaObjectEv@Qt_5_PRIVATE_API 5.6.0 _ZNK7QGeoMap11minimumZoomEv@Qt_5_PRIVATE_API 5.9.0 + _ZNK7QGeoMap12capabilitiesEv@Qt_5_PRIVATE_API 5.11.0 _ZNK7QGeoMap12viewportSizeEv@Qt_5_PRIVATE_API 5.9.0 _ZNK7QGeoMap13activeMapTypeEv@Qt_5_PRIVATE_API 5.6.0 _ZNK7QGeoMap13geoProjectionEv@Qt_5_PRIVATE_API 5.9.0 _ZNK7QGeoMap13viewportWidthEv@Qt_5_PRIVATE_API 5.9.0 + _ZNK7QGeoMap13visibleRegionEv@Qt_5_PRIVATE_API 5.11.0 _ZNK7QGeoMap14viewportHeightEv@Qt_5_PRIVATE_API 5.9.0 _ZNK7QGeoMap18cameraCapabilitiesEv@Qt_5_PRIVATE_API 5.7.0 _ZNK7QGeoMap20copyrightsStyleSheetEv@Qt_5_PRIVATE_API 5.9.0 @@ -2611,32 +3487,44 @@ _ZNK9QGeoRoute8distanceEv@Qt_5 5.6.0 _ZNK9QGeoRouteeqERKS_@Qt_5 5.6.0 _ZNK9QGeoRouteneERKS_@Qt_5 5.6.0 - (optional=templinst|subst)_ZNSt6vectorIS_ISt5arrayIdL{size_t}2EESaIS1_EESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_@Qt_5 5.9.2 (optional=templinst|subst)_ZNSt6vectorISt5arrayIdL{size_t}2EESaIS1_EE17_M_realloc_insertIJRKS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_@Qt_5 5.9.2 + (optional=templinst|subst)_ZNSt6vectorISt5arrayIdL{size_t}4EESaIS1_EE17_M_realloc_insertIJS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_@Qt_5 5.11.1 (optional=templinst)_ZNSt6vectorIjSaIjEE12emplace_backIJRKjEEERjDpOT_@Qt_5 5.9.2 (optional=templinst)_ZNSt6vectorIxSaIxEE17_M_realloc_insertIJRKxEEEvN9__gnu_cxx17__normal_iteratorIPxS1_EEDpOT_@Qt_5 5.9.1 - (optional=templinst)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_@Qt_5 5.9.1 - (optional=templinst)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcRKS3_@Qt_5 5.9.1 (optional=templinst)_ZNSt7__cxx114listIxSaIxEE4sortEv@Qt_5 5.9.0 + (optional=templinst)_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE16_M_insert_uniqueIS0_IiiEEES0_ISt17_Rb_tree_iteratorIS2_EbEOT_@Qt_5 5.11.1 + (optional=templinst)_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE8_M_eraseEPSt13_Rb_tree_nodeIS2_E@Qt_5 5.11.0 _ZTI11QPlaceImage@Qt_5 5.6.0 _ZTI11QPlaceReply@Qt_5 5.6.0 _ZTI11QSharedData@Qt_5 5.6.0 + _ZTI11VisibleNode@Qt_5_PRIVATE_API 5.11.0 _ZTI12QGeoTiledMap@Qt_5_PRIVATE_API 5.6.0 _ZTI12QPlaceResult@Qt_5 5.6.0 _ZTI12QPlaceReview@Qt_5 5.6.0 _ZTI13QGeoCodeReply@Qt_5 5.6.0 + _ZTI13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 _ZTI13QPlaceContent@Qt_5 5.6.0 _ZTI13QPlaceIdReply@Qt_5 5.6.0 _ZTI13QPlaceManager@Qt_5 5.6.0 + _ZTI13QPlacePrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTI13QQSGMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZTI14MapPolygonNode@Qt_5_PRIVATE_API 5.11.0 _ZTI14QGeoMapPrivate@Qt_5_PRIVATE_API 5.9.0 _ZTI14QGeoProjection@Qt_5_PRIVATE_API 5.9.0 _ZTI14QGeoRouteReply@Qt_5 5.6.0 + _ZTI14QMapIconObject@Qt_5_PRIVATE_API 5.11.0 + _ZTI14QMapObjectView@Qt_5_PRIVATE_API 5.11.0 _ZTI14QPlaceCategory@Qt_5 5.6.0 + _ZTI15MapPolylineNode@Qt_5_PRIVATE_API 5.11.0 _ZTI15QGeoRouteParser@Qt_5_PRIVATE_API 5.7.1 _ZTI15QGeoTileFetcher@Qt_5_PRIVATE_API 5.6.0 + _ZTI15QMapRouteObject@Qt_5_PRIVATE_API 5.11.0 _ZTI15QPlaceAttribute@Qt_5 5.6.0 _ZTI15QPlaceEditorial@Qt_5 5.6.0 _ZTI16QGeoMapParameter@Qt_5_PRIVATE_API 5.9.0 + _ZTI16QGeoRoutePrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTI16QGeoTiledMapLabs@Qt_5_PRIVATE_API 5.11.0 + _ZTI16QMapCircleObject@Qt_5_PRIVATE_API 5.11.0 _ZTI16QPlaceMatchReply@Qt_5 5.6.0 _ZTI17QDeclarativePlace@Qt_5_PRIVATE_API 5.9.0 _ZTI17QGeoCodingManager@Qt_5 5.6.0 @@ -2644,14 +3532,20 @@ _ZTI17QGeoMapPinchEvent@Qt_5_PRIVATE_API 5.9.0 _ZTI17QGeoTiledMapReply@Qt_5_PRIVATE_API 5.6.0 _ZTI17QGeoTiledMapScene@Qt_5_PRIVATE_API 5.7.0 + _ZTI17QMapPolygonObject@Qt_5_PRIVATE_API 5.11.0 _ZTI17QPlaceSearchReply@Qt_5 5.6.0 _ZTI18QDeclarativeGeoMap@Qt_5_PRIVATE_API 5.9.0 _ZTI18QGeoMappingManager@Qt_5_PRIVATE_API 5.6.0 _ZTI18QGeoRoutingManager@Qt_5 5.6.0 + _ZTI18QMapPolylineObject@Qt_5_PRIVATE_API 5.11.0 + _ZTI18QNavigationManager@Qt_5_PRIVATE_API 5.11.0 _ZTI18QPlaceContentReply@Qt_5 5.6.0 _ZTI18QPlaceDetailsReply@Qt_5 5.6.0 _ZTI18QPlaceSearchResult@Qt_5 5.6.0 + _ZTI19MapItemGeometryNode@Qt_5_PRIVATE_API 5.11.0 _ZTI19QDeclarativeRatings@Qt_5_PRIVATE_API 5.9.0 + _ZTI19QGeoManeuverPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTI19QGeoMapItemGeometry@Qt_5_PRIVATE_API 5.11.0 _ZTI19QGeoServiceProvider@Qt_5 5.6.0 _ZTI19QGeoTiledMapPrivate@Qt_5_PRIVATE_API 5.9.0 _ZTI19QPlaceContactDetail@Qt_5 5.6.0 @@ -2659,35 +3553,56 @@ _ZTI20QDeclarativeCategory@Qt_5_PRIVATE_API 5.9.0 _ZTI20QDeclarativeGeoRoute@Qt_5_PRIVATE_API 5.9.0 _ZTI20QDeclarativeSupplier@Qt_5_PRIVATE_API 5.9.0 + _ZTI20QGeoMapObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTI20QPlacePrivateDefault@Qt_5_PRIVATE_API 5.11.0 _ZTI21QAbstractGeoTileCache@Qt_5_PRIVATE_API 5.6.0 + _ZTI21QDeclarativeNavigator@Qt_5_PRIVATE_API 5.11.0 _ZTI21QDeclarativePlaceIcon@Qt_5_PRIVATE_API 5.9.0 _ZTI21QDeclarativePlaceUser@Qt_5_PRIVATE_API 5.9.0 + _ZTI21QGeoMapCircleGeometry@Qt_5_PRIVATE_API 5.11.0 _ZTI21QGeoRouteParserOsrmV4@Qt_5_PRIVATE_API 5.7.1 _ZTI21QGeoRouteParserOsrmV5@Qt_5_PRIVATE_API 5.7.1 + _ZTI21QMapIconObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTI21QMapObjectViewPrivate@Qt_5_PRIVATE_API 5.11.0 _ZTI22QDeclarativeGeoMapType@Qt_5_PRIVATE_API 5.9.0 + _ZTI22QGeoMapPolygonGeometry@Qt_5_PRIVATE_API 5.11.0 _ZTI22QGeoTileFetcherPrivate@Qt_5_PRIVATE_API 5.9.0 + _ZTI22QMapRouteObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTI22QParameterizableObject@Qt_5_PRIVATE_API 5.11.0 _ZTI22QPlaceReplyUnsupported@Qt_5_PRIVATE_API 5.6.0 _ZTI23QDeclarativeGeoManeuver@Qt_5_PRIVATE_API 5.9.0 + _ZTI23QDeclarativeGeoWaypoint@Qt_5_PRIVATE_API 5.11.0 _ZTI23QDeclarativeReviewModel@Qt_5_PRIVATE_API 5.9.0 _ZTI23QGeoCodingManagerEngine@Qt_5 5.6.0 + _ZTI23QGeoMapPolylineGeometry@Qt_5_PRIVATE_API 5.11.0 + _ZTI23QGeoRoutePrivateDefault@Qt_5 5.11.0 + _ZTI23QGeoRouteSegmentPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTI23QMapCircleObjectPrivate@Qt_5_PRIVATE_API 5.11.0 _ZTI23QQuickGeoMapGestureArea@Qt_5_PRIVATE_API 5.9.0 _ZTI24QDeclarativeGeocodeModel@Qt_5_PRIVATE_API 5.9.0 _ZTI24QDeclarativeRouteMapItem@Qt_5_PRIVATE_API 5.9.0 _ZTI24QGeoMappingManagerEngine@Qt_5_PRIVATE_API 5.6.0 _ZTI24QGeoRoutingManagerEngine@Qt_5 5.6.0 + _ZTI24QMapIconObjectPrivateQSG@Qt_5_PRIVATE_API 5.11.0 + _ZTI24QMapPolygonObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTI24QNavigationManagerEngine@Qt_5_PRIVATE_API 5.11.0 _ZTI24QPlaceIdReplyUnsupported@Qt_5_PRIVATE_API 5.6.0 - _ZTI24QQuickPaintedItemPrivate@Qt_5 5.9.5 + _ZTI24QQuickPaintedItemPrivate@Qt_5 5.10.1 _ZTI25QDeclarativeCircleMapItem@Qt_5_PRIVATE_API 5.9.0 _ZTI25QDeclarativeContactDetail@Qt_5_PRIVATE_API 5.9.0 _ZTI25QDeclarativeGeoRouteModel@Qt_5_PRIVATE_API 5.9.0 _ZTI25QDeclarativeGeoRouteQuery@Qt_5_PRIVATE_API 5.9.0 _ZTI25QGeoProjectionWebMercator@Qt_5_PRIVATE_API 5.9.0 + _ZTI25QMapPolylineObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTI25QMapRouteObjectPrivateQSG@Qt_5_PRIVATE_API 5.11.0 _ZTI26QDeclarativeContactDetails@Qt_5_PRIVATE_API 5.9.0 _ZTI26QDeclarativeGeoMapItemBase@Qt_5_PRIVATE_API 5.9.0 _ZTI26QDeclarativeGeoMapItemView@Qt_5_PRIVATE_API 5.9.0 _ZTI26QDeclarativePlaceAttribute@Qt_5_PRIVATE_API 5.9.0 _ZTI26QDeclarativePolygonMapItem@Qt_5_PRIVATE_API 5.9.0 + _ZTI26QGeoManeuverPrivateDefault@Qt_5_PRIVATE_API 5.11.0 _ZTI26QGeoServiceProviderFactory@Qt_5 5.6.0 + _ZTI26QMapCircleObjectPrivateQSG@Qt_5_PRIVATE_API 5.11.0 _ZTI26QPlaceProposedSearchResult@Qt_5 5.6.0 _ZTI27QDeclarativeGeoMapItemGroup@Qt_5_PRIVATE_API 5.9.0 _ZTI27QDeclarativeGeoMapParameter@Qt_5_PRIVATE_API 5.9.0 @@ -2696,10 +3611,14 @@ _ZTI27QDeclarativePlaceImageModel@Qt_5_PRIVATE_API 5.9.0 _ZTI27QDeclarativePolylineMapItem@Qt_5_PRIVATE_API 5.9.0 _ZTI27QDeclarativeSearchModelBase@Qt_5_PRIVATE_API 5.9.0 + _ZTI27QMapPolygonObjectPrivateQSG@Qt_5_PRIVATE_API 5.11.0 _ZTI27QPlaceMatchReplyUnsupported@Qt_5_PRIVATE_API 5.6.0 _ZTI27QPlaceSearchSuggestionReply@Qt_5 5.6.0 - _ZTI28MapItemViewDelegateIncubator@Qt_5_PRIVATE_API 5.9.0 _ZTI28QDeclarativeRectangleMapItem@Qt_5_PRIVATE_API 5.9.0 + _ZTI28QGeoServiceProviderFactoryV2@Qt_5 5.11.0 + _ZTI28QMapIconObjectPrivateDefault@Qt_5_PRIVATE_API 5.11.0 + _ZTI28QMapObjectViewPrivateDefault@Qt_5_PRIVATE_API 5.11.0 + _ZTI28QMapPolylineObjectPrivateQSG@Qt_5_PRIVATE_API 5.11.0 _ZTI28QPlaceSearchReplyUnsupported@Qt_5_PRIVATE_API 5.6.0 _ZTI29QDeclarativeMapLineProperties@Qt_5_PRIVATE_API 5.9.0 _ZTI29QDeclarativePlaceContentModel@Qt_5_PRIVATE_API 5.9.0 @@ -2708,7 +3627,12 @@ _ZTI29QPlaceContentReplyUnsupported@Qt_5_PRIVATE_API 5.6.0 _ZTI29QPlaceDetailsReplyUnsupported@Qt_5_PRIVATE_API 5.6.0 _ZTI30QDeclarativeGeoServiceProvider@Qt_5_PRIVATE_API 5.9.0 + _ZTI30QGeoRouteSegmentPrivateDefault@Qt_5_PRIVATE_API 5.11.0 + _ZTI30QMapCircleObjectPrivateDefault@Qt_5_PRIVATE_API 5.11.0 _ZTI31QDeclarativePlaceEditorialModel@Qt_5_PRIVATE_API 5.9.0 + _ZTI31QMapPolygonObjectPrivateDefault@Qt_5_PRIVATE_API 5.11.0 + _ZTI32QMapPolylineObjectPrivateDefault@Qt_5_PRIVATE_API 5.11.0 + _ZTI33QDeclarativeGeoCameraCapabilities@Qt_5_PRIVATE_API 5.10.1 _ZTI33QDeclarativeGeoMapCopyrightNotice@Qt_5_PRIVATE_API 5.9.0 _ZTI33QDeclarativeSearchSuggestionModel@Qt_5_PRIVATE_API 5.9.0 _ZTI36QDeclarativeSupportedCategoriesModel@Qt_5_PRIVATE_API 5.9.0 @@ -2719,22 +3643,34 @@ _ZTS11QPlaceImage@Qt_5 5.6.0 _ZTS11QPlaceReply@Qt_5 5.6.0 _ZTS11QSharedData@Qt_5 5.6.0 + _ZTS11VisibleNode@Qt_5_PRIVATE_API 5.11.0 _ZTS12QGeoTiledMap@Qt_5_PRIVATE_API 5.6.0 _ZTS12QPlaceResult@Qt_5 5.6.0 _ZTS12QPlaceReview@Qt_5 5.6.0 _ZTS13QGeoCodeReply@Qt_5 5.6.0 + _ZTS13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 _ZTS13QPlaceContent@Qt_5 5.6.0 _ZTS13QPlaceIdReply@Qt_5 5.6.0 _ZTS13QPlaceManager@Qt_5 5.6.0 + _ZTS13QPlacePrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTS13QQSGMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZTS14MapPolygonNode@Qt_5_PRIVATE_API 5.11.0 _ZTS14QGeoMapPrivate@Qt_5_PRIVATE_API 5.9.0 _ZTS14QGeoProjection@Qt_5_PRIVATE_API 5.9.0 _ZTS14QGeoRouteReply@Qt_5 5.6.0 + _ZTS14QMapIconObject@Qt_5_PRIVATE_API 5.11.0 + _ZTS14QMapObjectView@Qt_5_PRIVATE_API 5.11.0 _ZTS14QPlaceCategory@Qt_5 5.6.0 + _ZTS15MapPolylineNode@Qt_5_PRIVATE_API 5.11.0 _ZTS15QGeoRouteParser@Qt_5_PRIVATE_API 5.7.1 _ZTS15QGeoTileFetcher@Qt_5_PRIVATE_API 5.6.0 + _ZTS15QMapRouteObject@Qt_5_PRIVATE_API 5.11.0 _ZTS15QPlaceAttribute@Qt_5 5.6.0 _ZTS15QPlaceEditorial@Qt_5 5.6.0 _ZTS16QGeoMapParameter@Qt_5_PRIVATE_API 5.9.0 + _ZTS16QGeoRoutePrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTS16QGeoTiledMapLabs@Qt_5_PRIVATE_API 5.11.0 + _ZTS16QMapCircleObject@Qt_5_PRIVATE_API 5.11.0 _ZTS16QPlaceMatchReply@Qt_5 5.6.0 _ZTS17QDeclarativePlace@Qt_5_PRIVATE_API 5.9.0 _ZTS17QGeoCodingManager@Qt_5 5.6.0 @@ -2742,14 +3678,20 @@ _ZTS17QGeoMapPinchEvent@Qt_5_PRIVATE_API 5.9.0 _ZTS17QGeoTiledMapReply@Qt_5_PRIVATE_API 5.6.0 _ZTS17QGeoTiledMapScene@Qt_5_PRIVATE_API 5.7.0 + _ZTS17QMapPolygonObject@Qt_5_PRIVATE_API 5.11.0 _ZTS17QPlaceSearchReply@Qt_5 5.6.0 _ZTS18QDeclarativeGeoMap@Qt_5_PRIVATE_API 5.9.0 _ZTS18QGeoMappingManager@Qt_5_PRIVATE_API 5.6.0 _ZTS18QGeoRoutingManager@Qt_5 5.6.0 + _ZTS18QMapPolylineObject@Qt_5_PRIVATE_API 5.11.0 + _ZTS18QNavigationManager@Qt_5_PRIVATE_API 5.11.0 _ZTS18QPlaceContentReply@Qt_5 5.6.0 _ZTS18QPlaceDetailsReply@Qt_5 5.6.0 _ZTS18QPlaceSearchResult@Qt_5 5.6.0 + _ZTS19MapItemGeometryNode@Qt_5_PRIVATE_API 5.11.0 _ZTS19QDeclarativeRatings@Qt_5_PRIVATE_API 5.9.0 + _ZTS19QGeoManeuverPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTS19QGeoMapItemGeometry@Qt_5_PRIVATE_API 5.11.0 _ZTS19QGeoServiceProvider@Qt_5 5.6.0 _ZTS19QGeoTiledMapPrivate@Qt_5_PRIVATE_API 5.9.0 _ZTS19QPlaceContactDetail@Qt_5 5.6.0 @@ -2757,35 +3699,56 @@ _ZTS20QDeclarativeCategory@Qt_5_PRIVATE_API 5.9.0 _ZTS20QDeclarativeGeoRoute@Qt_5_PRIVATE_API 5.9.0 _ZTS20QDeclarativeSupplier@Qt_5_PRIVATE_API 5.9.0 + _ZTS20QGeoMapObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTS20QPlacePrivateDefault@Qt_5_PRIVATE_API 5.11.0 _ZTS21QAbstractGeoTileCache@Qt_5_PRIVATE_API 5.6.0 + _ZTS21QDeclarativeNavigator@Qt_5_PRIVATE_API 5.11.0 _ZTS21QDeclarativePlaceIcon@Qt_5_PRIVATE_API 5.9.0 _ZTS21QDeclarativePlaceUser@Qt_5_PRIVATE_API 5.9.0 + _ZTS21QGeoMapCircleGeometry@Qt_5_PRIVATE_API 5.11.0 _ZTS21QGeoRouteParserOsrmV4@Qt_5_PRIVATE_API 5.7.1 _ZTS21QGeoRouteParserOsrmV5@Qt_5_PRIVATE_API 5.7.1 + _ZTS21QMapIconObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTS21QMapObjectViewPrivate@Qt_5_PRIVATE_API 5.11.0 _ZTS22QDeclarativeGeoMapType@Qt_5_PRIVATE_API 5.9.0 + _ZTS22QGeoMapPolygonGeometry@Qt_5_PRIVATE_API 5.11.0 _ZTS22QGeoTileFetcherPrivate@Qt_5_PRIVATE_API 5.9.0 + _ZTS22QMapRouteObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTS22QParameterizableObject@Qt_5_PRIVATE_API 5.11.0 _ZTS22QPlaceReplyUnsupported@Qt_5_PRIVATE_API 5.6.0 _ZTS23QDeclarativeGeoManeuver@Qt_5_PRIVATE_API 5.9.0 + _ZTS23QDeclarativeGeoWaypoint@Qt_5_PRIVATE_API 5.11.0 _ZTS23QDeclarativeReviewModel@Qt_5_PRIVATE_API 5.9.0 _ZTS23QGeoCodingManagerEngine@Qt_5 5.6.0 + _ZTS23QGeoMapPolylineGeometry@Qt_5_PRIVATE_API 5.11.0 + _ZTS23QGeoRoutePrivateDefault@Qt_5 5.11.0 + _ZTS23QGeoRouteSegmentPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTS23QMapCircleObjectPrivate@Qt_5_PRIVATE_API 5.11.0 _ZTS23QQuickGeoMapGestureArea@Qt_5_PRIVATE_API 5.9.0 _ZTS24QDeclarativeGeocodeModel@Qt_5_PRIVATE_API 5.9.0 _ZTS24QDeclarativeRouteMapItem@Qt_5_PRIVATE_API 5.9.0 _ZTS24QGeoMappingManagerEngine@Qt_5_PRIVATE_API 5.6.0 _ZTS24QGeoRoutingManagerEngine@Qt_5 5.6.0 + _ZTS24QMapIconObjectPrivateQSG@Qt_5_PRIVATE_API 5.11.0 + _ZTS24QMapPolygonObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTS24QNavigationManagerEngine@Qt_5_PRIVATE_API 5.11.0 _ZTS24QPlaceIdReplyUnsupported@Qt_5_PRIVATE_API 5.6.0 - _ZTS24QQuickPaintedItemPrivate@Qt_5 5.9.5 + _ZTS24QQuickPaintedItemPrivate@Qt_5 5.10.1 _ZTS25QDeclarativeCircleMapItem@Qt_5_PRIVATE_API 5.9.0 _ZTS25QDeclarativeContactDetail@Qt_5_PRIVATE_API 5.9.0 _ZTS25QDeclarativeGeoRouteModel@Qt_5_PRIVATE_API 5.9.0 _ZTS25QDeclarativeGeoRouteQuery@Qt_5_PRIVATE_API 5.9.0 _ZTS25QGeoProjectionWebMercator@Qt_5_PRIVATE_API 5.9.0 + _ZTS25QMapPolylineObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTS25QMapRouteObjectPrivateQSG@Qt_5_PRIVATE_API 5.11.0 _ZTS26QDeclarativeContactDetails@Qt_5_PRIVATE_API 5.9.0 _ZTS26QDeclarativeGeoMapItemBase@Qt_5_PRIVATE_API 5.9.0 _ZTS26QDeclarativeGeoMapItemView@Qt_5_PRIVATE_API 5.9.0 _ZTS26QDeclarativePlaceAttribute@Qt_5_PRIVATE_API 5.9.0 _ZTS26QDeclarativePolygonMapItem@Qt_5_PRIVATE_API 5.9.0 + _ZTS26QGeoManeuverPrivateDefault@Qt_5_PRIVATE_API 5.11.0 _ZTS26QGeoServiceProviderFactory@Qt_5 5.6.0 + _ZTS26QMapCircleObjectPrivateQSG@Qt_5_PRIVATE_API 5.11.0 _ZTS26QPlaceProposedSearchResult@Qt_5 5.6.0 _ZTS27QDeclarativeGeoMapItemGroup@Qt_5_PRIVATE_API 5.9.0 _ZTS27QDeclarativeGeoMapParameter@Qt_5_PRIVATE_API 5.9.0 @@ -2794,10 +3757,14 @@ _ZTS27QDeclarativePlaceImageModel@Qt_5_PRIVATE_API 5.9.0 _ZTS27QDeclarativePolylineMapItem@Qt_5_PRIVATE_API 5.9.0 _ZTS27QDeclarativeSearchModelBase@Qt_5_PRIVATE_API 5.9.0 + _ZTS27QMapPolygonObjectPrivateQSG@Qt_5_PRIVATE_API 5.11.0 _ZTS27QPlaceMatchReplyUnsupported@Qt_5_PRIVATE_API 5.6.0 _ZTS27QPlaceSearchSuggestionReply@Qt_5 5.6.0 - _ZTS28MapItemViewDelegateIncubator@Qt_5_PRIVATE_API 5.9.0 _ZTS28QDeclarativeRectangleMapItem@Qt_5_PRIVATE_API 5.9.0 + _ZTS28QGeoServiceProviderFactoryV2@Qt_5 5.11.0 + _ZTS28QMapIconObjectPrivateDefault@Qt_5_PRIVATE_API 5.11.0 + _ZTS28QMapObjectViewPrivateDefault@Qt_5_PRIVATE_API 5.11.0 + _ZTS28QMapPolylineObjectPrivateQSG@Qt_5_PRIVATE_API 5.11.0 _ZTS28QPlaceSearchReplyUnsupported@Qt_5_PRIVATE_API 5.6.0 _ZTS29QDeclarativeMapLineProperties@Qt_5_PRIVATE_API 5.9.0 _ZTS29QDeclarativePlaceContentModel@Qt_5_PRIVATE_API 5.9.0 @@ -2806,7 +3773,12 @@ _ZTS29QPlaceContentReplyUnsupported@Qt_5_PRIVATE_API 5.6.0 _ZTS29QPlaceDetailsReplyUnsupported@Qt_5_PRIVATE_API 5.6.0 _ZTS30QDeclarativeGeoServiceProvider@Qt_5_PRIVATE_API 5.9.0 + _ZTS30QGeoRouteSegmentPrivateDefault@Qt_5_PRIVATE_API 5.11.0 + _ZTS30QMapCircleObjectPrivateDefault@Qt_5_PRIVATE_API 5.11.0 _ZTS31QDeclarativePlaceEditorialModel@Qt_5_PRIVATE_API 5.9.0 + _ZTS31QMapPolygonObjectPrivateDefault@Qt_5_PRIVATE_API 5.11.0 + _ZTS32QMapPolylineObjectPrivateDefault@Qt_5_PRIVATE_API 5.11.0 + _ZTS33QDeclarativeGeoCameraCapabilities@Qt_5_PRIVATE_API 5.10.1 _ZTS33QDeclarativeGeoMapCopyrightNotice@Qt_5_PRIVATE_API 5.9.0 _ZTS33QDeclarativeSearchSuggestionModel@Qt_5_PRIVATE_API 5.9.0 _ZTS36QDeclarativeSupportedCategoriesModel@Qt_5_PRIVATE_API 5.9.0 @@ -2816,22 +3788,34 @@ _ZTS7QGeoMap@Qt_5_PRIVATE_API 5.6.0 _ZTV11QPlaceImage@Qt_5 5.6.0 _ZTV11QPlaceReply@Qt_5 5.6.0 + _ZTV11VisibleNode@Qt_5_PRIVATE_API 5.11.0 _ZTV12QGeoTiledMap@Qt_5_PRIVATE_API 5.6.0 _ZTV12QPlaceResult@Qt_5 5.6.0 _ZTV12QPlaceReview@Qt_5 5.6.0 _ZTV13QGeoCodeReply@Qt_5 5.6.0 + _ZTV13QGeoMapObject@Qt_5_PRIVATE_API 5.11.0 _ZTV13QPlaceContent@Qt_5 5.6.0 _ZTV13QPlaceIdReply@Qt_5 5.6.0 _ZTV13QPlaceManager@Qt_5 5.6.0 + _ZTV13QPlacePrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTV13QQSGMapObject@Qt_5_PRIVATE_API 5.11.0 + _ZTV14MapPolygonNode@Qt_5_PRIVATE_API 5.11.0 _ZTV14QGeoMapPrivate@Qt_5_PRIVATE_API 5.9.0 _ZTV14QGeoProjection@Qt_5_PRIVATE_API 5.9.0 _ZTV14QGeoRouteReply@Qt_5 5.6.0 + _ZTV14QMapIconObject@Qt_5_PRIVATE_API 5.11.0 + _ZTV14QMapObjectView@Qt_5_PRIVATE_API 5.11.0 _ZTV14QPlaceCategory@Qt_5 5.6.0 + _ZTV15MapPolylineNode@Qt_5_PRIVATE_API 5.11.0 _ZTV15QGeoRouteParser@Qt_5_PRIVATE_API 5.7.1 _ZTV15QGeoTileFetcher@Qt_5_PRIVATE_API 5.6.0 + _ZTV15QMapRouteObject@Qt_5_PRIVATE_API 5.11.0 _ZTV15QPlaceAttribute@Qt_5 5.6.0 _ZTV15QPlaceEditorial@Qt_5 5.6.0 _ZTV16QGeoMapParameter@Qt_5_PRIVATE_API 5.9.0 + _ZTV16QGeoRoutePrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTV16QGeoTiledMapLabs@Qt_5_PRIVATE_API 5.11.0 + _ZTV16QMapCircleObject@Qt_5_PRIVATE_API 5.11.0 _ZTV16QPlaceMatchReply@Qt_5 5.6.0 _ZTV17QDeclarativePlace@Qt_5_PRIVATE_API 5.9.0 _ZTV17QGeoCodingManager@Qt_5 5.6.0 @@ -2839,14 +3823,20 @@ _ZTV17QGeoMapPinchEvent@Qt_5_PRIVATE_API 5.9.0 _ZTV17QGeoTiledMapReply@Qt_5_PRIVATE_API 5.6.0 _ZTV17QGeoTiledMapScene@Qt_5_PRIVATE_API 5.7.0 + _ZTV17QMapPolygonObject@Qt_5_PRIVATE_API 5.11.0 _ZTV17QPlaceSearchReply@Qt_5 5.6.0 _ZTV18QDeclarativeGeoMap@Qt_5_PRIVATE_API 5.9.0 _ZTV18QGeoMappingManager@Qt_5_PRIVATE_API 5.6.0 _ZTV18QGeoRoutingManager@Qt_5 5.6.0 + _ZTV18QMapPolylineObject@Qt_5_PRIVATE_API 5.11.0 + _ZTV18QNavigationManager@Qt_5_PRIVATE_API 5.11.0 _ZTV18QPlaceContentReply@Qt_5 5.6.0 _ZTV18QPlaceDetailsReply@Qt_5 5.6.0 _ZTV18QPlaceSearchResult@Qt_5 5.6.0 + _ZTV19MapItemGeometryNode@Qt_5_PRIVATE_API 5.11.0 _ZTV19QDeclarativeRatings@Qt_5_PRIVATE_API 5.9.0 + _ZTV19QGeoManeuverPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTV19QGeoMapItemGeometry@Qt_5_PRIVATE_API 5.11.0 _ZTV19QGeoServiceProvider@Qt_5 5.6.0 _ZTV19QGeoTiledMapPrivate@Qt_5_PRIVATE_API 5.9.0 _ZTV19QPlaceContactDetail@Qt_5 5.6.0 @@ -2854,35 +3844,56 @@ _ZTV20QDeclarativeCategory@Qt_5_PRIVATE_API 5.9.0 _ZTV20QDeclarativeGeoRoute@Qt_5_PRIVATE_API 5.9.0 _ZTV20QDeclarativeSupplier@Qt_5_PRIVATE_API 5.9.0 + _ZTV20QGeoMapObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTV20QPlacePrivateDefault@Qt_5_PRIVATE_API 5.11.0 _ZTV21QAbstractGeoTileCache@Qt_5_PRIVATE_API 5.6.0 + _ZTV21QDeclarativeNavigator@Qt_5_PRIVATE_API 5.11.0 _ZTV21QDeclarativePlaceIcon@Qt_5_PRIVATE_API 5.9.0 _ZTV21QDeclarativePlaceUser@Qt_5_PRIVATE_API 5.9.0 + _ZTV21QGeoMapCircleGeometry@Qt_5_PRIVATE_API 5.11.0 _ZTV21QGeoRouteParserOsrmV4@Qt_5_PRIVATE_API 5.7.1 _ZTV21QGeoRouteParserOsrmV5@Qt_5_PRIVATE_API 5.7.1 + _ZTV21QMapIconObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTV21QMapObjectViewPrivate@Qt_5_PRIVATE_API 5.11.0 _ZTV22QDeclarativeGeoMapType@Qt_5_PRIVATE_API 5.9.0 + _ZTV22QGeoMapPolygonGeometry@Qt_5_PRIVATE_API 5.11.0 _ZTV22QGeoTileFetcherPrivate@Qt_5_PRIVATE_API 5.9.0 + _ZTV22QMapRouteObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTV22QParameterizableObject@Qt_5_PRIVATE_API 5.11.0 _ZTV22QPlaceReplyUnsupported@Qt_5_PRIVATE_API 5.6.0 _ZTV23QDeclarativeGeoManeuver@Qt_5_PRIVATE_API 5.9.0 + _ZTV23QDeclarativeGeoWaypoint@Qt_5_PRIVATE_API 5.11.0 _ZTV23QDeclarativeReviewModel@Qt_5_PRIVATE_API 5.9.0 _ZTV23QGeoCodingManagerEngine@Qt_5 5.6.0 + _ZTV23QGeoMapPolylineGeometry@Qt_5_PRIVATE_API 5.11.0 + _ZTV23QGeoRoutePrivateDefault@Qt_5 5.11.0 + _ZTV23QGeoRouteSegmentPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTV23QMapCircleObjectPrivate@Qt_5_PRIVATE_API 5.11.0 _ZTV23QQuickGeoMapGestureArea@Qt_5_PRIVATE_API 5.9.0 _ZTV24QDeclarativeGeocodeModel@Qt_5_PRIVATE_API 5.9.0 _ZTV24QDeclarativeRouteMapItem@Qt_5_PRIVATE_API 5.9.0 _ZTV24QGeoMappingManagerEngine@Qt_5_PRIVATE_API 5.6.0 _ZTV24QGeoRoutingManagerEngine@Qt_5 5.6.0 + _ZTV24QMapIconObjectPrivateQSG@Qt_5_PRIVATE_API 5.11.0 + _ZTV24QMapPolygonObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTV24QNavigationManagerEngine@Qt_5_PRIVATE_API 5.11.0 _ZTV24QPlaceIdReplyUnsupported@Qt_5_PRIVATE_API 5.6.0 - _ZTV24QQuickPaintedItemPrivate@Qt_5 5.9.5 + _ZTV24QQuickPaintedItemPrivate@Qt_5 5.10.1 _ZTV25QDeclarativeCircleMapItem@Qt_5_PRIVATE_API 5.9.0 _ZTV25QDeclarativeContactDetail@Qt_5_PRIVATE_API 5.9.0 _ZTV25QDeclarativeGeoRouteModel@Qt_5_PRIVATE_API 5.9.0 _ZTV25QDeclarativeGeoRouteQuery@Qt_5_PRIVATE_API 5.9.0 _ZTV25QGeoProjectionWebMercator@Qt_5_PRIVATE_API 5.9.0 + _ZTV25QMapPolylineObjectPrivate@Qt_5_PRIVATE_API 5.11.0 + _ZTV25QMapRouteObjectPrivateQSG@Qt_5_PRIVATE_API 5.11.0 _ZTV26QDeclarativeContactDetails@Qt_5_PRIVATE_API 5.9.0 _ZTV26QDeclarativeGeoMapItemBase@Qt_5_PRIVATE_API 5.9.0 _ZTV26QDeclarativeGeoMapItemView@Qt_5_PRIVATE_API 5.9.0 _ZTV26QDeclarativePlaceAttribute@Qt_5_PRIVATE_API 5.9.0 _ZTV26QDeclarativePolygonMapItem@Qt_5_PRIVATE_API 5.9.0 + _ZTV26QGeoManeuverPrivateDefault@Qt_5_PRIVATE_API 5.11.0 _ZTV26QGeoServiceProviderFactory@Qt_5 5.6.0 + _ZTV26QMapCircleObjectPrivateQSG@Qt_5_PRIVATE_API 5.11.0 _ZTV26QPlaceProposedSearchResult@Qt_5 5.6.0 _ZTV27QDeclarativeGeoMapItemGroup@Qt_5_PRIVATE_API 5.9.0 _ZTV27QDeclarativeGeoMapParameter@Qt_5_PRIVATE_API 5.9.0 @@ -2891,10 +3902,14 @@ _ZTV27QDeclarativePlaceImageModel@Qt_5_PRIVATE_API 5.9.0 _ZTV27QDeclarativePolylineMapItem@Qt_5_PRIVATE_API 5.9.0 _ZTV27QDeclarativeSearchModelBase@Qt_5_PRIVATE_API 5.9.0 + _ZTV27QMapPolygonObjectPrivateQSG@Qt_5_PRIVATE_API 5.11.0 _ZTV27QPlaceMatchReplyUnsupported@Qt_5_PRIVATE_API 5.6.0 _ZTV27QPlaceSearchSuggestionReply@Qt_5 5.6.0 - _ZTV28MapItemViewDelegateIncubator@Qt_5_PRIVATE_API 5.9.0 _ZTV28QDeclarativeRectangleMapItem@Qt_5_PRIVATE_API 5.9.0 + _ZTV28QGeoServiceProviderFactoryV2@Qt_5 5.11.0 + _ZTV28QMapIconObjectPrivateDefault@Qt_5_PRIVATE_API 5.11.0 + _ZTV28QMapObjectViewPrivateDefault@Qt_5_PRIVATE_API 5.11.0 + _ZTV28QMapPolylineObjectPrivateQSG@Qt_5_PRIVATE_API 5.11.0 _ZTV28QPlaceSearchReplyUnsupported@Qt_5_PRIVATE_API 5.6.0 _ZTV29QDeclarativeMapLineProperties@Qt_5_PRIVATE_API 5.9.0 _ZTV29QDeclarativePlaceContentModel@Qt_5_PRIVATE_API 5.9.0 @@ -2903,7 +3918,12 @@ _ZTV29QPlaceContentReplyUnsupported@Qt_5_PRIVATE_API 5.6.0 _ZTV29QPlaceDetailsReplyUnsupported@Qt_5_PRIVATE_API 5.6.0 _ZTV30QDeclarativeGeoServiceProvider@Qt_5_PRIVATE_API 5.9.0 + _ZTV30QGeoRouteSegmentPrivateDefault@Qt_5_PRIVATE_API 5.11.0 + _ZTV30QMapCircleObjectPrivateDefault@Qt_5_PRIVATE_API 5.11.0 _ZTV31QDeclarativePlaceEditorialModel@Qt_5_PRIVATE_API 5.9.0 + _ZTV31QMapPolygonObjectPrivateDefault@Qt_5_PRIVATE_API 5.11.0 + _ZTV32QMapPolylineObjectPrivateDefault@Qt_5_PRIVATE_API 5.11.0 + _ZTV33QDeclarativeGeoCameraCapabilities@Qt_5_PRIVATE_API 5.10.1 _ZTV33QDeclarativeGeoMapCopyrightNotice@Qt_5_PRIVATE_API 5.9.0 _ZTV33QDeclarativeSearchSuggestionModel@Qt_5_PRIVATE_API 5.9.0 _ZTV36QDeclarativeSupportedCategoriesModel@Qt_5_PRIVATE_API 5.9.0 @@ -2911,11 +3931,15 @@ _ZTV39QDeclarativeGeoServiceProviderParameter@Qt_5_PRIVATE_API 5.9.0 _ZTV42QDeclarativeGeoServiceProviderRequirements@Qt_5_PRIVATE_API 5.9.0 _ZTV7QGeoMap@Qt_5_PRIVATE_API 5.6.0 + (optional=templinst)_ZZN9QMetaType17registerConverterIP23QDeclarativeGeoWaypoint14QGeoCoordinatePFS3_PKS1_EEEbT1_E1f@Qt_5_PRIVATE_API 5.11.0 _ZZZN27QPlaceMatchReplyUnsupportedC4EP19QPlaceManagerEngineENKUlvE_clEvE15qstring_literal@Qt_5_PRIVATE_API 5.6.0 _ZZZN29QPlaceContentReplyUnsupportedC4EP19QPlaceManagerEngineENKUlvE_clEvE15qstring_literal@Qt_5_PRIVATE_API 5.6.0 _ZZZN29QPlaceDetailsReplyUnsupportedC4EP19QPlaceManagerEngineENKUlvE_clEvE15qstring_literal@Qt_5_PRIVATE_API 5.6.0 _ZZZN38QPlaceSearchSuggestionReplyUnsupportedC4EP19QPlaceManagerEngineENKUlvE_clEvE15qstring_literal@Qt_5_PRIVATE_API 5.6.0 _Zls6QDebugRK12QGeoTileSpec@Qt_5_PRIVATE_API 5.6.0 + (c++)"non-virtual thunk to MapItemGeometryNode::~MapItemGeometryNode()@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to MapPolygonNode::~MapPolygonNode()@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to MapPolylineNode::~MapPolylineNode()@Qt_5_PRIVATE_API" 5.11.0 (c++)"non-virtual thunk to QDeclarativeCategory::componentComplete()@Qt_5_PRIVATE_API" 5.9.0 (c++)"non-virtual thunk to QDeclarativeCategory::~QDeclarativeCategory()@Qt_5_PRIVATE_API" 5.9.0 (c++)"non-virtual thunk to QDeclarativeCircleMapItem::~QDeclarativeCircleMapItem()@Qt_5_PRIVATE_API" 5.9.0 @@ -2924,6 +3948,7 @@ (c++)"non-virtual thunk to QDeclarativeGeoMapCopyrightNotice::~QDeclarativeGeoMapCopyrightNotice()@Qt_5_PRIVATE_API" 5.9.0 (c++)"non-virtual thunk to QDeclarativeGeoMapItemBase::~QDeclarativeGeoMapItemBase()@Qt_5_PRIVATE_API" 5.9.0 (c++)"non-virtual thunk to QDeclarativeGeoMapItemGroup::~QDeclarativeGeoMapItemGroup()@Qt_5_PRIVATE_API" 5.9.0 + (c++)"non-virtual thunk to QDeclarativeGeoMapItemView::classBegin()@Qt_5_PRIVATE_API" 5.11.0 (c++)"non-virtual thunk to QDeclarativeGeoMapItemView::componentComplete()@Qt_5_PRIVATE_API" 5.9.0 (c++)"non-virtual thunk to QDeclarativeGeoMapItemView::~QDeclarativeGeoMapItemView()@Qt_5_PRIVATE_API" 5.9.0 (c++)"non-virtual thunk to QDeclarativeGeoMapParameter::classBegin()@Qt_5_PRIVATE_API" 5.9.0 @@ -2936,8 +3961,12 @@ (c++)"non-virtual thunk to QDeclarativeGeoRouteQuery::~QDeclarativeGeoRouteQuery()@Qt_5_PRIVATE_API" 5.9.0 (c++)"non-virtual thunk to QDeclarativeGeoServiceProvider::componentComplete()@Qt_5_PRIVATE_API" 5.9.0 (c++)"non-virtual thunk to QDeclarativeGeoServiceProvider::~QDeclarativeGeoServiceProvider()@Qt_5_PRIVATE_API" 5.9.0 + (c++)"non-virtual thunk to QDeclarativeGeoWaypoint::~QDeclarativeGeoWaypoint()@Qt_5_PRIVATE_API" 5.11.0 (c++)"non-virtual thunk to QDeclarativeGeocodeModel::componentComplete()@Qt_5_PRIVATE_API" 5.9.0 (c++)"non-virtual thunk to QDeclarativeGeocodeModel::~QDeclarativeGeocodeModel()@Qt_5_PRIVATE_API" 5.9.0 + (c++)"non-virtual thunk to QDeclarativeNavigator::classBegin()@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QDeclarativeNavigator::componentComplete()@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QDeclarativeNavigator::~QDeclarativeNavigator()@Qt_5_PRIVATE_API" 5.11.0 (c++)"non-virtual thunk to QDeclarativePlace::componentComplete()@Qt_5_PRIVATE_API" 5.9.0 (c++)"non-virtual thunk to QDeclarativePlace::~QDeclarativePlace()@Qt_5_PRIVATE_API" 5.9.0 (c++)"non-virtual thunk to QDeclarativePlaceContentModel::classBegin()@Qt_5_PRIVATE_API" 5.9.0 @@ -2959,4 +3988,30 @@ (c++)"non-virtual thunk to QDeclarativeSupplier::~QDeclarativeSupplier()@Qt_5_PRIVATE_API" 5.9.0 (c++)"non-virtual thunk to QDeclarativeSupportedCategoriesModel::componentComplete()@Qt_5_PRIVATE_API" 5.9.0 (c++)"non-virtual thunk to QDeclarativeSupportedCategoriesModel::~QDeclarativeSupportedCategoriesModel()@Qt_5_PRIVATE_API" 5.9.0 + (c++)"non-virtual thunk to QGeoMapObject::classBegin()@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QGeoMapObject::componentComplete()@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QGeoMapObject::~QGeoMapObject()@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QMapCircleObject::~QMapCircleObject()@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QMapCircleObjectPrivateQSG::updateGeometry()@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QMapCircleObjectPrivateQSG::updateMapObjectNode(QSGNode*, VisibleNode**, QSGNode*, QQuickWindow*)@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QMapCircleObjectPrivateQSG::~QMapCircleObjectPrivateQSG()@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QMapIconObject::~QMapIconObject()@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QMapIconObjectPrivateQSG::updateGeometry()@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QMapIconObjectPrivateQSG::updateMapObjectNode(QSGNode*, VisibleNode**, QSGNode*, QQuickWindow*)@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QMapIconObjectPrivateQSG::~QMapIconObjectPrivateQSG()@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QMapObjectView::classBegin()@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QMapObjectView::componentComplete()@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QMapObjectView::~QMapObjectView()@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QMapPolygonObject::~QMapPolygonObject()@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QMapPolygonObjectPrivateQSG::updateGeometry()@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QMapPolygonObjectPrivateQSG::updateMapObjectNode(QSGNode*, VisibleNode**, QSGNode*, QQuickWindow*)@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QMapPolygonObjectPrivateQSG::~QMapPolygonObjectPrivateQSG()@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QMapPolylineObject::~QMapPolylineObject()@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QMapPolylineObjectPrivateQSG::updateGeometry()@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QMapPolylineObjectPrivateQSG::updateMapObjectNode(QSGNode*, VisibleNode**, QSGNode*, QQuickWindow*)@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QMapPolylineObjectPrivateQSG::~QMapPolylineObjectPrivateQSG()@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QMapRouteObject::~QMapRouteObject()@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QMapRouteObjectPrivateQSG::updateGeometry()@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QMapRouteObjectPrivateQSG::updateMapObjectNode(QSGNode*, VisibleNode**, QSGNode*, QQuickWindow*)@Qt_5_PRIVATE_API" 5.11.0 + (c++)"non-virtual thunk to QMapRouteObjectPrivateQSG::~QMapRouteObjectPrivateQSG()@Qt_5_PRIVATE_API" 5.11.0 (c++)"non-virtual thunk to QQuickGeoMapGestureArea::~QQuickGeoMapGestureArea()@Qt_5_PRIVATE_API" 5.9.0 diff -Nru qtlocation-opensource-src-5.9.5+dfsg/debian/libqt5positioning5.symbols qtlocation-opensource-src-5.11.1+dfsg/debian/libqt5positioning5.symbols --- qtlocation-opensource-src-5.9.5+dfsg/debian/libqt5positioning5.symbols 2018-04-14 17:40:28.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/debian/libqt5positioning5.symbols 2018-08-15 22:11:03.000000000 +0000 @@ -1,6 +1,8 @@ -# SymbolsHelper-Confirmed: 5.9.5 amd64 arm64 armhf i386 ppc64el s390x +# SymbolsHelper-Confirmed: 5.11.1 amd64 arm64 armel armhf hppa hurd-i386 i386 m68k mips mips64el mipsel powerpc powerpcspe ppc64 ppc64el s390x sh4 sparc64 libQt5Positioning.so.5 libqt5positioning5 #MINVER# Qt_5.0@Qt_5.0 5.6.0 + Qt_5.10@Qt_5.10 5.10.1 + Qt_5.11@Qt_5.11 5.11.0 Qt_5.1@Qt_5.1 5.6.0 Qt_5.2@Qt_5.2 5.6.0 Qt_5.3@Qt_5.3 5.6.0 @@ -15,9 +17,11 @@ _Z24qt_registerLocationTypesv@Qt_5 5.6.0 _Z5qHashRK14QGeoCoordinatej@Qt_5 5.7.0 _ZGVZN9QMetaType17registerConverterI10QGeoCircle9QGeoShapePFS2_RKS1_EEEbT1_E1f@Qt_5 5.6.0 + _ZGVZN9QMetaType17registerConverterI11QGeoPolygon9QGeoShapePFS2_RKS1_EEEbT1_E1f@Qt_5 5.10.1 _ZGVZN9QMetaType17registerConverterI13QGeoRectangle9QGeoShapePFS2_RKS1_EEEbT1_E1f@Qt_5 5.6.0 _ZGVZN9QMetaType17registerConverterI8QGeoPath9QGeoShapePFS2_RKS1_EEEbT1_E1f@Qt_5 5.9.0 _ZGVZN9QMetaType17registerConverterI9QGeoShape10QGeoCirclePFS2_RKS1_EEEbT1_E1f@Qt_5 5.6.0 + _ZGVZN9QMetaType17registerConverterI9QGeoShape11QGeoPolygonPFS2_RKS1_EEEbT1_E1f@Qt_5 5.10.1 _ZGVZN9QMetaType17registerConverterI9QGeoShape13QGeoRectanglePFS2_RKS1_EEEbT1_E1f@Qt_5 5.6.0 _ZGVZN9QMetaType17registerConverterI9QGeoShape8QGeoPathPFS2_RKS1_EEEbT1_E1f@Qt_5 5.9.0 _ZN10QGeoCircle12extendCircleERK14QGeoCoordinate@Qt_5 5.9.0 @@ -53,6 +57,25 @@ _ZN11QGeoAddressD1Ev@Qt_5 5.6.0 _ZN11QGeoAddressD2Ev@Qt_5 5.6.0 _ZN11QGeoAddressaSERKS_@Qt_5 5.6.0 + _ZN11QGeoPolygon13addCoordinateERK14QGeoCoordinate@Qt_5 5.10.1 + _ZN11QGeoPolygon16insertCoordinateEiRK14QGeoCoordinate@Qt_5 5.10.1 + _ZN11QGeoPolygon16removeCoordinateERK14QGeoCoordinate@Qt_5 5.10.1 + _ZN11QGeoPolygon16removeCoordinateEi@Qt_5 5.10.1 + _ZN11QGeoPolygon16staticMetaObjectE@Qt_5 5.10.1 + _ZN11QGeoPolygon17replaceCoordinateEiRK14QGeoCoordinate@Qt_5 5.10.1 + _ZN11QGeoPolygon7setPathERK5QListI14QGeoCoordinateE@Qt_5 5.10.1 + _ZN11QGeoPolygon9translateEdd@Qt_5 5.10.1 + _ZN11QGeoPolygonC1ERK5QListI14QGeoCoordinateE@Qt_5 5.10.1 + _ZN11QGeoPolygonC1ERK9QGeoShape@Qt_5 5.10.1 + _ZN11QGeoPolygonC1ERKS_@Qt_5 5.10.1 + _ZN11QGeoPolygonC1Ev@Qt_5 5.10.1 + _ZN11QGeoPolygonC2ERK5QListI14QGeoCoordinateE@Qt_5 5.10.1 + _ZN11QGeoPolygonC2ERK9QGeoShape@Qt_5 5.10.1 + _ZN11QGeoPolygonC2ERKS_@Qt_5 5.10.1 + _ZN11QGeoPolygonC2Ev@Qt_5 5.10.1 + _ZN11QGeoPolygonD1Ev@Qt_5 5.10.1 + _ZN11QGeoPolygonD2Ev@Qt_5 5.10.1 + _ZN11QGeoPolygonaSERKS_@Qt_5 5.10.1 _ZN12QGeoLocation10setAddressERK11QGeoAddress@Qt_5 5.6.0 _ZN12QGeoLocation13setCoordinateERK14QGeoCoordinate@Qt_5 5.6.0 _ZN12QGeoLocation14setBoundingBoxERK13QGeoRectangle@Qt_5 5.6.0 @@ -65,7 +88,6 @@ _ZN12QGeoLocationaSERKS_@Qt_5 5.6.0 _ZN12QWebMercator15coordToMercatorERK14QGeoCoordinate@Qt_5_PRIVATE_API 5.9.0 _ZN12QWebMercator15mercatorToCoordERK15QDoubleVector2D@Qt_5_PRIVATE_API 5.9.0 - _ZN12QWebMercator22mercatorToCoordClampedERK15QDoubleVector2D@Qt_5_PRIVATE_API 5.9.0 _ZN12QWebMercator23coordinateInterpolationERK14QGeoCoordinateS2_d@Qt_5_PRIVATE_API 5.9.0 _ZN12QWebMercator7realmodEdd@Qt_5_PRIVATE_API 5.9.0 _ZN13QClipperUtils10toIntPointERK15QDoubleVector2D@Qt_5_PRIVATE_API 5.9.0 @@ -118,6 +140,11 @@ _ZN14QGeoCoordinateD1Ev@Qt_5 5.6.0 _ZN14QGeoCoordinateD2Ev@Qt_5 5.6.0 _ZN14QGeoCoordinateaSERKS_@Qt_5 5.6.0 + _ZN14QLocationUtils11getNmeaTimeERK10QByteArrayP5QTime@Qt_5_PRIVATE_API 5.11.1 + _ZN14QLocationUtils14getNmeaLatLongERK10QByteArraycS2_cPdS3_@Qt_5_PRIVATE_API 5.11.1 + _ZN14QLocationUtils18getPosInfoFromNmeaEPKciP16QGeoPositionInfodPb@Qt_5_PRIVATE_API 5.11.1 + _ZN14QLocationUtils19getNmeaSentenceTypeEPKci@Qt_5_PRIVATE_API 5.11.1 + _ZN14QLocationUtils20hasValidNmeaChecksumEPKci@Qt_5_PRIVATE_API 5.11.1 _ZN15QDoubleVector2D9normalizeEv@Qt_5_PRIVATE_API 5.6.0 _ZN15QDoubleVector2DC1ERK15QDoubleVector3D@Qt_5_PRIVATE_API 5.6.0 _ZN15QDoubleVector2DC2ERK15QDoubleVector3D@Qt_5_PRIVATE_API 5.6.0 @@ -152,11 +179,11 @@ _ZN16QGeoPositionInfo12setTimestampERK9QDateTime@Qt_5 5.6.0 _ZN16QGeoPositionInfo13setCoordinateERK14QGeoCoordinate@Qt_5 5.6.0 _ZN16QGeoPositionInfo15removeAttributeENS_9AttributeE@Qt_5 5.6.0 - _ZN16QGeoPositionInfoC1ER23QGeoPositionInfoPrivate@Qt_5_PRIVATE_API 5.9.5 + _ZN16QGeoPositionInfoC1ER23QGeoPositionInfoPrivate@Qt_5_PRIVATE_API 5.10.1 _ZN16QGeoPositionInfoC1ERK14QGeoCoordinateRK9QDateTime@Qt_5 5.6.0 _ZN16QGeoPositionInfoC1ERKS_@Qt_5 5.6.0 _ZN16QGeoPositionInfoC1Ev@Qt_5 5.6.0 - _ZN16QGeoPositionInfoC2ER23QGeoPositionInfoPrivate@Qt_5_PRIVATE_API 5.9.5 + _ZN16QGeoPositionInfoC2ER23QGeoPositionInfoPrivate@Qt_5_PRIVATE_API 5.10.1 _ZN16QGeoPositionInfoC2ERK14QGeoCoordinateRK9QDateTime@Qt_5 5.6.0 _ZN16QGeoPositionInfoC2ERKS_@Qt_5 5.6.0 _ZN16QGeoPositionInfoC2Ev@Qt_5 5.6.0 @@ -187,6 +214,18 @@ _ZN19QGeoAreaMonitorInfoD1Ev@Qt_5 5.6.0 _ZN19QGeoAreaMonitorInfoD2Ev@Qt_5 5.6.0 _ZN19QGeoAreaMonitorInfoaSERKS_@Qt_5 5.6.0 + _ZN20QGeoCoordinateObject11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5_PRIVATE_API 5.11.0 + _ZN20QGeoCoordinateObject11qt_metacastEPKc@Qt_5_PRIVATE_API 5.11.0 + _ZN20QGeoCoordinateObject13setCoordinateERK14QGeoCoordinate@Qt_5_PRIVATE_API 5.11.0 + _ZN20QGeoCoordinateObject16staticMetaObjectE@Qt_5_PRIVATE_API 5.11.0 + _ZN20QGeoCoordinateObject17coordinateChangedEv@Qt_5_PRIVATE_API 5.11.0 + _ZN20QGeoCoordinateObjectC1EP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN20QGeoCoordinateObjectC1ERK14QGeoCoordinateP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN20QGeoCoordinateObjectC2EP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN20QGeoCoordinateObjectC2ERK14QGeoCoordinateP7QObject@Qt_5_PRIVATE_API 5.11.0 + _ZN20QGeoCoordinateObjectD0Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN20QGeoCoordinateObjectD1Ev@Qt_5_PRIVATE_API 5.11.0 + _ZN20QGeoCoordinateObjectD2Ev@Qt_5_PRIVATE_API 5.11.0 _ZN20QGeoPositionInfoDataC1Ev@Qt_5_PRIVATE_API 5.6.0 _ZN20QGeoPositionInfoDataC2Ev@Qt_5_PRIVATE_API 5.6.0 _ZN21QGeoAreaMonitorSource10areaExitedERK19QGeoAreaMonitorInfoRK16QGeoPositionInfo@Qt_5 5.6.0 @@ -267,10 +306,10 @@ _ZN23QDeclarativeGeoLocationD0Ev@Qt_5_PRIVATE_API 5.6.0 _ZN23QDeclarativeGeoLocationD1Ev@Qt_5_PRIVATE_API 5.6.0 _ZN23QDeclarativeGeoLocationD2Ev@Qt_5_PRIVATE_API 5.6.0 - _ZN23QGeoPositionInfoPrivate8getPimplERK16QGeoPositionInfo@Qt_5_PRIVATE_API 5.9.5 - _ZN23QGeoPositionInfoPrivateD0Ev@Qt_5_PRIVATE_API 5.9.5 - _ZN23QGeoPositionInfoPrivateD1Ev@Qt_5_PRIVATE_API 5.9.5 - _ZN23QGeoPositionInfoPrivateD2Ev@Qt_5_PRIVATE_API 5.9.5 + _ZN23QGeoPositionInfoPrivate8getPimplERK16QGeoPositionInfo@Qt_5_PRIVATE_API 5.10.1 + _ZN23QGeoPositionInfoPrivateD0Ev@Qt_5_PRIVATE_API 5.10.1 + _ZN23QGeoPositionInfoPrivateD1Ev@Qt_5_PRIVATE_API 5.10.1 + _ZN23QGeoPositionInfoPrivateD2Ev@Qt_5_PRIVATE_API 5.10.1 _ZN23QGeoSatelliteInfoSource11qt_metacallEN11QMetaObject4CallEiPPv@Qt_5 5.6.0 _ZN23QGeoSatelliteInfoSource11qt_metacastEPKc@Qt_5 5.6.0 _ZN23QGeoSatelliteInfoSource12createSourceERK7QStringP7QObject@Qt_5 5.6.0 @@ -313,6 +352,7 @@ _ZN29QGeoPositionInfoSourceFactoryD1Ev@Qt_5 5.6.0 _ZN29QGeoPositionInfoSourceFactoryD2Ev@Qt_5 5.6.0 _ZN8QGeoPath13addCoordinateERK14QGeoCoordinate@Qt_5 5.9.0 + _ZN8QGeoPath14setVariantPathERK5QListI8QVariantE@Qt_5 5.11.0 _ZN8QGeoPath16insertCoordinateEiRK14QGeoCoordinate@Qt_5 5.9.0 _ZN8QGeoPath16removeCoordinateERK14QGeoCoordinate@Qt_5 5.9.0 _ZN8QGeoPath16removeCoordinateEi@Qt_5 5.9.0 @@ -361,6 +401,15 @@ _ZNK11QGeoAddress7isEmptyEv@Qt_5 5.6.0 _ZNK11QGeoAddress8districtEv@Qt_5 5.6.0 _ZNK11QGeoAddresseqERKS_@Qt_5 5.6.0 + _ZNK11QGeoPolygon10translatedEdd@Qt_5 5.10.1 + _ZNK11QGeoPolygon12coordinateAtEi@Qt_5 5.10.1 + _ZNK11QGeoPolygon18containsCoordinateERK14QGeoCoordinate@Qt_5 5.10.1 + _ZNK11QGeoPolygon4pathEv@Qt_5 5.10.1 + _ZNK11QGeoPolygon4sizeEv@Qt_5 5.10.1 + _ZNK11QGeoPolygon6lengthEii@Qt_5 5.10.1 + _ZNK11QGeoPolygon8toStringEv@Qt_5 5.10.1 + _ZNK11QGeoPolygoneqERKS_@Qt_5 5.10.1 + _ZNK11QGeoPolygonneERKS_@Qt_5 5.10.1 _ZNK12QGeoLocation10coordinateEv@Qt_5 5.6.0 _ZNK12QGeoLocation11boundingBoxEv@Qt_5 5.6.0 _ZNK12QGeoLocation7addressEv@Qt_5 5.6.0 @@ -425,6 +474,10 @@ _ZNK19QGeoAreaMonitorInfo7isValidEv@Qt_5 5.6.0 _ZNK19QGeoAreaMonitorInfoeqERKS_@Qt_5 5.6.0 _ZNK19QGeoAreaMonitorInfoneERKS_@Qt_5 5.6.0 + _ZNK20QGeoCoordinateObject10coordinateEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK20QGeoCoordinateObject10metaObjectEv@Qt_5_PRIVATE_API 5.11.0 + _ZNK20QGeoCoordinateObjecteqERK14QGeoCoordinate@Qt_5_PRIVATE_API 5.11.0 + _ZNK20QGeoCoordinateObjecteqERKS_@Qt_5_PRIVATE_API 5.11.0 _ZNK21QGeoAreaMonitorSource10metaObjectEv@Qt_5 5.6.0 _ZNK21QGeoAreaMonitorSource10sourceNameEv@Qt_5 5.6.0 _ZNK21QGeoAreaMonitorSource18positionInfoSourceEv@Qt_5 5.6.0 @@ -449,8 +502,8 @@ _ZNK23QDeclarativeGeoLocation11boundingBoxEv@Qt_5_PRIVATE_API 5.6.0 _ZNK23QDeclarativeGeoLocation7addressEv@Qt_5_PRIVATE_API 5.6.0 _ZNK23QDeclarativeGeoLocation8locationEv@Qt_5_PRIVATE_API 5.6.0 - _ZNK23QGeoPositionInfoPrivate5cloneEv@Qt_5_PRIVATE_API 5.9.5 - _ZNK23QGeoPositionInfoPrivateeqERKS_@Qt_5_PRIVATE_API 5.9.5 + _ZNK23QGeoPositionInfoPrivate5cloneEv@Qt_5_PRIVATE_API 5.10.1 + _ZNK23QGeoPositionInfoPrivateeqERKS_@Qt_5_PRIVATE_API 5.10.1 _ZNK23QGeoSatelliteInfoSource10metaObjectEv@Qt_5 5.6.0 _ZNK23QGeoSatelliteInfoSource10sourceNameEv@Qt_5 5.6.0 _ZNK23QGeoSatelliteInfoSource14updateIntervalEv@Qt_5 5.6.0 @@ -463,9 +516,11 @@ _ZNK23QNmeaPositionInfoSource5errorEv@Qt_5 5.6.0 _ZNK23QNmeaPositionInfoSource6deviceEv@Qt_5 5.6.0 _ZNK8QGeoPath10translatedEdd@Qt_5 5.9.0 + _ZNK8QGeoPath11variantPathEv@Qt_5 5.11.0 _ZNK8QGeoPath12coordinateAtEi@Qt_5 5.9.0 _ZNK8QGeoPath18containsCoordinateERK14QGeoCoordinate@Qt_5 5.9.0 _ZNK8QGeoPath4pathEv@Qt_5 5.9.0 + _ZNK8QGeoPath4sizeEv@Qt_5 5.10.1 _ZNK8QGeoPath5widthEv@Qt_5 5.9.0 _ZNK8QGeoPath6lengthEii@Qt_5 5.9.0 _ZNK8QGeoPath8toStringEv@Qt_5 5.9.0 @@ -480,36 +535,43 @@ _ZNK9QGeoShape8toStringEv@Qt_5 5.6.0 _ZNK9QGeoShapeeqERKS_@Qt_5 5.6.0 _ZNK9QGeoShapeneERKS_@Qt_5 5.6.0 + (optional=templinst)_ZNSt6vectorIxSaIxEE17_M_realloc_insertIJRKxEEEvN9__gnu_cxx17__normal_iteratorIPxS1_EEDpOT_@Qt_5 5.10.1 + (optional=templinst)_ZNSt7__cxx114listIxSaIxEE4sortEv@Qt_5 5.10.1 _ZTI11QSharedData@Qt_5 5.6.0 + _ZTI20QGeoCoordinateObject@Qt_5_PRIVATE_API 5.11.0 _ZTI21QGeoAreaMonitorSource@Qt_5 5.6.0 _ZTI22QDeclarativeGeoAddress@Qt_5_PRIVATE_API 5.6.0 _ZTI22QGeoPositionInfoSource@Qt_5 5.6.0 _ZTI23QDeclarativeGeoLocation@Qt_5_PRIVATE_API 5.6.0 - _ZTI23QGeoPositionInfoPrivate@Qt_5_PRIVATE_API 5.9.5 + _ZTI23QGeoPositionInfoPrivate@Qt_5_PRIVATE_API 5.10.1 _ZTI23QGeoSatelliteInfoSource@Qt_5 5.6.0 _ZTI23QNmeaPositionInfoSource@Qt_5 5.6.0 _ZTI29QGeoPositionInfoSourceFactory@Qt_5 5.6.0 _ZTS11QSharedData@Qt_5 5.6.0 + _ZTS20QGeoCoordinateObject@Qt_5_PRIVATE_API 5.11.0 _ZTS21QGeoAreaMonitorSource@Qt_5 5.6.0 _ZTS22QDeclarativeGeoAddress@Qt_5_PRIVATE_API 5.6.0 _ZTS22QGeoPositionInfoSource@Qt_5 5.6.0 _ZTS23QDeclarativeGeoLocation@Qt_5_PRIVATE_API 5.6.0 - _ZTS23QGeoPositionInfoPrivate@Qt_5_PRIVATE_API 5.9.5 + _ZTS23QGeoPositionInfoPrivate@Qt_5_PRIVATE_API 5.10.1 _ZTS23QGeoSatelliteInfoSource@Qt_5 5.6.0 _ZTS23QNmeaPositionInfoSource@Qt_5 5.6.0 _ZTS29QGeoPositionInfoSourceFactory@Qt_5 5.6.0 + _ZTV20QGeoCoordinateObject@Qt_5_PRIVATE_API 5.11.0 _ZTV21QGeoAreaMonitorSource@Qt_5 5.6.0 _ZTV22QDeclarativeGeoAddress@Qt_5_PRIVATE_API 5.6.0 _ZTV22QGeoPositionInfoSource@Qt_5 5.6.0 _ZTV23QDeclarativeGeoLocation@Qt_5_PRIVATE_API 5.6.0 - _ZTV23QGeoPositionInfoPrivate@Qt_5_PRIVATE_API 5.9.5 + _ZTV23QGeoPositionInfoPrivate@Qt_5_PRIVATE_API 5.10.1 _ZTV23QGeoSatelliteInfoSource@Qt_5 5.6.0 _ZTV23QNmeaPositionInfoSource@Qt_5 5.6.0 _ZTV29QGeoPositionInfoSourceFactory@Qt_5 5.6.0 (optional=templinst)_ZZN9QMetaType17registerConverterI10QGeoCircle9QGeoShapePFS2_RKS1_EEEbT1_E1f@Qt_5 5.6.0 + (optional=templinst)_ZZN9QMetaType17registerConverterI11QGeoPolygon9QGeoShapePFS2_RKS1_EEEbT1_E1f@Qt_5 5.10.1 (optional=templinst)_ZZN9QMetaType17registerConverterI13QGeoRectangle9QGeoShapePFS2_RKS1_EEEbT1_E1f@Qt_5 5.6.0 (optional=templinst)_ZZN9QMetaType17registerConverterI8QGeoPath9QGeoShapePFS2_RKS1_EEEbT1_E1f@Qt_5 5.9.0 (optional=templinst)_ZZN9QMetaType17registerConverterI9QGeoShape10QGeoCirclePFS2_RKS1_EEEbT1_E1f@Qt_5 5.6.0 + (optional=templinst)_ZZN9QMetaType17registerConverterI9QGeoShape11QGeoPolygonPFS2_RKS1_EEEbT1_E1f@Qt_5 5.10.1 (optional=templinst)_ZZN9QMetaType17registerConverterI9QGeoShape13QGeoRectanglePFS2_RKS1_EEEbT1_E1f@Qt_5 5.6.0 (optional=templinst)_ZZN9QMetaType17registerConverterI9QGeoShape8QGeoPathPFS2_RKS1_EEEbT1_E1f@Qt_5 5.9.0 _ZdvRK16QDoubleMatrix4x4d@Qt_5_PRIVATE_API 5.9.0 diff -Nru qtlocation-opensource-src-5.9.5+dfsg/debian/libqt5positioningquick5.install qtlocation-opensource-src-5.11.1+dfsg/debian/libqt5positioningquick5.install --- qtlocation-opensource-src-5.9.5+dfsg/debian/libqt5positioningquick5.install 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/debian/libqt5positioningquick5.install 2018-07-25 12:53:55.000000000 +0000 @@ -0,0 +1 @@ +usr/lib/*/libQt5PositioningQuick.so.* diff -Nru qtlocation-opensource-src-5.9.5+dfsg/debian/qml-module-qt-labs-location.install qtlocation-opensource-src-5.11.1+dfsg/debian/qml-module-qt-labs-location.install --- qtlocation-opensource-src-5.9.5+dfsg/debian/qml-module-qt-labs-location.install 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/debian/qml-module-qt-labs-location.install 2018-08-15 13:15:07.000000000 +0000 @@ -0,0 +1,3 @@ +usr/lib/*/qt5/qml/Qt/labs/location/liblocationlabsplugin.so +usr/lib/*/qt5/qml/Qt/labs/location/plugins.qmltypes +usr/lib/*/qt5/qml/Qt/labs/location/qmldir diff -Nru qtlocation-opensource-src-5.9.5+dfsg/debian/qtpositioning5-dev.install qtlocation-opensource-src-5.11.1+dfsg/debian/qtpositioning5-dev.install --- qtlocation-opensource-src-5.9.5+dfsg/debian/qtpositioning5-dev.install 2018-04-14 17:11:38.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/debian/qtpositioning5-dev.install 2018-08-15 13:15:07.000000000 +0000 @@ -5,6 +5,8 @@ usr/include/*/qt5/QtPositioning/QGeoCoordinate usr/include/*/qt5/QtPositioning/QGeoLocation usr/include/*/qt5/QtPositioning/QGeoPath +usr/include/*/qt5/QtPositioning/QGeoPolygon +usr/include/*/qt5/QtPositioning/QGeoPolygonPrivate usr/include/*/qt5/QtPositioning/QGeoPositionInfo usr/include/*/qt5/QtPositioning/QGeoPositionInfoSource usr/include/*/qt5/QtPositioning/QGeoPositionInfoSourceFactory @@ -23,6 +25,7 @@ usr/include/*/qt5/QtPositioning/qgeocoordinate.h usr/include/*/qt5/QtPositioning/qgeolocation.h usr/include/*/qt5/QtPositioning/qgeopath.h +usr/include/*/qt5/QtPositioning/qgeopolygon.h usr/include/*/qt5/QtPositioning/qgeopositioninfo.h usr/include/*/qt5/QtPositioning/qgeopositioninfosource.h usr/include/*/qt5/QtPositioning/qgeopositioninfosourcefactory.h @@ -34,11 +37,22 @@ usr/include/*/qt5/QtPositioning/qpositioningglobal.h usr/include/*/qt5/QtPositioning/qtpositioning-config.h usr/include/*/qt5/QtPositioning/qtpositioningversion.h +usr/include/*/qt5/QtPositioningQuick/QtPositioningQuick +usr/include/*/qt5/QtPositioningQuick/QtPositioningQuickDepends +usr/include/*/qt5/QtPositioningQuick/QtPositioningQuickVersion +usr/include/*/qt5/QtPositioningQuick/qpositioningquickglobal.h +usr/include/*/qt5/QtPositioningQuick/qtpositioningquickversion.h usr/lib/*/cmake/Qt5Positioning/Qt5PositioningConfig.cmake usr/lib/*/cmake/Qt5Positioning/Qt5PositioningConfigVersion.cmake usr/lib/*/cmake/Qt5Positioning/Qt5Positioning_QGeoPositionInfoSourceFactoryGeoclue.cmake usr/lib/*/cmake/Qt5Positioning/Qt5Positioning_QGeoPositionInfoSourceFactoryPoll.cmake +usr/lib/*/cmake/Qt5PositioningQuick/Qt5PositioningQuickConfig.cmake +usr/lib/*/cmake/Qt5PositioningQuick/Qt5PositioningQuickConfigVersion.cmake usr/lib/*/libQt5Positioning.prl usr/lib/*/libQt5Positioning.so +usr/lib/*/libQt5PositioningQuick.prl +usr/lib/*/libQt5PositioningQuick.so usr/lib/*/pkgconfig/Qt5Positioning.pc +usr/lib/*/pkgconfig/Qt5PositioningQuick.pc usr/lib/*/qt5/mkspecs/modules/qt_lib_positioning.pri +usr/lib/*/qt5/mkspecs/modules/qt_lib_positioningquick.pri diff -Nru qtlocation-opensource-src-5.9.5+dfsg/debian/rules qtlocation-opensource-src-5.11.1+dfsg/debian/rules --- qtlocation-opensource-src-5.9.5+dfsg/debian/rules 2018-04-14 17:11:38.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/debian/rules 2018-07-25 12:53:55.000000000 +0000 @@ -5,9 +5,6 @@ DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) -export CFLAGS := $(shell dpkg-buildflags --get CFLAGS) $(shell dpkg-buildflags --get CPPFLAGS) -export CXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS) $(shell dpkg-buildflags --get CPPFLAGS) -export LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS) -Wl,--as-needed export QT_SELECT := qt5 %: @@ -21,18 +18,16 @@ override_dh_auto_install-arch: dh_auto_install - # Fix wrong path in pkgconfig files - find $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig -type f -name '*.pc' \ - -exec sed -i -e 's/$(DEB_HOST_MULTIARCH)\/$(DEB_HOST_MULTIARCH)/$(DEB_HOST_MULTIARCH)/g' {} \; - + # Remove libtool-like files rm -f debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/*.la - + # Remove private stuff rm -rfv $(CURDIR)/debian/tmp/usr/include/$(DEB_HOST_MULTIARCH)/qt5/QtLocation/*/QtLocation/private rm -rfv $(CURDIR)/debian/tmp/usr/include/$(DEB_HOST_MULTIARCH)/qt5/QtPositioning/*/QtPositioning/private - rm -fv $(CURDIR)/debian/tmp/usr/lib/*/qt5/mkspecs/modules/qt_lib_*_private.pri - + rm -rfv $(CURDIR)/debian/tmp/usr/include/$(DEB_HOST_MULTIARCH)/qt5/QtPositioningQuick/*/QtPositioningQuick/private + rm -fv $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/qt5/mkspecs/modules/qt_lib_*_private.pri + # Remove binary that includes libtheora in itself rm -f debian/tmp/usr/lib/*/qt5/examples/qtlocation/declarative/mapviewer/qml_location_mapviewer @@ -69,6 +64,3 @@ rm -fv config.tests/geoclue/geoclue rm -rf test_root test_home - -override_dh_strip: - dh_strip --dbgsym-migration='qtlocation5-dbg (<< 5.7.0-1~), qtpositioning5-dbg (<< 5.5.0-1~)' diff -Nru qtlocation-opensource-src-5.9.5+dfsg/debian/watch qtlocation-opensource-src-5.11.1+dfsg/debian/watch --- qtlocation-opensource-src-5.9.5+dfsg/debian/watch 2018-04-14 17:11:38.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/debian/watch 2018-04-07 20:09:01.000000000 +0000 @@ -1,3 +1,3 @@ version=3 -opts=dversionmangle=s/\+dfsg//,repacksuffix=+dfsg \ -https://download.qt.io/official_releases/qt/([\d\.]*)/([\d\.]*)/submodules/qtlocation-opensource-src-([^-]*)\.tar\.xz +opts=uversionmangle=s/-/~/,dversionmangle=s/\+dfsg//,repacksuffix=+dfsg \ +https://download.qt.io/official_releases/qt/([\d\.]*)/([\d\.]*)/submodules/qtlocation-everywhere-src-(.*)\.tar\.xz diff -Nru qtlocation-opensource-src-5.9.5+dfsg/dist/changes-5.10.0 qtlocation-opensource-src-5.11.1+dfsg/dist/changes-5.10.0 --- qtlocation-opensource-src-5.9.5+dfsg/dist/changes-5.10.0 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/dist/changes-5.10.0 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,62 @@ +Qt 5.10 introduces many new features and improvements as well as bugfixes +over the 5.9.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.10 series is binary compatible with the 5.9.x series. +Applications compiled for 5.9 will continue to run with 5.10. + +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. + +**************************************************************************** +* Qt 5.10.0 Changes * +**************************************************************************** + + - This release contains only minor code improvements. + +QtLocation +---------- + + - Map: + * [QTBUG-55782] Added methods to add or remove MapItemViews at runtime. + * Visible region now returns a QGeoPolygon. + + - MapGestureArea: + * Added rotation and tilt scroll wheel actions. + + - MapPolyline: + * Added setPath overload taking a QGeoPath. + + - MapboxGL: + * Updated Mapbox GL Native to v1.1.0. + * [QTBUG-62002] Updated map styles. + * [QTBUG-61442] Fix MapParameter dynamic usage. + + - QDeclarativeGeoMap: + * Added setBearing overload to rotate the map around a given + QGeoCoordinate. + * Added alignCoordinateToPoint method to QDeclarativeGeoMap. + + - QDeclarativeGeoMapType: + * [QTBUG-58931] Added CameraCapabilities and metadata properties to + QDeclarativeGeoMapType. + + - QGeoRouteRequest/RouteQuery: + * Add TrafficFeature to the query features. + +QtPositioning +------------- + + - QGeoPath: + * Add ::size() to QGeoPath to retrieve the number of coordinates in the + path. + + - QGeoPolygon: + * Added QGeoPolygon shape. diff -Nru qtlocation-opensource-src-5.9.5+dfsg/dist/changes-5.10.1 qtlocation-opensource-src-5.11.1+dfsg/dist/changes-5.10.1 --- qtlocation-opensource-src-5.9.5+dfsg/dist/changes-5.10.1 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/dist/changes-5.10.1 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,26 @@ +Qt 5.10.1 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.10.0. + +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.10 series is binary compatible with the 5.9.x series. +Applications compiled for 5.9 will continue to run with 5.10. + +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. + +This release contains all fixes included in the Qt 5.9.4 release. + +**************************************************************************** +* Qt 5.10.1 Changes * +**************************************************************************** + + - This release contains only minor code improvements. diff -Nru qtlocation-opensource-src-5.9.5+dfsg/dist/changes-5.11.0 qtlocation-opensource-src-5.11.1+dfsg/dist/changes-5.11.0 --- qtlocation-opensource-src-5.9.5+dfsg/dist/changes-5.11.0 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/dist/changes-5.11.0 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,116 @@ +Qt 5.11 introduces many new features and improvements as well as bugfixes +over the 5.10.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.11 series is binary compatible with the 5.10.x series. +Applications compiled for 5.10 will continue to run with 5.11. + +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. + +**************************************************************************** +* Qt 5.11.0 Changes * +**************************************************************************** + +QtLocation +---------- + + - Qt.labs.location + * A new experimental QML plugin introduced, Qt.labs.location, which + offers two new categories of QML elements: Map Objects and the + Navigator type. Both are experimental, not supposed to work in every + setup (check documentation). This plugin can be disabled at configure + time, through the location-labs-plugin feature. + * Map objects are supposed to be QQuickItem-less equivalents of + Map Items. They are supposed to be easy to implement in plugins, and + to introduce minimal overhead. They come with a reference + implementation based on QSGNodes, that is supposed to work in all of the + currently offered raster based plugins. + At the present, the MapboxGL plugin does not offer map objects support. + * The Navigator type is a new QML api to expose turn-by-turn navigation + functions present in plugins. It requires a plugin supporting + one of the Navigation capabilities to actually work. + At the present, none of the open source plugins have these capabilities. + + - MapParameter + * MapParameter type now deprecated and re-registered under the DynamicParameter + name. + + - QGeoServiceProvider/QGeoServiceProviderFactory + * Added QGeoServiceProviderFactoryV2, capable of producing + QNavigationManagerEngine objects. + Note: QNavigationManagerEngine is private API. + + - QGeoPath + * The path property changed type, from QList to + QVariantList. This is binary-compatible with the previous release, + and source-compatible in QML. + It may, however, introduce source incompatibilities when using + the QObject property API in C++ (::property and ::setProperty), for + example in the generation of language bindings. + For the regular user-code, the use case was deemed as rare enough + (since QGeoShape has a public setter/getter for the path) to not cause + any problem. + As the beta phase passed without issues, this change was therefore left in place. + + - QGeoRoute + * QGeoRoute, QGeoRouteSegment and QGeoManeuver private implementation are + now (privately) exported and can be subclassed in plugins to provide + custom private implementations. + * QGeoRouteRequest now allows to specify extra parameters in QVariantMap form. + * RouteQuery (QDeclarativeGeoRouteQuery) now allows to specify extra parameters + through Map/DynamicParameters. + * Added extended attributes to QGeoManeuver/QDeclarativeGeoManeuver. + * [QTBUG-64066] Introduced new Waypoint QML type, intended to replace + QGeoCoordinate as mean to specify waypoints in a RouteQuery. + + - QPlace + * QPlace private implementation is now (privately) exported and can be + subclassed in plugins to provide custom private implementations. + * QPlaceContent::Type has a new value, CustomType. + + - QDeclarativeGeoMap + * [QTBUG-66315] Fixed a crash calling Map.clearMapItems before Map is + initialized. + * Fixed MapGestureArea not emitting when controlled with scroll wheel. + * [QTBUG-66880] Fixed clearData not triggering scene update. + * [QTBUG-67580] Fixed crash in QQuickGeoMapGestureArea. + * [QTBUG-67759] Fixed crash when calling clearData at startup. + + - Map Items + * [QTBUG-66758] Fixed re-set map items rendering stale geometry. + * [QTBUG-38459] Fixed the geometry of map items so that, if layers.enabled + is set to true, the scene graph renderer will not cut the items borders + anymore. + * [QTBUG-66692, QTBUG-66830] Fixed polyline geometry generation. + * [QTBUG-62086, QTBUG-65833] Fixed MapItemView not setting context data + upon item deletion. + * [QTBUG-67765] Fixed interaction with Map Items borders. + + - Plugins + * Mapbox: Added OnlinePlacesFeature, PlaceRecommendationsFeature, SearchSuggestionsFeature + and LocalizedPlacesFeature. + * Mapbox: Added OnlineGeocodingFeature, ReverseGeocodingFeature and LocalizedGeocodingFeature. + * Mapbox/OSM: OSRM backend now returns extended attributes for the maneuvers, such as + bearing_before, bearing_after, instruction, type and modifier. + * Mapbox/OSM: OSRM backend now uses Waypoint's bearing when sending a route request. + * Mapbox/OSM: Added OSRM's {leg,step}_index extra attribute to QGeoManeuver. + * Mapbox: Supported Mapbox Directions API voice & banner instructions. + * MapboxGL: Added map margins support via 'margins' map parameter. + * HERE: the plugin now uses Waypoint's bearing when sending a route request. + * OSM: supported the query limit parameter in the nominatim backend. + + +QtPositioning +---------- + + * [QTBUG-65937] Metatype for QGeoPositionInfo is now declared and registered. + This change introduces a potential source incompatibility, as existing user code may + contain the type registration already. diff -Nru qtlocation-opensource-src-5.9.5+dfsg/dist/changes-5.11.1 qtlocation-opensource-src-5.11.1+dfsg/dist/changes-5.11.1 --- qtlocation-opensource-src-5.9.5+dfsg/dist/changes-5.11.1 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/dist/changes-5.11.1 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,40 @@ +Qt 5.11.1 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.11.0. + +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.11 series is binary compatible with the 5.10.x series. +Applications compiled for 5.10 will continue to run with 5.11. + +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. + +**************************************************************************** +* Qt 5.11.1 Changes * +**************************************************************************** + +QtLocation +---------- + +* [QTBUG-63223] Fixed MapPolyline documentation. +* Fixed a crash in Map{Polyline,Polygon,Route}ObjectQsg. +* [QTBUG-68261] Changed nominatim default endpoint base URL to HTTPS. +* Bumped mapbox-gl-native to the latest version, fixing offline tiles support. +* [QTBUG-68121] Supported raster-dem source types in the MapboxGL plugin. +* [QTBUG-68358] Added missing route query parameters to the query in the mapbox plugin. +* [QTBUG-68366] Fixed MapItemView deleting wrong item after changing to use the delegate model internally. +* [QTBUG-68598] Supported dynamic QObject properties in QMapboxGLStyleChange. + + +QtPositioning +------------- + +* [QTBUG-64699] Fixed QGeoPositionInfo timestamp comparison in nmea source. diff -Nru qtlocation-opensource-src-5.9.5+dfsg/examples/location/mapviewer/map/MiniMap.qml qtlocation-opensource-src-5.11.1+dfsg/examples/location/mapviewer/map/MiniMap.qml --- qtlocation-opensource-src-5.9.5+dfsg/examples/location/mapviewer/map/MiniMap.qml 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/examples/location/mapviewer/map/MiniMap.qml 2018-06-12 18:44:12.000000000 +0000 @@ -49,12 +49,33 @@ ****************************************************************************/ import QtQuick 2.5 +import QtPositioning 5.3 import QtLocation 5.6 Rectangle{ + + function clamp(num, min, max) + { + return num < min ? min : num > max ? max : num; + } + + function minimumScaleFactor() + { + var hscalefactor = (400.0 / Math.max(Math.min(map.width, 1000), 400)) * 0.5 + var vscalefactor = (400.0 / Math.max(Math.min(map.height, 1000), 400)) * 0.5 + return Math.min(hscalefactor,vscalefactor) + } + + function avgScaleFactor() + { + var hscalefactor = (400.0 / Math.max(Math.min(map.width, 1000), 400)) * 0.5 + var vscalefactor = (400.0 / Math.max(Math.min(map.height, 1000), 400)) * 0.5 + return (hscalefactor+vscalefactor) * 0.5 + } + id: miniMapRect - width: 152 - height: 152 + width: Math.floor(map.width * avgScaleFactor()) + 2 + height: Math.floor(map.height * avgScaleFactor()) + 2 anchors.right: (parent) ? parent.right : undefined anchors.rightMargin: 10 anchors.top: (parent) ? parent.top : undefined @@ -66,25 +87,40 @@ anchors.topMargin: 1 anchors.left: parent.left anchors.leftMargin: 1 - width: 150 - height: 150 - zoomLevel: (map.zoomLevel > minimumZoomLevel + 3) ? minimumZoomLevel + 3 : 2.5 + width: Math.floor(map.width * avgScaleFactor()) + height: Math.floor(map.height * avgScaleFactor()) + zoomLevel: clamp(map.zoomLevel - 4.5, 2.0, 5.0) //(map.zoomLevel > minimumZoomLevel + 3) ? minimumZoomLevel + 3 : 1.5 center: map.center plugin: map.plugin gesture.enabled: false copyrightsVisible: false + property double mapZoomLevel : map.zoomLevel + + // cannot use property bindings on map.visibleRegion in MapRectangle because it's non-NOTIFYable + onCenterChanged: miniMapRectangle.updateCoordinates() + onMapZoomLevelChanged: miniMapRectangle.updateCoordinates() + onWidthChanged: miniMapRectangle.updateCoordinates() + onHeightChanged: miniMapRectangle.updateCoordinates() MapRectangle { + id: miniMapRectangle color: "#44ff0000" border.width: 1 border.color: "red" - topLeft { - latitude: miniMap.center.latitude + 5 - longitude: miniMap.center.longitude - 5 + + function getMapVisibleRegion() + { + return QtPositioning.shapeToRectangle(map.visibleRegion) } - bottomRight { - latitude: miniMap.center.latitude - 5 - longitude: miniMap.center.longitude + 5 + + function updateCoordinates() + { + topLeft.latitude = getMapVisibleRegion().topLeft.latitude + topLeft.longitude= getMapVisibleRegion().topLeft.longitude + bottomRight.latitude = getMapVisibleRegion().bottomRight.latitude + bottomRight.longitude= getMapVisibleRegion().bottomRight.longitude + console.log("TopLeft: " + topLeft) + console.log("BotRigh: " + bottomRight) } } } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/examples/location/mapviewer/mapviewer.pro qtlocation-opensource-src-5.11.1+dfsg/examples/location/mapviewer/mapviewer.pro --- qtlocation-opensource-src-5.9.5+dfsg/examples/location/mapviewer/mapviewer.pro 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/examples/location/mapviewer/mapviewer.pro 2018-06-12 18:44:12.000000000 +0000 @@ -2,7 +2,6 @@ TEMPLATE = app QT += qml network quick positioning location -CONFIG += qtquickcompiler SOURCES += main.cpp # Workaround for QTBUG-38735 diff -Nru qtlocation-opensource-src-5.9.5+dfsg/examples/location/planespotter/main.cpp qtlocation-opensource-src-5.11.1+dfsg/examples/location/planespotter/main.cpp --- qtlocation-opensource-src-5.9.5+dfsg/examples/location/planespotter/main.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/examples/location/planespotter/main.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -147,7 +147,7 @@ void fromChanged(); protected: - void timerEvent(QTimerEvent *event) Q_DECL_OVERRIDE + void timerEvent(QTimerEvent *event) override { if (!event) return; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/examples/positioning/weatherinfo/appmodel.cpp qtlocation-opensource-src-5.11.1+dfsg/examples/positioning/weatherinfo/appmodel.cpp --- qtlocation-opensource-src-5.9.5+dfsg/examples/positioning/weatherinfo/appmodel.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/examples/positioning/weatherinfo/appmodel.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -57,7 +57,6 @@ #include #include -#include #include #include #include @@ -155,8 +154,6 @@ WeatherData now; QList forecast; QQmlListProperty *fcProp; - QSignalMapper *geoReplyMapper; - QSignalMapper *weatherReplyMapper, *forecastReplyMapper; bool ready; bool useGps; QElapsedTimer throttle; @@ -220,16 +217,6 @@ forecastAt, forecastClear); - d->geoReplyMapper = new QSignalMapper(this); - d->weatherReplyMapper = new QSignalMapper(this); - d->forecastReplyMapper = new QSignalMapper(this); - - connect(d->geoReplyMapper, SIGNAL(mapped(QObject*)), - this, SLOT(handleGeoNetworkData(QObject*))); - connect(d->weatherReplyMapper, SIGNAL(mapped(QObject*)), - this, SLOT(handleWeatherNetworkData(QObject*))); - connect(d->forecastReplyMapper, SIGNAL(mapped(QObject*)), - this, SLOT(handleForecastNetworkData(QObject*))); connect(&d->delayedCityRequestTimer, SIGNAL(timeout()), this, SLOT(queryCity())); connect(&d->requestNewWeatherTimer, SIGNAL(timeout()), @@ -322,9 +309,8 @@ QNetworkReply *rep = d->nam->get(QNetworkRequest(url)); // connect up the signal right away - d->geoReplyMapper->setMapping(rep, rep); - connect(rep, SIGNAL(finished()), - d->geoReplyMapper, SLOT(map())); + connect(rep, &QNetworkReply::finished, + this, [this, rep]() { handleGeoNetworkData(rep); }); } void AppModel::positionError(QGeoPositionInfoSource::Error e) @@ -354,9 +340,8 @@ d->delayedCityRequestTimer.start(); } -void AppModel::handleGeoNetworkData(QObject *replyObj) +void AppModel::handleGeoNetworkData(QNetworkReply *networkReply) { - QNetworkReply *networkReply = qobject_cast(replyObj); if (!networkReply) { hadError(false); // should retry? return; @@ -403,9 +388,8 @@ QNetworkReply *rep = d->nam->get(QNetworkRequest(url)); // connect up the signal right away - d->weatherReplyMapper->setMapping(rep, rep); - connect(rep, SIGNAL(finished()), - d->weatherReplyMapper, SLOT(map())); + connect(rep, &QNetworkReply::finished, + this, [this, rep]() { handleWeatherNetworkData(rep); }); } static QString niceTemperatureString(double t) @@ -413,10 +397,9 @@ return QString::number(qRound(t-ZERO_KELVIN)) + QChar(0xB0); } -void AppModel::handleWeatherNetworkData(QObject *replyObj) +void AppModel::handleWeatherNetworkData(QNetworkReply *networkReply) { qCDebug(requestsLog) << "got weather network data"; - QNetworkReply *networkReply = qobject_cast(replyObj); if (!networkReply) return; @@ -462,14 +445,13 @@ QNetworkReply *rep = d->nam->get(QNetworkRequest(url)); // connect up the signal right away - d->forecastReplyMapper->setMapping(rep, rep); - connect(rep, SIGNAL(finished()), d->forecastReplyMapper, SLOT(map())); + connect(rep, &QNetworkReply::finished, + this, [this, rep]() { handleForecastNetworkData(rep); }); } -void AppModel::handleForecastNetworkData(QObject *replyObj) +void AppModel::handleForecastNetworkData(QNetworkReply *networkReply) { qCDebug(requestsLog) << "got forecast"; - QNetworkReply *networkReply = qobject_cast(replyObj); if (!networkReply) return; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/examples/positioning/weatherinfo/appmodel.h qtlocation-opensource-src-5.11.1+dfsg/examples/positioning/weatherinfo/appmodel.h --- qtlocation-opensource-src-5.9.5+dfsg/examples/positioning/weatherinfo/appmodel.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/examples/positioning/weatherinfo/appmodel.h 2018-06-12 18:44:12.000000000 +0000 @@ -159,10 +159,9 @@ void networkSessionOpened(); void positionUpdated(QGeoPositionInfo gpsPos); void positionError(QGeoPositionInfoSource::Error e); - // these would have QNetworkReply* params but for the signalmapper - void handleGeoNetworkData(QObject *networkReply); - void handleWeatherNetworkData(QObject *networkReply); - void handleForecastNetworkData(QObject *networkReply); + void handleGeoNetworkData(QNetworkReply *networkReply); + void handleWeatherNetworkData(QNetworkReply *networkReply); + void handleForecastNetworkData(QNetworkReply *networkReply); //! [3] signals: diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/error_messages_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/error_messages_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/error_messages_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/error_messages_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/error_messages_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/locationvaluetypehelper_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/locationvaluetypehelper_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/locationvaluetypehelper_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/locationvaluetypehelper_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/locationvaluetypehelper_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/mapitemviewdelegateincubator_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/mapitemviewdelegateincubator_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/mapitemviewdelegateincubator_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/mapitemviewdelegateincubator_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/mapitemviewdelegateincubator_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qabstractgeotilecache_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qabstractgeotilecache_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qabstractgeotilecache_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qabstractgeotilecache_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qabstractgeotilecache_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qcache3q_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qcache3q_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qcache3q_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qcache3q_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qcache3q_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativecategory_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativecategory_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativecategory_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativecategory_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativeplaces/qdeclarativecategory_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativecirclemapitem_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativecirclemapitem_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativecirclemapitem_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativecirclemapitem_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/qdeclarativecirclemapitem_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativecontactdetail_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativecontactdetail_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativecontactdetail_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativecontactdetail_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativeplaces/qdeclarativecontactdetail_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeocodemodel_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeocodemodel_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeocodemodel_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeocodemodel_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/qdeclarativegeocodemodel_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomaneuver_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomaneuver_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomaneuver_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomaneuver_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/qdeclarativegeomaneuver_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomapcopyrightsnotice_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomapcopyrightsnotice_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomapcopyrightsnotice_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomapcopyrightsnotice_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/qdeclarativegeomapcopyrightsnotice_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomapitembase_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomapitembase_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomapitembase_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomapitembase_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/qdeclarativegeomapitembase_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomapitemgroup_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomapitemgroup_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomapitemgroup_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomapitemgroup_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/qdeclarativegeomapitemgroup_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomapitemview_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomapitemview_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomapitemview_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomapitemview_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/qdeclarativegeomapitemview_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomapparameter_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomapparameter_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomapparameter_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomapparameter_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/qdeclarativegeomapparameter_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomap_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomap_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomap_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomap_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/qdeclarativegeomap_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomapquickitem_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomapquickitem_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomapquickitem_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomapquickitem_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/qdeclarativegeomapquickitem_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomaptype_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomaptype_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomaptype_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeomaptype_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/qdeclarativegeomaptype_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeoroutemodel_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeoroutemodel_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeoroutemodel_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeoroutemodel_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/qdeclarativegeoroutemodel_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeoroute_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeoroute_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeoroute_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeoroute_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/qdeclarativegeoroute_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeoroutesegment_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeoroutesegment_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeoroutesegment_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeoroutesegment_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/qdeclarativegeoroutesegment_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeoserviceprovider_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeoserviceprovider_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeoserviceprovider_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativegeoserviceprovider_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/qdeclarativegeoserviceprovider_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativenavigator_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativenavigator_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativenavigator_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativenavigator_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/labs/qdeclarativenavigator_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativenavigator_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativenavigator_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativenavigator_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativenavigator_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/labs/qdeclarativenavigator_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeperiod_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeperiod_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeperiod_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeperiod_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativeplaces/qdeclarativeperiod_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplaceattribute_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplaceattribute_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplaceattribute_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplaceattribute_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativeplaces/qdeclarativeplaceattribute_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplacecontentmodel_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplacecontentmodel_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplacecontentmodel_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplacecontentmodel_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativeplaces/qdeclarativeplacecontentmodel_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplaceeditorialmodel_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplaceeditorialmodel_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplaceeditorialmodel_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplaceeditorialmodel_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativeplaces/qdeclarativeplaceeditorialmodel_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplaceicon_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplaceicon_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplaceicon_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplaceicon_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativeplaces/qdeclarativeplaceicon_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplaceimagemodel_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplaceimagemodel_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplaceimagemodel_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplaceimagemodel_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativeplaces/qdeclarativeplaceimagemodel_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplace_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplace_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplace_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplace_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativeplaces/qdeclarativeplace_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplaceuser_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplaceuser_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplaceuser_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeplaceuser_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativeplaces/qdeclarativeplaceuser_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativepolygonmapitem_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativepolygonmapitem_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativepolygonmapitem_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativepolygonmapitem_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/qdeclarativepolygonmapitem_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativepolylinemapitem_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativepolylinemapitem_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativepolylinemapitem_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativepolylinemapitem_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/qdeclarativepolylinemapitem_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeratings_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeratings_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeratings_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeratings_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativeplaces/qdeclarativeratings_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativerectanglemapitem_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativerectanglemapitem_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativerectanglemapitem_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativerectanglemapitem_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/qdeclarativerectanglemapitem_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativereviewmodel_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativereviewmodel_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativereviewmodel_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativereviewmodel_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativeplaces/qdeclarativereviewmodel_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeroutemapitem_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeroutemapitem_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeroutemapitem_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativeroutemapitem_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/qdeclarativeroutemapitem_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativesearchmodelbase_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativesearchmodelbase_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativesearchmodelbase_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativesearchmodelbase_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativeplaces/qdeclarativesearchmodelbase_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativesearchresultmodel_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativesearchresultmodel_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativesearchresultmodel_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativesearchresultmodel_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativeplaces/qdeclarativesearchresultmodel_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativesearchsuggestionmodel_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativesearchsuggestionmodel_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativesearchsuggestionmodel_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativesearchsuggestionmodel_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativeplaces/qdeclarativesearchsuggestionmodel_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativesupplier_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativesupplier_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativesupplier_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativesupplier_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativeplaces/qdeclarativesupplier_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativesupportedcategoriesmodel_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativesupportedcategoriesmodel_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativesupportedcategoriesmodel_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qdeclarativesupportedcategoriesmodel_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativeplaces/qdeclarativesupportedcategoriesmodel_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeocameracapabilities_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeocameracapabilities_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeocameracapabilities_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeocameracapabilities_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeocameracapabilities_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeocameradata_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeocameradata_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeocameradata_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeocameradata_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeocameradata_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeocameratiles_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeocameratiles_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeocameratiles_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeocameratiles_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeocameratiles_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeocodereply_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeocodereply_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeocodereply_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeocodereply_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeocodereply_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeocodingmanagerengine_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeocodingmanagerengine_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeocodingmanagerengine_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeocodingmanagerengine_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeocodingmanagerengine_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeocodingmanager_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeocodingmanager_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeocodingmanager_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeocodingmanager_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeocodingmanager_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeofiletilecache_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeofiletilecache_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeofiletilecache_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeofiletilecache_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeofiletilecache_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomaneuver_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomaneuver_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomaneuver_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomaneuver_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeomaneuver_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomapitemgeometry_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomapitemgeometry_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomapitemgeometry_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomapitemgeometry_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/qgeomapitemgeometry_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomapobject_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomapobject_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomapobject_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomapobject_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/qgeomapobject_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomapobject_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomapobject_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomapobject_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomapobject_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/qgeomapobject_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomapobjectqsgsupport_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomapobjectqsgsupport_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomapobjectqsgsupport_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomapobjectqsgsupport_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/labs/qsg/qgeomapobjectqsgsupport_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomapparameter_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomapparameter_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomapparameter_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomapparameter_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeomapparameter_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomap_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomap_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomap_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomap_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeomap_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomappingmanagerengine_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomappingmanagerengine_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomappingmanagerengine_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomappingmanagerengine_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeomappingmanagerengine_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomappingmanagerengine_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomappingmanagerengine_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomappingmanagerengine_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomappingmanagerengine_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeomappingmanagerengine_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomappingmanager_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomappingmanager_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomappingmanager_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomappingmanager_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeomappingmanager_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomappingmanager_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomappingmanager_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomappingmanager_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomappingmanager_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeomappingmanager_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomap_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomap_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomap_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomap_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeomap_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomaptype_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomaptype_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomaptype_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomaptype_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeomaptype_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomaptype_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomaptype_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomaptype_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeomaptype_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeomaptype_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoprojection_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoprojection_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoprojection_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoprojection_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeoprojection_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeorouteparserosrmv4_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeorouteparserosrmv4_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeorouteparserosrmv4_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeorouteparserosrmv4_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeorouteparserosrmv4_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeorouteparserosrmv5_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeorouteparserosrmv5_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeorouteparserosrmv5_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeorouteparserosrmv5_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeorouteparserosrmv5_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeorouteparser_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeorouteparser_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeorouteparser_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeorouteparser_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeorouteparser_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeorouteparser_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeorouteparser_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeorouteparser_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeorouteparser_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeorouteparser_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoroute_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoroute_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoroute_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoroute_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeoroute_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoroutereply_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoroutereply_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoroutereply_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoroutereply_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeoroutereply_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeorouterequest_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeorouterequest_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeorouterequest_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeorouterequest_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeorouterequest_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoroutesegment_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoroutesegment_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoroutesegment_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoroutesegment_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeoroutesegment_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoroutingmanagerengine_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoroutingmanagerengine_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoroutingmanagerengine_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoroutingmanagerengine_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeoroutingmanagerengine_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoroutingmanager_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoroutingmanager_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoroutingmanager_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoroutingmanager_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeoroutingmanager_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoserviceprovider_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoserviceprovider_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoserviceprovider_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeoserviceprovider_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeoserviceprovider_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmaplabs_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmaplabs_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmaplabs_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmaplabs_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/labs/qgeotiledmaplabs_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmap_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmap_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmap_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmap_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeotiledmap_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmappingmanagerengine_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmappingmanagerengine_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmappingmanagerengine_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmappingmanagerengine_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeotiledmappingmanagerengine_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmappingmanagerengine_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmappingmanagerengine_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmappingmanagerengine_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmappingmanagerengine_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeotiledmappingmanagerengine_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmap_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmap_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmap_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmap_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeotiledmap_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmapreply_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmapreply_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmapreply_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmapreply_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeotiledmapreply_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmapreply_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmapreply_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmapreply_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmapreply_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeotiledmapreply_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmapscene_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmapscene_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmapscene_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotiledmapscene_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeotiledmapscene_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotilefetcher_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotilefetcher_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotilefetcher_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotilefetcher_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeotilefetcher_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotilefetcher_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotilefetcher_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotilefetcher_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotilefetcher_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeotilefetcher_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotilerequestmanager_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotilerequestmanager_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotilerequestmanager_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotilerequestmanager_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeotilerequestmanager_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotilespec_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotilespec_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotilespec_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotilespec_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeotilespec_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotilespec_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotilespec_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotilespec_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qgeotilespec_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qgeotilespec_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qlocationglobal_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qlocationglobal_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qlocationglobal_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qlocationglobal_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/qlocationglobal_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapcircleobject_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapcircleobject_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapcircleobject_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapcircleobject_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/labs/qmapcircleobject_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapcircleobject_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapcircleobject_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapcircleobject_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapcircleobject_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/labs/qmapcircleobject_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapcircleobjectqsg_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapcircleobjectqsg_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapcircleobjectqsg_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapcircleobjectqsg_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/labs/qsg/qmapcircleobjectqsg_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapiconobject_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapiconobject_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapiconobject_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapiconobject_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/labs/qmapiconobject_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapiconobject_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapiconobject_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapiconobject_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapiconobject_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/labs/qmapiconobject_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapiconobjectqsg_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapiconobjectqsg_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapiconobjectqsg_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapiconobjectqsg_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/labs/qsg/qmapiconobjectqsg_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapobjectview_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapobjectview_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapobjectview_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapobjectview_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/labs/qmapobjectview_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapobjectview_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapobjectview_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapobjectview_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmapobjectview_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/labs/qmapobjectview_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmappolygonobject_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmappolygonobject_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmappolygonobject_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmappolygonobject_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/labs/qmappolygonobject_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmappolygonobject_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmappolygonobject_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmappolygonobject_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmappolygonobject_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/labs/qmappolygonobject_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmappolygonobjectqsg_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmappolygonobjectqsg_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmappolygonobjectqsg_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmappolygonobjectqsg_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/labs/qsg/qmappolygonobjectqsg_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmappolylineobject_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmappolylineobject_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmappolylineobject_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmappolylineobject_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/labs/qmappolylineobject_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmappolylineobject_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmappolylineobject_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmappolylineobject_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmappolylineobject_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/labs/qmappolylineobject_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmappolylineobjectqsg_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmappolylineobjectqsg_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmappolylineobjectqsg_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmappolylineobjectqsg_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/labs/qsg/qmappolylineobjectqsg_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmaprouteobject_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmaprouteobject_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmaprouteobject_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmaprouteobject_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/labs/qmaprouteobject_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmaprouteobject_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmaprouteobject_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmaprouteobject_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmaprouteobject_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/labs/qmaprouteobject_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmaprouteobjectqsg_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmaprouteobjectqsg_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmaprouteobjectqsg_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qmaprouteobjectqsg_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/labs/qsg/qmaprouteobjectqsg_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qnavigationmanagerengine_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qnavigationmanagerengine_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qnavigationmanagerengine_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qnavigationmanagerengine_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qnavigationmanagerengine_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qnavigationmanager_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qnavigationmanager_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qnavigationmanager_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qnavigationmanager_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/maps/qnavigationmanager_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qparameterizableobject_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qparameterizableobject_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qparameterizableobject_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qparameterizableobject_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/qparameterizableobject_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceattribute_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceattribute_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceattribute_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceattribute_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/places/qplaceattribute_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacecategory_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacecategory_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacecategory_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacecategory_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/places/qplacecategory_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacecontactdetail_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacecontactdetail_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacecontactdetail_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacecontactdetail_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/places/qplacecontactdetail_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacecontent_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacecontent_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacecontent_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacecontent_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/places/qplacecontent_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacecontentrequest_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacecontentrequest_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacecontentrequest_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacecontentrequest_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/places/qplacecontentrequest_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceeditorial_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceeditorial_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceeditorial_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceeditorial_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/places/qplaceeditorial_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceicon_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceicon_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceicon_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceicon_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/places/qplaceicon_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceimage_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceimage_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceimage_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceimage_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/places/qplaceimage_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacemanagerengine_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacemanagerengine_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacemanagerengine_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacemanagerengine_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/places/qplacemanagerengine_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplace_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplace_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplace_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplace_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/places/qplace_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceproposedsearchresult_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceproposedsearchresult_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceproposedsearchresult_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceproposedsearchresult_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/places/qplaceproposedsearchresult_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceratings_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceratings_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceratings_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceratings_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/places/qplaceratings_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacereply_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacereply_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacereply_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacereply_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/places/qplacereply_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceresult_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceresult_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceresult_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceresult_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/places/qplaceresult_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacereview_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacereview_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacereview_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacereview_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/places/qplacereview_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacesearchresult_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacesearchresult_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacesearchresult_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacesearchresult_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/places/qplacesearchresult_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacesupplier_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacesupplier_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacesupplier_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplacesupplier_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/places/qplacesupplier_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceuser_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceuser_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceuser_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qplaceuser_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/places/qplaceuser_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qqsgmapobject_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qqsgmapobject_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qqsgmapobject_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qqsgmapobject_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/labs/qsg/qqsgmapobject_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qquickgeomapgesturearea_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qquickgeomapgesturearea_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/qquickgeomapgesturearea_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/qquickgeomapgesturearea_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/declarativemaps/qquickgeomapgesturearea_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/unsupportedreplies_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/unsupportedreplies_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.11.1/QtLocation/private/unsupportedreplies_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.11.1/QtLocation/private/unsupportedreplies_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/location/places/unsupportedreplies_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/error_messages_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/error_messages_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/error_messages_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/error_messages_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativemaps/error_messages_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/locationvaluetypehelper_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/locationvaluetypehelper_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/locationvaluetypehelper_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/locationvaluetypehelper_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativemaps/locationvaluetypehelper_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/mapitemviewdelegateincubator_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/mapitemviewdelegateincubator_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/mapitemviewdelegateincubator_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/mapitemviewdelegateincubator_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativemaps/mapitemviewdelegateincubator_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qabstractgeotilecache_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qabstractgeotilecache_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qabstractgeotilecache_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qabstractgeotilecache_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qabstractgeotilecache_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qcache3q_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qcache3q_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qcache3q_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qcache3q_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qcache3q_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativecategory_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativecategory_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativecategory_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativecategory_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativeplaces/qdeclarativecategory_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativecirclemapitem_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativecirclemapitem_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativecirclemapitem_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativecirclemapitem_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativemaps/qdeclarativecirclemapitem_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativecontactdetail_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativecontactdetail_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativecontactdetail_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativecontactdetail_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativeplaces/qdeclarativecontactdetail_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeocodemodel_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeocodemodel_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeocodemodel_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeocodemodel_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativemaps/qdeclarativegeocodemodel_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomaneuver_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomaneuver_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomaneuver_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomaneuver_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativemaps/qdeclarativegeomaneuver_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapcopyrightsnotice_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapcopyrightsnotice_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapcopyrightsnotice_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapcopyrightsnotice_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativemaps/qdeclarativegeomapcopyrightsnotice_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapitembase_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapitembase_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapitembase_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapitembase_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativemaps/qdeclarativegeomapitembase_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapitemgroup_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapitemgroup_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapitemgroup_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapitemgroup_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativemaps/qdeclarativegeomapitemgroup_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapitemview_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapitemview_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapitemview_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapitemview_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativemaps/qdeclarativegeomapitemview_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapitemview_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapitemview_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapitemview_p_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapitemview_p_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativemaps/qdeclarativegeomapitemview_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapparameter_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapparameter_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapparameter_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapparameter_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativemaps/qdeclarativegeomapparameter_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomap_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomap_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomap_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomap_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativemaps/qdeclarativegeomap_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapquickitem_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapquickitem_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapquickitem_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomapquickitem_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativemaps/qdeclarativegeomapquickitem_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomaptype_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomaptype_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomaptype_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeomaptype_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativemaps/qdeclarativegeomaptype_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeoroutemodel_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeoroutemodel_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeoroutemodel_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeoroutemodel_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativemaps/qdeclarativegeoroutemodel_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeoroute_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeoroute_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeoroute_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeoroute_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativemaps/qdeclarativegeoroute_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeoroutesegment_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeoroutesegment_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeoroutesegment_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeoroutesegment_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativemaps/qdeclarativegeoroutesegment_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeoserviceprovider_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeoserviceprovider_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeoserviceprovider_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativegeoserviceprovider_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativemaps/qdeclarativegeoserviceprovider_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeperiod_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeperiod_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeperiod_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeperiod_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativeplaces/qdeclarativeperiod_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplaceattribute_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplaceattribute_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplaceattribute_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplaceattribute_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativeplaces/qdeclarativeplaceattribute_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplacecontentmodel_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplacecontentmodel_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplacecontentmodel_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplacecontentmodel_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativeplaces/qdeclarativeplacecontentmodel_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplaceeditorialmodel_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplaceeditorialmodel_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplaceeditorialmodel_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplaceeditorialmodel_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativeplaces/qdeclarativeplaceeditorialmodel_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplaceicon_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplaceicon_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplaceicon_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplaceicon_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativeplaces/qdeclarativeplaceicon_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplaceimagemodel_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplaceimagemodel_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplaceimagemodel_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplaceimagemodel_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativeplaces/qdeclarativeplaceimagemodel_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplace_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplace_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplace_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplace_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativeplaces/qdeclarativeplace_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplaceuser_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplaceuser_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplaceuser_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeplaceuser_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativeplaces/qdeclarativeplaceuser_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativepolygonmapitem_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativepolygonmapitem_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativepolygonmapitem_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativepolygonmapitem_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativemaps/qdeclarativepolygonmapitem_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativepolylinemapitem_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativepolylinemapitem_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativepolylinemapitem_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativepolylinemapitem_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativemaps/qdeclarativepolylinemapitem_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeratings_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeratings_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeratings_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeratings_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativeplaces/qdeclarativeratings_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativerectanglemapitem_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativerectanglemapitem_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativerectanglemapitem_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativerectanglemapitem_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativemaps/qdeclarativerectanglemapitem_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativereviewmodel_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativereviewmodel_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativereviewmodel_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativereviewmodel_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativeplaces/qdeclarativereviewmodel_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeroutemapitem_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeroutemapitem_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeroutemapitem_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativeroutemapitem_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativemaps/qdeclarativeroutemapitem_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativesearchmodelbase_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativesearchmodelbase_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativesearchmodelbase_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativesearchmodelbase_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativeplaces/qdeclarativesearchmodelbase_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativesearchresultmodel_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativesearchresultmodel_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativesearchresultmodel_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativesearchresultmodel_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativeplaces/qdeclarativesearchresultmodel_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativesearchsuggestionmodel_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativesearchsuggestionmodel_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativesearchsuggestionmodel_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativesearchsuggestionmodel_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativeplaces/qdeclarativesearchsuggestionmodel_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativesupplier_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativesupplier_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativesupplier_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativesupplier_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativeplaces/qdeclarativesupplier_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativesupportedcategoriesmodel_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativesupportedcategoriesmodel_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativesupportedcategoriesmodel_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qdeclarativesupportedcategoriesmodel_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativeplaces/qdeclarativesupportedcategoriesmodel_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeocameracapabilities_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeocameracapabilities_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeocameracapabilities_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeocameracapabilities_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeocameracapabilities_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeocameradata_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeocameradata_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeocameradata_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeocameradata_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeocameradata_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeocameratiles_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeocameratiles_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeocameratiles_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeocameratiles_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeocameratiles_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeocodereply_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeocodereply_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeocodereply_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeocodereply_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeocodereply_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeocodingmanagerengine_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeocodingmanagerengine_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeocodingmanagerengine_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeocodingmanagerengine_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeocodingmanagerengine_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeocodingmanager_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeocodingmanager_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeocodingmanager_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeocodingmanager_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeocodingmanager_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeofiletilecache_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeofiletilecache_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeofiletilecache_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeofiletilecache_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeofiletilecache_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomaneuver_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomaneuver_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomaneuver_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomaneuver_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeomaneuver_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomapitemgeometry_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomapitemgeometry_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomapitemgeometry_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomapitemgeometry_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativemaps/qgeomapitemgeometry_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomapparameter_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomapparameter_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomapparameter_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomapparameter_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeomapparameter_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomap_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomap_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomap_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomap_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeomap_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomappingmanagerengine_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomappingmanagerengine_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomappingmanagerengine_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomappingmanagerengine_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeomappingmanagerengine_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomappingmanagerengine_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomappingmanagerengine_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomappingmanagerengine_p_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomappingmanagerengine_p_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeomappingmanagerengine_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomappingmanager_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomappingmanager_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomappingmanager_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomappingmanager_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeomappingmanager_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomappingmanager_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomappingmanager_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomappingmanager_p_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomappingmanager_p_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeomappingmanager_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomap_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomap_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomap_p_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomap_p_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeomap_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomaptype_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomaptype_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomaptype_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomaptype_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeomaptype_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomaptype_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomaptype_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomaptype_p_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeomaptype_p_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeomaptype_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoprojection_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoprojection_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoprojection_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoprojection_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeoprojection_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeorouteparserosrmv4_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeorouteparserosrmv4_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeorouteparserosrmv4_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeorouteparserosrmv4_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeorouteparserosrmv4_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeorouteparserosrmv5_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeorouteparserosrmv5_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeorouteparserosrmv5_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeorouteparserosrmv5_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeorouteparserosrmv5_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeorouteparser_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeorouteparser_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeorouteparser_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeorouteparser_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeorouteparser_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeorouteparser_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeorouteparser_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeorouteparser_p_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeorouteparser_p_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeorouteparser_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoroute_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoroute_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoroute_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoroute_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeoroute_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoroutereply_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoroutereply_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoroutereply_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoroutereply_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeoroutereply_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeorouterequest_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeorouterequest_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeorouterequest_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeorouterequest_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeorouterequest_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoroutesegment_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoroutesegment_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoroutesegment_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoroutesegment_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeoroutesegment_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoroutingmanagerengine_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoroutingmanagerengine_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoroutingmanagerengine_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoroutingmanagerengine_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeoroutingmanagerengine_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoroutingmanager_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoroutingmanager_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoroutingmanager_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoroutingmanager_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeoroutingmanager_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoserviceprovider_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoserviceprovider_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoserviceprovider_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeoserviceprovider_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeoserviceprovider_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmap_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmap_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmap_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmap_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeotiledmap_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmappingmanagerengine_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmappingmanagerengine_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmappingmanagerengine_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmappingmanagerengine_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeotiledmappingmanagerengine_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmappingmanagerengine_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmappingmanagerengine_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmappingmanagerengine_p_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmappingmanagerengine_p_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeotiledmappingmanagerengine_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmap_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmap_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmap_p_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmap_p_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeotiledmap_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmapreply_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmapreply_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmapreply_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmapreply_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeotiledmapreply_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmapreply_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmapreply_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmapreply_p_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmapreply_p_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeotiledmapreply_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmapscene_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmapscene_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmapscene_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotiledmapscene_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeotiledmapscene_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotilefetcher_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotilefetcher_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotilefetcher_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotilefetcher_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeotilefetcher_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotilefetcher_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotilefetcher_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotilefetcher_p_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotilefetcher_p_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeotilefetcher_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotilerequestmanager_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotilerequestmanager_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotilerequestmanager_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotilerequestmanager_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeotilerequestmanager_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotilespec_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotilespec_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotilespec_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotilespec_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeotilespec_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotilespec_p_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotilespec_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotilespec_p_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qgeotilespec_p_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/maps/qgeotilespec_p_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qlocationglobal_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qlocationglobal_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qlocationglobal_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qlocationglobal_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/qlocationglobal_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceattribute_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceattribute_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceattribute_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceattribute_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/places/qplaceattribute_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacecategory_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacecategory_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacecategory_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacecategory_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/places/qplacecategory_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacecontactdetail_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacecontactdetail_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacecontactdetail_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacecontactdetail_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/places/qplacecontactdetail_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacecontent_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacecontent_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacecontent_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacecontent_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/places/qplacecontent_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacecontentrequest_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacecontentrequest_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacecontentrequest_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacecontentrequest_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/places/qplacecontentrequest_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceeditorial_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceeditorial_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceeditorial_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceeditorial_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/places/qplaceeditorial_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceicon_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceicon_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceicon_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceicon_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/places/qplaceicon_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceimage_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceimage_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceimage_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceimage_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/places/qplaceimage_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacemanagerengine_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacemanagerengine_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacemanagerengine_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacemanagerengine_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/places/qplacemanagerengine_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplace_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplace_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplace_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplace_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/places/qplace_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceproposedsearchresult_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceproposedsearchresult_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceproposedsearchresult_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceproposedsearchresult_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/places/qplaceproposedsearchresult_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceratings_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceratings_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceratings_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceratings_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/places/qplaceratings_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacereply_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacereply_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacereply_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacereply_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/places/qplacereply_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceresult_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceresult_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceresult_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceresult_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/places/qplaceresult_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacereview_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacereview_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacereview_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacereview_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/places/qplacereview_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacesearchresult_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacesearchresult_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacesearchresult_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacesearchresult_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/places/qplacesearchresult_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacesupplier_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacesupplier_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacesupplier_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplacesupplier_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/places/qplacesupplier_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceuser_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceuser_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceuser_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qplaceuser_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/places/qplaceuser_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qquickgeomapgesturearea_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qquickgeomapgesturearea_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/qquickgeomapgesturearea_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/qquickgeomapgesturearea_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/declarativemaps/qquickgeomapgesturearea_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/unsupportedreplies_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/unsupportedreplies_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/5.9.5/QtLocation/private/unsupportedreplies_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/5.9.5/QtLocation/private/unsupportedreplies_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/location/places/unsupportedreplies_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/headers.pri qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/headers.pri --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/headers.pri 2018-04-11 07:30:35.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/headers.pri 2018-06-18 07:43:54.000000000 +0000 @@ -1,7 +1,6 @@ -SYNCQT.HEADER_FILES = qlocation.h qlocationglobal.h maps/qgeocodereply.h maps/qgeocodingmanager.h maps/qgeocodingmanagerengine.h maps/qgeomaneuver.h maps/qgeoroute.h maps/qgeoroutereply.h maps/qgeorouterequest.h maps/qgeoroutesegment.h maps/qgeoroutingmanager.h maps/qgeoroutingmanagerengine.h maps/qgeoserviceprovider.h maps/qgeoserviceproviderfactory.h places/placemacro.h places/qplace.h places/qplaceattribute.h places/qplacecategory.h places/qplacecontactdetail.h places/qplacecontent.h places/qplacecontentreply.h places/qplacecontentrequest.h places/qplacedetailsreply.h places/qplaceeditorial.h places/qplaceicon.h places/qplaceidreply.h places/qplaceimage.h places/qplacemanager.h places/qplacemanagerengine.h places/qplacematchreply.h places/qplacematchrequest.h places/qplaceproposedsearchresult.h places/qplaceratings.h places/qplacereply.h places/qplaceresult.h places/qplacereview.h places/qplacesearchreply.h places/qplacesearchrequest.h places/qplacesearchresult.h places/qplacesearchsuggestionreply.h places/qplacesupplier.h places/qplaceuser.h ../../include/QtLocation/qtlocationversion.h ../../include/QtLocation/QtLocation -SYNCQT.HEADER_CLASSES = ../../include/QtLocation/QLocation ../../include/QtLocation/QGeoCodeReply ../../include/QtLocation/QGeoCodingManager ../../include/QtLocation/QGeoCodingManagerEngine ../../include/QtLocation/QGeoManeuver ../../include/QtLocation/QGeoRoute ../../include/QtLocation/QGeoRouteReply ../../include/QtLocation/QGeoRouteRequest ../../include/QtLocation/QGeoRouteSegment ../../include/QtLocation/QGeoRoutingManager ../../include/QtLocation/QGeoRoutingManagerEngine ../../include/QtLocation/QGeoServiceProvider ../../include/QtLocation/QGeoServiceProviderFactory ../../include/QtLocation/QPlace ../../include/QtLocation/QPlaceAttribute ../../include/QtLocation/QPlaceCategory ../../include/QtLocation/QPlaceContactDetail ../../include/QtLocation/QPlaceContent ../../include/QtLocation/QPlaceContentReply ../../include/QtLocation/QPlaceContentRequest ../../include/QtLocation/QPlaceDetailsReply ../../include/QtLocation/QPlaceEditorial ../../include/QtLocation/QPlaceIcon ../../include/QtLocation/QPlaceIdReply ../../include/QtLocation/QPlaceImage ../../include/QtLocation/QPlaceManager ../../include/QtLocation/QPlaceManagerEngine ../../include/QtLocation/QPlaceMatchReply ../../include/QtLocation/QPlaceMatchRequest ../../include/QtLocation/QPlaceProposedSearchResult ../../include/QtLocation/QPlaceRatings ../../include/QtLocation/QPlaceReply ../../include/QtLocation/QPlaceResult ../../include/QtLocation/QPlaceReview ../../include/QtLocation/QPlaceSearchReply ../../include/QtLocation/QPlaceSearchRequest ../../include/QtLocation/QPlaceSearchResult ../../include/QtLocation/QPlaceSearchSuggestionReply ../../include/QtLocation/QPlaceSupplier ../../include/QtLocation/QPlaceUser ../../include/QtLocation/QtLocationVersion -SYNCQT.PRIVATE_HEADER_FILES = qlocationglobal_p.h declarativemaps/error_messages_p.h declarativemaps/locationvaluetypehelper_p.h declarativemaps/mapitemviewdelegateincubator_p.h declarativemaps/qdeclarativecirclemapitem_p.h declarativemaps/qdeclarativegeocodemodel_p.h declarativemaps/qdeclarativegeomaneuver_p.h declarativemaps/qdeclarativegeomap_p.h declarativemaps/qdeclarativegeomapcopyrightsnotice_p.h declarativemaps/qdeclarativegeomapitembase_p.h declarativemaps/qdeclarativegeomapitemgroup_p.h declarativemaps/qdeclarativegeomapitemview_p.h declarativemaps/qdeclarativegeomapitemview_p_p.h declarativemaps/qdeclarativegeomapparameter_p.h declarativemaps/qdeclarativegeomapquickitem_p.h declarativemaps/qdeclarativegeomaptype_p.h declarativemaps/qdeclarativegeoroute_p.h declarativemaps/qdeclarativegeoroutemodel_p.h declarativemaps/qdeclarativegeoroutesegment_p.h declarativemaps/qdeclarativegeoserviceprovider_p.h declarativemaps/qdeclarativepolygonmapitem_p.h declarativemaps/qdeclarativepolylinemapitem_p.h declarativemaps/qdeclarativerectanglemapitem_p.h declarativemaps/qdeclarativeroutemapitem_p.h declarativemaps/qgeomapitemgeometry_p.h declarativemaps/qquickgeomapgesturearea_p.h declarativeplaces/qdeclarativecategory_p.h declarativeplaces/qdeclarativecontactdetail_p.h declarativeplaces/qdeclarativeperiod_p.h declarativeplaces/qdeclarativeplace_p.h declarativeplaces/qdeclarativeplaceattribute_p.h declarativeplaces/qdeclarativeplacecontentmodel_p.h declarativeplaces/qdeclarativeplaceeditorialmodel_p.h declarativeplaces/qdeclarativeplaceicon_p.h declarativeplaces/qdeclarativeplaceimagemodel_p.h declarativeplaces/qdeclarativeplaceuser_p.h declarativeplaces/qdeclarativeratings_p.h declarativeplaces/qdeclarativereviewmodel_p.h declarativeplaces/qdeclarativesearchmodelbase_p.h declarativeplaces/qdeclarativesearchresultmodel_p.h declarativeplaces/qdeclarativesearchsuggestionmodel_p.h declarativeplaces/qdeclarativesupplier_p.h declarativeplaces/qdeclarativesupportedcategoriesmodel_p.h maps/qabstractgeotilecache_p.h maps/qcache3q_p.h maps/qgeocameracapabilities_p.h maps/qgeocameradata_p.h maps/qgeocameratiles_p.h maps/qgeocodereply_p.h maps/qgeocodingmanager_p.h maps/qgeocodingmanagerengine_p.h maps/qgeofiletilecache_p.h maps/qgeomaneuver_p.h maps/qgeomap_p.h maps/qgeomap_p_p.h maps/qgeomapparameter_p.h maps/qgeomappingmanager_p.h maps/qgeomappingmanager_p_p.h maps/qgeomappingmanagerengine_p.h maps/qgeomappingmanagerengine_p_p.h maps/qgeomaptype_p.h maps/qgeomaptype_p_p.h maps/qgeoprojection_p.h maps/qgeoroute_p.h maps/qgeorouteparser_p.h maps/qgeorouteparser_p_p.h maps/qgeorouteparserosrmv4_p.h maps/qgeorouteparserosrmv5_p.h maps/qgeoroutereply_p.h maps/qgeorouterequest_p.h maps/qgeoroutesegment_p.h maps/qgeoroutingmanager_p.h maps/qgeoroutingmanagerengine_p.h maps/qgeoserviceprovider_p.h maps/qgeotiledmap_p.h maps/qgeotiledmap_p_p.h maps/qgeotiledmappingmanagerengine_p.h maps/qgeotiledmappingmanagerengine_p_p.h maps/qgeotiledmapreply_p.h maps/qgeotiledmapreply_p_p.h maps/qgeotiledmapscene_p.h maps/qgeotilefetcher_p.h maps/qgeotilefetcher_p_p.h maps/qgeotilerequestmanager_p.h maps/qgeotilespec_p.h maps/qgeotilespec_p_p.h places/qplace_p.h places/qplaceattribute_p.h places/qplacecategory_p.h places/qplacecontactdetail_p.h places/qplacecontent_p.h places/qplacecontentrequest_p.h places/qplaceeditorial_p.h places/qplaceicon_p.h places/qplaceimage_p.h places/qplacemanagerengine_p.h places/qplaceproposedsearchresult_p.h places/qplaceratings_p.h places/qplacereply_p.h places/qplaceresult_p.h places/qplacereview_p.h places/qplacesearchresult_p.h places/qplacesupplier_p.h places/qplaceuser_p.h places/unsupportedreplies_p.h -SYNCQT.INJECTED_PRIVATE_HEADER_FILES = +SYNCQT.HEADER_FILES = qlocation.h qlocationglobal.h maps/qgeocodereply.h maps/qgeocodingmanager.h maps/qgeocodingmanagerengine.h maps/qgeomaneuver.h maps/qgeoroute.h maps/qgeoroutereply.h maps/qgeorouterequest.h maps/qgeoroutesegment.h maps/qgeoroutingmanager.h maps/qgeoroutingmanagerengine.h maps/qgeoserviceprovider.h maps/qgeoserviceproviderfactory.h places/placemacro.h places/qplace.h places/qplaceattribute.h places/qplacecategory.h places/qplacecontactdetail.h places/qplacecontent.h places/qplacecontentreply.h places/qplacecontentrequest.h places/qplacedetailsreply.h places/qplaceeditorial.h places/qplaceicon.h places/qplaceidreply.h places/qplaceimage.h places/qplacemanager.h places/qplacemanagerengine.h places/qplacematchreply.h places/qplacematchrequest.h places/qplaceproposedsearchresult.h places/qplaceratings.h places/qplacereply.h places/qplaceresult.h places/qplacereview.h places/qplacesearchreply.h places/qplacesearchrequest.h places/qplacesearchresult.h places/qplacesearchsuggestionreply.h places/qplacesupplier.h places/qplaceuser.h +SYNCQT.GENERATED_HEADER_FILES = QLocation QGeoCodeReply QGeoCodingManager QGeoCodingManagerEngine QGeoManeuver QGeoRoute QGeoRouteReply QGeoRouteRequest QGeoRouteSegment QGeoRoutingManager QGeoRoutingManagerEngine QGeoServiceProvider QGeoServiceProviderFactory QPlace QPlaceAttribute QPlaceCategory QPlaceContactDetail QPlaceContent QPlaceContentReply QPlaceContentRequest QPlaceDetailsReply QPlaceEditorial QPlaceIcon QPlaceIdReply QPlaceImage QPlaceManager QPlaceManagerEngine QPlaceMatchReply QPlaceMatchRequest QPlaceProposedSearchResult QPlaceRatings QPlaceReply QPlaceResult QPlaceReview QPlaceSearchReply QPlaceSearchRequest QPlaceSearchResult QPlaceSearchSuggestionReply QPlaceSupplier QPlaceUser qtlocationversion.h QtLocationVersion QtLocation +SYNCQT.PRIVATE_HEADER_FILES = qlocationglobal_p.h declarativemaps/error_messages_p.h declarativemaps/locationvaluetypehelper_p.h declarativemaps/mapitemviewdelegateincubator_p.h declarativemaps/qdeclarativecirclemapitem_p.h declarativemaps/qdeclarativegeocodemodel_p.h declarativemaps/qdeclarativegeomaneuver_p.h declarativemaps/qdeclarativegeomap_p.h declarativemaps/qdeclarativegeomapcopyrightsnotice_p.h declarativemaps/qdeclarativegeomapitembase_p.h declarativemaps/qdeclarativegeomapitemgroup_p.h declarativemaps/qdeclarativegeomapitemview_p.h declarativemaps/qdeclarativegeomapparameter_p.h declarativemaps/qdeclarativegeomapquickitem_p.h declarativemaps/qdeclarativegeomaptype_p.h declarativemaps/qdeclarativegeoroute_p.h declarativemaps/qdeclarativegeoroutemodel_p.h declarativemaps/qdeclarativegeoroutesegment_p.h declarativemaps/qdeclarativegeoserviceprovider_p.h declarativemaps/qdeclarativepolygonmapitem_p.h declarativemaps/qdeclarativepolylinemapitem_p.h declarativemaps/qdeclarativerectanglemapitem_p.h declarativemaps/qdeclarativeroutemapitem_p.h declarativemaps/qgeomapitemgeometry_p.h declarativemaps/qgeomapobject_p.h declarativemaps/qgeomapobject_p_p.h declarativemaps/qparameterizableobject_p.h declarativemaps/qquickgeomapgesturearea_p.h declarativeplaces/qdeclarativecategory_p.h declarativeplaces/qdeclarativecontactdetail_p.h declarativeplaces/qdeclarativeperiod_p.h declarativeplaces/qdeclarativeplace_p.h declarativeplaces/qdeclarativeplaceattribute_p.h declarativeplaces/qdeclarativeplacecontentmodel_p.h declarativeplaces/qdeclarativeplaceeditorialmodel_p.h declarativeplaces/qdeclarativeplaceicon_p.h declarativeplaces/qdeclarativeplaceimagemodel_p.h declarativeplaces/qdeclarativeplaceuser_p.h declarativeplaces/qdeclarativeratings_p.h declarativeplaces/qdeclarativereviewmodel_p.h declarativeplaces/qdeclarativesearchmodelbase_p.h declarativeplaces/qdeclarativesearchresultmodel_p.h declarativeplaces/qdeclarativesearchsuggestionmodel_p.h declarativeplaces/qdeclarativesupplier_p.h declarativeplaces/qdeclarativesupportedcategoriesmodel_p.h labs/qdeclarativenavigator_p.h labs/qdeclarativenavigator_p_p.h labs/qgeotiledmaplabs_p.h labs/qmapcircleobject_p.h labs/qmapcircleobject_p_p.h labs/qmapiconobject_p.h labs/qmapiconobject_p_p.h labs/qmapobjectview_p.h labs/qmapobjectview_p_p.h labs/qmappolygonobject_p.h labs/qmappolygonobject_p_p.h labs/qmappolylineobject_p.h labs/qmappolylineobject_p_p.h labs/qmaprouteobject_p.h labs/qmaprouteobject_p_p.h maps/qabstractgeotilecache_p.h maps/qcache3q_p.h maps/qgeocameracapabilities_p.h maps/qgeocameradata_p.h maps/qgeocameratiles_p.h maps/qgeocodereply_p.h maps/qgeocodingmanager_p.h maps/qgeocodingmanagerengine_p.h maps/qgeofiletilecache_p.h maps/qgeomaneuver_p.h maps/qgeomap_p.h maps/qgeomap_p_p.h maps/qgeomapparameter_p.h maps/qgeomappingmanager_p.h maps/qgeomappingmanager_p_p.h maps/qgeomappingmanagerengine_p.h maps/qgeomappingmanagerengine_p_p.h maps/qgeomaptype_p.h maps/qgeomaptype_p_p.h maps/qgeoprojection_p.h maps/qgeoroute_p.h maps/qgeorouteparser_p.h maps/qgeorouteparser_p_p.h maps/qgeorouteparserosrmv4_p.h maps/qgeorouteparserosrmv5_p.h maps/qgeoroutereply_p.h maps/qgeorouterequest_p.h maps/qgeoroutesegment_p.h maps/qgeoroutingmanager_p.h maps/qgeoroutingmanagerengine_p.h maps/qgeoserviceprovider_p.h maps/qgeotiledmap_p.h maps/qgeotiledmap_p_p.h maps/qgeotiledmappingmanagerengine_p.h maps/qgeotiledmappingmanagerengine_p_p.h maps/qgeotiledmapreply_p.h maps/qgeotiledmapreply_p_p.h maps/qgeotiledmapscene_p.h maps/qgeotilefetcher_p.h maps/qgeotilefetcher_p_p.h maps/qgeotilerequestmanager_p.h maps/qgeotilespec_p.h maps/qgeotilespec_p_p.h maps/qnavigationmanager_p.h maps/qnavigationmanagerengine_p.h places/qplace_p.h places/qplaceattribute_p.h places/qplacecategory_p.h places/qplacecontactdetail_p.h places/qplacecontent_p.h places/qplacecontentrequest_p.h places/qplaceeditorial_p.h places/qplaceicon_p.h places/qplaceimage_p.h places/qplacemanagerengine_p.h places/qplaceproposedsearchresult_p.h places/qplaceratings_p.h places/qplacereply_p.h places/qplaceresult_p.h places/qplacereview_p.h places/qplacesearchresult_p.h places/qplacesupplier_p.h places/qplaceuser_p.h places/unsupportedreplies_p.h labs/qsg/qgeomapobjectqsgsupport_p.h labs/qsg/qmapcircleobjectqsg_p_p.h labs/qsg/qmapiconobjectqsg_p_p.h labs/qsg/qmappolygonobjectqsg_p_p.h labs/qsg/qmappolylineobjectqsg_p_p.h labs/qsg/qmaprouteobjectqsg_p_p.h labs/qsg/qqsgmapobject_p.h SYNCQT.QPA_HEADER_FILES = SYNCQT.CLEAN_HEADER_FILES = qlocation.h qlocationglobal.h maps/qgeocodereply.h maps/qgeocodingmanager.h maps/qgeocodingmanagerengine.h maps/qgeomaneuver.h maps/qgeoroute.h maps/qgeoroutereply.h maps/qgeorouterequest.h maps/qgeoroutesegment.h maps/qgeoroutingmanager.h maps/qgeoroutingmanagerengine.h maps/qgeoserviceprovider.h maps/qgeoserviceproviderfactory.h places/placemacro.h places/qplace.h places/qplaceattribute.h places/qplacecategory.h places/qplacecontactdetail.h places/qplacecontent.h places/qplacecontentreply.h places/qplacecontentrequest.h places/qplacedetailsreply.h places/qplaceeditorial.h places/qplaceicon.h places/qplaceidreply.h places/qplaceimage.h places/qplacemanager.h places/qplacemanagerengine.h places/qplacematchreply.h places/qplacematchrequest.h places/qplaceproposedsearchresult.h places/qplaceratings.h places/qplacereply.h places/qplaceresult.h places/qplacereview.h places/qplacesearchreply.h places/qplacesearchrequest.h places/qplacesearchresult.h places/qplacesearchsuggestionreply.h places/qplacesupplier.h places/qplaceuser.h SYNCQT.INJECTIONS = diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/qtlocationversion.h qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/qtlocationversion.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtLocation/qtlocationversion.h 2018-04-11 07:30:35.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtLocation/qtlocationversion.h 2018-06-18 07:43:54.000000000 +0000 @@ -2,8 +2,8 @@ #ifndef QT_QTLOCATION_VERSION_H #define QT_QTLOCATION_VERSION_H -#define QTLOCATION_VERSION_STR "5.9.5" +#define QTLOCATION_VERSION_STR "5.11.1" -#define QTLOCATION_VERSION 0x050905 +#define QTLOCATION_VERSION 0x050B01 #endif // QT_QTLOCATION_VERSION_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qclipperutils_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qclipperutils_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qclipperutils_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qclipperutils_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/positioning/qclipperutils_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qdeclarativegeoaddress_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qdeclarativegeoaddress_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qdeclarativegeoaddress_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qdeclarativegeoaddress_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/positioning/qdeclarativegeoaddress_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qdeclarativegeolocation_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qdeclarativegeolocation_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qdeclarativegeolocation_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qdeclarativegeolocation_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/positioning/qdeclarativegeolocation_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qdoublematrix4x4_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qdoublematrix4x4_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qdoublematrix4x4_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qdoublematrix4x4_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/positioning/qdoublematrix4x4_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qdoublevector2d_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qdoublevector2d_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qdoublevector2d_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qdoublevector2d_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/positioning/qdoublevector2d_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qdoublevector3d_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qdoublevector3d_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qdoublevector3d_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qdoublevector3d_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/positioning/qdoublevector3d_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeoaddress_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeoaddress_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeoaddress_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeoaddress_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/positioning/qgeoaddress_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeocircle_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeocircle_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeocircle_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeocircle_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/positioning/qgeocircle_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeocoordinateobject_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeocoordinateobject_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeocoordinateobject_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeocoordinateobject_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/positioning/qgeocoordinateobject_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeocoordinate_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeocoordinate_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeocoordinate_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeocoordinate_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/positioning/qgeocoordinate_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeolocation_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeolocation_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeolocation_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeolocation_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/positioning/qgeolocation_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeopath_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeopath_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeopath_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeopath_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/positioning/qgeopath_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeopositioninfo_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeopositioninfo_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeopositioninfo_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeopositioninfo_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/positioning/qgeopositioninfo_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeopositioninfosource_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeopositioninfosource_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeopositioninfosource_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeopositioninfosource_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/positioning/qgeopositioninfosource_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeorectangle_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeorectangle_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeorectangle_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeorectangle_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/positioning/qgeorectangle_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeoshape_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeoshape_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeoshape_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qgeoshape_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/positioning/qgeoshape_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qlocationdata_simulator_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qlocationdata_simulator_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qlocationdata_simulator_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qlocationdata_simulator_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/positioning/qlocationdata_simulator_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qlocationutils_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qlocationutils_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qlocationutils_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qlocationutils_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/positioning/qlocationutils_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qnmeapositioninfosource_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qnmeapositioninfosource_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qnmeapositioninfosource_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qnmeapositioninfosource_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/positioning/qnmeapositioninfosource_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qpositioningglobal_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qpositioningglobal_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qpositioningglobal_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qpositioningglobal_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/positioning/qpositioningglobal_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qwebmercator_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qwebmercator_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qwebmercator_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.11.1/QtPositioning/private/qwebmercator_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/positioning/qwebmercator_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qclipperutils_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qclipperutils_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qclipperutils_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qclipperutils_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/positioning/qclipperutils_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qdeclarativegeoaddress_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qdeclarativegeoaddress_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qdeclarativegeoaddress_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qdeclarativegeoaddress_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/positioning/qdeclarativegeoaddress_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qdeclarativegeolocation_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qdeclarativegeolocation_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qdeclarativegeolocation_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qdeclarativegeolocation_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/positioning/qdeclarativegeolocation_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qdoublematrix4x4_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qdoublematrix4x4_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qdoublematrix4x4_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qdoublematrix4x4_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/positioning/qdoublematrix4x4_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qdoublevector2d_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qdoublevector2d_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qdoublevector2d_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qdoublevector2d_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/positioning/qdoublevector2d_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qdoublevector3d_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qdoublevector3d_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qdoublevector3d_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qdoublevector3d_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/positioning/qdoublevector3d_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeoaddress_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeoaddress_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeoaddress_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeoaddress_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/positioning/qgeoaddress_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeocircle_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeocircle_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeocircle_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeocircle_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/positioning/qgeocircle_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeocoordinate_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeocoordinate_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeocoordinate_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeocoordinate_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/positioning/qgeocoordinate_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeolocation_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeolocation_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeolocation_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeolocation_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/positioning/qgeolocation_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeopath_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeopath_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeopath_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeopath_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/positioning/qgeopath_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeopositioninfo_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeopositioninfo_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeopositioninfo_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeopositioninfo_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/positioning/qgeopositioninfo_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeopositioninfosource_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeopositioninfosource_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeopositioninfosource_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeopositioninfosource_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/positioning/qgeopositioninfosource_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeorectangle_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeorectangle_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeorectangle_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeorectangle_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/positioning/qgeorectangle_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeoshape_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeoshape_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeoshape_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qgeoshape_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/positioning/qgeoshape_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qlocationdata_simulator_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qlocationdata_simulator_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qlocationdata_simulator_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qlocationdata_simulator_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/positioning/qlocationdata_simulator_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qlocationutils_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qlocationutils_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qlocationutils_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qlocationutils_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/positioning/qlocationutils_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qnmeapositioninfosource_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qnmeapositioninfosource_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qnmeapositioninfosource_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qnmeapositioninfosource_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/positioning/qnmeapositioninfosource_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qpositioningglobal_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qpositioningglobal_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qpositioningglobal_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qpositioningglobal_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/positioning/qpositioningglobal_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qwebmercator_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qwebmercator_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qwebmercator_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/5.9.5/QtPositioning/private/qwebmercator_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include "../../../../../src/positioning/qwebmercator_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/headers.pri qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/headers.pri --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/headers.pri 2018-04-11 07:30:35.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/headers.pri 2018-06-18 07:43:54.000000000 +0000 @@ -1,7 +1,6 @@ -SYNCQT.HEADER_FILES = qgeoaddress.h qgeoareamonitorinfo.h qgeoareamonitorsource.h qgeocircle.h qgeocoordinate.h qgeolocation.h qgeopath.h qgeopositioninfo.h qgeopositioninfosource.h qgeopositioninfosourcefactory.h qgeorectangle.h qgeosatelliteinfo.h qgeosatelliteinfosource.h qgeoshape.h qnmeapositioninfosource.h qpositioningglobal.h ../../include/QtPositioning/qtpositioningversion.h ../../include/QtPositioning/QtPositioning -SYNCQT.HEADER_CLASSES = ../../include/QtPositioning/QGeoAddress ../../include/QtPositioning/QGeoAreaMonitorInfo ../../include/QtPositioning/QGeoAreaMonitorSource ../../include/QtPositioning/QGeoCircle ../../include/QtPositioning/QGeoCoordinate ../../include/QtPositioning/QGeoLocation ../../include/QtPositioning/QGeoPath ../../include/QtPositioning/QGeoPositionInfo ../../include/QtPositioning/QGeoPositionInfoSource ../../include/QtPositioning/QGeoPositionInfoSourceFactory ../../include/QtPositioning/QGeoRectangle ../../include/QtPositioning/QGeoSatelliteInfo ../../include/QtPositioning/QGeoSatelliteInfoSource ../../include/QtPositioning/QGeoShape ../../include/QtPositioning/QNmeaPositionInfoSource ../../include/QtPositioning/QtPositioningVersion -SYNCQT.PRIVATE_HEADER_FILES = qclipperutils_p.h qdeclarativegeoaddress_p.h qdeclarativegeolocation_p.h qdoublematrix4x4_p.h qdoublevector2d_p.h qdoublevector3d_p.h qgeoaddress_p.h qgeocircle_p.h qgeocoordinate_p.h qgeolocation_p.h qgeopath_p.h qgeopositioninfo_p.h qgeopositioninfosource_p.h qgeorectangle_p.h qgeoshape_p.h qlocationdata_simulator_p.h qlocationutils_p.h qnmeapositioninfosource_p.h qpositioningglobal_p.h qwebmercator_p.h -SYNCQT.INJECTED_PRIVATE_HEADER_FILES = +SYNCQT.HEADER_FILES = qgeoaddress.h qgeoareamonitorinfo.h qgeoareamonitorsource.h qgeocircle.h qgeocoordinate.h qgeolocation.h qgeopath.h qgeopolygon.h qgeopositioninfo.h qgeopositioninfosource.h qgeopositioninfosourcefactory.h qgeorectangle.h qgeosatelliteinfo.h qgeosatelliteinfosource.h qgeoshape.h qnmeapositioninfosource.h qpositioningglobal.h +SYNCQT.GENERATED_HEADER_FILES = QGeoAddress QGeoAreaMonitorInfo QGeoAreaMonitorSource QGeoCircle QGeoCoordinate QGeoLocation QGeoPath QGeoPolygonPrivate QGeoPolygon QGeoPositionInfo QGeoPositionInfoSource QGeoPositionInfoSourceFactory QGeoRectangle QGeoSatelliteInfo QGeoSatelliteInfoSource QGeoShape QNmeaPositionInfoSource qtpositioningversion.h QtPositioningVersion QtPositioning +SYNCQT.PRIVATE_HEADER_FILES = qclipperutils_p.h qdeclarativegeoaddress_p.h qdeclarativegeolocation_p.h qdoublematrix4x4_p.h qdoublevector2d_p.h qdoublevector3d_p.h qgeoaddress_p.h qgeocircle_p.h qgeocoordinate_p.h qgeocoordinateobject_p.h qgeolocation_p.h qgeopath_p.h qgeopositioninfo_p.h qgeopositioninfosource_p.h qgeorectangle_p.h qgeoshape_p.h qlocationdata_simulator_p.h qlocationutils_p.h qnmeapositioninfosource_p.h qpositioningglobal_p.h qwebmercator_p.h SYNCQT.QPA_HEADER_FILES = -SYNCQT.CLEAN_HEADER_FILES = qgeoaddress.h qgeoareamonitorinfo.h qgeoareamonitorsource.h qgeocircle.h qgeocoordinate.h qgeolocation.h qgeopath.h qgeopositioninfo.h qgeopositioninfosource.h qgeopositioninfosourcefactory.h qgeorectangle.h qgeosatelliteinfo.h qgeosatelliteinfosource.h qgeoshape.h qnmeapositioninfosource.h qpositioningglobal.h +SYNCQT.CLEAN_HEADER_FILES = qgeoaddress.h qgeoareamonitorinfo.h qgeoareamonitorsource.h qgeocircle.h qgeocoordinate.h qgeolocation.h qgeopath.h qgeopolygon.h qgeopositioninfo.h qgeopositioninfosource.h qgeopositioninfosourcefactory.h qgeorectangle.h qgeosatelliteinfo.h qgeosatelliteinfosource.h qgeoshape.h qnmeapositioninfosource.h qpositioningglobal.h SYNCQT.INJECTIONS = diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/QGeoPolygon qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/QGeoPolygon --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/QGeoPolygon 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/QGeoPolygon 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "qgeopolygon.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/qgeopolygon.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/qgeopolygon.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/qgeopolygon.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/qgeopolygon.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../src/positioning/qgeopolygon.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/QGeoPolygonPrivate qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/QGeoPolygonPrivate --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/QGeoPolygonPrivate 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/QGeoPolygonPrivate 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "qgeopolygon.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/QtPositioning qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/QtPositioning --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/QtPositioning 2018-04-11 07:30:35.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/QtPositioning 2018-06-18 07:43:54.000000000 +0000 @@ -9,6 +9,7 @@ #include "qgeocoordinate.h" #include "qgeolocation.h" #include "qgeopath.h" +#include "qgeopolygon.h" #include "qgeopositioninfo.h" #include "qgeopositioninfosource.h" #include "qgeopositioninfosourcefactory.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/qtpositioningversion.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/qtpositioningversion.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioning/qtpositioningversion.h 2018-04-11 07:30:35.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioning/qtpositioningversion.h 2018-06-18 07:43:54.000000000 +0000 @@ -2,8 +2,8 @@ #ifndef QT_QTPOSITIONING_VERSION_H #define QT_QTPOSITIONING_VERSION_H -#define QTPOSITIONING_VERSION_STR "5.9.5" +#define QTPOSITIONING_VERSION_STR "5.11.1" -#define QTPOSITIONING_VERSION 0x050905 +#define QTPOSITIONING_VERSION 0x050B01 #endif // QT_QTPOSITIONING_VERSION_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioningQuick/5.11.1/QtPositioningQuick/private/qdeclarativeposition_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioningQuick/5.11.1/QtPositioningQuick/private/qdeclarativeposition_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioningQuick/5.11.1/QtPositioningQuick/private/qdeclarativeposition_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioningQuick/5.11.1/QtPositioningQuick/private/qdeclarativeposition_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/positioningquick/qdeclarativeposition_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioningQuick/5.11.1/QtPositioningQuick/private/qdeclarativepositionsource_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioningQuick/5.11.1/QtPositioningQuick/private/qdeclarativepositionsource_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioningQuick/5.11.1/QtPositioningQuick/private/qdeclarativepositionsource_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioningQuick/5.11.1/QtPositioningQuick/private/qdeclarativepositionsource_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/positioningquick/qdeclarativepositionsource_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioningQuick/5.11.1/QtPositioningQuick/private/qpositioningquickglobal_p.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioningQuick/5.11.1/QtPositioningQuick/private/qpositioningquickglobal_p.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioningQuick/5.11.1/QtPositioningQuick/private/qpositioningquickglobal_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioningQuick/5.11.1/QtPositioningQuick/private/qpositioningquickglobal_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../../../../src/positioningquick/qpositioningquickglobal_p.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioningQuick/headers.pri qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioningQuick/headers.pri --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioningQuick/headers.pri 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioningQuick/headers.pri 2018-06-18 07:43:54.000000000 +0000 @@ -0,0 +1,6 @@ +SYNCQT.HEADER_FILES = qpositioningquickglobal.h +SYNCQT.GENERATED_HEADER_FILES = qtpositioningquickversion.h QtPositioningQuickVersion QtPositioningQuick +SYNCQT.PRIVATE_HEADER_FILES = qdeclarativeposition_p.h qdeclarativepositionsource_p.h qpositioningquickglobal_p.h +SYNCQT.QPA_HEADER_FILES = +SYNCQT.CLEAN_HEADER_FILES = qpositioningquickglobal.h +SYNCQT.INJECTIONS = diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioningQuick/qpositioningquickglobal.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioningQuick/qpositioningquickglobal.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioningQuick/qpositioningquickglobal.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioningQuick/qpositioningquickglobal.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1 @@ +#include "../../src/positioningquick/qpositioningquickglobal.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioningQuick/QtPositioningQuick qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioningQuick/QtPositioningQuick --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioningQuick/QtPositioningQuick 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioningQuick/QtPositioningQuick 2018-06-18 07:43:54.000000000 +0000 @@ -0,0 +1,6 @@ +#ifndef QT_QTPOSITIONINGQUICK_MODULE_H +#define QT_QTPOSITIONINGQUICK_MODULE_H +#include +#include "qpositioningquickglobal.h" +#include "qtpositioningquickversion.h" +#endif diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioningQuick/QtPositioningQuickVersion qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioningQuick/QtPositioningQuickVersion --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioningQuick/QtPositioningQuickVersion 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioningQuick/QtPositioningQuickVersion 2018-06-18 07:43:54.000000000 +0000 @@ -0,0 +1 @@ +#include "qtpositioningquickversion.h" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioningQuick/qtpositioningquickversion.h qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioningQuick/qtpositioningquickversion.h --- qtlocation-opensource-src-5.9.5+dfsg/include/QtPositioningQuick/qtpositioningquickversion.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/include/QtPositioningQuick/qtpositioningquickversion.h 2018-06-18 07:43:54.000000000 +0000 @@ -0,0 +1,9 @@ +/* This file was generated by syncqt. */ +#ifndef QT_QTPOSITIONINGQUICK_VERSION_H +#define QT_QTPOSITIONINGQUICK_VERSION_H + +#define QTPOSITIONINGQUICK_VERSION_STR "5.11.1" + +#define QTPOSITIONINGQUICK_VERSION 0x050B01 + +#endif // QT_QTPOSITIONINGQUICK_VERSION_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/LGPL_EXCEPTION.txt qtlocation-opensource-src-5.11.1+dfsg/LGPL_EXCEPTION.txt --- qtlocation-opensource-src-5.9.5+dfsg/LGPL_EXCEPTION.txt 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/LGPL_EXCEPTION.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,22 +0,0 @@ -The Qt Company Qt LGPL Exception version 1.1 - -As an additional permission to the GNU Lesser General Public License version -2.1, the object code form of a "work that uses the Library" may incorporate -material from a header file that is part of the Library. You may distribute -such object code under terms of your choice, provided that: - (i) the header files of the Library have not been modified; and - (ii) the incorporated material is limited to numerical parameters, data - structure layouts, accessors, macros, inline functions and - templates; and - (iii) you comply with the terms of Section 6 of the GNU Lesser General - Public License version 2.1. - -Moreover, you may apply this exception to a modified version of the Library, -provided that such modification does not involve copying material from the -Library into the modified Library's header files unless such material is -limited to (i) numerical parameters; (ii) data structure layouts; -(iii) accessors; and (iv) small macros, templates and inline functions of -five lines or less in length. - -Furthermore, you are not required to apply this additional permission to a -modified version of the Library. diff -Nru qtlocation-opensource-src-5.9.5+dfsg/LICENSE.GPLv2 qtlocation-opensource-src-5.11.1+dfsg/LICENSE.GPLv2 --- qtlocation-opensource-src-5.9.5+dfsg/LICENSE.GPLv2 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/LICENSE.GPLv2 1970-01-01 00:00:00.000000000 +0000 @@ -1,292 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - - The Qt Toolkit is Copyright (C) 2015 The Qt Company Ltd. - Contact: http://www.qt.io/licensing/ - - You may use, distribute and copy the Qt Toolkit under the terms of - GNU General Public License version 2, which is displayed below. - -------------------------------------------------------------------------- - - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - -Everyone is permitted to copy and distribute verbatim copies of this -license document, but changing it is not allowed. - -Preamble - - The licenses for most software are designed to take away your freedom -to share and change it. By contrast, the GNU General Public License is -intended to guarantee your freedom to share and change free software ---to make sure the software is free for all its users. This General -Public License applies to most of the Free Software Foundation's -software and to any other program whose authors commit to using it. -(Some other Free Software Foundation software is covered by the GNU -Lesser General Public License instead.) You can apply it to your -programs, too. - -When we speak of free software, we are referring to freedom, not price. -Our General Public Licenses are designed to make sure that you have the -freedom to distribute copies of free software (and charge for this -service if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs; and that you know you can do these things. - -To protect your rights, we need to make restrictions that forbid anyone -to deny you these rights or to ask you to surrender the rights. These -restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - -For example, if you distribute copies of such a program, whether gratis - or for a fee, you must give the recipients all the rights that you -have. You must make sure that they, too, receive or can get the source -code. And you must show them these terms so they know their rights. - -We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - -Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - -Finally, any free program is threatened constantly by software patents. -We wish to avoid the danger that redistributors of a free program will -individually obtain patent licenses, in effect making the program -proprietary. To prevent this, we have made it clear that any patent -must be licensed for everyone's free use or not licensed at all. - -The precise terms and conditions for copying, distribution and -modification follow. - -TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - -0. This License applies to any program or other work which contains a -notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of running -the Program is not restricted, and the output from the Program is -covered only if its contents constitute a work based on the Program -(independent of having been made by running the Program). Whether that -is true depends on what the Program does. - -1. You may copy and distribute verbatim copies of the Program's source -code as you receive it, in any medium, provided that you conspicuously -and appropriately publish on each copy an appropriate copyright notice -and disclaimer of warranty; keep intact all the notices that refer to -this License and to the absence of any warranty; and give any other -recipients of the Program a copy of this License along with the -Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - -2. You may modify your copy or copies of the Program or any portion of -it, thus forming a work based on the Program, and copy and distribute -such modifications or work under the terms of Section 1 above, provided -that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but does - not normally print such an announcement, your work based on the - Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of a -storage or distribution medium does not bring the other work under the -scope of this License. - -3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software - interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your cost - of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to control -compilation and installation of the executable. However, as a special -exception, the source code distributed need not include anything that -is normally distributed (in either source or binary form) with the -major components (compiler, kernel, and so on) of the operating system -on which the executable runs, unless that component itself accompanies -the executable. - -If distribution of executable or object code is made by offering access -to copy from a designated place, then offering equivalent access to -copy the source code from the same place counts as distribution of the -source code, even though third parties are not compelled to copy the -source along with the object code. - -4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt otherwise -to copy, modify, sublicense or distribute the Program is void, and will -automatically terminate your rights under this License. However, -parties who have received copies, or rights, from you under this License -will not have their licenses terminated so long as such parties remain -in full compliance. - -5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - -6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further restrictions -on the recipients' exercise of the rights granted herein. You are not -responsible for enforcing compliance by third parties to this License. - -7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent license -would not permit royalty-free redistribution of the Program by all -those who receive copies directly or indirectly through you, then the -only way you could satisfy both it and this License would be to refrain -entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - -8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License may -add an explicit geographical distribution limitation excluding those -countries, so that distribution is permitted only in or among countries -not thus excluded. In such case, this License incorporates the limitation -as if written in the body of this License. - -9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail -to address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Program does not specify a version -number of this License, you may choose any version ever published by -the Free Software Foundation. - -10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the -author to ask for permission. For software which is copyrighted by -the Free Software Foundation, write to the Free Software Foundation; -we sometimes make exceptions for this. Our decision will be guided by -the two goals of preserving the free status of all derivatives of our -free software and of promoting the sharing and reuse of software -generally. - -NO WARRANTY - -11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, -EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE -ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH -YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL -NECESSARY SERVICING, REPAIR OR CORRECTION. - -12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY -MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE -TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - -END OF TERMS AND CONDITIONS diff -Nru qtlocation-opensource-src-5.9.5+dfsg/LICENSE.LGPLv21 qtlocation-opensource-src-5.11.1+dfsg/LICENSE.LGPLv21 --- qtlocation-opensource-src-5.9.5+dfsg/LICENSE.LGPLv21 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/LICENSE.LGPLv21 1970-01-01 00:00:00.000000000 +0000 @@ -1,514 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - - The Qt Toolkit is Copyright (C) 2015 The Qt Company Ltd. - Contact: http://www.qt.io/licensing/ - - You may use, distribute and copy the Qt Toolkit under the terms of - GNU Lesser General Public License version 2.1, which is displayed below. - -------------------------------------------------------------------------- - - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! - - diff -Nru qtlocation-opensource-src-5.9.5+dfsg/.qmake.conf qtlocation-opensource-src-5.11.1+dfsg/.qmake.conf --- qtlocation-opensource-src-5.9.5+dfsg/.qmake.conf 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/.qmake.conf 2018-06-12 18:44:12.000000000 +0000 @@ -1,4 +1,4 @@ load(qt_build_config) CONFIG += warning_clean -MODULE_VERSION = 5.9.5 +MODULE_VERSION = 5.11.1 diff -Nru qtlocation-opensource-src-5.9.5+dfsg/.QT-ENTERPRISE-LICENSE-AGREEMENT qtlocation-opensource-src-5.11.1+dfsg/.QT-ENTERPRISE-LICENSE-AGREEMENT --- qtlocation-opensource-src-5.9.5+dfsg/.QT-ENTERPRISE-LICENSE-AGREEMENT 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/.QT-ENTERPRISE-LICENSE-AGREEMENT 2018-06-18 07:43:57.000000000 +0000 @@ -0,0 +1,849 @@ +QT ENTERPRISE LICENSE AGREEMENT +Agreement version 3.0 + +This Enterprise License Agreement (“Agreement”) is a legal agreement between +The Qt Company (as defined below) and the Licensee (as defined below) for the +license of Licensed Software (as defined below). Capitalized terms used herein +are defined in Section 1. + +WHEREAS: + +(A) Licensee wishes to use the Licensed Software for the purpose of developing +and distributing Applications and/or Devices; and + +(B) The Qt Company is willing to grant the Licensee a right to use Licensed +Software for such purpose pursuant to term and conditions of this Agreement. + +NOW, THEREFORE, THE PARTIES HEREBY AGREE AS FOLLOWS: + +1. DEFINITIONS + +"Affiliate" of a Party shall mean an entity (i) which is directly or indirectly +controlling such Party; (ii) which is under the same direct or indirect +ownership or control as such Party; or (iii) which is directly or indirectly +owned or controlled by such Party. For these purposes, an entity shall be +treated as being controlled by another if that other entity has fifty percent +(50 %) or more of the votes in such entity, is able to direct its affairs and/or +to control the composition of its board of directors or equivalent body. + +“Applications” shall mean Licensee's software products created using the +Licensed Software, which may include the Redistributables, or part thereof. + +"Contractor(s)" shall mean third party consultants, distributors and contractors +performing services to a Party under applicable contractual arrangement. + +"Customer(s)" shall mean Licensee's end users to whom Licensee, directly or +indirectly, distributes copies of the Redistributables. + +"Deployment Platforms" shall mean operating systems specified in the License +Certificate, in which the Redistributables can be distributed pursuant to the +terms and conditions of this Agreement. + +"Designated User(s)" shall mean the employee(s) of Licensee or Licensee's +Affiliates acting within the scope of their employment or Licensee's Contractors +acting within the scope of their services for Licensee and on behalf of +Licensee. Designated Users shall be named in the License Certificate. + +"Development License" shall mean the license needed by the Licensee for each +Designated User to use the Licensed Software under the license grant described +in Section 3.1 of this Agreement. + +"Development Platforms" shall mean those operating systems specified in the +License Certificate, in which the Licensed Software can be used under the +Development License, but not distributed in any form or used for any other +purpose. + +"Devices" shall mean hardware devices or products that 1) are manufactured +and/or distributed by the Licensee or its Affiliates or Contractors, and (2)(i) +incorporate or integrate the Redistributables or parts thereof; or (ii) do not +incorporate or integrate the Redistributables at the time of distribution, but +where, when used by a Customer, the main user interface or substantial +functionality of such device is provided by Application(s) or otherwise depends +on the Licensed Software. + +"Distribution License(s)" shall mean the license required for distribution of +Redistributables in accordance with the license grant described in Section +3.2(ii)-(iii) of this Agreement. + +"Distribution License Packs" shall mean set of prepaid Distribution Licenses for +distribution of Redistributables, as defined in The Qt Company's standard price +list, quote, Purchase Order confirmation or in an appendix hereto, as the case +may be. + +"Initial Support Term" shall mean a time period of twelve (12) months, +calculated from the end of the Start- For-Free Term. + +"Intellectual Property Rights" shall mean patents (including utility models), +design patents, and designs (whether or not capable of registration), chip +topography rights and other like protection, copyrights, trademarks, service +marks, trade names, logos or other words or symbols and any other form of +statutory protection of any kind and applications for any of the foregoing as +well as any trade secrets. + +"Licensee" shall mean the individual or legal entity that is party to this +Agreement by accepting the terms hereof online in connection with installing the +Licensed Software. + +"License Certificate" shall mean a certificate accompanying the Licensed +Software and generated for each Designated User respectively. License +Certificate will specify the Designated User, the Development Platforms, +Deployment Platforms and the Term of this Agreement. The terms of the License +Certificate are considered part of this Agreement and shall be updated from time +to time to reflect any changes to the foregoing terms relating to Licensee's +rights to the Licensed Software. + +“Licensee’s Records” shall mean books and records that are likely to contain +information bearing on Licensee’s compliance with this Agreement or the +payments due to The Qt Company under this Agreement, including, but not limited +to: assembly logs, sales records and distribution records. + + “License Fee” shall mean the fee charged to the Licensee for rights granted + under the terms of this Agreement. + +"Licensed Software" shall mean all versions of The Qt Company's computer +software products, online or electronic documentation, associated media and +printed materials, including the source code, example programs and the +documentation, licensed to the Licensee under this Agreement. Licensed Software +does not include Third Party Software (as defined in Section 4) or Open Source +Qt. + +"Modified Software" shall mean bug-fixes, error corrections, patches or +modifications made to the Licensed Software by Licensee, including documentation +related thereto. + +"Online Services" shall mean any services or access to systems made available by +The Qt Company to the Licensee over the Internet relating to the Licensed +Software or for the purpose of use by the Licensee of the Licensed Software or +Support. Use of any such Online Services is discretionary for the Licensee and +some of them may be subject to additional fees. + +"Open Source Qt" shall mean all versions of The Qt Company's Qt computer +software products, online or electronic documentation, associated media and +printed materials, including the source code, example programs and the +documentation available under the terms of the GNU Lesser General Public +License, version 2.1 or later ("LGPL") or the GNU General Public License, +version 2.0 or later ("GPL"). + +"Party" or "Parties" shall mean Licensee and/or The Qt Company. + +"Redistributables" shall mean the portions of the Licensed Software set forth in +Appendix 1, Section 1 that may be distributed pursuant to the terms of this +Agreement in object code form only, including any relevant documentation. Where +relevant, any reference to Licensed Software in this Agreement shall include and +refer also to Redistributables. + +"Start-For-Free Term" shall mean the period of 30 days, or any such shorter +period as specified by The Qt Company, calculated from the date the Licensed +Software was initially delivered to the Licensee by The Qt Company. + +"Submitted Modified Software" shall have the meaning as set forth in Section +2.3. + +"Support" shall mean standard developer support that is provided by The Qt +Company to assist Designated Users in using the Licensed Software in accordance +with The Qt Company's standard support terms. + +“Support Renewal Term” shall mean a time period of twelve (12) months, or any +such other time period as agreed between the Parties, calculated from the end +of the Initial Support Term or previous Support Renewal Term, as applicable. + +"Support Term" shall mean the Initial Support Term and any possible Support +Renewal Terms(s) during which time the Licensee is eligible to receive for +Support for the Licensed Software. + +"Taxes" shall have the meaning set forth in Section 10.5. + +"Term" shall mean the validity period of this Agreement, as set forth in the +License Certificate. + +"Updates" shall mean a release or version of the Licensed Software containing +bug fixes, error corrections and other changes that are generally made available +to users of the Licensed Software that have contracted for Support. Updates are +generally depicted as a change to the digits following the decimal in the +Licensed Software version number. The Qt Company shall make Updates available to +the Licensee under the Support. Updates shall be considered as part of the +Licensed Software hereunder. + +“The Qt Company” shall mean: +(i) in the event Licensee is an individual residing in the United States or a +legal entity incorporated in the United States or having its headquarters in +the United States, The Qt Company Inc., a Delaware corporation with its office +at 2350 Mission College Blvd., Suite 1020, Santa Clara, CA 95054, USA.; or +(ii) in the event the Licensee is an individual residing outside of the United +States or a legal entity incorporated outside of the United States or having +its registered office outside of the United States, The Qt Company Ltd., a +Finnish company with its registered office at Bertel Jungin aukio D3A, +02600 Espoo, Finland. + +"Upgrades" shall mean a release or version of the Licensed Software containing +enhancements and new features and are generally depicted as a change to the +first digit of the Licensed Software version number. In the event Upgrades are +provided to the Licensee under this Agreement, they shall be considered as part +of the Licensed Software hereunder. + +2. OWNERSHIP + +2.1 Ownership of The Qt Company + +The Licensed Software is protected by copyright laws and international copyright +treaties, as well as other intellectual property laws and treaties. The Licensed +Software is licensed, not sold. + +All The Qt Company's Intellectual Property Rights are and shall remain the +exclusive property of The Qt Company or its licensors respectively. + +2.2 Ownership of Licensee + +All the Licensee's Intellectual Property Rights are and shall remain the +exclusive property of the Licensee or its licensors respectively. + +All Intellectual Property Rights to the Modified Software, Applications and +Devices shall remain with the Licensee and no rights thereto shall be granted by +the Licensee to The Qt Company under this Agreement (except as set forth in +Section 2.3 below). + +2.3 Modified Software + +Licensee may create Modified Software that breaks the source or binary +compatibility with the Licensed Software. This includes, but is not limited to, +changing the application programming interfaces ("API") by adding, changing or +deleting any variable, method, or class signature in the Licensed Software +and/or any inter-process protocols, services or standards in the Licensed +Software libraries. To the extent that Licensee breaks source or binary +compatibility with the Licensed Software, Licensee acknowledges that The Qt +Company's ability to provide Support may be prevented or limited and Licensee's +ability to make use of Updates may be restricted. + +To the extent Licensee submits Modified Software to The Qt Company (“Submitted +Modified Software”), Licensee hereby grants The Qt Company a sublicensable, +assignable, irrevocable, perpetual, worldwide, non-exclusive, royalty-free and +fully paid-up license, under all of Licensee’s Intellectual Property Rights, to +reproduce, adapt, translate, modify, and prepare derivative works of, publicly +display, publicly perform, sublicense, make available and distribute such +Submitted Modified Software as The Qt Company sees fit at its free and absolute +discretion. For the sake of clarity, the Licensee shall have no obligation to +provide Modified Software to The Qt Company. + +3. LICENSES GRANTED + +3.1 Development with Licensed Software + +Subject to the terms of this Agreement, The Qt Company grants to Licensee a +personal, worldwide, non- exclusive, non-transferable license, valid for the +Term, to use, modify and copy the Licensed Software by Designated Users on the +Development Platforms for the sole purposes of designing, developing, +demonstrating and testing Application(s) and/or Devices, and to provide thereto +related support and other services to end-user Customers. + +Licensee may install copies of the Licensed Software on an unlimited number of +computers provided that (i) only the Designated Users may use the Licensed +Software, and (ii) all Designated Users must have a valid Development License to +use Licensed Software. + +Licensee may at any time designate another Designated User to replace a +then-current Designated User by notifying The Qt Company in writing, provided +that any Designated User may be replaced only once during any six-month period. + +3.2 Distribution of Redistributables + +Subject to the terms of this Agreement, The Qt Company grants to Licensee a +personal, worldwide, non- exclusive, non-transferable license, valid for the +Term (excluding the Start-For-Free Term), to (i) distribute, by itself or +through its Contractors, Redistributables as installed, incorporated or +integrated into Applications for execution on the Deployment Platforms, and (ii) +distribute, by itself or through one or more tiers of Contractors, +Redistributables as installed, incorporated or integrated, or intended to be +installed, incorporated or integrated into Devices for execution on the +Deployment Platforms, and (iii) grant sublicenses to Redistributables, as +distributed hereunder, for Customers solely for Customer's internal use and to +the extent necessary in order for the Customers to use the Applications and/or +Devices for their respective intended purposes. + +Right to distribute the Redistributables as provided herein is conditional upon +the Licensee having purchased and paid the appropriate amount of Development and +Distribution Licenses from The Qt Company before distributing any +Redistributables to Customers. + +For the avoidance of any doubt it is specifically acknowledged and agreed that +distribution of Redistributables solely as installed, incorporated or integrated +into Applications for execution on the Deployment Platform(s), as specified in +(i) of the first paragraph of Section 3.2 above, i.e. with no connection to +Devices or intention to use in connection therewith, shall not require a +Distribution License. + +3.3 Further Requirements + +The licenses granted above in this Section 3 by The Qt Company to Licensee are +conditional and subject to Licensee's compliance with the following terms: + +(i) Licensee shall not remove or alter any copyright, trademark or other +proprietary rights notice contained in any portion of the Licensed Software; + +(ii) Applications must add primary and substantial functionality to the Licensed +Software; + +(iii) Applications may not pass on functionality which in any way makes it +possible for others to create software with the Licensed Software; provided +however that Licensee may use the Licensed Software's scripting and QML ("Qt +Quick") functionality solely in order to enable scripting, themes and styles +that augment the functionality and appearance of the Application(s) without +adding primary and substantial functionality to the Application(s); + +(iv) Applications must not compete with the Licensed Software; + +(v) Licensee shall not use The Qt Company's or any of its suppliers' names, +logos, or trademarks to market Applications, except that Licensee may use "Built +with Qt" logo to indicate that Application(s) was developed using the Licensed +Software; + +(vi) Licensee shall not distribute, sublicense or disclose source code of +Licensed Software to any third party (provided however that Licensee may appoint +employee(s) of Contractors as Designated Users to use Licensed Software pursuant +to this Agreement). Such right may be available for the Licensee subject to a +separate software development kit ("SDK") license agreement to be concluded with +The Qt Company; + +(vii) Licensee shall not grant the Customers a right to (i) make copies of the +Redistributables except when and to the extent required to use the Applications +and/or Devices for their intended purpose, (ii) modify the Redistributables or +create derivative works thereof, (iii) decompile, disassemble or otherwise +reverse engineer Redistributables, or (iv) redistribute any copy or portion of +the Redistributables to any third party, except as part of the onward sale of +the Device on which the Redistributables are installed; + +(viii) Licensee shall not and shall cause that its Affiliates or Contractors +shall not a) in any way combine, incorporate or integrate Licensed Software with, +or use Licensed Software for creation of, any software created with or +incorporating Open Source Qt, or b) incorporate or integrate Applications into +a hardware device or product other than a Device, unless Licensee has received +an advance written permission from The Qt Company to do so. Absent such written +permission, any and all distribution by the Licensee during the Term of a +hardware device or product a) which incorporate or integrate any part of Licensed +Software or Open Source Qt; or b) where the main user interface or substantial +functionality is provided by software build with Licensed Software or Open +Source Qt or otherwise depends on the Licensed Software or Open Source Qt, shall +be considered as distribution under this Agreement and dependent on compliance +thereof (including but not limited to obligation to pay applicable License Fees +for such distribution); + +(ix) Licensee shall cause all of its Affiliates and Contractors entitled to make +use of the licenses granted under this Agreement, to be contractually bound to +comply with the relevant terms of this Agreement and not to use the Licensed +Software beyond the terms hereof and for any purposes other than operating +within the scope of their services for Licensee. Licensee shall be responsible +for any and all actions and omissions of its Affiliates and Contractors relating +to the Licensed Software and use thereof (including but not limited to payment +of all applicable License Fees); + +(x) Except when and to the extent explicitly provided in this Section 3, +Licensee shall not transfer, publish, disclose, display or otherwise make +available the Licensed Software; + +(xi) Licensee shall not take any action inconsistent with The Qt Company's +Intellectual Property Rights; and + +(xii) Attempt or enlist a third party to conduct or attempt to conduct any of +the above. + +Above terms shall not be applicable if and to the extent they conflict with any +mandatory provisions of any applicable laws. + +Any use of Licensed Software beyond the provisions of this Agreement is strictly +prohibited and requires an additional license from The Qt Company. + +4. THIRD PARTY SOFTWARE + +The Licensed Software may provide links to third party libraries or code +(collectively "Third Party Software") to implement various functions. Third +Party Software does not comprise part of the Licensed Software. In some cases, +access to Third Party Software may be included in the Licensed Software. Such +Third Party Software will be listed in the ".../src/3rdparty" source tree +delivered with the Licensed Software or documented in the Licensed Software, as +such may be amended from time to time. Licensee acknowledges that use or +distribution of Third Party Software is in all respects subject to applicable +license terms of applicable third party right holders. + +5. PRE-RELEASE CODE + +The Licensed Software may contain pre-release code and functionality marked or +otherwise stated as “Technology Preview”, “Alpha”, “Beta” or similar +designation. Such pre-release code may be present in order to provide +experimental support for new platforms or preliminary versions of one or more +new functionalities. The pre-release code may not be at the level of +performance and compatibility of a final, generally available, product +offering of the Licensed Software. The pre-release parts of the Licensed +Software may not operate correctly, may contain errors and may be substantially +modified by The Qt Company prior to the first commercial product release, if +any. The Qt Company is under no obligation to make pre-release code +commercially available, or provide any Support or Updates relating thereto. +The Qt Company assumes no liability whatsoever regarding any pre-release code, +but any use thereof is exclusively at Licensee’s own risk and expense. + +6. LIMITED WARRANTY AND WARRANTY DISCLAIMER + +The Qt Company hereby represents and warrants that it has the power and +authority to grant the rights and licenses granted to Licensee under this +Agreement. + +Except as set forth above, the Licensed Software is licensed to Licensee "as +is". + +TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE QT COMPANY ON BEHALF OF +ITSELF AND ITS LICENSORS, SUPPLIERS AND AFFILIATES, DISCLAIMS ALL WARRANTIES, +EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT +WITH REGARD TO THE LICENSED SOFTWARE. THE QT COMPANY DOES NOT WARRANT THAT THE +LICENSED SOFTWARE WILL SATISFY LICENSEE'S REQUIREMENTS OR THAT IT WILL OPERATE +WITHOUT DEFECT OR ERROR OR THAT THE OPERATION THEREOF WILL BE UNINTERRUPTED. ALL +USE OF AND RELIANCE ON THE LICENSED SOFTWARE IS AT THE SOLE RISK OF AND +RESPONSIBILITY OF LICENSEE. + +Licensee's exclusive remedy and The Qt Company's entire liability for Licensed +Software shall be limited, at The Qt Company's option, to correction of the +error, replacement of the Licensed Software or return of the applicable fees +paid for the defective Licensed Software for the time period during which the +License is not able to utilize the Licensed Software under the terms of this +Agreement. + +7. INDEMNIFICATION AND LIMITATION OF LIABILITY + +7.1 Limitation of Liability + +EXCEPT FOR (I) CASES OF GROSS NEGLIGENCE OR INTENTIONAL MISCONDUCT, (II) +LICENSEE'S DUTY TO PAY ALL APPLICABLE LICENSE FEES AND COMPENSATIONS, AND (III) +BREACH OF CONFIDENTIALITY, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, IN NO +EVENT SHALL EITHER PARTY BE LIABLE TO THE OTHER PARTY FOR ANY LOSS OF PROFIT, +LOSS OF DATA, LOSS OF BUSINESS OR GOODWILL OR ANY OTHER INDIRECT, SPECIAL, +CONSEQUENTIAL, INCIDENTAL OR PUNITIVE COST, DAMAGES OR EXPENSE OF ANY KIND, +HOWSOEVER ARISING UNDER OR IN CONNECTION WITH THIS AGREEMENT. + +EXCEPT FOR (I) CASES OF GROSS NEGLIGENCE OR INTENTIONAL MISCONDUCT, (II) +LICENSEE'S DUTY TO PAY ALL APPLICABLE LICENSE FEES AND COMPENSATIONS, AND (III) +BREACH OF CONFIDENTIALITY, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, IN NO +EVENT SHALL EITHER PARTY'S TOTAL AGGREGATE LIABILITY UNDER THIS AGREEMENT EXCEED +THE AGGREGATE LICENSE FEES RECEIVED BY THE QT COMPANY FROM LICENSEE DURING THE +PERIOD OF TWELVE (12) MONTHS IMMEDIATELY PRECEDING THE EVENT RESULTING IN SUCH +LIABILITY. + +THE PROVISIONS OF THIS SECTION 7 ALLOCATE THE RISKS UNDER THIS AGREEMENT BETWEEN +THE QT COMPANY AND LICENSEE AND THE PARTIES HAVE RELIED UPON THE LIMITATIONS SET +FORTH HEREIN IN DETERMINING WHETHER TO ENTER INTO THIS AGREEMENT. + +7.2 Licensee´s Indemnification Licensee shall indemnify and hold harmless The +Qt Company from and against any claim, injury, judgment, settlement, loss or +expense, including attorneys' fees related to: (a) Licensee's misrepresentation +in connection with The Qt Company or the Licensed Software or breach of this +Agreement, (b) the Application or Device (except where such cause of liability +is solely attributable to the Licensed Software). + +8. SUPPORT, UPDATES AND ONLINE SERVICES + +Licensee will be eligible to receive Support and Updates and to use the Online +Services during the Support Term. Unless otherwise decided by The Company at its +free and absolute discretion, Upgrades will not be included in the Support but +may be available subject to additional fees. + +Licenses granted under this Agreement shall include a prepaid Initial Support +Term. + +Initial Support Term shall be automatically extended to one or more Renewal +Term(s), unless and until either Party notifies the other Party in writing that +it does not wish to continue the Support, such notification to be provided to +the other Party no less than ninety (90) days before expiry of the Initial +Support Term or respective Renewal Term. During any such Extended Term Support +shall be available subject to prices and terms agreed between the Parties or, if +no advance agreement exists, subject to The Qt Company's standard pricing +applicable at the commencement date of any such Support Renewal Term. From time +to time The Qt Company may change support provided within each Support plan; +provided that during the respective Initial Support Term or Support Renewal Term +(as the case may be), the level of support provided by The Qt Company may not be +reduced without the consent of the Licensee. + +Unless otherwise agreed, The Qt Company shall not be responsible for providing +any service or support to the Customers. + +9. CONFIDENTIALITY + +Each Party acknowledges that during the Term of this Agreement each Party may +receive information about the other Party's business, business methods, business +plans, customers, business relations, technology, and other information, +including the terms of this Agreement, that is confidential and of great value +to the other Party, and the value of which would be significantly reduced if +disclosed to third parties ("Confidential Information"). Accordingly, when a +Party (the "Receiving Party") receives Confidential Information from the other +Party (the "Disclosing Party"), the Receiving Party shall only disclose such +information to employees and Contractors on a need to know basis, and shall +cause its employees and employees of its Affiliates to: (i) maintain any and all +Confidential Information in confidence; (ii) not disclose the Confidential +Information to a third party without the Disclosing Party's prior written +approval; and (iii) not, directly or indirectly, use the Confidential +Information for any purpose other than for exercising its rights and fulfilling +its responsibilities pursuant to this Agreement. Each Party shall take +reasonable measures to protect the Confidential Information of the other Party, +which measures shall not be less than the measures taken by such Party to +protect its own confidential and proprietary information. + +Obligation of confidentiality shall not apply to information that (i) is or +becomes generally known to the public through no act or omission of the +Receiving Party; (ii) was in the Receiving Party's lawful possession prior to +the disclosure hereunder and was not subject to limitations on disclosure or +use; (iii) is developed independently by employees or Contractors of the +Receiving Party or other persons working for the Receiving Party who have not +had access to the Confidential Information of the Disclosing Party, as proven by +the written records of the Receiving Party; (iv) is lawfully disclosed to the +Receiving Party without restrictions, by a third party not under an obligation +of confidentiality; or (v) the Receiving Party is legally compelled to disclose, +in which case the Receiving Party shall notify the Disclosing Party of such +compelled disclosure and assert the privileged and confidential nature of the +information and cooperate fully with the Disclosing Party to limit the scope of +disclosure and the dissemination of disclosed Confidential Information to the +minimum extent necessary. + +The obligations under this Section 9 shall continue to remain in force for a +period of five (5) years after the last disclosure, and, with respect to trade +secrets, for so long as such trade secrets are protected under applicable trade +secret laws. + +10. FEES, DELIVERY AND PAYMENT + +10.1 License Fees + +License Fees are described in The Qt Company's standard price list, quote or +Purchase Order confirmation or in an appendix hereto, as the case may be. The +License Fees shall not be refunded or claimed as a credit, even on the ground +that Distribution Licenses are not used, i.e. Redistributables are not actually +distributed corresponding to the Distribution Licenses purchased, or for any +other reason. + +10.2 Ordering Licenses + +Licensee may purchase Development Licenses and Distribution Licenses pursuant to +agreed pricing terms or, if no specific pricing terms have been agreed upon, at +The Qt Company's standard pricing terms applicable at the time of purchase. +Licensee shall submit all purchase orders for Development Licenses and +Distribution Licenses to The Qt Company by email or any other method acceptable +to The Qt Company (each such order is referred to herein as a "Purchase Order") +for confirmation, whereupon the Purchase Order shall become binding between the +Parties. + +10.3 Distribution License Packs + +Unless otherwise agreed, the Distribution Licenses are bought by way of +Distribution License Packs. Upon due payment of the ordered Distribution License +Pack(s), the Licensee will have an account of Distribution Licenses available +for installing, bundling or integrating (all jointly "installing") the +Redistributables with the Devices or for otherwise distributing the +Redistributables in accordance with this Agreement. Each time Licensee +"installs" or distributes a copy of Redistributables, then one Distribution +License is used, and Licensee's account of available Distribution Licenses is +decreased accordingly. Licensee may "install" copies of the Redistributables so +long as Licensee has Distribution Licenses remaining on its account. +Redistributables will be deemed to have been "installed" into a Device when one +of the following circumstances shall have occurred: a) the Redistributables have +been loaded onto the Device and used outside of the Licensee's premises or b) +the Device has been fully tested and placed into Licensee's inventory (or sold) +for the first time (i.e., Licensee will not be required to use (or pay for) more +than one Distribution License for each individual Device, e.g. in a situation +where a Device is returned to Licensee's inventory after delivery to a +distributor or sale to a Customer). In addition, if Licensee includes a back-up +copy of the Redistributables on a CD-ROM or other storage medium along with the +product, that backup copy of the Redistributables will not be deemed to have +been "installed" and will not require an additional Distribution License. + +10.4 Payment Terms + +License Fees and any other charges under this Agreement shall be paid by +Licensee no later than thirty (30) days from the date of the applicable invoice +from The Qt Company. The Qt Company will submit an invoice to Licensee after +the effective date of this Agreement and/or after The Qt Company receives a +Purchase Order from Licensee. A late payment charge of the lower of (a) one +percent per month; or (b) the interest rate stipulated by applicable law, +shall be charged on any unpaid balances that remain past due. The Qt Company +shall have the right to suspend, terminate or withhold grants of all rights to +the Licensed Software hereunder, including but not limited to the Developer +License, Distribution License, and Support, should Licensee fail to make +payment in a timely fashion. + +10.5 Taxes + +All License Fees and other charges payable hereunder are gross amounts but +exclusive of any value added tax, use tax, sales tax and other taxes, duties or +tariffs ("Taxes"). Such applicable Taxes shall be paid by Licensee, or, where +applicable, in lieu of payment of such Taxes, Licensee shall provide an +exemption certificate to The Qt Company and any applicable authority. + +11 RECORD-KEEPING AND REPORTING OBLIGATIONS; AUDIT RIGHTS + +11.1 Licensee's Record-keeping + +Licensee shall at all times maintain accurate and up-to-date written records of +Licensee's activities related to the use of Licensed Software and distribution +of Redistributables. The records shall be adequate to determine Licensee's +compliance with the provisions of this Agreement and to demonstrate the number +of Designated Users and Redistributables distributed by Licensee. The records +shall conform to good accounting practices reasonably acceptable to The Qt +Company. Licensee shall, within thirty (30) days from the end of each calendar +quarter, deliver to The Qt Company a report detailing the number of Designated +Users and copies of Redistributables distributed by Licensee during that +calendar quarter, and also detailing the number of undistributed copies of +Redistributables made by Licensee and remaining in its account (i.e., +undistributed copies for which Distribution Licenses have been or need to be +obtained from The Qt Company). Such report shall contain such other information +as The Qt Company shall reasonably require from time to time. + +11.2. The Qt Company's Audit Rights + +The Qt Company or an independent auditor acting on behalf of The Qt Company's, +may, upon at least five (5) business days' prior written notice and at its +expense, audit Licensee with respect to the use of the Redistributables, but not +more frequently than once during each 6-month period. Such audit may be +conducted by mail, electronic means or through an in-person visit to Licensee's +place of business. Any such in-person audit shall be conducted during regular +business hours at Licensee's facilities and shall not unreasonably interfere +with Licensee's business activities. The Qt Company or the independent auditor +acting on behalf of The Qt Company shall be entitled to inspect Licensee's +Records. All such Licensee's Records and use thereof shall be subject to an +obligation of confidentiality under this Agreement. If an audit reveals that +Licensee is using the Licensed Software beyond scope of the licenses Licensee +has paid for, Licensee agrees to immediately pay The Qt Company any amounts owed +for such unauthorized use. In addition, in the event the audit reveals a +material violation of the terms of this Agreement (underpayment of more than 5% +of License Fees shall always be deemed a material violation for purposes of this +section), then the Licensee shall pay The Qt Company's reasonable cost of +conducting such audit. + +12 TERM AND TERMINATION + +12.1 Term + +This Agreement shall enter into force upon due acceptance by the Licensee and +remain in force for the Term, unless and until terminated pursuant to the terms +of this Section 12. + +12.2 Termination by The Qt Company + +The Qt Company shall have the right to terminate this Agreement upon thirty (30) +days prior written notice if (i) the Licensee is in material breach of any +obligation of this Agreement and fails to remedy such breach within such notice +period; (ii) or Licensee or any of its Affiliates bring a suit before any court +or administrative agency or otherwise assert a claim against The Qt Company's or +any of its Affiliates' Intellectual Property Rights or validity thereof. + +12.3 Mutual Right to Terminate + +Either Party shall have the right to terminate this Agreement immediately upon +written notice in the event that the other Party becomes insolvent, files for +any form of bankruptcy, makes any assignment for the benefit of creditors, has a +receiver, administrative receiver or officer appointed over the whole or a +substantial part of its assets, ceases to conduct business, or an act equivalent +to any of the above occurs under the laws of the jurisdiction of the other +Party. + +12.4 Parties´ Rights and Duties upon Termination + +Upon expiry or termination of the Agreement for any reason, Licensee shall, +within 30 days after such termination, cease and shall cause all Designated +Users (including those of its Affiliates' and Contractors') to cease using the +Licensed Software and distribution of the Redistributables under this Agreement. +Notwithstanding the above, in the event the Agreement expires or is terminated +for reason other than by The Qt Company pursuant to Section 12.2, the Licensee +is entitled, for a period of six (6) months after the effective date of +termination, to continue distribution of Devices under the Distribution Licenses +paid but unused at such effective date of termination. Upon any such termination +the Licensee shall destroy or return to The Qt Company all copies of the +Licensed Software and all related materials and will certify the same to The Qt +Company upon its request, provided however that Licensee may retain and exploit +such copies of the Licensed Software as it may reasonably require in providing +continued support to Customers. Expiry or termination of this Agreement for any +reason whatsoever shall not relieve Licensee of its obligation to pay any +License Fees accrued or payable to The Qt Company prior to the effective date of +termination, and Licensee shall immediately pay to The Qt Company all such fees +upon the effective date of termination. Termination of this Agreement shall not +affect any rights of Customers to continue use of Applications and Devices (and +therein incorporated Redistributables). + +13. GOVERNING LAW AND LEGAL VENUE + +In the event this Agreement is in the name of The Qt Company Inc., a Delaware +Corporation, then: +(i) this Agreement shall be construed and interpreted in accordance with the +laws of the State of California, USA, excluding its choice of law provisions; +(ii) the United Nations Convention on Contracts for the International Sale of +Goods will not apply to this Agreement; and +(iii) any dispute, claim or controversy arising out of or relating to this +Agreement or the breach, termination, enforcement, interpretation or validity +thereof, including the determination of the scope or applicability of this +Agreement to arbitrate, shall be determined by arbitration in San Francisco, +USA, before one arbitrator. The arbitration shall be administered by JAMS +pursuant to JAMS' Streamlined Arbitration Rules and Procedures. Judgment on +the Award may be entered in any court having jurisdiction. This Section shall +not preclude parties from seeking provisional remedies in aid of arbitration +from a court of appropriate jurisdiction. + +In the event this Agreement is in the name of The Qt Company Ltd., +a Finnish Company, then: +(i) This Agreement shall be construed and interpreted in accordance with the +laws of Finland, excluding its choice of law provisions; +(ii) The United Nations Convention on Contracts for the International Sale of +Goods will not apply to this Agreement; and +(iii) Any disputes, controversy or claim arising out of or relating to this +Agreement, or the breach, termination or validity thereof shall be shall be +finally settled by arbitration in accordance with the Arbitration Rules of +Finland Chamber of Commerce. The arbitration tribunal shall consist of one (1), +or if either Party so requires, of three (3), arbitrators. The award shall be +final and binding and enforceable in any court of competent jurisdiction. The +arbitration shall be held in Helsinki, Finland and the process shall be +conducted in the English language. This Section shall not preclude parties from +seeking provisional remedies in aid of arbitration from a court of appropriate +jurisdiction. + +14. GENERAL PROVISIONS + +14.1 No Assignment + +Licensee shall not be entitled to assign or transfer all or any of its rights, +benefits and obligations under this Agreement without the prior written consent +of The Qt Company, which shall not be unreasonably withheld or delayed. The Qt +Company shall be entitled to freely assign or transfer any of its rights, +benefits or obligations under this Agreement. + +14.2 No Third Party Representations + +Licensee shall make no representations or warranties concerning the Licensed +Software on behalf of The Qt Company. Any representation or warranty Licensee +makes or purports to make on The Qt Company's behalf shall be void as to The Qt +Company. + +14.3 Surviving Sections + +Any terms and conditions that by their nature or otherwise reasonably should +survive termination of this Agreement shall so be deemed to survive. + +14.4 Entire Agreement + +This Agreement, the exhibits hereto, the License Certificate and any applicable +Purchase Order constitute the complete agreement between the Parties and +supersedes all prior or contemporaneous discussions, representations, and +proposals, written or oral, with respect to the subject matters discussed +herein. In the event of any conflict or inconsistency between this Agreement and +any Purchase Order, the terms of this Agreement will prevail over the terms of +the Purchase Order with respect to such conflict or inconsistency. + +14.5 Modifications + +No modification of this Agreement shall be effective unless contained in a +writing executed by an authorized representative of each Party. No term or +condition contained in Licensee's Purchase Order shall apply unless expressly +accepted by The Qt Company in writing. If any provision of the Agreement is +found void or unenforceable, the remainder shall remain valid and enforceable +according to its terms. If any remedy provided is determined to have failed for +its essential purpose, all limitations of liability and exclusions of damages +set forth in this Agreement shall remain in effect. + +14.6 Force Majeure + +Except for the payment obligations hereunder, neither Party shall be liable to +the other for any delay or non-performance of its obligations hereunder in the +event and to the extent that such delay or non- performance is due to an event +of act of God, terrorist attack or other similar unforeseeable catastrophic +event that prevents either Party for fulfilling its obligations under this +Agreement and which such Party cannot avoid or circumvent ("Force Majeure +Event"). If the Force Majeure Event results in a delay or non- performance of a +Party for a period of three (3) months or longer, then either Party shall have +the right to terminate this Agreement with immediate effect without any +liability (except for the obligations of payment arising prior to the event of +Force Majeure) towards the other Party. + +14.7 Notices + +Any notice given by one Party to the other shall be deemed properly given and +deemed received if specifically acknowledged by the receiving Party in writing +or when successfully delivered to the recipient by hand, fax, or special courier +during normal business hours on a business day to the addresses specified for +The Qt Company in the beginning of this Agreement, and for the Licensee in the +Licensee's account profile. Each communication and document made or delivered by +one Party to the other Party pursuant to this Agreement shall be in the English +language. + +14.8 Export Control + +Licensee acknowledges that the Redistributables may be subject to export control +restrictions under the applicable laws of respective countries. Licensee shall +fully comply with all applicable export license restrictions and requirements as +well as with all laws and regulations relating to the Redistributables and +exercise of licenses hereunder and shall procure all necessary governmental +authorizations, including without limitation, all necessary licenses, approvals, +permissions or consents, where necessary for the re- exportation of the +Redistributables, Applications and/or Devices. + +14.9 No Implied License + +There are no implied licenses or other implied rights granted under this +Agreement, and all rights, save for those expressly granted hereunder, shall +remain with The Qt Company and its licensors. In addition, no licenses or +immunities are granted to the combination of the Licensed Software with any +other software or hardware not delivered by The Qt Company under this Agreement. + +14.10 Attorney Fees + +The prevailing Party in any action to enforce this Agreement shall be entitled +to recover its attorney's fees and costs in connection with such action. + +14.11 Severability + +If any provision of this Agreement shall be adjudged by any court of competent +jurisdiction to be unenforceable or invalid, that provision shall be limited or +eliminated to the minimum extent necessary so that this Agreement shall +otherwise remain in full force and effect and enforceable. + +IN WITNESS WHEREOF, the Parties hereto, intending to be legally bound hereby, +have caused this Agreement to be executed by Licensee's authorized +representative installing the Licensed Software and accepting the terms hereof +in connection therewith. + +Appendix 1 + +1. Parts of the Licensed Software that are permitted for distribution in object +code form only ("Redistributables") under this Agreement: + +- The Licensed Software's essential and add-on libraries + +- The Licensed Software's configuration tool ("qtconfig") + +- The Licensed Software's help tool ("Qt Assistant") + +- The Licensed Software's internationalization tools ("Qt Linguist", "lupdate", +"lrelease") + +- The Licensed Software's QML ("Qt Quick") launcher tool ("qmlscene" and +"qmlviewer") + +- The Licensed Software's installer framework + +2. Parts of the Licensed Software that are not permitted for distribution +include, but are not limited to: + +- The Licensed Software's source code and header files + +- The Licensed Software's documentation + +- The Licensed Software's documentation generation tool ("qdoc") + +- The Licensed Software's tool for writing makefiles ("qmake") + +- The Licensed Software's Meta Object Compiler ("moc") + +- The Licensed Software's User Interface Compiler ("uic" or in the case of Qt +Jambi: "juic") + +- The Licensed Software's Resource Compiler ("rcc") + +- The Licensed Software's generator (only in the case of Qt Jambi if applicable) + +- The Licensed Software's parts of the IDE tool ("Qt Creator") + +- The Licensed Software's Emulator + +- Build scripts, recipes and other material for creating the configuration of +Licensed Software and/or 3rd party components, including the reference operating +system configuration delivered in conjunction with the Licensed Software diff -Nru qtlocation-opensource-src-5.9.5+dfsg/.QT-FOR-APPLICATION-DEVELOPMENT-LICENSE-AGREEMENT qtlocation-opensource-src-5.11.1+dfsg/.QT-FOR-APPLICATION-DEVELOPMENT-LICENSE-AGREEMENT --- qtlocation-opensource-src-5.9.5+dfsg/.QT-FOR-APPLICATION-DEVELOPMENT-LICENSE-AGREEMENT 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/.QT-FOR-APPLICATION-DEVELOPMENT-LICENSE-AGREEMENT 2018-06-18 07:43:57.000000000 +0000 @@ -0,0 +1,912 @@ +QT LICENSE AGREEMENT Agreement version 4.0 + +This License Agreement (“Agreement”) is a legal agreement between The Qt +Company (as defined below) and the Licensee (as defined below) for the license +of Licensed Software (as defined below). Capitalized terms used herein are +defined in Section 1. + +WHEREAS: + +(A). Licensee wishes to use the Licensed Software for the purpose of developing +and distributing Applications and/or Devices; and + +(B). The Qt Company is willing to grant the Licensee a right to use Licensed +Software for such purpose pursuant to term and conditions of this Agreement. + +NOW, THEREFORE, THE PARTIES HEREBY AGREE AS FOLLOWS: + +1. DEFINITIONS + +“Affiliate” of a Party shall mean an entity (i) which is directly or indirectly +controlling such Party; (ii) which is under the same direct or indirect +ownership or control as such Party; or (iii) which is directly or indirectly +owned or controlled by such Party. For these purposes, an entity shall be +treated as being controlled by another if that other entity has fifty percent +(50 %) or more of the votes in such entity, is able to direct its affairs +and/or to control the composition of its board of directors or equivalent body. + +“Applications” shall mean Licensee's software products created using the +Licensed Software, which may include the Redistributables, or part +thereof. + +“Contractor(s)” shall mean third party consultants, distributors and +contractors performing services to a Party under applicable contractual +arrangement. + +“Customer(s)” shall mean Licensee’s end users to whom Licensee, directly or +indirectly, distributes copies of the Redistributables. + +“Deployment Platforms” shall mean operating systems specified in the License +Certificate, in which the Redistributables can be distributed pursuant to the +terms and conditions of this Agreement. + +“Designated User(s)” shall mean the employee(s) of Licensee or Licensee’s +Affiliates acting within the scope of their employment or Licensee's +Contractors acting within the scope of their services for Licensee and on +behalf of Licensee. Designated Users shall be named in the License Certificate. + +“Development License” shall mean the license needed by the Licensee for each +Designated User to use the Licensed Software under the license grant described +in Section 3.1 of this Agreement. + +“Development Platforms” shall mean those operating systems specified in the +License Certificate, in which the Licensed Software can be used under the +Development License, but not distributed in any form or used for any other +purpose. + +“Devices” shall mean hardware devices or products that 1) are manufactured +and/or distributed by the Licensee or its Affiliates or Contractors, and +(2)(i) incorporate or integrate the Redistributables or parts thereof; or (ii) +do not incorporate or integrate the Redistributables at the time of +distribution, but where, when used by a Customer, the main user interface or +substantial functionality of such device is provided by Application(s) or +otherwise depends on the Licensed Software. + +“Distribution License(s)” shall mean the license required for distribution of +Redistributables in connection with Devices pursuant to license grant described +in Section 3.3 of this Agreement. + +“Distribution License Packs” shall mean set of prepaid Distribution Licenses +for distribution of Redistributables, as defined in The Qt Company’s standard +price list, quote, Purchase Order confirmation or in an appendix hereto, +as the case may be. + +“Intellectual Property Rights” shall mean patents (including utility models), +design patents, and designs (whether or not capable of registration), chip +topography rights and other like protection, copyrights, trademarks, service +marks, trade names, logos or other words or symbols and any other form of +statutory protection of any kind and applications for any of the foregoing as +well as any trade secrets. + +“License Certificate” shall mean a certificate generated by The Qt Company for +each Designated User respectively upon them downloading the licensed Software. +License Certificate will be available under respective Designated User’s Qt +Account at account.qt.io and it will specify the Designated User, the +Development Platforms, Deployment Platforms and the License Term. The terms of +the License Certificate are considered part of this Agreement and shall be +updated from time to time to reflect any agreed changes to the foregoing terms +relating to Designated User’s rights to the Licensed Software. + +“License Fee” shall mean the fee charged to the Licensee for rights granted +under the terms of this Agreement. + +“License Term” shall mean the agreed validity period of the Development +License of the respective Designated User, during which time the +Designated User is entitled to use the Licensed Software, as set forth in the +respective License Certificate. + +“Licensed Software” shall mean all versions of the + +(i) Qt Toolkit (including Qt Essentials, Qt Add-Ons and Value-Add modules) as +described in http://doc.qt.io/qt-5/qtmodules.html, + +(ii) Qt Creator (including Creator IDE tool) as described in +http://doc.qt.io/qtcreator/index.html, + +(iii) Qt 3D Studio as described in http://doc.qt.io/qt3dstudio/index.html, and + +as well as corresponding online or electronic documentation, associated media +and printed materials, including the source code, example programs and the +documentation, licensed to the Licensee under this Agreement. Licensed Software +does not include Third Party Software (as defined in Section 4), Open Source +Qt, or other software products of The Qt Company (for example Qt Safe Renderer +and Qt for Automation), unless such other software products of The Qt Company +are separately agreed in writing to be included in scope of the Licensed +Software. + +“Licensee” shall mean the individual or legal entity that is party to this +Agreement, as identified on the signature page hereof. + +“Licensee’s Records” shall mean books and records that are likely to contain +information bearing on Licensee’s compliance with this Agreement or the +payments due to The Qt Company under this Agreement, including, but not limited +to: assembly logs, sales records and distribution records. + +“Modified Software” shall have the meaning as set forth in Section 2.3. + +“Online Services” shall mean any services or access to systems made available +by The Qt Company to the Licensee over the Internet relating to the Licensed +Software or for the purpose of use by the Licensee of the Licensed Software or +Support. Use of any such Online Services is discretionary for the Licensee and +some of them may be subject to additional fees. + +“Open Source Qt” shall mean the non-commercial Qt computer software products, +licensed under the terms of the GNU Lesser General Public License, version +2.1 or later (“LGPL”) or the GNU General Public License, version 2.0 or later +(“GPL”). For clarity, Open Source Qt shall not be provided nor governed under +this Agreement. + +”Party” or “Parties” shall mean Licensee and/or The Qt Company. + +"Redistributables" shall mean the portions of the Licensed Software set forth +in Appendix 1, Section 1 that may be distributed pursuant to the terms of this +Agreement in object code form only, including any relevant documentation. +Where relevant, any reference to Licensed Software in this Agreement shall +include and refer also to Redistributables. + +“Renewal Term” shall mean an extension of previous License Term as agreed +between the Parties. + +“Submitted Modified Software” shall have the meaning as set forth in +Section 2.3. + +“Support” shall mean standard developer support that is provided by The Qt +Company to assist Designated Users in using the Licensed Software in +accordance with The Qt Company’s standard support terms and as further +defined in Section 8 hereunder. + +“Taxes” shall have the meaning set forth in Section 10.5. + +“Term” shall have the meaning set forth in Section 12. + +“The Qt Company” shall mean: + +(i) in the event Licensee is an individual residing in the United States or a +legal entity incorporated in the United States or having its headquarters in +the United States, The Qt Company Inc., a Delaware corporation with its office +at 2350 Mission College Blvd., Suite 1020, Santa Clara, CA 95054, USA.; or + +(ii) in the event the Licensee is an individual residing outside of the United +States or a legal entity incorporated outside of the United States or having +its registered office outside of the United States, The Qt Company Ltd., a +Finnish company with its registered office at Bertel Jungin aukio D3A, 02600 +Espoo, Finland. + +"Third Party Software " shall have the meaning set forth in Section 4. + +“Updates” shall mean a release or version of the Licensed Software containing +bug fixes, error corrections and other changes that are generally made +available to users of the Licensed Software that have contracted for Support. +Updates are generally depicted as a change to the digits following the decimal +in the Licensed Software version number. The Qt Company shall make Updates +available to the Licensee under the Support. Updates shall be considered as +part of the Licensed Software hereunder. + +“Upgrades” shall mean a release or version of the Licensed Software containing +enhancements and new features and are generally depicted as a change to the +first digit of the Licensed Software version number. In the event Upgrades are +provided to the Licensee under this Agreement, they shall be considered as +part of the Licensed Software hereunder. + +2. OWNERSHIP + +2.1 Ownership of The Qt Company + +The Licensed Software is protected by copyright laws and international +copyright treaties, as well as other intellectual property laws and treaties. +The Licensed Software is licensed, not sold. + +All The Qt Company's Intellectual Property Rights are and shall remain the +exclusive property of The Qt Company or its licensors respectively. + +2.2 Ownership of Licensee + +All the Licensee's Intellectual Property Rights are and shall remain the +exclusive property of the Licensee or its licensors respectively. + +All Intellectual Property Rights to the Modified Software, Applications and +Devices shall remain with the Licensee and no rights thereto shall be granted +by the Licensee to The Qt Company under this Agreement (except as set forth in +Section 2.3 below). + +2.3 Modified Software + +Licensee may create bug-fixes, error corrections, patches or modifications to +the Licensed Software (“Modified Software”). Such Modified Software may break +the source or binary compatibility with the Licensed Software (including +without limitation through changing the application programming interfaces +("API") or by adding, changing or deleting any variable, method, or class +signature in the Licensed Software and/or any inter-process protocols, services +or standards in the Licensed Software libraries). To the extent that Licensee’s +Modified Software so breaks source or binary compatibility with the Licensed +Software, Licensee acknowledges that The Qt Company's ability to provide +Support may be prevented or limited and Licensee's ability to make use of +Updates may be restricted. + +Licensee may, at its sole and absolute discretion, choose to submit Modified +Software to The Qt Company (“Submitted Modified Software”) in connection with +Licensee’s Support request, service request or otherwise. In the event Licensee +does so, then, Licensee hereby grants The Qt Company a sublicensable, +assignable, irrevocable, perpetual, worldwide, non-exclusive, royalty-free and +fully paid-up license, under all of Licensee’s Intellectual Property Rights, to +reproduce, adapt, translate, modify, and prepare derivative works of, publicly +display, publicly perform, sublicense, make available and distribute such +Submitted Modified Software as The Qt Company sees fit at its free and absolute +discretion. + +3. LICENSES GRANTED + +3.1 Development with Licensed Software + +Subject to the terms of this Agreement, The Qt Company grants to Licensee a +personal, worldwide, non-exclusive, non-transferable license, valid for the +License Term, to use, modify and copy the Licensed Software by Designated Users +on the Development Platforms for the sole purposes of designing, developing, +demonstrating and testing Application(s) and/or Devices, and to provide thereto +related support and other related services to end-user Customers. + +Licensee may install copies of the Licensed Software on an unlimited number of +computers provided that (i) only the Designated Users may use the Licensed +Software, and (ii) all Designated Users must have a valid Development License +to use Licensed Software. + +Licensee may at any time designate another Designated User to replace a then- +current Designated User by notifying The Qt Company in writing, provided that +any Designated User may be replaced only once during any six-month period. + +Upon expiry of the initially agreed License Term, the respective License Terms +shall be automatically extended to one or more Renewal Term(s), unless and +until either Party notifies the other Party in writing that it does not wish to +continue the License Term, such notification to be provided to the other Party +no less than ninety (90) days before expiry of the respective License Term. +Unless otherwise agreed between the Parties, Renewal Term shall be of equal +length with the initial Term. + +Any such Renewal Term shall be subject to License Fees agreed between the +Parties or, if no advance agreement exists, subject to The Qt Company’s +standard pricing applicable at the commencement date of any such Renewal Term. + +3.2 Distribution of Applications + +Subject to the terms of this Agreement, The Qt Company grants to Licensee a +personal, worldwide, non-exclusive, non-transferable, revocable (for cause +pursuant to this Agreement) right and license, valid for the Term, to + +(i) distribute, by itself or through its Contractors, Redistributables as +installed, incorporated or integrated into Applications for execution on the +Deployment Platforms, and + +(ii) grant sublicenses to Redistributables, as distributed hereunder, for +Customers solely for Customer’s internal use and to the extent necessary in +order for the Customers to use the Applications for their respective intended +purposes. + +Right to distribute the Redistributables as part of an Application as provided +herein is not royalty-bearing but is conditional upon the Licensee having paid +the agreed Development Licenses from The Qt Company before distributing any +Redistributables to Customers. + +3.3 Distribution of Devices + +Subject to the terms of this Agreement, The Qt Company grants to Licensee a +personal, worldwide, non-exclusive, non-transferable, revocable (for cause +pursuant to this Agreement) right and license, valid for the Term, to + +(i) distribute, by itself or through one or more tiers of Contractors, +Redistributables as installed, incorporated or integrated, or intended to be +installed, incorporated or integrated into Devices for execution on the +Deployment Platforms, and + +(ii) grant sublicenses to Redistributables, as distributed hereunder, for +Customers solely for Customer’s internal use and to the extent necessary in +order for the Customers to use the Devices for their respective intended +purposes. + +Right to distribute the Redistributables with Devices as provided herein is +conditional upon the Licensee having purchased and paid the appropriate amount +of Development and Distribution Licenses from The Qt Company before +distributing any Redistributables to Customers. + +3.4 Further Requirements + +The licenses granted above in this Section 3 by The Qt Company to Licensee are +conditional and subject to Licensee's compliance with the following terms: + +(i) Licensee shall not remove or alter any copyright, trademark or other +proprietary rights notice contained in any portion of the Licensed Software; + +(ii) Applications must add primary and substantial functionality to the +Licensed Software; + +(iii) Applications may not pass on functionality which in any way makes it +possible for others to create software with the Licensed Software; provided +however that Licensee may use the Licensed Software's scripting and QML ("Qt +Quick") functionality solely in order to enable scripting, themes and styles +that augment the functionality and appearance of the Application(s) without +adding primary and substantial functionality to the Application(s); + +(iv) Applications must not compete with the Licensed Software; + +(v) Licensee shall not use The Qt Company's or any of its suppliers' names, +logos, or trademarks to market Applications, except that Licensee may use +“Built with Qt” logo to indicate that Application(s) was developed using the +Licensed Software; + +(vi) Licensee shall not distribute, sublicense or disclose source code of +Licensed Software to any third party (provided however that Licensee may +appoint employee(s) of Contractors as Designated Users to use Licensed +Software pursuant to this Agreement). Such right may be available for the +Licensee subject to a separate software development kit (“SDK”) license +agreement to be concluded with The Qt Company; + +(vii) Licensee shall not grant the Customers a right to (i) make copies of the +Redistributables except when and to the extent required to use the Applications +and/or Devices for their intended purpose, (ii) modify the Redistributables or +create derivative works thereof, (iii) decompile, disassemble or otherwise +reverse engineer Redistributables, or (iv) redistribute any copy or portion of +the Redistributables to any third party, except as part of the onward sale of +the Device on which the Redistributables are installed; + +(viii) Licensee shall not and shall cause that its Affiliates or Contractors +shall not a) in any way combine, incorporate or integrate Licensed Software +with, or use Licensed Software for creation of, any software created with or +incorporating Open Source Qt, or b) incorporate or integrate Applications +into a hardware device or product other than a Device, unless Licensee has +received an advance written permission from The Qt Company to do so. Absent +such written permission, any and all distribution by the Licensee during the +Term of a hardware device or product a) which incorporate or integrate any +part of Licensed Software or Open Source Qt; or b) where the main user +interface or substantial functionality is provided by software build with +Licensed Software or Open Source Qt or otherwise depends on the Licensed +Software or Open Source Qt, shall be considered as a Device distribution under +this Agreement and dependent on compliance thereof (including but not limited +to obligation to pay applicable License Fees for such distribution); + +(ix) Licensee shall cause all of its Affiliates and Contractors entitled to +make use of the licenses granted under this Agreement, to be contractually +bound to comply with the relevant terms of this Agreement and not to use the +Licensed Software beyond the terms hereof and for any purposes other than +operating within the scope of their services for Licensee. Licensee shall be +responsible for any and all actions and omissions of its Affiliates and +Contractors relating to the Licensed Software and use thereof (including but +not limited to payment of all applicable License Fees); + +(x) Except when and to the extent explicitly provided in this Section 3, +Licensee shall not transfer, publish, disclose, display or otherwise make +available the Licensed Software; + +; and + +(xi) Licensee shall not attempt or enlist a third party to conduct or attempt +to conduct any of the above. + +Above terms shall not be applicable if and to the extent they conflict with any +mandatory provisions of any applicable laws. + +Any use of Licensed Software beyond the provisions of this Agreement is +strictly prohibited and requires an additional license from The Qt Company. + +4. THIRD PARTY SOFTWARE + +The Licensed Software may provide links to third party libraries or code +(collectively "Third Party Software") to implement various functions. Third +Party Software does not comprise part of the Licensed Software. In some cases, +access to Third Party Software may be included in the Licensed Software. Such +Third Party Software will be listed in the ".../src/3rdparty" source tree +delivered with the Licensed Software or documented in the Licensed Software, as +such may be amended from time to time. Licensee acknowledges that use or +distribution of Third Party Software is in all respects subject to applicable +license terms of applicable third party right holders. + +5. PRE-RELEASE CODE + +The Licensed Software may contain pre-release code and functionality marked or +otherwise stated as “Technology Preview”, “Alpha”, “Beta” or similar +designation. Such pre-release code may be present in order to provide +experimental support for new platforms or preliminary versions of one or more +new functionalities. The pre-release code may not be at the level of +performance and compatibility of a final, generally available, product +offering of the Licensed Software. The pre-release parts of the Licensed +Software may not operate correctly, may contain errors and may be substantially +modified by The Qt Company prior to the first commercial product release, if +any. The Qt Company is under no obligation to make pre-release code +commercially available, or provide any Support or Updates relating thereto. The +Qt Company assumes no liability whatsoever regarding any pre-release code, but +any use thereof is exclusively at Licensee’s own risk and expense. + +6. LIMITED WARRANTY AND WARRANTY DISCLAIMER + +The Qt Company hereby represents and warrants that it has the power and +authority to grant the rights and licenses granted to Licensee under this +Agreement. + +Except as set forth above, the Licensed Software is licensed to Licensee +"as is" and Licensee’s exclusive remedy and The Qt Company’s entire liability +for errors in the Licensed Software shall be limited, at The Qt Company’s +option, to correction of the error, replacement of the Licensed Software or +return of the applicable fees paid for the defective Licensed Software for the +time period during which the License is not able to utilize the Licensed +Software under the terms of this Agreement. + +TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE QT COMPANY ON BEHALF OF +ITSELF AND ITS LICENSORS, SUPPLIERS AND AFFILIATES, DISCLAIMS ALL OTHER +WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON- +INFRINGEMENT WITH REGARD TO THE LICENSED SOFTWARE. THE QT COMPANY DOES NOT +WARRANT THAT THE LICENSED SOFTWARE WILL SATISFY LICENSEE’S REQUIREMENTS OR THAT +IT WILL OPERATE WITHOUT DEFECT OR ERROR OR THAT THE OPERATION THEREOF WILL BE +UNINTERRUPTED. ALL USE OF AND RELIANCE ON THE LICENSED SOFTWARE IS AT THE SOLE +RISK OF AND RESPONSIBILITY OF LICENSEE. + +7. INDEMNIFICATION AND LIMITATION OF LIABILITY + +7.1 Limitation of Liability + +EXCEPT FOR (I) CASES OF GROSS NEGLIGENCE OR INTENTIONAL MISCONDUCT, AND (II) +BREACH OF CONFIDENTIALITY, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, IN NO +EVENT SHALL EITHER PARTY BE LIABLE TO THE OTHER PARTY FOR ANY LOSS OF PROFIT, +LOSS OF DATA, LOSS OF BUSINESS OR GOODWILL OR ANY OTHER INDIRECT, SPECIAL, +CONSEQUENTIAL, INCIDENTAL OR PUNITIVE COST, DAMAGES OR EXPENSE OF ANY KIND, +HOWSOEVER ARISING UNDER OR IN CONNECTION WITH THIS AGREEMENT. PARTIES +SPECIFICALLY AGREE THAT LICENSEE’S OBLIGATION TO PAY LICENSE AND OTHER FEES +CORRESPONDING TO ACTUAL USAGE OF LICENSED SOFTWARE HEREUNDER SHALL BE +CONSIDERED AS A DIRECT DAMAGE. + +EXCEPT FOR (I) CASES OF GROSS NEGLIGENCE OR INTENTIONAL MISCONDUCT, AND (II) +BREACH OF CONFIDENTIALITY, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, IN +NO EVENT SHALL EITHER PARTY’S TOTAL AGGREGATE LIABILITY UNDER THIS AGREEMENT +EXCEED THE AGGREGATE LICENSE FEES PAID OR PAYABLE TO THE QT COMPANY FROM +LICENSEE DURING THE PERIOD OF TWELVE (12) MONTHS IMMEDIATELY PRECEDING THE +EVENT RESULTING IN SUCH LIABILITY. + +THE PROVISIONS OF THIS SECTION 7 ALLOCATE THE RISKS UNDER THIS AGREEMENT +BETWEEN THE QT COMPANY AND LICENSEE AND THE PARTIES HAVE RELIED UPON THE +LIMITATIONS SET FORTH HEREIN IN DETERMINING WHETHER TO ENTER INTO THIS AGREEMENT. + +7.2 Licensee´s Indemnification + +Licensee shall indemnify and hold harmless The Qt Company from and against any +claim, injury, judgment, settlement, loss or expense, including attorneys' fees +related to: (a) Licensee’s misrepresentation in connection with The Qt Company +or the Licensed Software or breach of this Agreement, (b) the Application or +Device (except where such cause of liability is solely attributable to the +Licensed Software). + +8. SUPPORT, UPDATES AND ONLINE SERVICES + +Upon due payment of the agreed License Fees the Licensee will be eligible to +receive Support and Updates and to use the Online Services during the License +Term, provided, however, that in the event the License Term is longer than 36 +months, Support is provided only for the first 12 months, unless the Parties +specifically otherwise agree. + +Unless otherwise decided by The Company at its free and absolute discretion, +Upgrades will not be included in the Support but may be available subject to +additional fees. + +From time to time The Qt Company may change the Support terms, provided that +during the respective ongoing License Term the level of Support provided by The +Qt Company may not be reduced without the consent of the Licensee. + +Unless otherwise agreed, The Qt Company shall not be responsible for providing +any service or support to Customers. + +9. CONFIDENTIALITY + +Each Party acknowledges that during the Term of this Agreement each Party may +receive information about the other Party's business, business methods, +business plans, customers, business relations, technology, and other +information, including the terms of this Agreement, that is confidential and +of great value to the other Party, and the value of which would be +significantly reduced if disclosed to third parties (“Confidential +Information”). Accordingly, when a Party (the “Receiving Party”) receives +Confidential Information from the other Party (the “Disclosing Party”), the +Receiving Party shall only disclose such information to employees and +Contractors on a need to know basis, and shall cause its employees and +employees of its Affiliates to: (i) maintain any and all Confidential +Information in confidence; (ii) not disclose the Confidential Information to a +third party without the Disclosing Party's prior written approval; and (iii) +not, directly or indirectly, use the Confidential Information for any purpose +other than for exercising its rights and fulfilling its responsibilities +pursuant to this Agreement. Each Party shall take reasonable measures to +protect the Confidential Information of the other Party, which measures shall +not be less than the measures taken by such Party to protect its own +confidential and proprietary information. + +Obligation of confidentiality shall not apply to information that (i) is or +becomes generally known to the public through no act or omission of the +Receiving Party; (ii) was in the Receiving Party's lawful possession prior to +the disclosure hereunder and was not subject to limitations on disclosure or +use; (iii) is developed independently by employees or Contractors of the +Receiving Party or other persons working for the Receiving Party who have not +had access to the Confidential Information of the Disclosing Party, as proven +by the written records of the Receiving Party; (iv) is lawfully disclosed to +the Receiving Party without restrictions, by a third party not under an +obligation of confidentiality; or (v) the Receiving Party is legally compelled +to disclose, in which case the Receiving Party shall notify the Disclosing +Party of such compelled disclosure and assert the privileged and confidential +nature of the information and cooperate fully with the Disclosing Party to +limit the scope of disclosure and the dissemination of disclosed Confidential +Information to the minimum extent necessary. + +The obligations under this Section 9 shall continue to remain in force for a +period of five (5) years after the last disclosure, and, with respect to trade +secrets, for so long as such trade secrets are protected under applicable trade +secret laws. + +10. FEES, DELIVERY AND PAYMENT + +10.1 License Fees + +License Fees are described in The Qt Company’s standard price list, quote or +Purchase Order confirmation or in an appendix hereto, as the case may be. + +The License Fees shall not be refunded or claimed as a credit in any event or +for any reason whatsoever. + +10.2 Ordering Licenses + +Licensee may purchase Development Licenses and Distribution Licenses pursuant +to agreed pricing terms or, if no specific pricing terms have been agreed upon, +at The Qt Company's standard pricing terms applicable at the time of purchase. + +Licensee shall submit all purchase orders for Development Licenses and +Distribution Licenses to The Qt Company by email or any other method acceptable +to The Qt Company (each such order is referred to herein as a “Purchase Order”) +for confirmation, whereupon the Purchase Order shall become binding between the +Parties. + +10.3 Distribution License Packs + +Unless otherwise agreed, Distribution Licenses shall be purchased by way of +Distribution License Packs. + +Upon due payment of the ordered Distribution License Pack(s), the Licensee will +have an account of Distribution Licenses available for installing, bundling or +integrating (all jointly “installing”) the Redistributables with the Devices or +for otherwise distributing the Redistributables in accordance with this +Agreement. + +Each time Licensee “installs” or distributes a copy of Redistributables, then +one Distribution License is used, and Licensee’s account of available +Distribution Licenses is decreased accordingly. + +Licensee may “install” copies of the Redistributables so long as Licensee has +Distribution Licenses remaining on its account. + +Redistributables will be deemed to have been “installed” into a Device when one +of the following circumstances shall have occurred: a) the Redistributables +have been loaded onto the Device and used outside of the Licensee’s premises or +b) the Device has been fully tested and placed into Licensee's inventory +(or sold) for the first time (i.e., Licensee will not be required to use +(or pay for) more than one Distribution License for each individual Device, +e.g. in a situation where a Device is returned to Licensee's inventory after +delivery to a distributor or sale to a Customer). In addition, if Licensee +includes a back-up copy of the Redistributables on a CD-ROM or other storage +medium along with the product, that backup copy of the Redistributables will +not be deemed to have been “installed” and will not require an additional +Distribution License. + +10.4 Payment Terms + +License Fees and any other charges under this Agreement shall be paid by +Licensee no later than thirty (30) days from the date of the applicable invoice +from The Qt Company. + +The Qt Company will submit an invoice to Licensee after the date of this +Agreement and/or after The Qt Company receives a Purchase Order from +Licensee. + +A late payment charge of the lower of (a) one percent per month; or (b) the +interest rate stipulated by applicable law, shall be charged on any unpaid +balances that remain past due. + +The Qt Company shall have the right to suspend, terminate or withhold grants +of all rights to the Licensed Software hereunder, including but not limited to +the Developer License, Distribution License, and Support, should Licensee fail +to make payment in timely fashion. + +10.5 Taxes + +All License Fees and other charges payable hereunder are gross amounts but +exclusive of any value added tax, use tax, sales tax and other taxes, duties or +tariffs (“Taxes”). Such applicable Taxes shall be paid by Licensee, or, where +applicable, in lieu of payment of such Taxes, Licensee shall provide an +exemption certificate to The Qt Company and any applicable authority. + +11 RECORD-KEEPING AND REPORTING OBLIGATIONS; AUDIT RIGHTS + +11.1 Licensee’s Record-keeping + +Licensee shall at all times maintain accurate and up-to-date written records of +Licensee’s activities related to the use of Licensed Software and distribution +of Redistributables. The records shall be adequate to determine Licensee’s +compliance with the provisions of this Agreement and to demonstrate the number +of Designated Users and Redistributables distributed by Licensee. The records +shall conform to good accounting practices reasonably acceptable to The Qt +Company. + +Licensee shall, within thirty (30) days from receiving The Qt Company’s request +to that effect, deliver to The Qt Company a report on Licensee’s usage of +Licensed Software, such report to copies of Redistributables distributed by +Licensee during that calendar quarter, and also detailing the number of +undistributed copies of Redistributables made by Licensee and remaining in its +account contain information, in sufficient detail, on (i) amount of users +working with Licensed Software, (ii) copies of Redistributables distributed by +Licensee during that calendar quarter, (iii) number of undistributed copies of +Redistributables and corresponding number of unused Distribution Licenses +remaining on Licensee’s account, and (iv) any other information as The Qt +Company may reasonably require from time to time. + +11.2. The Qt Company’s Audit Rights + +The Qt Company or an independent auditor acting on behalf of The Qt Company’s, +may, upon at least five (5) business days’ prior written notice and at its +expense, audit Licensee with respect to the use of the Redistributables, but +not more frequently than once during each 6-month period. Such audit may be +conducted by mail, electronic means or through an in-person visit to Licensee’s +place of business. Any such in-person audit shall be conducted during regular +business hours at Licensee's facilities and shall not unreasonably interfere +with Licensee's business activities. The Qt Company or the independent auditor +acting on behalf of The Qt Company shall be entitled to inspect Licensee’s +Records. All such Licensee’s Records and use thereof shall be subject to an +obligation of confidentiality under this Agreement. + +If an audit reveals that Licensee is using the Licensed Software beyond scope +of the licenses Licensee has paid for, Licensee agrees to immediately pay The +Qt Company any amounts owed for such unauthorized use. + +In addition, in the event the audit reveals a material violation of the terms +of this Agreement (underpayment of more than 5% of License Fees shall always be +deemed a material violation for purposes of this section), then the Licensee +shall pay The Qt Company's reasonable cost of conducting such audit. + +12 TERM AND TERMINATION + +12.1 Term + +This Agreement shall enter into force upon due acceptance by both Parties and +remain in force for as long as there is any Development License(s) in force +(“Term”), unless and until terminated pursuant to the terms of this Section 12. + +12.2 Termination by The Qt Company + +The Qt Company shall have the right to terminate this Agreement upon thirty +(30) days prior written notice if the Licensee is in material breach of any +obligation of this Agreement and fails to remedy such breach within such notice +period. + +12.3 Mutual Right to Terminate + +Either Party shall have the right to terminate this Agreement immediately upon +written notice in the event that the other Party becomes insolvent, files for +any form of bankruptcy, makes any assignment for the benefit of creditors, has +a receiver, administrative receiver or officer appointed over the whole or a +substantial part of its assets, ceases to conduct business, or an act +equivalent to any of the above occurs under the laws of the jurisdiction of the +other Party. + +12.4 Parties´ Rights and Duties upon Termination + +Upon expiry or termination of the Agreement Licensee shall cease and shall +cause all Designated Users (including those of its Affiliates’ and +Contractors’) to cease using the Licensed Software and distribution of the +Redistributables under this Agreement. + +Notwithstanding the above, in the event the Agreement expires or is terminated: + +(i) as a result of The Qt Company choosing not to renew the Development +License(s) as set forth in Section 3.1, then all valid licenses possessed by +the Licensee at such date shall be extended to be valid in perpetuity under the +terms of this Agreement and Licensee is entitled to purchase additional +licenses as set forth in Section 10.2; or + +(ii) for reason other than by The Qt Company pursuant to item (i) above or +pursuant to Section 12.2, then the Licensee is entitled, for a period of six +(6) months after the effective date of termination, to continue distribution of +Devices under the Distribution Licenses paid but unused at such effective date +of termination. + +Upon any such termination the Licensee shall destroy or return to The Qt +Company all copies of the Licensed Software and all related materials and will +certify the same to The Qt Company upon its request, provided however that +Licensee may retain and exploit such copies of the Licensed Software as it may +reasonably require in providing continued support to Customers. + +Expiry or termination of this Agreement for any reason whatsoever shall not +relieve Licensee of its obligation to pay any License Fees accrued or payable +to The Qt Company prior to the effective date of termination, and Licensee +shall immediately pay to The Qt Company all such fees upon the effective date +of termination. Termination of this Agreement shall not affect any rights of +Customers to continue use of Applications and Devices (and therein incorporated +Redistributables). + +12.5 Extension in case of bankruptcy + +In the event The Qt Company is declared bankrupt under a final, non-cancellable +decision by relevant court of law, and this Agreement is not, at the date of +expiry of the Development License(s) pursuant to Section 3.1, assigned to +party, who has assumed The Qt Company’s position as a legitimate licensor of +Licensed Software under this Agreement, then all valid licenses possessed by +the Licensee at such date of expiry, and which the Licensee has not notified +for expiry, shall be extended to be valid in perpetuity under the terms of +this Agreement. + +13. GOVERNING LAW AND LEGAL VENUE + +In the event this Agreement is in the name of The Qt Company Inc., a Delaware +Corporation, then: + +(i) this Agreement shall be construed and interpreted in accordance with the +laws of the State of California, USA, excluding its choice of law provisions; + +(ii) the United Nations Convention on Contracts for the International Sale of +Goods will not apply to this Agreement; and + +(iii) any dispute, claim or controversy arising out of or relating to this +Agreement or the breach, termination, enforcement, interpretation or validity +thereof, including the determination of the scope or applicability of this +Agreement to arbitrate, shall be determined by arbitration in San Francisco, +USA, before one arbitrator. The arbitration shall be administered by JAMS +pursuant to JAMS' Streamlined Arbitration Rules and Procedures. Judgment on the +Award may be entered in any court having jurisdiction. This Section shall not +preclude parties from seeking provisional remedies in aid of arbitration from a +court of appropriate jurisdiction. + +In the event this Agreement is in the name of The Qt Company Ltd., a Finnish +Company, then: + +(i) this Agreement shall be construed and interpreted in accordance with the +laws of Finland, excluding its choice of law provisions; + +(ii) the United Nations Convention on Contracts for the International Sale of +Goods will not apply to this Agreement; and + +(iii) any disputes, controversy or claim arising out of or relating to this +Agreement, or the breach, termination or validity thereof shall be shall be +finally settled by arbitration in accordance with the Arbitration Rules of +Finland Chamber of Commerce. The arbitration tribunal shall consist of one (1), +or if either Party so requires, of three (3), arbitrators. The award shall be +final and binding and enforceable in any court of competent jurisdiction. The +arbitration shall be held in Helsinki, Finland and the process shall be +conducted in the English language. This Section shall not preclude parties from +seeking provisional remedies in aid of arbitration from a court of appropriate +jurisdiction. + +14. GENERAL PROVISIONS + +14.1 No Assignment + +Except in the case of a merger or sale of substantially all of its corporate +assets, Licensee shall not be entitled to assign or transfer all or any of its +rights, benefits and obligations under this Agreement without the prior written +consent of The Qt Company, which shall not be unreasonably withheld or delayed. +The Qt Company shall be entitled to freely assign or transfer any of its +rights, benefits or obligations under this Agreement. + +14.2 No Third Party Representations + +Licensee shall make no representations or warranties concerning the Licensed +Software on behalf of The Qt Company. Any representation or warranty Licensee +makes or purports to make on The Qt Company’s behalf shall be void as to The +Qt Company. + +14.3 Surviving Sections + +Any terms and conditions that by their nature or otherwise reasonably should +survive termination of this Agreement shall so be deemed to survive. + +14.4 Entire Agreement + +This Agreement, the exhibits hereto, the License Certificate and any applicable +Purchase Order constitute the complete agreement between the Parties and +supersedes all prior or contemporaneous discussions, representations, and +proposals, written or oral, with respect to the subject matters discussed +herein. + +In the event of any conflict or inconsistency between this Agreement and any +Purchase Order, the terms of this Agreement will prevail over the terms of the +Purchase Order with respect to such conflict or inconsistency. + +Parties specifically acknowledge and agree that this Agreement prevails over +any click-to-accept or similar agreements the Designated Users may need to +accept online upon download of the Licensed Software, as may be required by +The Qt Company’s applicable processes relating to Licensed Software. + +14.5 Modifications + +No modification of this Agreement shall be effective unless contained in a +writing executed by an authorized representative of each Party. No term or +condition contained in Licensee's Purchase Order shall apply unless expressly +accepted by The Qt Company in writing. + +14.6 Force Majeure + +Except for the payment obligations hereunder, neither Party shall be liable to +the other for any delay or non-performance of its obligations hereunder in the +event and to the extent that such delay or non-performance is due to an event +of act of God, terrorist attack or other similar unforeseeable catastrophic +event that prevents either Party for fulfilling its obligations under this +Agreement and which such Party cannot avoid or circumvent (“Force Majeure +Event”). If the Force Majeure Event results in a delay or non-performance of a +Party for a period of three (3) months or longer, then either Party shall have +the right to terminate this Agreement with immediate effect without any +liability (except for the obligations of payment arising prior to the event of +Force Majeure) towards the other Party. + +14.7 Notices + +Any notice given by one Party to the other shall be deemed properly given and +deemed received if specifically acknowledged by the receiving Party in writing +or when successfully delivered to the recipient by hand, fax, or special +courier during normal business hours on a business day to the addresses +specified for each Party on the signature page. Each communication and document +made or delivered by one Party to the other Party pursuant to this Agreement +shall be in the English language. + +14.8 Export Control + +Licensee acknowledges that the Redistributables may be subject to export +control restrictions under the applicable laws of respective countries. +Licensee shall fully comply with all applicable export license restrictions +and requirements as well as with all laws and regulations relating to the +Redistributables and exercise of licenses hereunder and shall procure all +necessary governmental authorizations, including without limitation, all +necessary licenses, approvals, permissions or consents, where necessary for the +re-exportation of the Redistributables, Applications and/or Devices. + +14.9 No Implied License + +There are no implied licenses or other implied rights granted under this +Agreement, and all rights, save for those expressly granted hereunder, shall +remain with The Qt Company and its licensors. In addition, no licenses or +immunities are granted to the combination of the Licensed Software with any +other software or hardware not delivered by The Qt Company under this Agreement. + +14.10 Attorney Fees + +The prevailing Party in any action to enforce this Agreement shall be entitled +to recover its attorney’s fees and costs in connection with such action. + +14.11 Severability + +If any provision of this Agreement shall be adjudged by any court of competent +jurisdiction to be unenforceable or invalid, that provision shall be limited or +eliminated to the minimum extent necessary so that this Agreement shall +otherwise remain in full force and effect and enforceable. + + +IN WITNESS WHEREOF, the Parties hereto, intending to be legally bound hereby, +have caused this Agreement to be executed by Licensee's authorized +representative installing the Licensed Software and accepting the terms +hereof in connection therewith. + + +Appendix 1 + +1. Parts of the Licensed Software that are permitted for distribution in +object code form only (“Redistributables”) under this Agreement: + +- The Licensed Software's Qt Essentials and Qt Add-on libraries +- The Licensed Software's configuration tool (“qtconfig”) +- The Licensed Software's help tool (“Qt Assistant”) +- The Licensed Software's internationalization tools (“Qt Linguist”, “lupdate”, +“lrelease”) +- The Licensed Software's QML (“Qt Quick”) launcher tool (“qmlscene” or +“qmlviewer”) +- The Licensed Software's installer framework + +2. Parts of the Licensed Software that are not permitted for distribution +include, but are not limited to: + +- The Licensed Software's source code and header files +- The Licensed Software's documentation +- The Licensed Software’s documentation generation tool (“qdoc”) +- The Licensed Software's tool for writing makefiles (“qmake”) +- The Licensed Software's Meta Object Compiler (“moc”) +- The Licensed Software's User Interface Compiler (“uic”) +- The Licensed Software's Resource Compiler (“rcc”) +- The Licensed Software's parts of the IDE tool (“Qt Creator”) +- The Licensed Software’s parts of the Design tools (“Qt 3D Studio” or “Qt +Quick Designer”) +- The Licensed Software's Emulator diff -Nru qtlocation-opensource-src-5.9.5+dfsg/.QT-FOR-AUTOMATION-LICENSE-AGREEMENT qtlocation-opensource-src-5.11.1+dfsg/.QT-FOR-AUTOMATION-LICENSE-AGREEMENT --- qtlocation-opensource-src-5.9.5+dfsg/.QT-FOR-AUTOMATION-LICENSE-AGREEMENT 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/.QT-FOR-AUTOMATION-LICENSE-AGREEMENT 2018-06-18 07:43:57.000000000 +0000 @@ -0,0 +1,811 @@ +QT FOR AUTOMATION LICENSE AGREEMENT +Agreement version 3.0 + +This Qt for Automation License Agreement ("Agreement") is a legal agreement +between The Qt Company (as defined below) and the Licensee (as defined below) +for the license of Licensed Software (as defined below). Capitalized terms used +herein are defined in Section 1. + +WHEREAS: + +(A) Licensee wishes to use the Licensed Software for the purpose of developing +and distributing Applications and/or Devices; and +(B) The Qt Company is willing to grant the Licensee a right to use Licensed +Software for such purpose pursuant to term and conditions of this Agreement. + +NOW, THEREFORE, THE PARTIES HEREBY AGREE AS FOLLOWS: + +1. DEFINITIONS + +"Affiliate" of a Party shall mean an entity (i) which is directly or indirectly +controlling such Party; (ii) which is under the same direct or indirect +ownership or control as such Party; or (iii) which is directly or indirectly +owned or controlled by such Party. For these purposes, an entity shall be +treated as being controlled by another if that other entity has fifty percent +(50 %) or more of the votes in such entity, is able to direct its affairs and/or +to control the composition of its board of directors or equivalent body. + +"Applications" shall mean Licensee's software products created using the +Licensed Software, which may include the Redistributables, or part thereof. + +"Contractor(s)" shall mean third party consultants, distributors and contractors +performing services to a Party under applicable contractual arrangement. + +"Customer(s)" shall mean Licensee's end users to whom Licensee, directly or +indirectly, distributes copies of the Redistributables. + +"Deployment Platforms" shall mean operating systems specified in the License +Certificate, in which the Redistributables can be distributed pursuant to the +terms and conditions of this Agreement. + +"Designated User(s)" shall mean the employee(s) of Licensee or Licensee's +Affiliates acting within the scope of their employment or Licensee's +Contractors acting within the scope of their services for Licensee and on behalf +of Licensee. Designated Users shall be named in the License Certificate. + +"Development License" shall mean the license needed by the Licensee for each +Designated User to use the Licensed Software under the license grant described +in Section 3.1 of this Agreement. + +"Development Platforms" shall mean those operating systems specified in the +License Certificate, in which the Licensed Software can be used under the +Development License, but not distributed in any form or used for any other +purpose. + +"Devices" shall mean hardware devices or products that 1) are manufactured +and/or distributed by the Licensee or its Affiliates or Contractors, and (2)(i) +incorporate or integrate the Redistributables or parts thereof; or (ii) do not +incorporate or integrate the Redistributables at the time of distribution, but +where, when used by a Customer, the main user interface or substantial +functionality of such device is provided by Application(s) or otherwise depends +on the Licensed Software. + +"Distribution License(s)" shall mean the license required for distribution of +Redistributables in accordance with the license grant described in Section +3.2(ii)-(iii) of this Agreement. + +"Distribution License Packs" shall mean set of prepaid Distribution Licenses +for distribution of Redistributables, as defined in The Qt Company's standard +price list, quote, Purchase Order confirmation or in an appendix hereto, as the +case may be. + +"Initial Support Term" shall mean a time period of twelve (12) months, +calculated from the end of the Start-For-Free Term. In the event Term is set +for a shorter period than twelve (12) months, then Initial Support Term shall +be equal to the Term. + +"Intellectual +Property Rights" shall mean patents (including utility models), design patents, +and designs (whether or not capable of registration), chip topography rights and +other like protection, copyrights, trademarks, service marks, trade names, logos +or other words or symbols and any other form of statutory protection of any kind +and applications for any of the foregoing as well as any trade secrets. + +"Licensee" shall mean the individual or legal entity that is party to this +Agreement by accepting the terms hereof online in connection with installing the +Licensed Software. + +"License Certificate" shall mean a certificate accompanying the Licensed +Software and generated for each Designated User respectively. License +Certificate will specify the Designated User, the Development Platforms, +Deployment Platforms and the Term of this Agreement. The terms of the License +Certificate are considered part of this Agreement and shall be updated from time +to time to reflect any changes to the foregoing terms relating to Licensee's +rights to the Licensed Software. + +"Licensee's Records" shall mean books and records that are likely to contain +information bearing on Licensee's compliance with this Agreement or the payments +due to The Qt Company under this Agreement, including, but not limited to: +assembly logs, sales records and distribution records. + +"License Fee" shall mean the fee charged to the Licensee for rights +granted under the terms of this Agreement. + +"Licensed Software" shall mean all versions of The Qt Company's computer +software products, online or electronic documentation, associated media and +printed materials, including the source code, example programs and the +documentation, licensed to the Licensee under this Agreement. Licensed Software +does not include Third Party Software (as defined in Section 4) or Open Source +Qt. + +"Modified Software" shall mean bug-fixes, error corrections, patches or +modifications made to the Licensed Software by Licensee, including +documentation related thereto. + +"Online Services" shall mean any services or access to systems made available +by The Qt Company to the Licensee over the Internet relating to the Licensed +Software or for the purpose of use by the Licensee of the Licensed Software or +Support. Use of any such Online Services is discretionary for the Licensee and +some of them may be subject to additional fees. + +"Open Source Qt" shall mean all versions of The Qt Company's Qt computer +software products, online or electronic documentation, associated media and +printed materials, including the source code, example programs and the +documentation available under the terms of the GNU Lesser General Public +License, version 2.1 or later ("LGPL") or the GNU General Public License, +version 2.0 or later ("GPL"). + +"Party" or "Parties" shall mean Licensee and/or The Qt Company. + +"Redistributables" shall mean the portions of the Licensed Software set forth +in Appendix 1, Section 1 that may be distributed pursuant to the terms of this +Agreement in object code form only, including any relevant documentation. Where +relevant, any reference to Licensed Software in this Agreement shall include +and refer also to Redistributables. + +"Start-For-Free Term" shall mean the period of 30 days, or any such shorter +period as specified by The Qt Company, calculated from the date the Licensed +Software was initially delivered to the Licensee by The Qt Company. + +"Submitted Modified Software" shall have the meaning as set forth in Section +2.3. + +"Support" shall mean standard developer support that is provided by The Qt +Company to assist Designated Users in using the Licensed Software in accordance +with The Qt Company's standard support terms. + +"Support Renewal Term" shall mean a time period of twelve (12) months, or any +such other time period as agreed between the Parties, calculated from the end +of the Initial Support Term or previous Support Renewal Term, as applicable. + +"Support Term" shall mean the Initial Support Term and any possible +Support Renewal Terms(s) during which time the Licensee is eligible to receive +for Support for the Licensed Software. + +"Taxes" shall have the meaning set forth in Section 10.5. + +"Term" shall mean the validity period of this Agreement, as set +forth in the License Certificate. + +"The Qt Company" shall mean: +(i) in the event Licensee is an individual residing in the United States or a +legal entity incorporated in the United States or having its headquarters in +the United States, The Qt Company Inc., a Delaware corporation with its office +at 2350 Mission College Blvd., Suite 1020, Santa Clara, CA 95054, USA.; or +(ii) in the event the Licensee is an individual residing outside of the United +States or a legal entity incorporated outside of the United States or having its +registered office outside of the United States, The Qt Company Ltd., a Finnish +company with its registered office at Bertel Jungin aukio D3A, 02600 Espoo, +Finland. + +"Updates" shall mean a release or version of the Licensed Software containing +bug fixes, error corrections and other changes that are generally made available +to users of the Licensed Software that have contracted for Support. Updates are +generally depicted as a change to the digits following the decimal in the +Licensed Software version number. The Qt Company shall make Updates available to +the Licensee under the Support. Updates shall be considered as part of the +Licensed Software hereunder. + +"Upgrades" shall mean a release or version of the Licensed Software containing +enhancements and new features and are generally depicted as a change to the +first digit of the Licensed Software version number. In the event Upgrades are +provided to the Licensee under this Agreement, they shall be considered as part +of the Licensed Software hereunder. + +2. OWNERSHIP +2.1 Ownership of The Qt Company + +The Licensed Software is protected by copyright laws and international copyright +treaties, as well as other intellectual property laws and treaties. The Licensed +Software is licensed, not sold. + +All The Qt Company's Intellectual Property Rights are and shall remain the +exclusive property of The Qt Company or its licensors respectively. + +2.2 Ownership of Licensee + +All the Licensee's Intellectual Property Rights are and shall remain the +exclusive property of the Licensee or its licensors respectively. + +All Intellectual Property Rights to the Modified Software, Applications and +Devices shall remain with the Licensee and no rights thereto shall be granted by +the Licensee to The Qt Company under this Agreement (except as set forth in +Section 2.3 below). + +2.3 Modified Software + +Licensee may create Modified Software that breaks the source or binary +compatibility with the Licensed Software. This includes, but is not limited to, +changing the application programming interfaces ("API") by adding, changing or +deleting any variable, method, or class signature in the Licensed Software +and/or any inter-process protocols, services or standards in the Licensed +Software libraries. To the extent that Licensee breaks source or binary +compatibility with the Licensed Software, Licensee acknowledges that The Qt +Company's ability to provide Support may be prevented or limited and Licensee's +ability to make use of Updates may be restricted. + +To the extent Licensee submits Modified Software to The Qt Company ("Submitted +Modified Software"), Licensee hereby grants The Qt Company a sublicensable, +assignable, irrevocable, perpetual, worldwide, non-exclusive, royalty-free and +fully paid-up license, under all of Licensee's Intellectual Property Rights, to +reproduce, adapt, translate, modify, and prepare derivative works of, publicly +display, publicly perform, sublicense, make available and distribute such +Submitted Modified Software as The Qt Company sees fit at its free and absolute +discretion. For the sake of clarity, the Licensee shall have no obligation to +provide Modified Software to The Qt Company. + +3. LICENSES GRANTED +3.1 Development with Licensed Software + +Subject to the terms of this Agreement, The Qt Company grants to Licensee a +personal, worldwide, non- exclusive, non-transferable license, valid for the +Term, to use, modify and copy the Licensed Software by Designated Users on the +Development Platforms for the sole purposes of designing, developing, +demonstrating and testing Application(s) and/or Devices, and to provide thereto +related support and other services to end-user Customers. + +Licensee may install copies of the Licensed Software on an unlimited number of +computers provided that (i) only the Designated Users may use the Licensed +Software, and (ii) all Designated Users must have a valid Development License to +use Licensed Software. + +Licensee may at any time designate another Designated User to replace a +then-current Designated User by notifying The Qt Company in writing, provided +that any Designated User may be replaced only once during any six-month period. + +3.2 Distribution of Redistributables + +Subject to the terms of this Agreement, The Qt Company grants to Licensee a +personal, worldwide, non- exclusive, non-transferable license, valid for the +Term (excluding the Start-For-Free Term), to (i) distribute, by itself or +through its Contractors, Redistributables as installed, incorporated or +integrated into Applications for execution on the Deployment Platforms, and (ii) +distribute, by itself or through one or more tiers of Contractors, +Redistributables as installed, incorporated or integrated, or intended to be +installed, incorporated or integrated into Devices for execution on the +Deployment Platforms, and (iii) grant sublicenses to Redistributables, as +distributed hereunder, for Customers solely for Customer's internal use and to +the extent necessary in order for the Customers to use the Applications and/or +Devices for their respective intended purposes. + +Right to distribute the Redistributables as provided herein is conditional upon +the Licensee having purchased and paid the appropriate amount of Development and +Distribution Licenses from The Qt Company before distributing any +Redistributables to Customers. + +For the avoidance of any doubt it is specifically acknowledged and agreed that +distribution of Redistributables solely as installed, incorporated or integrated +into Applications for execution on the Deployment Platform(s), as specified in +(i) of the first paragraph of Section 3.2 above, i.e. with no connection to +Devices or intention to use in connection therewith, shall not require a +Distribution License. + +3.3 Further Requirements + +The licenses granted above in this Section 3 by The Qt Company to Licensee are +conditional and subject to Licensee's compliance with the following terms: + +(i) Licensee shall not remove or alter any copyright, trademark or other +proprietary rights notice contained in any portion of the Licensed Software; +(ii) Applications must add primary and substantial functionality to the Licensed +Software; +(iii) Applications may not pass on functionality which in any way +makes it possible for others to create software with the Licensed Software; +provided however that Licensee may use the Licensed Software's scripting and QML +("Qt Quick") functionality solely in order to enable scripting, themes and +styles that augment the functionality and appearance of the Application(s) +without adding primary and substantial functionality to the Application(s); +(iv) Applications must not compete with the Licensed Software; (v) Licensee +shall not use The Qt Company's or any of its suppliers' names, logos, or +trademarks to market Applications, except that Licensee may use "Built with Qt" +logo to indicate that Application(s) was developed using the Licensed Software; +(vi) Licensee shall not distribute, sublicense or disclose source code of +Licensed Software to any third party (provided however that Licensee may appoint +employee(s) of Contractors as Designated Users to use Licensed Software pursuant +to this Agreement). Such right may be available for the Licensee subject to a +separate software development kit ("SDK") license agreement to be concluded with +The Qt Company; +(vii) Licensee shall not grant the Customers a right to (i) make copies of the +Redistributables except when and to the extent required to use the +Applications and/or Devices for their intended purpose, (ii) modify the +Redistributables or create derivative works thereof, (iii) decompile, +disassemble or otherwise reverse engineer Redistributables, or (iv) redistribute +any copy or portion of the Redistributables to any third party, except as part +of the onward sale of the Device on which the Redistributables are installed; +(viii) Licensee shall not and shall cause that its Affiliates or Contractors +shall not a) in any way combine, incorporate or integrate Licensed Software +with, or use Licensed Software for creation of, any software created with or +incorporating Open Source Qt, or b) incorporate or integrate Applications into a +hardware device or product other than a Device, unless Licensee has received an +advance written permission from The Qt Company to do so. Absent such written +permission, any and all distribution by the Licensee during the Term of a +hardware device or product a) which incorporate or integrate any part of +Licensed Software or Open Source Qt; or b) where the main user interface or +substantial functionality is provided by software build with Licensed Software +or Open Source Qt or otherwise depends on the Licensed Software or Open Source +Qt, shall be considered as distribution under this Agreement and dependent on +compliance thereof (including but not limited to obligation to pay applicable +License Fees for such distribution); +(ix) Licensee shall cause all of its Affiliates and Contractors entitled to +make use of the licenses granted under this Agreement, to be contractually +bound to comply with the relevant terms of this Agreement and not to use the +Licensed Software beyond the terms hereof and for any purposes other than +operating within the scope of their services for Licensee. Licensee shall be +responsible for any and all actions and omissions of its Affiliates and +Contractors relating to the Licensed Software and use thereof (including but +not limited to payment of all applicable License Fees); +(x) Except when and to the extent explicitly provided in this Section 3, +Licensee shall not transfer, publish, disclose, display or otherwise make +available the Licensed Software; +(xi) Licensee shall not take any action inconsistent with The Qt Company's +Intellectual Property Rights; and (xii) Attempt or enlist a third party to +conduct or attempt to conduct any of the above. + +Above terms shall not be applicable if and to the extent they conflict with any +mandatory provisions of any applicable laws. + +Any use of Licensed Software beyond the provisions of this Agreement is strictly +prohibited and requires an additional license from The Qt Company. + +4. THIRD PARTY SOFTWARE + +The Licensed Software may provide links to third party libraries or code +(collectively "Third Party Software") to implement various functions. Third +Party Software does not comprise part of the Licensed Software. In some cases, +access to Third Party Software may be included in the Licensed Software. Such +Third Party Software will be listed in the ".../src/3rdparty" source tree +delivered with the Licensed Software or documented in the Licensed Software, as +such may be amended from time to time. Licensee acknowledges that use or +distribution of Third Party Software is in all respects subject to applicable +license terms of applicable third party right holders. + +5. PRE-RELEASE CODE + +The Licensed Software may contain pre-release code and functionality marked or +otherwise stated as "Technology Preview", "Alpha", "Beta" or similar +designation. Such pre-release code may be present in order to provide +experimental support for new platforms or preliminary versions of one or more +new functionalities. The pre-release code may not be at the level of performance +and compatibility of a final, generally available, product offering of the +Licensed Software. The pre-release parts of the Licensed Software may not +operate correctly, may contain errors and may be substantially modified by The +Qt Company prior to the first commercial product release, if any. The Qt Company +is under no obligation to make pre-release code commercially available, or +provide any Support or Updates relating thereto. The Qt Company assumes no +liability whatsoever regarding any pre-release code, but any use thereof is +exclusively at Licensee's own risk and expense. + +6. LIMITED WARRANTY AND WARRANTY DISCLAIMER + +The Qt Company hereby represents and warrants that it has the power and +authority to grant the rights and licenses granted to Licensee under this +Agreement. + +Except as set forth above, the Licensed Software is licensed to Licensee "as +is". + +TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE QT COMPANY ON BEHALF OF +ITSELF AND ITS LICENSORS, SUPPLIERS AND AFFILIATES, DISCLAIMS ALL WARRANTIES, +EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT +WITH REGARD TO THE LICENSED SOFTWARE. THE QT COMPANY DOES NOT WARRANT THAT THE +LICENSED SOFTWARE WILL SATISFY LICENSEE'S REQUIREMENTS OR THAT IT WILL OPERATE +WITHOUT DEFECT OR ERROR OR THAT THE OPERATION THEREOF WILL BE UNINTERRUPTED. ALL +USE OF AND RELIANCE ON THE LICENSED SOFTWARE IS AT THE SOLE RISK OF AND +RESPONSIBILITY OF LICENSEE. + +Licensee's exclusive remedy and The Qt Company's entire liability for Licensed +Software shall be limited, at The Qt Company's option, to correction of the +error, replacement of the Licensed Software or return of the applicable fees +paid for the defective Licensed Software for the time period during which the +License is not able to utilize the Licensed Software under the terms of this +Agreement. + +7. INDEMNIFICATION AND LIMITATION OF LIABILITY +7.1 Limitation of Liability + +EXCEPT FOR (I) CASES OF GROSS NEGLIGENCE OR INTENTIONAL MISCONDUCT, (II) +LICENSEE'S DUTY TO PAY ALL APPLICABLE LICENSE FEES AND COMPENSATIONS, AND (III) +BREACH OF CONFIDENTIALITY, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, IN NO +EVENT SHALL EITHER PARTY BE LIABLE TO THE OTHER PARTY FOR ANY LOSS OF PROFIT, +LOSS OF DATA, LOSS OF BUSINESS OR GOODWILL OR ANY OTHER INDIRECT, SPECIAL, +CONSEQUENTIAL, INCIDENTAL OR PUNITIVE COST, DAMAGES OR EXPENSE OF ANY KIND, +HOWSOEVER ARISING UNDER OR IN CONNECTION WITH THIS AGREEMENT. + +EXCEPT FOR (I) CASES OF GROSS NEGLIGENCE OR INTENTIONAL MISCONDUCT, (II) +LICENSEE'S DUTY TO PAY ALL APPLICABLE LICENSE FEES AND COMPENSATIONS, AND (III) +BREACH OF CONFIDENTIALITY, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, IN NO +EVENT SHALL EITHER PARTY'S TOTAL AGGREGATE LIABILITY UNDER THIS AGREEMENT EXCEED +THE AGGREGATE LICENSE FEES RECEIVED BY THE QT COMPANY FROM LICENSEE DURING THE +PERIOD OF TWELVE (12) MONTHS IMMEDIATELY PRECEDING THE EVENT RESULTING IN SUCH +LIABILITY. + +THE PROVISIONS OF THIS SECTION 7 ALLOCATE THE RISKS UNDER THIS AGREEMENT BETWEEN +THE QT COMPANY AND LICENSEE AND THE PARTIES HAVE RELIED UPON THE LIMITATIONS SET +FORTH HEREIN IN DETERMINING WHETHER TO ENTER INTO THIS AGREEMENT. + +7.2 Licensee´s Indemnification Licensee shall indemnify and hold harmless The Qt +Company from and against any claim, injury, judgment, settlement, loss or +expense, including attorneys' fees related to: (a) Licensee's misrepresentation +in connection with The Qt Company or the Licensed Software or breach of this +Agreement, (b) the Application or Device (except where such cause of liability +is solely attributable to the Licensed Software). + +8. SUPPORT, UPDATES AND ONLINE SERVICES + +Licensee will be eligible to receive Support and Updates and to use the Online +Services during the Support Term. Unless otherwise decided by The Company at its +free and absolute discretion, Upgrades will not be included in the Support but +may be available subject to additional fees. + +Licenses granted under this Agreement shall include a prepaid Initial Support +Term. + +Initial Support Term shall be automatically extended to one or more Support +Renewal Term(s), unless and until either Party notifies the other Party in +writing that it does not wish to continue the Support, such notification to be +provided to the other Party no less than ninety (90) days before expiry of the +Initial Support Term or respective Support Renewal Term. During any such Support +Renewal Term Support shall be available subject to prices and terms agreed +between the Parties or, if no advance agreement exists, subject to The Qt +Company's standard pricing applicable at the commencement date of any such +Support Renewal Term. From time to time The Qt Company may change Support +provided within each Support plan; provided that during the respective Initial +Support Term or Support Renewal Term (as the case may be), the level of Support +provided by The Qt Company may not be reduced without the consent of the +Licensee. + +Unless otherwise agreed, The Qt Company shall not be responsible for providing +any service or support to the Customers. + +9. CONFIDENTIALITY + +Each Party acknowledges that during the Term of this Agreement each Party may +receive information about the other Party's business, business methods, business +plans, customers, business relations, technology, and other information, +including the terms of this Agreement, that is confidential and of great value +to the other Party, and the value of which would be significantly reduced if +disclosed to third parties ("Confidential Information"). Accordingly, when a +Party (the "Receiving Party") receives Confidential Information from the other +Party (the "Disclosing Party"), the Receiving Party shall only disclose such +information to employees and Contractors on a need to know basis, and shall +cause its employees and employees of its Affiliates to: (i) maintain any and all +Confidential Information in confidence; (ii) not disclose the Confidential +Information to a third party without the Disclosing Party's prior written +approval; and (iii) not, directly or indirectly, use the Confidential +Information for any purpose other than for exercising its rights and fulfilling +its responsibilities pursuant to this Agreement. Each Party shall take +reasonable measures to protect the Confidential Information of the other Party, +which measures shall not be less than the measures taken by such Party to +protect its own confidential and proprietary information. + +Obligation of confidentiality shall not apply to information that (i) is or +becomes generally known to the public through no act or omission of the +Receiving Party; (ii) was in the Receiving Party's lawful possession prior to +the disclosure hereunder and was not subject to limitations on disclosure or +use; (iii) is developed independently by employees or Contractors of the +Receiving Party or other persons working for the Receiving Party who have not +had access to the Confidential Information of the Disclosing Party, as proven by +the written records of the Receiving Party; (iv) is lawfully disclosed to the +Receiving Party without restrictions, by a third party not under an obligation +of confidentiality; or (v) the Receiving Party is legally compelled to disclose, +in which case the Receiving Party shall notify the Disclosing Party of such +compelled disclosure and assert the privileged and confidential nature of the +information and cooperate fully with the Disclosing Party to limit the scope of +disclosure and the dissemination of disclosed Confidential Information to the +minimum extent necessary. + +The obligations under this Section 9 shall continue to remain in force for a +period of five (5) years after the last disclosure, and, with respect to trade +secrets, for so long as such trade secrets are protected under applicable trade +secret laws. + +10. FEES, DELIVERY AND PAYMENT +10.1 License Fees + +License Fees are described in The Qt Company's standard price list, quote or +Purchase Order confirmation or in an appendix hereto, as the case may be. The +License Fees shall not be refunded or claimed as a credit, even on the ground +that Distribution Licenses are not used, i.e. Redistributables are not actually +distributed corresponding to the Distribution Licenses purchased, or for any +other reason. + +10.2 Ordering Licenses + +Licensee may purchase Development Licenses and Distribution Licenses pursuant to +agreed pricing terms or, if no specific pricing terms have been agreed upon, at +The Qt Company's standard pricing terms applicable at the time of purchase. +Licensee shall submit all purchase orders for Development Licenses and +Distribution Licenses to The Qt Company by email or any other method acceptable +to The Qt Company (each such order is referred to herein as a "Purchase Order") +for confirmation, whereupon the Purchase Order shall become binding between the +Parties. + +10.3 Distribution License Packs + +Unless otherwise agreed, the Distribution Licenses are bought by way of +Distribution License Packs. Upon due payment of the ordered Distribution License +Pack(s), the Licensee will have an account of Distribution Licenses available +for installing, bundling or integrating (all jointly "installing") the +Redistributables with the Devices or for otherwise distributing the +Redistributables in accordance with this Agreement. Each time Licensee +"installs" or distributes a copy of Redistributables, then one Distribution +License is used, and Licensee's account of available Distribution Licenses is +decreased accordingly. Licensee may "install" copies of the Redistributables so +long as Licensee has Distribution Licenses remaining on its account. +Redistributables will be deemed to have been "installed" into a Device when one +of the following circumstances shall have occurred: a) the Redistributables have +been loaded onto the Device and used outside of the Licensee's premises or b) +the Device has been fully tested and placed into Licensee's inventory (or sold) +for the first time (i.e., Licensee will not be required to use (or pay for) more +than one Distribution License for each individual Device, e.g. in a situation +where a Device is returned to Licensee's inventory after delivery to a +distributor or sale to a Customer). In addition, if Licensee includes a back-up +copy of the Redistributables on a CD-ROM or other storage medium along with the +product, that backup copy of the Redistributables will not be deemed to have +been "installed" and will not require an additional Distribution License. + +10.4 Payment Terms + +License Fees and any other charges under this Agreement shall be paid by +Licensee no later than thirty (30) days from the date of the applicable invoice +from The Qt Company. + +The Qt Company will submit an invoice to Licensee after the effective date of +this Agreement and/or after The Qt Company receives a Purchase Order from +Licensee. + +A late payment charge of the lower of (a) one percent per month; or (b) the +interest rate stipulated by applicable law, shall be charged on any unpaid +balances that remain past due. + +The Qt Company shall have the right to suspend, terminate or withhold grants of +all rights to the Licensed Software hereunder, including but not limited to the +Developer License, Distribution License, and Support, should Licensee fail to +make payment in a timely fashion. + +10.5 Taxes + +All License Fees and other charges payable hereunder are gross +amounts but exclusive of any value added tax, use tax, sales tax and other +taxes, duties or tariffs ("Taxes"). Such applicable Taxes shall be paid by +Licensee, or, where applicable, in lieu of payment of such Taxes, Licensee shall +provide an exemption certificate to The Qt Company and any applicable authority. + +11 RECORD-KEEPING AND REPORTING OBLIGATIONS; AUDIT RIGHTS +11.1 Licensee's Record-keeping + +Licensee shall at all times maintain accurate and up-to-date written records of +Licensee's activities related to the use of Licensed Software and distribution +of Redistributables. The records shall be adequate to determine Licensee's +compliance with the provisions of this Agreement and to demonstrate the number +of Designated Users and Redistributables distributed by Licensee. The records +shall conform to good accounting practices reasonably acceptable to The Qt +Company. Licensee shall, within thirty (30) days from the end of each calendar +quarter, deliver to The Qt Company a report detailing the number of Designated +Users and copies of Redistributables distributed by Licensee during that +calendar quarter, and also detailing the number of undistributed copies of +Redistributables made by Licensee and remaining in its account (i.e., +undistributed copies for which Distribution Licenses have been or need to be +obtained from The Qt Company). Such report shall contain such other information +as The Qt Company shall reasonably require from time to time. + +11.2. The Qt Company's Audit Rights + +The Qt Company or an independent auditor acting on behalf of The Qt Company's, +may, upon at least five (5) business days' prior written notice and at its +expense, audit Licensee with respect to the use of the Redistributables, but not +more frequently than once during each 6-month period. Such audit may be +conducted by mail, electronic means or through an in-person visit to Licensee's +place of business. Any such in-person audit shall be conducted during regular +business hours at Licensee's facilities and shall not unreasonably interfere +with Licensee's business activities. The Qt Company or the independent auditor +acting on behalf of The Qt Company shall be entitled to inspect Licensee's +Records. All such Licensee's Records and use thereof shall be subject to an +obligation of confidentiality under this Agreement. + +If an audit reveals that Licensee is using the Licensed Software beyond scope of +the licenses Licensee has paid for, Licensee agrees to immediately pay The Qt +Company any amounts owed for such unauthorized use. + +In addition, in the event the audit reveals a material violation of the terms of +this Agreement (underpayment of more than 5% of License Fees shall always be +deemed a material violation for purposes of this section), then the Licensee +shall pay The Qt Company's reasonable cost of conducting such audit. + + + +12 TERM AND TERMINATION +12.1 Term + +This Agreement shall enter into force upon due acceptance by the Licensee and +remain in force for the Term, unless and until terminated pursuant to the terms +of this Section 12. + +12.2 Termination by The Qt Company + +The Qt Company shall have the right to terminate this Agreement upon thirty (30) +days prior written notice if (i) the Licensee is in material breach of any +obligation of this Agreement and fails to remedy such breach within such notice +period; (ii) or Licensee or any of its Affiliates bring a suit before any court +or administrative agency or otherwise assert a claim against The Qt Company's or +any of its Affiliates' Intellectual Property Rights or validity thereof. + + + +12.3 Mutual Right to Terminate + +Either Party shall have the right to terminate this Agreement immediately upon +written notice in the event that the other Party becomes insolvent, files for +any form of bankruptcy, makes any assignment for the benefit of creditors, has a +receiver, administrative receiver or officer appointed over the whole or a +substantial part of its assets, ceases to conduct business, or an act equivalent +to any of the above occurs under the laws of the jurisdiction of the other +Party. + +12.4 Parties´ Rights and Duties upon Termination + +Upon expiry or termination of the Agreement for any reason, Licensee shall, +within 30 days after such termination, cease and shall cause all Designated +Users (including those of its Affiliates' and Contractors') to cease using the +Licensed Software and distribution of the Redistributables under this Agreement. +Notwithstanding the above, in the event the Agreement expires or is terminated +for reason other than by The Qt Company pursuant to Section 12.2, the Licensee +is entitled, for a period of six (6) months after the effective date of +termination, to continue distribution of Devices under the Distribution Licenses +paid but unused at such effective date of termination. Upon any such termination +the Licensee shall destroy or return to The Qt Company all copies of the +Licensed Software and all related materials and will certify the same to The Qt +Company upon its request, provided however that Licensee may retain and exploit +such copies of the Licensed Software as it may reasonably require in providing +continued support to Customers. + +Expiry or termination of this Agreement for any reason whatsoever shall not +relieve Licensee of its obligation to pay any License Fees accrued or payable to +The Qt Company prior to the effective date of termination, and Licensee shall +immediately pay to The Qt Company all such fees upon the effective date of +termination. Termination of this Agreement shall not affect any rights of +Customers to continue use of Applications and Devices (and therein incorporated +Redistributables). + + + +13. GOVERNING LAW AND LEGAL VENUE + +In the event this Agreement is in the name of The Qt Company Inc., a Delaware +Corporation, then: +(i) this Agreement shall be construed and interpreted in accordance with +the laws of the State of California, USA, excluding its choice of law +provisions; +(ii) the United Nations Convention on Contracts for the International Sale of +Goods will not apply to this Agreement; and +(iii) any dispute, claim or controversy arising out of or relating to this +Agreement or the breach, termination, enforcement, interpretation or validity +thereof, including the determination of the scope or applicability of this +Agreement to arbitrate, shall be determined by arbitration in San Francisco, +USA, before one arbitrator. The arbitration shall be administered by JAMS +pursuant to JAMS' Streamlined Arbitration Rules and Procedures. Judgment on the +Award may be entered in any court having jurisdiction. This Section shall not +preclude parties from seeking provisional remedies in aid of arbitration from a +court of appropriate jurisdiction. + +In the event this Agreement is in the name of The Qt Company Ltd., a Finnish +Company, then: +(i) this Agreement shall be construed and interpreted in accordance with the +laws of Finland, excluding its choice of law provisions; +(ii) the United Nations Convention on Contracts for the International Sale of +Goods will not apply to this Agreement; and +(iii) any disputes, controversy or claim arising out of or relating to this +Agreement, or the breach, termination or validity thereof shall be shall be +finally settled by arbitration in accordance with the Arbitration Rules of +Finland Chamber of Commerce. The arbitration tribunal shall consist of one (1), +or if either Party so requires, of three (3), arbitrators. The award shall be +final and binding and enforceable in any court of competent jurisdiction. The +arbitration shall be held in Helsinki, Finland and the process shall be +conducted in the English language. This Section shall not preclude parties from +seeking provisional remedies in aid of arbitration from a court of appropriate +jurisdiction. + +14. GENERAL PROVISIONS +14.1 No Assignment + +Licensee shall not be entitled to assign or transfer all or any of its rights, +benefits and obligations under this Agreement without the prior written consent +of The Qt Company, which shall not be unreasonably withheld or delayed. The Qt +Company shall be entitled to freely assign or transfer any of its rights, +benefits or obligations under this Agreement. + +14.2 No Third Party Representations + +Licensee shall make no representations or warranties concerning the Licensed +Software on behalf of The Qt Company. Any representation or warranty Licensee +makes or purports to make on The Qt Company's behalf shall be void as to The Qt +Company. + +14.3 Surviving Sections + +Any terms and conditions that by their nature or otherwise reasonably should +survive termination of this Agreement shall so be deemed to survive. + +14.4 Entire Agreement + +This Agreement, the exhibits hereto, the License Certificate and any applicable +Purchase Order constitute the complete agreement between the Parties and +supersedes all prior or contemporaneous discussions, representations, and +proposals, written or oral, with respect to the subject matters discussed +herein. In the event of any conflict or inconsistency between this Agreement and +any Purchase Order, the terms of this Agreement will prevail over the terms of +the Purchase Order with respect to such conflict or inconsistency. + +14.5 Modifications + +No modification of this Agreement shall be effective unless contained in a +writing executed by an authorized representative of each Party. No term or +condition contained in Licensee's Purchase Order shall apply unless expressly +accepted by The Qt Company in writing. + +14.6 Force Majeure + +Except for the payment obligations hereunder, neither Party shall be liable to +the other for any delay or non-performance of its obligations hereunder in the +event and to the extent that such delay or non- performance is due to an event +of act of God, terrorist attack or other similar unforeseeable catastrophic +event that prevents either Party for fulfilling its obligations under this +Agreement and which such Party cannot avoid or circumvent ("Force Majeure +Event"). If the Force Majeure Event results in a delay or non- performance of a +Party for a period of three (3) months or longer, then either Party shall have +the right to terminate this Agreement with immediate effect without any +liability (except for the obligations of payment arising prior to the event of +Force Majeure) towards the other Party. + +14.7 Notices + +Any notice given by one Party to the other shall be deemed properly given and +deemed received if specifically acknowledged by the receiving Party in writing +or when successfully delivered to the recipient by hand, fax, or special courier +during normal business hours on a business day to the addresses specified for +The Qt Company in the beginning of this Agreement, and for the Licensee in the +Licensee's account profile. Each communication and document made or delivered by +one Party to the other Party pursuant to this Agreement shall be in the English +language. + + +14.8 Export Control + +Licensee acknowledges that the Redistributables may be subject to export control +restrictions under the applicable laws of respective countries. Licensee shall +fully comply with all applicable export license restrictions and requirements as +well as with all laws and regulations relating to the Redistributables and +exercise of licenses hereunder and shall procure all necessary governmental +authorizations, including without limitation, all necessary licenses, approvals, +permissions or consents, where necessary for the re- exportation of the +Redistributables, Applications and/or Devices. + +14.9 No Implied License + +There are no implied licenses or other implied rights granted under this +Agreement, and all rights, save for those expressly granted hereunder, shall +remain with The Qt Company and its licensors. In addition, no licenses or +immunities are granted to the combination of the Licensed Software with any +other software or hardware not delivered by The Qt Company under this Agreement. + +14.10 Attorney Fees + +The prevailing Party in any action to enforce this Agreement shall be entitled +to recover its attorney's fees and costs in connection with such action. + +14.11 Severability + +If any provision of this Agreement shall be adjudged by any court of competent +jurisdiction to be unenforceable or invalid, that provision shall be limited or +eliminated to the minimum extent necessary so that this Agreement shall +otherwise remain in full force and effect and enforceable. + + + +IN WITNESS WHEREOF, the Parties hereto, intending to be legally bound hereby, +have caused this Agreement to be executed by Licensee's authorized +representative installing the Licensed Software and accepting the terms hereof +in connection therewith. + +Appendix 1 + +1. Parts of the Licensed Software that are permitted for distribution in object +code form only ("Redistributables") under this Agreement: +- The Licensed Software's “Qt for Automation Modules”, as specified in the +relevant documentation. + +2. Parts of the Licensed Software that are not permitted for distribution +include, but are not limited to: +- No parts of the Licensed Software other than Redistributables are licensed to +the Licensee under this Agreement. diff -Nru qtlocation-opensource-src-5.9.5+dfsg/.QT-FOR-AUTOMOTIVE-LICENSE-AGREEMENT qtlocation-opensource-src-5.11.1+dfsg/.QT-FOR-AUTOMOTIVE-LICENSE-AGREEMENT --- qtlocation-opensource-src-5.9.5+dfsg/.QT-FOR-AUTOMOTIVE-LICENSE-AGREEMENT 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/.QT-FOR-AUTOMOTIVE-LICENSE-AGREEMENT 2018-06-18 07:43:57.000000000 +0000 @@ -0,0 +1,894 @@ +QT AUTOMOTIVE SUITE LICENSE AGREEMENT +Agreement version 3.0 + +This Qt Automotive Suite License Agreement (“Agreement”) is a legal agreement +between The Qt Company (as defined below) and the Licensee (as defined below) +for the license of Licensed Software (as defined below). Capitalized terms used +herein are defined in Section 1. + +WHEREAS: + +(A) Licensee wishes to use the Licensed Software for the purpose of developing +and distributing Applications and/or Devices; and + +(B) The Qt Company is willing to grant the Licensee a right to use Licensed +Software for such purpose pursuant to term and conditions of this Agreement. + +NOW, THEREFORE, THE PARTIES HEREBY AGREE AS FOLLOWS: + +1. DEFINITIONS + +"Affiliate" of a Party shall mean an entity (i) which is directly or indirectly +controlling such Party; (ii) which is under the same direct or indirect +ownership or control as such Party; or (iii) which is directly or indirectly +owned or controlled by such Party. For these purposes, an entity shall be +treated as being controlled by another if that other entity has fifty percent +(50 %) or more of the votes in such entity, is able to direct its affairs and/or +to control the composition of its board of directors or equivalent body. + +"Applications" shall mean Licensee's software products created using the +Licensed Software in connection with the Program, which may include the +Redistributables, or part thereof. + +"Contractor(s)" shall mean third party consultants, distributors and contractors +performing services to a Party under applicable contractual arrangement. + +"Customer(s)" shall mean Licensee's end users to whom Licensee, directly or +indirectly, distributes copies of the Redistributables. + +"Deployment Platforms" shall mean operating systems specified in the License +Certificate, in which the Redistributables can be distributed pursuant to the +terms and conditions of this Agreement. + +"Designated User(s)" shall mean the employee(s) of Licensee or Licensee's +Affiliates acting within the scope of their employment or Licensee's +Contractors acting within the scope of their services for Licensee and on behalf +of Licensee. Designated Users shall be named in the License Certificate. + +"Development License" shall mean the license needed by the Licensee for each +Designated User to use the Licensed Software under the license grant described +in Section 3.1 of this Agreement. + +"Development Platforms" shall mean those operating systems specified in the +License Certificate, in which the Licensed Software can be used under the +Development License, but not distributed in any form or used for any other +purpose. + +"Devices" shall mean hardware devices or products that 1) are manufactured +and/or distributed by the Licensee or its Affiliates or Contractors in +connection with the Program, and (2)(i) incorporate or integrate the +Redistributables or parts thereof; or (ii) do not incorporate or integrate +the Redistributables at the time of distribution, but where, when used by a +Customer, the main user interface or substantial functionality of such +device is provided by Application(s) or otherwise depends on the Licensed +Software. + +"Distribution License(s)" shall mean the license required for distribution of +Redistributables in accordance with the license grant described in Section +3.2(ii)-(iii) of this Agreement. + +"Distribution License Packs" shall mean set of prepaid Distribution Licenses +for distribution of Redistributables, as defined in The Qt Company's standard +price list, quote, Purchase Order confirmation or in an appendix hereto, as the +case may be. + +"Initial Support Term" shall mean a time period of twelve (12) months, +calculated from the effective date of this Agreement. + +"Intellectual Property Rights" shall mean patents (including utility models), +design patents, and designs (whether or not capable of registration), chip +topography rights and other like protection, copyrights, trademarks, service +marks, trade names, logos or other words or symbols and any other form of +statutory protection of any kind and applications for any of the foregoing +as well as any trade secrets. +"Licensee" shall mean the individual or legal entity that is party to this +Agreement, as identified on the signature page hereof. + +"License Certificate" shall mean a certificate accompanying the Licensed +Software and generated for each Designated User respectively. License +Certificate will specify the Designated User, the Development Platforms, +Deployment Platforms, Program and the Term of this Agreement. The terms of the +License Certificate are considered part of this Agreement and shall be updated +from time to time to reflect any changes to the foregoing terms relating to +Licensee's rights to the Licensed Software. + +"Licensee's Records" shall mean books and records that are likely to contain +information bearing on Licensee's compliance with this Agreement or the payments +due to The Qt Company under this Agreement, including, but not limited to: +assembly logs, sales records and distribution records. + +"Licensee´s SDK Contractors" shall mean Contractors of Licensee, who have +purchased or received SDK from the Licensee relating to the Program. + +"License Fee" shall mean the fee charged to the Licensee for rights granted +under the terms of this Agreement. + +"Licensed Software" shall mean all versions of The Qt Company's computer +software products, online or electronic documentation, associated media and +printed materials, including the source code, example programs and the +documentation, licensed to the Licensee under this Agreement. Licensed Software +does not include Third Party Software (as defined in Section 4) or Open Source +Qt. + +"Modified Software" shall mean bug-fixes, error corrections, patches or +modifications made to the Licensed Software by Licensee, including documentation +related thereto. + +"Online Services" shall mean any services or access to systems made available +by The Qt Company to the Licensee over the Internet relating to the Licensed +Software or for the purpose of use by the Licensee of the Licensed Software or +Support. Use of any such Online Services is discretionary for the Licensee and +some of them may be subject to additional fees. + +"Open Source Qt" shall mean all versions of The Qt Company's Qt computer +software products, online or electronic documentation, associated media and +printed materials, including the source code, example programs and the +documentation available under the terms of the GNU Lesser General Public +License, version 2.1 or later ("LGPL") or the GNU General Public License, +version 2.0 or later ("GPL"). + +"Party" or "Parties" shall mean Licensee and/or The Qt Company. + +"Program" shall mean Licensee´s business program for which purpose the Licensee +is entitled to use the Licensed Software and grant the Licensee's SDK +Contractors a right to use the Licensed Software as part of a SDK. + +"Redistributables" shall mean the portions of the Licensed Software set forth +in Appendix 1, Section 1 that may be distributed pursuant to the terms of this +Agreement in object code form only, including any relevant documentation. Where +relevant, any reference to Licensed Software in this Agreement shall include and +refer also to Redistributables. + +"SDK" or "Software Development Kit" shall mean a combination of software modules +including Licensed Software intended to be utilized in connection with the +Program. + +"Submitted Modified Software" shall have the meaning as set forth in Section +2.3. + +"Support" shall mean standard developer support that is provided by +The Qt Company to assist Designated Users in using the Licensed Software in +accordance with The Qt Company's standard support terms. + +"Support Renewal Term" shall mean a time period of twelve (12) months, +calculated from the end of the Initial Support Term or previous Support Renewal +Term, as applicable. + +"Support Term" shall mean the Initial Support Term and any possible Support +Renewal Terms(s) during which time the Licensee is eligible to receive for +Support for the Licensed Software. + +"Taxes" shall have the meaning set forth in Section 10.5. + +"Term" shall mean the validity period of this Agreement, as set forth in the +License Certificate. + +“The Qt Company” shall mean: + +(i) in the event Licensee is an individual residing in the United States or a +legal entity incorporated in the United States or having its headquarters in the +United States, The Qt Company Inc., a Delaware corporation with its office at +2350 Mission College Blvd., Suite 1020, Santa Clara, CA 95054, USA.; or + +(ii) in the event the Licensee is an individual residing outside of the United +States or a legal entity incorporated outside of the United States or having its +registered office outside of the United States, The Qt Company Ltd., a Finnish +company with its registered office at Bertel Jungin aukio D3A, 02600 Espoo, +Finland. + +"Updates" shall mean a release or version of the Licensed Software containing +bug fixes, error corrections and other changes that are generally made available +to users of the Licensed Software that have contracted for Support. Updates are +generally depicted as a change to the digits following the decimal in the +Licensed Software version number. The Qt Company shall make Updates available to +the Licensee under the Support. Updates shall be considered as part of the +Licensed Software hereunder. + +"Upgrades" shall mean a release or version of the Licensed Software containing +enhancements and new features and are generally depicted as a change to the +first digit of the Licensed Software version number. In the event Upgrades are +provided to the Licensee under this Agreement, they shall be considered as part +of the Licensed Software hereunder. + +2. OWNERSHIP 2.1 + +Ownership of The Qt Company + +The Licensed Software is protected by copyright laws and international copyright +treaties, as well as other intellectual property laws and treaties. The Licensed +Software is licensed, not sold. + +All The Qt Company's Intellectual Property Rights are and shall remain the +exclusive property of The Qt Company or its licensors respectively. + +2.2 Ownership of Licensee + +All the Licensee's Intellectual Property Rights are and shall remain the +exclusive property of the Licensee or its licensors respectively. + +All Intellectual Property Rights to the Modified Software, Applications and +Devices shall remain with the Licensee and no rights thereto shall be granted by +the Licensee to The Qt Company under this Agreement (except as set forth in +Section 2.3 below). + +2.3 Modified Software + +Licensee may create Modified Software that breaks the source or binary +compatibility with the Licensed Software. This includes, but is not limited to, +changing the application programming interfaces ("API") by adding, changing or +deleting any variable, method, or class signature in the Licensed Software +and/or any inter-process protocols, services or standards in the Licensed +Software libraries. To the extent that Licensee breaks source or binary +compatibility with the Licensed Software, Licensee acknowledges that The Qt +Company's ability to provide Support may be prevented or limited and Licensee's +ability to make use of Updates may be restricted. + +To the extent Licensee submits Modified Software to The Qt Company ("Submitted +Modified Software"), Licensee hereby grants The Qt Company a sublicensable, +assignable, irrevocable, perpetual, worldwide, non-exclusive, royalty-free and +fully paid-up license, under all of Licensee's Intellectual Property Rights, to +reproduce, adapt, translate, modify, and prepare derivative works of, publicly +display, publicly perform, sublicense, make available and distribute such +Submitted Modified Software as The Qt Company sees fit at its free and absolute +discretion. For the sake of clarity, the Licensee shall have no obligation to +provide Modified Software to The Qt Company. + +3. LICENSES GRANTED + +3.1 Development with Licensed Software + +Subject to the terms of this Agreement, The Qt Company grants to Licensee a +personal, worldwide, non- exclusive, non-transferable license, valid for the +Term, to use, modify and copy the Licensed Software by Designated Users on the +Development Platforms for the sole purposes of designing, developing, +demonstrating and testing Application(s) and/or Devices, and to provide thereto +related support and other services to end-user Customers. + +Licensee may install copies of the Licensed Software on an unlimited number of +computers provided that (i) only the Designated Users may use the Licensed +Software, and (ii) all Designated Users must have a valid Development License to +use Licensed Software. + +Licensee may at any time designate another Designated User to replace a +then-current Designated User by notifying The Qt Company in writing, provided +that any Designated User may be replaced only once during any six-month period. + +3.2 Distribution of Redistributables + +Subject to the terms of this Agreement, The Qt Company grants to Licensee a +personal, worldwide, non- exclusive, non-transferable license, valid for the +Term, to (i) distribute, by itself or through its Contractors, Redistributables +as installed, incorporated or integrated into Applications for execution on the +Deployment Platforms, and (ii) distribute, by itself or through one or more +tiers of Contractors, Redistributables as installed, incorporated or integrated, +or intended to be installed, incorporated or integrated into Devices for +execution on the Deployment Platforms, and (iii) grant sublicenses to +Redistributables, as distributed hereunder, for Customers solely for Customer's +internal use and to the extent necessary in order for the Customers to use the +Applications and/or Devices for their respective intended purposes. + +Right to distribute the Redistributables as provided herein is conditional upon +the Licensee having purchased and paid the appropriate amount of Development and +Distribution Licenses from The Qt Company before distributing any +Redistributables to Customers. + +For the avoidance of any doubt it is specifically acknowledged and agreed that +distribution of Redistributables solely as installed, incorporated or integrated +into Applications for execution on the Deployment Platform(s), as specified in +(i) of the first paragraph of Section 3.2 above, i.e. with no connection to +Devices or intention to use in connection therewith, shall not require a +Distribution License. + +3.3 SDK License + +The Qt Company grants to Licensee a personal, worldwide, non-exclusive, +non-transferable license, valid for the Term, to (i) distribute Licensed +Software as a part of the SDK to Licensee´s SDK Contractors in connection with +the Program and (ii) in connection with the Program, by itself or by Licensee's +SDK Contractors, combine, incorporate or integrate Licensed Software with, or +use Licensed Software for creation of, any software created with or +incorporating Open Source Qt, provided, however, that: + +(i) the Licensee´s SDK Contractors are only entitled to use the Licensed +Software as part of SDK and for the sole purpose of developing software for +Devices that are distributed under the Program; and + +(ii) Licensee´s SDK Contractors shall not be entitled to distribute the SDK or +any part thereof to any third parties. + +For the avoidance of any doubt, the distribution of such software development +tools that do not contain Licensed Software shall not be covered by this +Agreement. + +3.4 Further Requirements + +The licenses granted above in this Section 3 by The Qt Company to Licensee are +conditional and subject to Licensee's compliance with the following terms: + +(i) Licensee shall not remove or alter any copyright, trademark or other +proprietary rights notice contained in any portion of the Licensed Software; + +(ii) Applications and SDKs must add primary and substantial functionality to the +Licensed Software; + +(iii) Applications may not pass on functionality which in any way makes it +possible for others to create software with the Licensed Software; provided +however that Licensee may use the Licensed Software's scripting and QML ("Qt +Quick") functionality solely in order to enable scripting, themes and styles +that augment the functionality and appearance of the Application(s) without +adding primary and substantial functionality to the Application(s); + +(iv) Applications and SDKs must not compete with the Licensed Software; + +(v) Licensee shall not use The Qt Company's or any of its suppliers' names, +logos, or trademarks to market Applications or SDKs, except that Licensee may +use "Built with Qt" logo to indicate that Application(s) was developed using +the Licensed Software; + +(vi) Except as expressly provided in Section 3.3, Licensee shall not +distribute, sublicense or disclose source code of Licensed Software to any third +party (provided however that Licensee may appoint employee(s) of Contractors as +Designated Users to use Licensed Software pursuant to this Agreement); + +(vii) Licensee shall not grant the Customers a right to (i) make copies of the +Redistributables except when and to the extent required to use the Applications +and/or Devices for their intended purpose, (ii) modify the Redistributables or +create derivative works thereof, (iii) decompile, disassemble or otherwise +reverse engineer Redistributables, or (iv) redistribute any copy or portion of +the Redistributables to any third party, except as part of the onward sale of +the Device on which the Redistributables are installed; + +(viii) Except as expressly provided in Section 3.3, Licensee shall not and +shall cause that its Affiliates, Contractors and Licensee's SDK Contractors +shall not a) in any way, combine, incorporate or integrate Licensed Software +with, or use Licensed Software for creation of, any software created with or +incorporating Open Source Qt or b) incorporate or integrate Applications into a +hardware device or product other than a Device, unless Licensee has received an +advance written permission from The Qt Company to do so. Unless specifically +otherwise agreed, any and all distribution by the Licensee during the Term of +a hardware device or product a) which incorporate or integrate any part of +Licensed Software or Open Source Qt; or b) where the main user interface or +substantial functionality is provided by software build with Licensed +Software or Open Source Qt or otherwise depends on the Licensed Software or Open +Open Source Qt, shall be considered as distribution under this Agreement and +dependent on compliance thereof (including but not limited to obligation to +pay applicable License Fees for such distribution); + +(ix) Licensee shall cause all of its Affiliates and Contractors entitled to make +use of the licenses granted under this Agreement, to be contractually bound to +comply with the relevant terms of this Agreement and not to use the Licensed +Software beyond the terms hereof and for any purposes other than operating +within the scope of their services for Licensee. Licensee shall be responsible +for any and all actions and omissions of its Affiliates and Contractors relating +to the Licensed Software and use thereof (including but not limited to payment +of all applicable License Fees); + +(x) Except when and to the extent explicitly provided in this Section 3, +Licensee shall not transfer, publish, disclose, display or otherwise make +available the Licensed Software; + +(xi) Licensee shall not take any action inconsistent with The Qt Company's +Intellectual Property Rights; and + +(xii) Attempt or enlist a third party to conduct or attempt to conduct any of +the above. + +Above terms shall not be applicable if and to the extent they conflict with any +mandatory provisions of any applicable laws. + +Any use of Licensed Software beyond the provisions of this Agreement is strictly +prohibited and requires an additional license from The Qt Company. + +4. THIRD PARTY SOFTWARE + +The Licensed Software may provide links to third party libraries or code +(collectively "Third Party Software") to implement various functions. Third +Party Software does not comprise part of the Licensed Software. In some cases, +access to Third Party Software may be included in the Licensed Software. Such +Third Party Software will be listed in the ".../src/3rdparty" source tree +delivered with the Licensed Software or documented in the Licensed Software, as +such may be amended from time to time. Licensee acknowledges that use or +distribution of Third Party Software is in all respects subject to applicable +license terms of applicable third party right holders. 5. PRE-RELEASE CODE + +The Licensed Software may contain pre-release code and functionality marked or +otherwise stated as "Technology Preview", "Alpha", "Beta" or similar +designation. Such pre-release code may be present in order to provide +experimental support for new platforms or preliminary versions of one or more +new functionalities. The pre-release code may not be at the level of performance +and compatibility of a final, generally available, product offering of the +Licensed Software. The pre-release parts of the Licensed Software may not +operate correctly, may contain errors and may be substantially modified by The +Qt Company prior to the first commercial product release, if any. The Qt Company +is under no obligation to make pre-release code commercially available, or +provide any Support or Updates relating thereto. The Qt Company assumes no +liability whatsoever regarding any pre-release code, but any use thereof is +exclusively at Licensee's own risk and expense. + +6. LIMITED WARRANTY AND WARRANTY DISCLAIMER + +The Qt Company hereby represents and warrants that it has the power and +authority to grant the rights and licenses granted to Licensee under this +Agreement. + +Except as set forth above, the Licensed Software is licensed to Licensee "as +is". + +TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE QT COMPANY ON BEHALF OF +ITSELF AND ITS LICENSORS, SUPPLIERS AND AFFILIATES, DISCLAIMS ALL WARRANTIES, +EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT +WITH REGARD TO THE LICENSED SOFTWARE. THE QT COMPANY DOES NOT WARRANT THAT THE +LICENSED SOFTWARE WILL SATISFY LICENSEE'S REQUIREMENTS OR THAT IT WILL OPERATE +WITHOUT DEFECT OR ERROR OR THAT THE OPERATION THEREOF WILL BE UNINTERRUPTED. ALL +USE OF AND RELIANCE ON THE LICENSED SOFTWARE IS AT THE SOLE RISK OF AND +RESPONSIBILITY OF LICENSEE. + +Licensee's exclusive remedy and The Qt Company's entire liability for Licensed +Software shall be limited, at The Qt Company's option, to correction of the +error, replacement of the Licensed Software or return of the applicable fees +paid for the defective Licensed Software for the time period during which the +License is not able to utilize the Licensed Software under the terms of this +Agreement. + +7. INDEMNIFICATION AND LIMITATION OF LIABILITY + +7.1 Limitation of Liability + +EXCEPT FOR (I) CASES OF GROSS NEGLIGENCE OR INTENTIONAL MISCONDUCT, (II) +LICENSEE'S DUTY TO PAY ALL APPLICABLE LICENSE FEES AND COMPENSATIONS, AND (III) +BREACH OF CONFIDENTIALITY, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, IN NO +EVENT SHALL EITHER PARTY BE LIABLE TO THE OTHER PARTY FOR ANY LOSS OF PROFIT, +LOSS OF DATA, LOSS OF BUSINESS OR GOODWILL OR ANY OTHER INDIRECT, SPECIAL, +CONSEQUENTIAL, INCIDENTAL OR PUNITIVE COST, DAMAGES OR EXPENSE OF ANY KIND, +HOWSOEVER ARISING UNDER OR IN CONNECTION WITH THIS AGREEMENT. + +EXCEPT FOR (I) CASES OF GROSS NEGLIGENCE OR INTENTIONAL MISCONDUCT, (II) +LICENSEE'S DUTY TO PAY ALL APPLICABLE LICENSE FEES AND COMPENSATIONS, AND (III) +BREACH OF CONFIDENTIALITY, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, IN NO +EVENT SHALL EITHER PARTY'S TOTAL AGGREGATE LIABILITY UNDER THIS AGREEMENT EXCEED +THE AGGREGATE LICENSE FEES RECEIVED BY THE QT COMPANY FROM LICENSEE DURING THE +PERIOD OF TWELVE (12) MONTHS IMMEDIATELY PRECEDING THE EVENT RESULTING IN SUCH +LIABILITY. + +THE PROVISIONS OF THIS SECTION 7 ALLOCATE THE RISKS UNDER THIS AGREEMENT BETWEEN +THE QT COMPANY AND LICENSEE AND THE PARTIES HAVE RELIED UPON THE LIMITATIONS SET +FORTH HEREIN IN DETERMINING WHETHER TO ENTER INTO THIS AGREEMENT. + +7.2 Licensee´s Indemnification + +Licensee shall indemnify and hold harmless The Qt Company from and against any +claim, injury, judgment, settlement, loss or expense, including attorneys' fees +related to: (a) Licensee's misrepresentation in connection with The Qt Company +or the Licensed Software or breach of this Agreement, (b) the Application or +Device (except where such cause of liability is solely attributable to the +Licensed Software). + +8. SUPPORT, UPDATES AND ONLINE SERVICES + +Licensee will be eligible to receive Support and Updates and to use the Online +Services during the Support Term. Unless otherwise decided by The Company at its +free and absolute discretion, Upgrades will not be included in the Support but +may be available subject to additional fees. + +Licenses granted under this Agreement shall include a prepaid Initial Support +Term. + +Initial Support Term shall be automatically extended to one or more Support +Renewal Term(s), unless and until either Party notifies the other Party in +writing that it does not wish to continue the Support, such notification to be +provided to the other Party no less than ninety (90) days before expiry of the +Initial Support Term or respective Support Renewal Term. During any such Support +Renewal Term Support shall be available subject to prices and terms agreed +between the Parties or, if no advance agreement exists, subject to The Qt +Company's standard pricing applicable at the commencement date of any such +Support Renewal Term. From time to time The Qt Company may change Support +provided within each Support plan; provided that during the respective Initial +Support Term or Support Renewal Term (as the case may be), the level of Support +provided by The Qt Company may not be reduced without the consent of the +Licensee. + +Unless otherwise agreed, The Qt Company shall not be responsible for providing +any service or support to the Customers. + +9. CONFIDENTIALITY + +Each Party acknowledges that during the Term of this Agreement each Party may +receive information about the other Party's business, business methods, business +plans, customers, business relations, technology, and other information, +including the terms of this Agreement, that is confidential and of great value +to the other Party, and the value of which would be significantly reduced if +disclosed to third parties ("Confidential Information"). Accordingly, when a +Party (the "Receiving Party") receives Confidential Information from the other +Party (the "Disclosing Party"), the Receiving Party shall only disclose such +information to employees and Contractors on a need to know basis, and shall +cause its employees and employees of its Affiliates to: (i) maintain any and all +Confidential Information in confidence; (ii) not disclose the Confidential +Information to a third party without the Disclosing Party's prior written +approval; and (iii) not, directly or indirectly, use the Confidential +Information for any purpose other than for exercising its rights and fulfilling +its responsibilities pursuant to this Agreement. Each Party shall take +reasonable measures to protect the Confidential Information of the other Party, +which measures shall not be less than the measures taken by such Party to +protect its own confidential and proprietary information. + +Obligation of confidentiality shall not apply to information that (i) is or +becomes generally known to the public through no act or omission of the +Receiving Party; (ii) was in the Receiving Party's lawful possession prior to +the disclosure hereunder and was not subject to limitations on disclosure or +use; (iii) is developed independently by employees or Contractors of the +Receiving Party or other persons working for the Receiving Party who have not +had access to the Confidential Information of the Disclosing Party, as proven by +the written records of the Receiving Party; (iv) is lawfully disclosed to the +Receiving Party without restrictions, by a third party not under an obligation +of confidentiality; or (v) the Receiving Party is legally compelled to disclose, +in which case the Receiving Party shall notify the Disclosing Party of such +compelled disclosure and assert the privileged and confidential nature of the +information and cooperate fully with the Disclosing Party to limit the scope of +disclosure and the dissemination of disclosed Confidential Information to the +minimum extent necessary. + +The obligations under this Section 9 shall continue to remain in force for a +period of five (5) years after the last disclosure, and, with respect to trade +secrets, for so long as such trade secrets are protected under applicable trade +secret laws. + +10. FEES, DELIVERY AND PAYMENT + +10.1 License Fees + +License Fees are described in The Qt Company's standard price list, quote or +Purchase Order confirmation or in an appendix hereto, as the case may be. The +License Fees shall not be refunded or claimed as a credit, even on the ground +that Distribution Licenses are not used, i.e. Redistributables are not actually +distributed corresponding to the Distribution Licenses purchased, or for any +other reason. + +10.2 Ordering Licenses + +Licensee may purchase Development Licenses and Distribution Licenses pursuant to +agreed pricing terms or, if no specific pricing terms have been agreed upon, at +The Qt Company's standard pricing terms applicable at the time of purchase. + +Licensee shall submit all purchase orders for Development Licenses and +Distribution Licenses to The Qt Company by email or any other method acceptable +to The Qt Company (each such order is referred to herein as a "Purchase Order") +for confirmation, whereupon the Purchase Order shall become binding between the +Parties. + +10.3 Distribution + +License Packs Unless otherwise agreed, the Distribution Licenses are bought by +way of Distribution License Packs. + +Upon due payment of the ordered Distribution License Pack(s), the Licensee will +have an account of Distribution Licenses available for installing, bundling or +integrating (all jointly "installing") the Redistributables with the Devices or +for otherwise distributing the Redistributables in accordance with this +Agreement. + +Each time Licensee "installs" or distributes a copy of Redistributables, then +one Distribution License is used, and Licensee's account of available +Distribution Licenses is decreased accordingly. + +Licensee may "install" copies of the Redistributables so long as Licensee has +Distribution Licenses remaining on its account. + +Redistributables will be deemed to have been "installed" into a Device when one +of the following circumstances shall have occurred: a) the Redistributables +have been loaded onto the Device and used outside of the Licensee's premises or +b) the Device has been fully tested and placed into Licensee's inventory (or +sold) for the first time (i.e., Licensee will not be required to use (or pay +for) more than one Distribution License for each individual Device, e.g. in a +situation where a Device is returned to Licensee's inventory after delivery to +a distributor or sale to a Customer). In addition, if Licensee includes a +back-up copy of the Redistributables on a CD-ROM or other storage medium +along with the product, that backup copy of the Redistributables will not +be deemed to have been "installed" and will not require an additional +Distribution License. + +10.4 Payment Terms +License Fees and any other charges under this Agreement shall be paid by +Licensee no later than thirty (30) days from the date of the applicable invoice +from The Qt Company. + +The Qt Company will submit an invoice to Licensee after the date of this +Agreement and/or after The Qt Company receives a Purchase Order from Licensee. +A late payment charge of the lower of (a) one percent per month; or (b) the +interest rate stipulated by applicable law, shall be charged on any unpaid +balances that remain past due. + +The Qt Company shall have the right to suspend, terminate or withhold grants of +all rights to the Licensed Software hereunder, including but not limited to the +Developer License, Distribution License, and Support, should Licensee fail to +make payment in a timely fashion. + +10.5 Taxes +All License Fees and other charges payable hereunder are gross amounts but +exclusive of any value added tax, use tax, sales tax and other taxes, duties or +tariffs ("Taxes"). Such applicable Taxes shall be paid by Licensee, or, where +applicable, in lieu of payment of such Taxes, Licensee shall provide an +exemption certificate to The Qt Company and any applicable authority. + +11 RECORD-KEEPING AND REPORTING OBLIGATIONS; AUDIT RIGHTS + +11.1 Licensee's Record-keeping + +Licensee shall at all times maintain accurate and up-to-date written records of +Licensee's activities related to the use of Licensed Software and distribution +of Redistributables. The records shall be adequate to determine Licensee's +compliance with the provisions of this Agreement and to demonstrate the number +of Designated Users and Redistributables distributed by Licensee. The records +shall conform to good accounting practices reasonably acceptable to The Qt +Company. + +Licensee shall, within thirty (30) days from the end of each calendar +quarter, deliver to The Qt Company a report detailing the number of Designated +Users and copies of Redistributables distributed by Licensee during that +calendar quarter, and also detailing the number of undistributed copies of +Redistributables made by Licensee and remaining in its account (i.e., +undistributed copies for which Distribution Licenses have been or need to be +obtained from The Qt Company). Such report shall contain such other information +as The Qt Company shall reasonably require from time to time. + +11.2. The Qt Company's Audit Rights + +The Qt Company or an independent auditor acting on behalf of The Qt Company's, +may, upon at least five (5) business days' prior written notice and at its +expense, audit Licensee with respect to the use of the Redistributables, but +not more frequently than once during each 6-month period. Such audit may be +conducted by mail, electronic means or through an in-person visit to +Licensee's place of business. Any such in-person audit shall be conducted +during regular business hours at Licensee's facilities and shall not +unreasonably interfere with Licensee's business activities. The Qt Company or +the independent auditor acting on behalf of The Qt Company shall be entitled to +inspect Licensee's Records. All such Licensee's Records and use thereof shall be +subject to an obligation of confidentiality under this Agreement. + +If an audit reveals that Licensee is using the Licensed Software beyond scope of +the licenses Licensee has paid for, Licensee agrees to immediately pay The Qt +Company any amounts owed for such unauthorized use. + +In addition, in the event the audit reveals a material violation of the terms of +this Agreement (underpayment of more than 5% of License Fees shall always be +deemed a material violation for purposes of this section), then the Licensee +shall pay The Qt Company's reasonable cost of conducting such audit. + +12 TERM AND TERMINATION + +12.1 Term + +This Agreement shall enter into force upon due acceptance by both Parties and +remain in force for the Term, unless and until terminated pursuant to the terms +of this Section 12. + +12.2 Termination by The Qt Company + +The Qt Company shall have the right to terminate this Agreement upon thirty +(30) days prior written notice if (i) the Licensee is in material breach of any +obligation of this Agreement and fails to remedy such breach within such notice +period; (ii) or Licensee or any of its Affiliates bring a suit before any court +or administrative agency or otherwise assert a claim against The Qt Company's +or any of its Affiliates' Intellectual Property Rights or validity thereof. + +12.3 Mutual Right to Terminate + +Either Party shall have the right to terminate this Agreement immediately upon +written notice in the event that the other Party becomes insolvent, files for +any form of bankruptcy, makes any assignment for the benefit of creditors, has a +receiver, administrative receiver or officer appointed over the whole or a +substantial part of its assets, ceases to conduct business, or an act equivalent +to any of the above occurs under the laws of the jurisdiction of the other +Party. + +12.4 Parties´ Rights and Duties upon Termination + +Upon expiry or termination of the Agreement for any reason, Licensee shall, +within 30 days after such termination, cease and shall cause all Designated +Users (including those of its Affiliates' and Contractors') and Licensee's SDK +Contractors to cease using the Licensed Software and distribution of the +Redistributables under this Agreement. Notwithstanding the above, in the event +the Agreement expires or is terminated for reason other than by The Qt Company +pursuant to Section 12.2, the Licensee is entitled, for a period of six (6) +months after the effective date of termination, to continue distribution of +Devices under the Distribution Licenses paid but unused at such effective date +of termination. + +Upon any such termination the Licensee shall destroy or return to The Qt +Company all copies of the Licensed Software and all related materials and will +certify the same to The Qt Company upon its request, provided however that +Licensee may retain and exploit such copies of the Licensed Software as it may +reasonably require in providing continued support to Customers. + +Expiry or termination of this Agreement for any reason whatsoever shall not +relieve Licensee of its obligation to pay any License Fees accrued or payable +to The Qt Company prior to the effective date of termination, and Licensee shall +immediately pay to The Qt Company all such fees upon the effective date of +termination. Termination of this Agreement shall not affect any rights of +Customers to continue use of Applications and Devices (and therein incorporated +Redistributables). + +13.GOVERNING LAW AND LEGAL VENUE + +In the event this Agreement is in the name of The Qt Company Inc., a Delaware +Corporation, then: + +(i) this Agreement shall be construed and interpreted in accordance with the +laws of the State of California, USA, excluding its choice of law provisions; + +(ii) the United Nations Convention on Contracts for the International Sale of +Goods will not apply to this Agreement; and + +(iii) any dispute, claim or controversy arising out of or relating to this +Agreement or the breach, termination, enforcement, interpretation or validity +thereof, including the determination of the scope or applicability of this +Agreement to arbitrate, shall be determined by arbitration in San Francisco, +USA, before one arbitrator. The arbitration shall be administered by JAMS +pursuant to JAMS' Streamlined Arbitration Rules and Procedures. Judgment on the +Award may be entered in any court having jurisdiction. This Section shall not +preclude parties from seeking provisional remedies in aid of arbitration from a +court of appropriate jurisdiction. + +In the event this Agreement is in the name of The Qt Company Ltd., a Finnish +Company, then: + +(i) this Agreement shall be construed and interpreted in accordance with the +laws of Finland, excluding its choice of law provisions; + +(ii) the United Nations Convention on Contracts for the International Sale of +Goods will not apply to this Agreement; and + +(iii) any disputes, controversy or claim arising out of or relating to this +Agreement, or the breach, termination or validity thereof shall be shall be +finally settled by arbitration in accordance with the Arbitration Rules of +Finland Chamber of Commerce. The arbitration tribunal shall consist of one (1), +or if either Party so requires, of three (3), arbitrators. The award shall be +final and binding and enforceable in any court of competent jurisdiction. The +arbitration shall be held in Helsinki, Finland and the process shall be +conducted in the English language. This Section shall not preclude parties from +seeking provisional remedies in aid of arbitration from a court of appropriate +jurisdiction. + +14. GENERAL PROVISIONS + +14.1 No Assignment Licensee + +shall not be entitled to assign or transfer all or any of its rights, benefits +and obligations under this Agreement without the prior written consent of The Qt +Company, which shall not be unreasonably withheld or delayed. The Qt Company +shall be entitled to freely assign or transfer any of its rights, benefits or +obligations under this Agreement. + +14.2 No Third Party Representations + +Licensee shall make no representations or warranties concerning the Licensed +Software on behalf of The Qt Company. Any representation or warranty Licensee +makes or purports to make on The Qt Company's behalf shall be void as to The Qt +Company. + +14.3 Surviving Sections + +Any terms and conditions that by their nature or otherwise reasonably should +survive termination of this Agreement shall so be deemed to survive. + +14.4 Entire Agreement + +This Agreement, the exhibits hereto, the License Certificate and any applicable +Purchase Order constitute the complete agreement between the Parties and +supersedes all prior or contemporaneous discussions, representations, and +proposals, written or oral, with respect to the subject matters discussed +herein. In the event of any conflict or inconsistency between this Agreement and +any Purchase Order, the terms of this Agreement will prevail over the terms of +the Purchase Order with respect to such conflict or inconsistency. + +14.5 Modifications + +No modification of this Agreement shall be effective unless contained in a +writing executed by an authorized representative of each Party. No term or +condition contained in Licensee's Purchase Order shall apply unless expressly +accepted by The Qt Company in writing. + +14.6 Force Majeure + +Except for the payment obligations hereunder, neither Party shall be liable to +the other for any delay or non-performance of its obligations hereunder in the +event and to the extent that such delay or non- performance is due to an event +of act of God, terrorist attack or other similar unforeseeable catastrophic +event that prevents either Party for fulfilling its obligations under this +Agreement and which such Party cannot avoid or circumvent ("Force Majeure +Event"). If the Force Majeure Event results in a delay or non- performance of a +Party for a period of three (3) months or longer, then either Party shall have +the right to terminate this Agreement with immediate effect without any +liability (except for the obligations of payment arising prior to the event of +Force Majeure) towards the other Party. + +14.7 Notices + +Any notice given by one Party to the other shall be deemed properly given and +deemed received if specifically acknowledged by the receiving Party in writing +or when successfully delivered to the recipient by hand, fax, or special courier +during normal business hours on a business day to the addresses specified for +The Qt Company in the beginning of this Agreement, and for the Licensee in the +Licensee’s account profile. Each communication and document made or delivered by +one Party to the other Party pursuant to this Agreement shall be in the English +language. + +14.8 Export Control +Licensee acknowledges that the Redistributables may be subject to export +control restrictions under the applicable laws of respective countries. +Licensee shall fully comply with all applicable export license restrictions +and requirements as well as with all lawses hereunder and shall procure all +necessary governmental authorizations, including without limitation, all +necessary licenses, approvals, permissions or consents, where necessary for +the re- exportation of the Redistributables, Applications +and/or Devices. + +14.9 No Implied License +There are no implied licenses or other implied rights granted under this +Agreement, and all rights, save for those expressly granted hereunder, shall +remain with The Qt Company and its licensors. In addition, no licenses or +immunities are granted to the combination of the Licensed Software with any +other software or hardware not delivered by The Qt Company under this Agreement. + +14.10 Attorney Fees + +The prevailing Party in any action to enforce this Agreement shall be entitled +to recover its attorney's fees and costs in connection with such action. + +14.11 Severability + +If any provision of this Agreement shall be adjudged by any court of competent +jurisdiction to be unenforceable or invalid, that provision shall be limited or +eliminated to the minimum extent necessary so that this Agreement shall +otherwise remain in full force and effect and enforceable. + +IN WITNESS WHEREOF, the Parties hereto, intending to be legally bound hereby, +have caused this Agreement to be executed by Licensee’s authorized +representative installing the Licensed Software and accepting the terms hereof +in connection therewith. + +Appendix 1 + +1. Parts of the Licensed Software that are permitted for distribution in object +code form only ("Redistributables") under this Agreement: + +- The Licensed Software's essential and add-on libraries + +- The Licensed Software's configuration tool ("qtconfig") + +- The Licensed Software's help tool ("Qt Assistant") + +- The Licensed Software's internationalization tools ("Qt Linguist", "lupdate", +"lrelease") + +- The Licensed Software's QML ("Qt Quick") launcher tool ("qmlscene" and +"qmlviewer") + +- The Licensed Software's installer framework + +2. Parts of the Licensed Software that are not permitted for distribution +include, but are not limited to: + +- The Licensed Software's source code and header files + +- The Licensed Software's documentation + +- The Licensed Software's documentation generation tool ("qdoc") + +- The Licensed Software's tool for writing makefiles ("qmake") + +- The Licensed Software's Meta Object Compiler ("moc") + +- The Licensed Software's User Interface Compiler ("uic" or in the case of Qt Jambi: "juic") + +- The Licensed Software's Resource Compiler ("rcc") + +- The Licensed Software's generator (only in the case of Qt Jambi if applicable) + +- The Licensed Software's parts of the IDE tool ("Qt Creator") + +- The Licensed Software's Emulator + +- Build scripts, recipes and other material for creating the +configuration of Licensed Software and/or 3rd party components, including the +reference operating system configuration delivered in conjunction with the diff -Nru qtlocation-opensource-src-5.9.5+dfsg/.QT-FOR-DEVICE-CREATION-LICENSE-AGREEMENT qtlocation-opensource-src-5.11.1+dfsg/.QT-FOR-DEVICE-CREATION-LICENSE-AGREEMENT --- qtlocation-opensource-src-5.9.5+dfsg/.QT-FOR-DEVICE-CREATION-LICENSE-AGREEMENT 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/.QT-FOR-DEVICE-CREATION-LICENSE-AGREEMENT 2018-06-18 07:43:57.000000000 +0000 @@ -0,0 +1,912 @@ +QT LICENSE AGREEMENT Agreement version 4.0 + +This License Agreement (“Agreement”) is a legal agreement between The Qt +Company (as defined below) and the Licensee (as defined below) for the license +of Licensed Software (as defined below). Capitalized terms used herein are +defined in Section 1. + +WHEREAS: + +(A). Licensee wishes to use the Licensed Software for the purpose of developing +and distributing Applications and/or Devices; and + +(B). The Qt Company is willing to grant the Licensee a right to use Licensed +Software for such purpose pursuant to term and conditions of this Agreement. + +NOW, THEREFORE, THE PARTIES HEREBY AGREE AS FOLLOWS: + +1. DEFINITIONS + +“Affiliate” of a Party shall mean an entity (i) which is directly or indirectly +controlling such Party; (ii) which is under the same direct or indirect +ownership or control as such Party; or (iii) which is directly or indirectly +owned or controlled by such Party. For these purposes, an entity shall be +treated as being controlled by another if that other entity has fifty percent +(50 %) or more of the votes in such entity, is able to direct its affairs +and/or to control the composition of its board of directors or equivalent body. + +“Applications” shall mean Licensee's software products created using the +Licensed Software, which may include the Redistributables, or part +thereof. + +“Contractor(s)” shall mean third party consultants, distributors and +contractors performing services to a Party under applicable contractual +arrangement. + +“Customer(s)” shall mean Licensee’s end users to whom Licensee, directly or +indirectly, distributes copies of the Redistributables. + +“Deployment Platforms” shall mean operating systems specified in the License +Certificate, in which the Redistributables can be distributed pursuant to the +terms and conditions of this Agreement. + +“Designated User(s)” shall mean the employee(s) of Licensee or Licensee’s +Affiliates acting within the scope of their employment or Licensee's +Contractors acting within the scope of their services for Licensee and on +behalf of Licensee. Designated Users shall be named in the License Certificate. + +“Development License” shall mean the license needed by the Licensee for each +Designated User to use the Licensed Software under the license grant described +in Section 3.1 of this Agreement. + +“Development Platforms” shall mean those operating systems specified in the +License Certificate, in which the Licensed Software can be used under the +Development License, but not distributed in any form or used for any other +purpose. + +“Devices” shall mean hardware devices or products that 1) are manufactured +and/or distributed by the Licensee or its Affiliates or Contractors, and +(2)(i) incorporate or integrate the Redistributables or parts thereof; or (ii) +do not incorporate or integrate the Redistributables at the time of +distribution, but where, when used by a Customer, the main user interface or +substantial functionality of such device is provided by Application(s) or +otherwise depends on the Licensed Software. + +“Distribution License(s)” shall mean the license required for distribution of +Redistributables in connection with Devices pursuant to license grant described +in Section 3.3 of this Agreement. + +“Distribution License Packs” shall mean set of prepaid Distribution Licenses +for distribution of Redistributables, as defined in The Qt Company’s standard +price list, quote, Purchase Order confirmation or in an appendix hereto, +as the case may be. + +“Intellectual Property Rights” shall mean patents (including utility models), +design patents, and designs (whether or not capable of registration), chip +topography rights and other like protection, copyrights, trademarks, service +marks, trade names, logos or other words or symbols and any other form of +statutory protection of any kind and applications for any of the foregoing as +well as any trade secrets. + +“License Certificate” shall mean a certificate generated by The Qt Company for +each Designated User respectively upon them downloading the licensed Software. +License Certificate will be available under respective Designated User’s Qt +Account at account.qt.io and it will specify the Designated User, the +Development Platforms, Deployment Platforms and the License Term. The terms of +the License Certificate are considered part of this Agreement and shall be +updated from time to time to reflect any agreed changes to the foregoing terms +relating to Designated User’s rights to the Licensed Software. + +“License Fee” shall mean the fee charged to the Licensee for rights granted +under the terms of this Agreement. + +“License Term” shall mean the agreed validity period of the Development +License of the respective Designated User, during which time the +Designated User is entitled to use the Licensed Software, as set forth in the +respective License Certificate. + +“Licensed Software” shall mean all versions of the + +(i) Qt Toolkit (including Qt Essentials, Qt Add-Ons and Value-Add modules) as +described in http://doc.qt.io/qt-5/qtmodules.html, + +(ii) Qt Creator (including Creator IDE tool) as described in +http://doc.qt.io/qtcreator/index.html, + +(iii) Qt 3D Studio as described in http://doc.qt.io/qt3dstudio/index.html, and + +as well as corresponding online or electronic documentation, associated media +and printed materials, including the source code, example programs and the +documentation, licensed to the Licensee under this Agreement. Licensed Software +does not include Third Party Software (as defined in Section 4), Open Source +Qt, or other software products of The Qt Company (for example Qt Safe Renderer +and Qt for Automation), unless such other software products of The Qt Company +are separately agreed in writing to be included in scope of the Licensed +Software. + +“Licensee” shall mean the individual or legal entity that is party to this +Agreement, as identified on the signature page hereof. + +“Licensee’s Records” shall mean books and records that are likely to contain +information bearing on Licensee’s compliance with this Agreement or the +payments due to The Qt Company under this Agreement, including, but not limited +to: assembly logs, sales records and distribution records. + +“Modified Software” shall have the meaning as set forth in Section 2.3. + +“Online Services” shall mean any services or access to systems made available +by The Qt Company to the Licensee over the Internet relating to the Licensed +Software or for the purpose of use by the Licensee of the Licensed Software or +Support. Use of any such Online Services is discretionary for the Licensee and +some of them may be subject to additional fees. + +“Open Source Qt” shall mean the non-commercial Qt computer software products, +licensed under the terms of the GNU Lesser General Public License, version +2.1 or later (“LGPL”) or the GNU General Public License, version 2.0 or later +(“GPL”). For clarity, Open Source Qt shall not be provided nor governed under +this Agreement. + +”Party” or “Parties” shall mean Licensee and/or The Qt Company. + +"Redistributables" shall mean the portions of the Licensed Software set forth +in Appendix 1, Section 1 that may be distributed pursuant to the terms of this +Agreement in object code form only, including any relevant documentation. +Where relevant, any reference to Licensed Software in this Agreement shall +include and refer also to Redistributables. + +“Renewal Term” shall mean an extension of previous License Term as agreed +between the Parties. + +“Submitted Modified Software” shall have the meaning as set forth in +Section 2.3. + +“Support” shall mean standard developer support that is provided by The Qt +Company to assist Designated Users in using the Licensed Software in +accordance with The Qt Company’s standard support terms and as further +defined in Section 8 hereunder. + +“Taxes” shall have the meaning set forth in Section 10.5. + +“Term” shall have the meaning set forth in Section 12. + +“The Qt Company” shall mean: + +(i) in the event Licensee is an individual residing in the United States or a +legal entity incorporated in the United States or having its headquarters in +the United States, The Qt Company Inc., a Delaware corporation with its office +at 2350 Mission College Blvd., Suite 1020, Santa Clara, CA 95054, USA.; or + +(ii) in the event the Licensee is an individual residing outside of the United +States or a legal entity incorporated outside of the United States or having +its registered office outside of the United States, The Qt Company Ltd., a +Finnish company with its registered office at Bertel Jungin aukio D3A, 02600 +Espoo, Finland. + +"Third Party Software " shall have the meaning set forth in Section 4. + +“Updates” shall mean a release or version of the Licensed Software containing +bug fixes, error corrections and other changes that are generally made +available to users of the Licensed Software that have contracted for Support. +Updates are generally depicted as a change to the digits following the decimal +in the Licensed Software version number. The Qt Company shall make Updates +available to the Licensee under the Support. Updates shall be considered as +part of the Licensed Software hereunder. + +“Upgrades” shall mean a release or version of the Licensed Software containing +enhancements and new features and are generally depicted as a change to the +first digit of the Licensed Software version number. In the event Upgrades are +provided to the Licensee under this Agreement, they shall be considered as +part of the Licensed Software hereunder. + +2. OWNERSHIP + +2.1 Ownership of The Qt Company + +The Licensed Software is protected by copyright laws and international +copyright treaties, as well as other intellectual property laws and treaties. +The Licensed Software is licensed, not sold. + +All The Qt Company's Intellectual Property Rights are and shall remain the +exclusive property of The Qt Company or its licensors respectively. + +2.2 Ownership of Licensee + +All the Licensee's Intellectual Property Rights are and shall remain the +exclusive property of the Licensee or its licensors respectively. + +All Intellectual Property Rights to the Modified Software, Applications and +Devices shall remain with the Licensee and no rights thereto shall be granted +by the Licensee to The Qt Company under this Agreement (except as set forth in +Section 2.3 below). + +2.3 Modified Software + +Licensee may create bug-fixes, error corrections, patches or modifications to +the Licensed Software (“Modified Software”). Such Modified Software may break +the source or binary compatibility with the Licensed Software (including +without limitation through changing the application programming interfaces +("API") or by adding, changing or deleting any variable, method, or class +signature in the Licensed Software and/or any inter-process protocols, services +or standards in the Licensed Software libraries). To the extent that Licensee’s +Modified Software so breaks source or binary compatibility with the Licensed +Software, Licensee acknowledges that The Qt Company's ability to provide +Support may be prevented or limited and Licensee's ability to make use of +Updates may be restricted. + +Licensee may, at its sole and absolute discretion, choose to submit Modified +Software to The Qt Company (“Submitted Modified Software”) in connection with +Licensee’s Support request, service request or otherwise. In the event Licensee +does so, then, Licensee hereby grants The Qt Company a sublicensable, +assignable, irrevocable, perpetual, worldwide, non-exclusive, royalty-free and +fully paid-up license, under all of Licensee’s Intellectual Property Rights, to +reproduce, adapt, translate, modify, and prepare derivative works of, publicly +display, publicly perform, sublicense, make available and distribute such +Submitted Modified Software as The Qt Company sees fit at its free and absolute +discretion. + +3. LICENSES GRANTED + +3.1 Development with Licensed Software + +Subject to the terms of this Agreement, The Qt Company grants to Licensee a +personal, worldwide, non-exclusive, non-transferable license, valid for the +License Term, to use, modify and copy the Licensed Software by Designated Users +on the Development Platforms for the sole purposes of designing, developing, +demonstrating and testing Application(s) and/or Devices, and to provide thereto +related support and other related services to end-user Customers. + +Licensee may install copies of the Licensed Software on an unlimited number of +computers provided that (i) only the Designated Users may use the Licensed +Software, and (ii) all Designated Users must have a valid Development License +to use Licensed Software. + +Licensee may at any time designate another Designated User to replace a then- +current Designated User by notifying The Qt Company in writing, provided that +any Designated User may be replaced only once during any six-month period. + +Upon expiry of the initially agreed License Term, the respective License Terms +shall be automatically extended to one or more Renewal Term(s), unless and +until either Party notifies the other Party in writing that it does not wish to +continue the License Term, such notification to be provided to the other Party +no less than ninety (90) days before expiry of the respective License Term. +Unless otherwise agreed between the Parties, Renewal Term shall be of equal +length with the initial Term. + +Any such Renewal Term shall be subject to License Fees agreed between the +Parties or, if no advance agreement exists, subject to The Qt Company’s +standard pricing applicable at the commencement date of any such Renewal Term. + +3.2 Distribution of Applications + +Subject to the terms of this Agreement, The Qt Company grants to Licensee a +personal, worldwide, non-exclusive, non-transferable, revocable (for cause +pursuant to this Agreement) right and license, valid for the Term, to + +(i) distribute, by itself or through its Contractors, Redistributables as +installed, incorporated or integrated into Applications for execution on the +Deployment Platforms, and + +(ii) grant sublicenses to Redistributables, as distributed hereunder, for +Customers solely for Customer’s internal use and to the extent necessary in +order for the Customers to use the Applications for their respective intended +purposes. + +Right to distribute the Redistributables as part of an Application as provided +herein is not royalty-bearing but is conditional upon the Licensee having paid +the agreed Development Licenses from The Qt Company before distributing any +Redistributables to Customers. + +3.3 Distribution of Devices + +Subject to the terms of this Agreement, The Qt Company grants to Licensee a +personal, worldwide, non-exclusive, non-transferable, revocable (for cause +pursuant to this Agreement) right and license, valid for the Term, to + +(i) distribute, by itself or through one or more tiers of Contractors, +Redistributables as installed, incorporated or integrated, or intended to be +installed, incorporated or integrated into Devices for execution on the +Deployment Platforms, and + +(ii) grant sublicenses to Redistributables, as distributed hereunder, for +Customers solely for Customer’s internal use and to the extent necessary in +order for the Customers to use the Devices for their respective intended +purposes. + +Right to distribute the Redistributables with Devices as provided herein is +conditional upon the Licensee having purchased and paid the appropriate amount +of Development and Distribution Licenses from The Qt Company before +distributing any Redistributables to Customers. + +3.4 Further Requirements + +The licenses granted above in this Section 3 by The Qt Company to Licensee are +conditional and subject to Licensee's compliance with the following terms: + +(i) Licensee shall not remove or alter any copyright, trademark or other +proprietary rights notice contained in any portion of the Licensed Software; + +(ii) Applications must add primary and substantial functionality to the +Licensed Software; + +(iii) Applications may not pass on functionality which in any way makes it +possible for others to create software with the Licensed Software; provided +however that Licensee may use the Licensed Software's scripting and QML ("Qt +Quick") functionality solely in order to enable scripting, themes and styles +that augment the functionality and appearance of the Application(s) without +adding primary and substantial functionality to the Application(s); + +(iv) Applications must not compete with the Licensed Software; + +(v) Licensee shall not use The Qt Company's or any of its suppliers' names, +logos, or trademarks to market Applications, except that Licensee may use +“Built with Qt” logo to indicate that Application(s) was developed using the +Licensed Software; + +(vi) Licensee shall not distribute, sublicense or disclose source code of +Licensed Software to any third party (provided however that Licensee may +appoint employee(s) of Contractors as Designated Users to use Licensed +Software pursuant to this Agreement). Such right may be available for the +Licensee subject to a separate software development kit (“SDK”) license +agreement to be concluded with The Qt Company; + +(vii) Licensee shall not grant the Customers a right to (i) make copies of the +Redistributables except when and to the extent required to use the Applications +and/or Devices for their intended purpose, (ii) modify the Redistributables or +create derivative works thereof, (iii) decompile, disassemble or otherwise +reverse engineer Redistributables, or (iv) redistribute any copy or portion of +the Redistributables to any third party, except as part of the onward sale of +the Device on which the Redistributables are installed; + +(viii) Licensee shall not and shall cause that its Affiliates or Contractors +shall not a) in any way combine, incorporate or integrate Licensed Software +with, or use Licensed Software for creation of, any software created with or +incorporating Open Source Qt, or b) incorporate or integrate Applications +into a hardware device or product other than a Device, unless Licensee has +received an advance written permission from The Qt Company to do so. Absent +such written permission, any and all distribution by the Licensee during the +Term of a hardware device or product a) which incorporate or integrate any +part of Licensed Software or Open Source Qt; or b) where the main user +interface or substantial functionality is provided by software build with +Licensed Software or Open Source Qt or otherwise depends on the Licensed +Software or Open Source Qt, shall be considered as a Device distribution under +this Agreement and dependent on compliance thereof (including but not limited +to obligation to pay applicable License Fees for such distribution); + +(ix) Licensee shall cause all of its Affiliates and Contractors entitled to +make use of the licenses granted under this Agreement, to be contractually +bound to comply with the relevant terms of this Agreement and not to use the +Licensed Software beyond the terms hereof and for any purposes other than +operating within the scope of their services for Licensee. Licensee shall be +responsible for any and all actions and omissions of its Affiliates and +Contractors relating to the Licensed Software and use thereof (including but +not limited to payment of all applicable License Fees); + +(x) Except when and to the extent explicitly provided in this Section 3, +Licensee shall not transfer, publish, disclose, display or otherwise make +available the Licensed Software; + +; and + +(xi) Licensee shall not attempt or enlist a third party to conduct or attempt +to conduct any of the above. + +Above terms shall not be applicable if and to the extent they conflict with any +mandatory provisions of any applicable laws. + +Any use of Licensed Software beyond the provisions of this Agreement is +strictly prohibited and requires an additional license from The Qt Company. + +4. THIRD PARTY SOFTWARE + +The Licensed Software may provide links to third party libraries or code +(collectively "Third Party Software") to implement various functions. Third +Party Software does not comprise part of the Licensed Software. In some cases, +access to Third Party Software may be included in the Licensed Software. Such +Third Party Software will be listed in the ".../src/3rdparty" source tree +delivered with the Licensed Software or documented in the Licensed Software, as +such may be amended from time to time. Licensee acknowledges that use or +distribution of Third Party Software is in all respects subject to applicable +license terms of applicable third party right holders. + +5. PRE-RELEASE CODE + +The Licensed Software may contain pre-release code and functionality marked or +otherwise stated as “Technology Preview”, “Alpha”, “Beta” or similar +designation. Such pre-release code may be present in order to provide +experimental support for new platforms or preliminary versions of one or more +new functionalities. The pre-release code may not be at the level of +performance and compatibility of a final, generally available, product +offering of the Licensed Software. The pre-release parts of the Licensed +Software may not operate correctly, may contain errors and may be substantially +modified by The Qt Company prior to the first commercial product release, if +any. The Qt Company is under no obligation to make pre-release code +commercially available, or provide any Support or Updates relating thereto. The +Qt Company assumes no liability whatsoever regarding any pre-release code, but +any use thereof is exclusively at Licensee’s own risk and expense. + +6. LIMITED WARRANTY AND WARRANTY DISCLAIMER + +The Qt Company hereby represents and warrants that it has the power and +authority to grant the rights and licenses granted to Licensee under this +Agreement. + +Except as set forth above, the Licensed Software is licensed to Licensee +"as is" and Licensee’s exclusive remedy and The Qt Company’s entire liability +for errors in the Licensed Software shall be limited, at The Qt Company’s +option, to correction of the error, replacement of the Licensed Software or +return of the applicable fees paid for the defective Licensed Software for the +time period during which the License is not able to utilize the Licensed +Software under the terms of this Agreement. + +TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE QT COMPANY ON BEHALF OF +ITSELF AND ITS LICENSORS, SUPPLIERS AND AFFILIATES, DISCLAIMS ALL OTHER +WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON- +INFRINGEMENT WITH REGARD TO THE LICENSED SOFTWARE. THE QT COMPANY DOES NOT +WARRANT THAT THE LICENSED SOFTWARE WILL SATISFY LICENSEE’S REQUIREMENTS OR THAT +IT WILL OPERATE WITHOUT DEFECT OR ERROR OR THAT THE OPERATION THEREOF WILL BE +UNINTERRUPTED. ALL USE OF AND RELIANCE ON THE LICENSED SOFTWARE IS AT THE SOLE +RISK OF AND RESPONSIBILITY OF LICENSEE. + +7. INDEMNIFICATION AND LIMITATION OF LIABILITY + +7.1 Limitation of Liability + +EXCEPT FOR (I) CASES OF GROSS NEGLIGENCE OR INTENTIONAL MISCONDUCT, AND (II) +BREACH OF CONFIDENTIALITY, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, IN NO +EVENT SHALL EITHER PARTY BE LIABLE TO THE OTHER PARTY FOR ANY LOSS OF PROFIT, +LOSS OF DATA, LOSS OF BUSINESS OR GOODWILL OR ANY OTHER INDIRECT, SPECIAL, +CONSEQUENTIAL, INCIDENTAL OR PUNITIVE COST, DAMAGES OR EXPENSE OF ANY KIND, +HOWSOEVER ARISING UNDER OR IN CONNECTION WITH THIS AGREEMENT. PARTIES +SPECIFICALLY AGREE THAT LICENSEE’S OBLIGATION TO PAY LICENSE AND OTHER FEES +CORRESPONDING TO ACTUAL USAGE OF LICENSED SOFTWARE HEREUNDER SHALL BE +CONSIDERED AS A DIRECT DAMAGE. + +EXCEPT FOR (I) CASES OF GROSS NEGLIGENCE OR INTENTIONAL MISCONDUCT, AND (II) +BREACH OF CONFIDENTIALITY, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, IN +NO EVENT SHALL EITHER PARTY’S TOTAL AGGREGATE LIABILITY UNDER THIS AGREEMENT +EXCEED THE AGGREGATE LICENSE FEES PAID OR PAYABLE TO THE QT COMPANY FROM +LICENSEE DURING THE PERIOD OF TWELVE (12) MONTHS IMMEDIATELY PRECEDING THE +EVENT RESULTING IN SUCH LIABILITY. + +THE PROVISIONS OF THIS SECTION 7 ALLOCATE THE RISKS UNDER THIS AGREEMENT +BETWEEN THE QT COMPANY AND LICENSEE AND THE PARTIES HAVE RELIED UPON THE +LIMITATIONS SET FORTH HEREIN IN DETERMINING WHETHER TO ENTER INTO THIS AGREEMENT. + +7.2 Licensee´s Indemnification + +Licensee shall indemnify and hold harmless The Qt Company from and against any +claim, injury, judgment, settlement, loss or expense, including attorneys' fees +related to: (a) Licensee’s misrepresentation in connection with The Qt Company +or the Licensed Software or breach of this Agreement, (b) the Application or +Device (except where such cause of liability is solely attributable to the +Licensed Software). + +8. SUPPORT, UPDATES AND ONLINE SERVICES + +Upon due payment of the agreed License Fees the Licensee will be eligible to +receive Support and Updates and to use the Online Services during the License +Term, provided, however, that in the event the License Term is longer than 36 +months, Support is provided only for the first 12 months, unless the Parties +specifically otherwise agree. + +Unless otherwise decided by The Company at its free and absolute discretion, +Upgrades will not be included in the Support but may be available subject to +additional fees. + +From time to time The Qt Company may change the Support terms, provided that +during the respective ongoing License Term the level of Support provided by The +Qt Company may not be reduced without the consent of the Licensee. + +Unless otherwise agreed, The Qt Company shall not be responsible for providing +any service or support to Customers. + +9. CONFIDENTIALITY + +Each Party acknowledges that during the Term of this Agreement each Party may +receive information about the other Party's business, business methods, +business plans, customers, business relations, technology, and other +information, including the terms of this Agreement, that is confidential and +of great value to the other Party, and the value of which would be +significantly reduced if disclosed to third parties (“Confidential +Information”). Accordingly, when a Party (the “Receiving Party”) receives +Confidential Information from the other Party (the “Disclosing Party”), the +Receiving Party shall only disclose such information to employees and +Contractors on a need to know basis, and shall cause its employees and +employees of its Affiliates to: (i) maintain any and all Confidential +Information in confidence; (ii) not disclose the Confidential Information to a +third party without the Disclosing Party's prior written approval; and (iii) +not, directly or indirectly, use the Confidential Information for any purpose +other than for exercising its rights and fulfilling its responsibilities +pursuant to this Agreement. Each Party shall take reasonable measures to +protect the Confidential Information of the other Party, which measures shall +not be less than the measures taken by such Party to protect its own +confidential and proprietary information. + +Obligation of confidentiality shall not apply to information that (i) is or +becomes generally known to the public through no act or omission of the +Receiving Party; (ii) was in the Receiving Party's lawful possession prior to +the disclosure hereunder and was not subject to limitations on disclosure or +use; (iii) is developed independently by employees or Contractors of the +Receiving Party or other persons working for the Receiving Party who have not +had access to the Confidential Information of the Disclosing Party, as proven +by the written records of the Receiving Party; (iv) is lawfully disclosed to +the Receiving Party without restrictions, by a third party not under an +obligation of confidentiality; or (v) the Receiving Party is legally compelled +to disclose, in which case the Receiving Party shall notify the Disclosing +Party of such compelled disclosure and assert the privileged and confidential +nature of the information and cooperate fully with the Disclosing Party to +limit the scope of disclosure and the dissemination of disclosed Confidential +Information to the minimum extent necessary. + +The obligations under this Section 9 shall continue to remain in force for a +period of five (5) years after the last disclosure, and, with respect to trade +secrets, for so long as such trade secrets are protected under applicable trade +secret laws. + +10. FEES, DELIVERY AND PAYMENT + +10.1 License Fees + +License Fees are described in The Qt Company’s standard price list, quote or +Purchase Order confirmation or in an appendix hereto, as the case may be. + +The License Fees shall not be refunded or claimed as a credit in any event or +for any reason whatsoever. + +10.2 Ordering Licenses + +Licensee may purchase Development Licenses and Distribution Licenses pursuant +to agreed pricing terms or, if no specific pricing terms have been agreed upon, +at The Qt Company's standard pricing terms applicable at the time of purchase. + +Licensee shall submit all purchase orders for Development Licenses and +Distribution Licenses to The Qt Company by email or any other method acceptable +to The Qt Company (each such order is referred to herein as a “Purchase Order”) +for confirmation, whereupon the Purchase Order shall become binding between the +Parties. + +10.3 Distribution License Packs + +Unless otherwise agreed, Distribution Licenses shall be purchased by way of +Distribution License Packs. + +Upon due payment of the ordered Distribution License Pack(s), the Licensee will +have an account of Distribution Licenses available for installing, bundling or +integrating (all jointly “installing”) the Redistributables with the Devices or +for otherwise distributing the Redistributables in accordance with this +Agreement. + +Each time Licensee “installs” or distributes a copy of Redistributables, then +one Distribution License is used, and Licensee’s account of available +Distribution Licenses is decreased accordingly. + +Licensee may “install” copies of the Redistributables so long as Licensee has +Distribution Licenses remaining on its account. + +Redistributables will be deemed to have been “installed” into a Device when one +of the following circumstances shall have occurred: a) the Redistributables +have been loaded onto the Device and used outside of the Licensee’s premises or +b) the Device has been fully tested and placed into Licensee's inventory +(or sold) for the first time (i.e., Licensee will not be required to use +(or pay for) more than one Distribution License for each individual Device, +e.g. in a situation where a Device is returned to Licensee's inventory after +delivery to a distributor or sale to a Customer). In addition, if Licensee +includes a back-up copy of the Redistributables on a CD-ROM or other storage +medium along with the product, that backup copy of the Redistributables will +not be deemed to have been “installed” and will not require an additional +Distribution License. + +10.4 Payment Terms + +License Fees and any other charges under this Agreement shall be paid by +Licensee no later than thirty (30) days from the date of the applicable invoice +from The Qt Company. + +The Qt Company will submit an invoice to Licensee after the date of this +Agreement and/or after The Qt Company receives a Purchase Order from +Licensee. + +A late payment charge of the lower of (a) one percent per month; or (b) the +interest rate stipulated by applicable law, shall be charged on any unpaid +balances that remain past due. + +The Qt Company shall have the right to suspend, terminate or withhold grants +of all rights to the Licensed Software hereunder, including but not limited to +the Developer License, Distribution License, and Support, should Licensee fail +to make payment in timely fashion. + +10.5 Taxes + +All License Fees and other charges payable hereunder are gross amounts but +exclusive of any value added tax, use tax, sales tax and other taxes, duties or +tariffs (“Taxes”). Such applicable Taxes shall be paid by Licensee, or, where +applicable, in lieu of payment of such Taxes, Licensee shall provide an +exemption certificate to The Qt Company and any applicable authority. + +11 RECORD-KEEPING AND REPORTING OBLIGATIONS; AUDIT RIGHTS + +11.1 Licensee’s Record-keeping + +Licensee shall at all times maintain accurate and up-to-date written records of +Licensee’s activities related to the use of Licensed Software and distribution +of Redistributables. The records shall be adequate to determine Licensee’s +compliance with the provisions of this Agreement and to demonstrate the number +of Designated Users and Redistributables distributed by Licensee. The records +shall conform to good accounting practices reasonably acceptable to The Qt +Company. + +Licensee shall, within thirty (30) days from receiving The Qt Company’s request +to that effect, deliver to The Qt Company a report on Licensee’s usage of +Licensed Software, such report to copies of Redistributables distributed by +Licensee during that calendar quarter, and also detailing the number of +undistributed copies of Redistributables made by Licensee and remaining in its +account contain information, in sufficient detail, on (i) amount of users +working with Licensed Software, (ii) copies of Redistributables distributed by +Licensee during that calendar quarter, (iii) number of undistributed copies of +Redistributables and corresponding number of unused Distribution Licenses +remaining on Licensee’s account, and (iv) any other information as The Qt +Company may reasonably require from time to time. + +11.2. The Qt Company’s Audit Rights + +The Qt Company or an independent auditor acting on behalf of The Qt Company’s, +may, upon at least five (5) business days’ prior written notice and at its +expense, audit Licensee with respect to the use of the Redistributables, but +not more frequently than once during each 6-month period. Such audit may be +conducted by mail, electronic means or through an in-person visit to Licensee’s +place of business. Any such in-person audit shall be conducted during regular +business hours at Licensee's facilities and shall not unreasonably interfere +with Licensee's business activities. The Qt Company or the independent auditor +acting on behalf of The Qt Company shall be entitled to inspect Licensee’s +Records. All such Licensee’s Records and use thereof shall be subject to an +obligation of confidentiality under this Agreement. + +If an audit reveals that Licensee is using the Licensed Software beyond scope +of the licenses Licensee has paid for, Licensee agrees to immediately pay The +Qt Company any amounts owed for such unauthorized use. + +In addition, in the event the audit reveals a material violation of the terms +of this Agreement (underpayment of more than 5% of License Fees shall always be +deemed a material violation for purposes of this section), then the Licensee +shall pay The Qt Company's reasonable cost of conducting such audit. + +12 TERM AND TERMINATION + +12.1 Term + +This Agreement shall enter into force upon due acceptance by both Parties and +remain in force for as long as there is any Development License(s) in force +(“Term”), unless and until terminated pursuant to the terms of this Section 12. + +12.2 Termination by The Qt Company + +The Qt Company shall have the right to terminate this Agreement upon thirty +(30) days prior written notice if the Licensee is in material breach of any +obligation of this Agreement and fails to remedy such breach within such notice +period. + +12.3 Mutual Right to Terminate + +Either Party shall have the right to terminate this Agreement immediately upon +written notice in the event that the other Party becomes insolvent, files for +any form of bankruptcy, makes any assignment for the benefit of creditors, has +a receiver, administrative receiver or officer appointed over the whole or a +substantial part of its assets, ceases to conduct business, or an act +equivalent to any of the above occurs under the laws of the jurisdiction of the +other Party. + +12.4 Parties´ Rights and Duties upon Termination + +Upon expiry or termination of the Agreement Licensee shall cease and shall +cause all Designated Users (including those of its Affiliates’ and +Contractors’) to cease using the Licensed Software and distribution of the +Redistributables under this Agreement. + +Notwithstanding the above, in the event the Agreement expires or is terminated: + +(i) as a result of The Qt Company choosing not to renew the Development +License(s) as set forth in Section 3.1, then all valid licenses possessed by +the Licensee at such date shall be extended to be valid in perpetuity under the +terms of this Agreement and Licensee is entitled to purchase additional +licenses as set forth in Section 10.2; or + +(ii) for reason other than by The Qt Company pursuant to item (i) above or +pursuant to Section 12.2, then the Licensee is entitled, for a period of six +(6) months after the effective date of termination, to continue distribution of +Devices under the Distribution Licenses paid but unused at such effective date +of termination. + +Upon any such termination the Licensee shall destroy or return to The Qt +Company all copies of the Licensed Software and all related materials and will +certify the same to The Qt Company upon its request, provided however that +Licensee may retain and exploit such copies of the Licensed Software as it may +reasonably require in providing continued support to Customers. + +Expiry or termination of this Agreement for any reason whatsoever shall not +relieve Licensee of its obligation to pay any License Fees accrued or payable +to The Qt Company prior to the effective date of termination, and Licensee +shall immediately pay to The Qt Company all such fees upon the effective date +of termination. Termination of this Agreement shall not affect any rights of +Customers to continue use of Applications and Devices (and therein incorporated +Redistributables). + +12.5 Extension in case of bankruptcy + +In the event The Qt Company is declared bankrupt under a final, non-cancellable +decision by relevant court of law, and this Agreement is not, at the date of +expiry of the Development License(s) pursuant to Section 3.1, assigned to +party, who has assumed The Qt Company’s position as a legitimate licensor of +Licensed Software under this Agreement, then all valid licenses possessed by +the Licensee at such date of expiry, and which the Licensee has not notified +for expiry, shall be extended to be valid in perpetuity under the terms of +this Agreement. + +13. GOVERNING LAW AND LEGAL VENUE + +In the event this Agreement is in the name of The Qt Company Inc., a Delaware +Corporation, then: + +(i) this Agreement shall be construed and interpreted in accordance with the +laws of the State of California, USA, excluding its choice of law provisions; + +(ii) the United Nations Convention on Contracts for the International Sale of +Goods will not apply to this Agreement; and + +(iii) any dispute, claim or controversy arising out of or relating to this +Agreement or the breach, termination, enforcement, interpretation or validity +thereof, including the determination of the scope or applicability of this +Agreement to arbitrate, shall be determined by arbitration in San Francisco, +USA, before one arbitrator. The arbitration shall be administered by JAMS +pursuant to JAMS' Streamlined Arbitration Rules and Procedures. Judgment on the +Award may be entered in any court having jurisdiction. This Section shall not +preclude parties from seeking provisional remedies in aid of arbitration from a +court of appropriate jurisdiction. + +In the event this Agreement is in the name of The Qt Company Ltd., a Finnish +Company, then: + +(i) this Agreement shall be construed and interpreted in accordance with the +laws of Finland, excluding its choice of law provisions; + +(ii) the United Nations Convention on Contracts for the International Sale of +Goods will not apply to this Agreement; and + +(iii) any disputes, controversy or claim arising out of or relating to this +Agreement, or the breach, termination or validity thereof shall be shall be +finally settled by arbitration in accordance with the Arbitration Rules of +Finland Chamber of Commerce. The arbitration tribunal shall consist of one (1), +or if either Party so requires, of three (3), arbitrators. The award shall be +final and binding and enforceable in any court of competent jurisdiction. The +arbitration shall be held in Helsinki, Finland and the process shall be +conducted in the English language. This Section shall not preclude parties from +seeking provisional remedies in aid of arbitration from a court of appropriate +jurisdiction. + +14. GENERAL PROVISIONS + +14.1 No Assignment + +Except in the case of a merger or sale of substantially all of its corporate +assets, Licensee shall not be entitled to assign or transfer all or any of its +rights, benefits and obligations under this Agreement without the prior written +consent of The Qt Company, which shall not be unreasonably withheld or delayed. +The Qt Company shall be entitled to freely assign or transfer any of its +rights, benefits or obligations under this Agreement. + +14.2 No Third Party Representations + +Licensee shall make no representations or warranties concerning the Licensed +Software on behalf of The Qt Company. Any representation or warranty Licensee +makes or purports to make on The Qt Company’s behalf shall be void as to The +Qt Company. + +14.3 Surviving Sections + +Any terms and conditions that by their nature or otherwise reasonably should +survive termination of this Agreement shall so be deemed to survive. + +14.4 Entire Agreement + +This Agreement, the exhibits hereto, the License Certificate and any applicable +Purchase Order constitute the complete agreement between the Parties and +supersedes all prior or contemporaneous discussions, representations, and +proposals, written or oral, with respect to the subject matters discussed +herein. + +In the event of any conflict or inconsistency between this Agreement and any +Purchase Order, the terms of this Agreement will prevail over the terms of the +Purchase Order with respect to such conflict or inconsistency. + +Parties specifically acknowledge and agree that this Agreement prevails over +any click-to-accept or similar agreements the Designated Users may need to +accept online upon download of the Licensed Software, as may be required by +The Qt Company’s applicable processes relating to Licensed Software. + +14.5 Modifications + +No modification of this Agreement shall be effective unless contained in a +writing executed by an authorized representative of each Party. No term or +condition contained in Licensee's Purchase Order shall apply unless expressly +accepted by The Qt Company in writing. + +14.6 Force Majeure + +Except for the payment obligations hereunder, neither Party shall be liable to +the other for any delay or non-performance of its obligations hereunder in the +event and to the extent that such delay or non-performance is due to an event +of act of God, terrorist attack or other similar unforeseeable catastrophic +event that prevents either Party for fulfilling its obligations under this +Agreement and which such Party cannot avoid or circumvent (“Force Majeure +Event”). If the Force Majeure Event results in a delay or non-performance of a +Party for a period of three (3) months or longer, then either Party shall have +the right to terminate this Agreement with immediate effect without any +liability (except for the obligations of payment arising prior to the event of +Force Majeure) towards the other Party. + +14.7 Notices + +Any notice given by one Party to the other shall be deemed properly given and +deemed received if specifically acknowledged by the receiving Party in writing +or when successfully delivered to the recipient by hand, fax, or special +courier during normal business hours on a business day to the addresses +specified for each Party on the signature page. Each communication and document +made or delivered by one Party to the other Party pursuant to this Agreement +shall be in the English language. + +14.8 Export Control + +Licensee acknowledges that the Redistributables may be subject to export +control restrictions under the applicable laws of respective countries. +Licensee shall fully comply with all applicable export license restrictions +and requirements as well as with all laws and regulations relating to the +Redistributables and exercise of licenses hereunder and shall procure all +necessary governmental authorizations, including without limitation, all +necessary licenses, approvals, permissions or consents, where necessary for the +re-exportation of the Redistributables, Applications and/or Devices. + +14.9 No Implied License + +There are no implied licenses or other implied rights granted under this +Agreement, and all rights, save for those expressly granted hereunder, shall +remain with The Qt Company and its licensors. In addition, no licenses or +immunities are granted to the combination of the Licensed Software with any +other software or hardware not delivered by The Qt Company under this Agreement. + +14.10 Attorney Fees + +The prevailing Party in any action to enforce this Agreement shall be entitled +to recover its attorney’s fees and costs in connection with such action. + +14.11 Severability + +If any provision of this Agreement shall be adjudged by any court of competent +jurisdiction to be unenforceable or invalid, that provision shall be limited or +eliminated to the minimum extent necessary so that this Agreement shall +otherwise remain in full force and effect and enforceable. + + +IN WITNESS WHEREOF, the Parties hereto, intending to be legally bound hereby, +have caused this Agreement to be executed by Licensee's authorized +representative installing the Licensed Software and accepting the terms +hereof in connection therewith. + + +Appendix 1 + +1. Parts of the Licensed Software that are permitted for distribution in +object code form only (“Redistributables”) under this Agreement: + +- The Licensed Software's Qt Essentials and Qt Add-on libraries +- The Licensed Software's configuration tool (“qtconfig”) +- The Licensed Software's help tool (“Qt Assistant”) +- The Licensed Software's internationalization tools (“Qt Linguist”, “lupdate”, +“lrelease”) +- The Licensed Software's QML (“Qt Quick”) launcher tool (“qmlscene” or +“qmlviewer”) +- The Licensed Software's installer framework + +2. Parts of the Licensed Software that are not permitted for distribution +include, but are not limited to: + +- The Licensed Software's source code and header files +- The Licensed Software's documentation +- The Licensed Software’s documentation generation tool (“qdoc”) +- The Licensed Software's tool for writing makefiles (“qmake”) +- The Licensed Software's Meta Object Compiler (“moc”) +- The Licensed Software's User Interface Compiler (“uic”) +- The Licensed Software's Resource Compiler (“rcc”) +- The Licensed Software's parts of the IDE tool (“Qt Creator”) +- The Licensed Software’s parts of the Design tools (“Qt 3D Studio” or “Qt +Quick Designer”) +- The Licensed Software's Emulator diff -Nru qtlocation-opensource-src-5.9.5+dfsg/.QT-INDIE-LICENSE-AGREEMENT qtlocation-opensource-src-5.11.1+dfsg/.QT-INDIE-LICENSE-AGREEMENT --- qtlocation-opensource-src-5.9.5+dfsg/.QT-INDIE-LICENSE-AGREEMENT 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/.QT-INDIE-LICENSE-AGREEMENT 2018-06-18 07:43:57.000000000 +0000 @@ -0,0 +1,265 @@ +Qt INDIE LICENSE AGREEMENT +Agreement version 3.2 + +This Qt Indie License Agreement ("Agreement") is a legal agreement between The Qt Company Ltd ("The Qt Company") with its registered office at Valimotie 21, FI-00380 Helsinki, Finland, and you (either an individual or a legal entity) ("You" or "Licensee" as applicable) for the Licensed Software (as defined below). + +Please, read these license terms through carefully. By selecting "I accept the Agreement ", You are deemed to accept these license terms and to commit Yourself to observing them. When representing a legal entity, You should ensure Your due authorization to approve these terms before You select "I accept the Agreement". Otherwise, we regard You as personally responsible for compliance with this Agreement. + + +1. DEFINITIONS + +"Affiliate" of a Party shall mean an entity (i) which is directly or indirectly controlling such Party; (ii) which is under the same direct or indirect ownership or control as such Party; or (iii) which is directly or indirectly owned or controlled by such Party. For these purposes, an entity shall be treated as being controlled by another if that other entity has fifty percent (50 %) or more of the votes in such entity, is able to direct its affairs and/or to control the composition of its board of directors or equivalent body. + +"Applications" shall mean Licensee's software products created using the Licensed Software which may include portions of the Licensed Software. + +"Deployment Platforms" shall mean those operating systems in which the Licensed Software can be distributed on according to the terms and conditions of this Agreement, especially Section 5.2. + +"Development Platforms" shall mean those operating systems in which the Licensed Software can be used only for designing, developing and testing Applications, but not distributed in any form or used for any other purpose. + +"Designated User(s)" shall mean the employee(s) of Licensee acting within the scope of their employment or Licensee's consultant(s) or contractor(s) acting within the scope of their services for Licensee and on behalf of Licensee. + +"Evaluation Term" shall mean the period of thirty (30) days from the later of (a) the Effective Date; or (b) the date the Licensed Software was initially delivered to Licensee by The Qt Company. If no specific Effective Date is set forth in the Agreement, the Effective Date shall be deemed to be the date the Licensed Software was initially delivered to Licensee. + +"Usage Term" shall mean a time period that You have selected and paid for the usage of the Licensed Software, calculated from either (i) the end of the Evaluation Term, or (ii) from the purchase of the Usage Term, or (iii) from end of the previous Usage Term, as applicable. + +"License Certificate" shall mean the document accompanying the Licensed Software which specifies the modules which are licensed under the Agreement, Development Platforms, Deployment Platforms and Designated Users. + +"Licensed Software" shall mean the computer software, "online" or electronic documentation, associated media and printed materials, including the source code, example programs and the documentation delivered by The Qt Company to Licensee in conjunction with this Agreement. Licensed Software does not include Third Party Software (as defined in Section 7). + +"Modified Software" shall mean modifications made to the Licensed Software by Licensee. + +"Nokia" shall mean Nokia Corporation, a corporation incorporated under the laws of Finland, having its registered office at PO box 226, 00045 Nokia Group, Finland (visiting address Karakaari 7, 02610 Espoo, Finland) and registered with the Finnish Trade Register under business ID 0112038-9 and acting on behalf of its respective Affiliates. + +"Online Services" shall mean any services or access to systems provided by The Qt Company to the Licensee over Internet in conjunction with the Licensed Software or for the purpose of use by the Licensee of the Licensed Software or Support. Using some of the Online Services may be subject to additional fees. + +"Party or Parties" shall mean Licensee and/or The Qt Company. + +"Redistributables" shall mean the portions of the Licensed Software set forth in Appendix 1, Section 1 that may be distributed with or as part of Applications in object code form. + +"Subscription" shall mean all the software and services that You have ordered and paid as a bundled subscription package from The Qt Company via qt.The Qt Company.com + +"Support" shall mean standard developer support that is provided by The Qt Company to assist eligible Designated Users in using the Licensed Software in accordance with its established standard support procedures. + +"Updates" shall mean a release or version of the Licensed Software containing enhancements, new features, bug fixes, error corrections and other changes that are generally made available to users of the Licensed Software that have contracted for maintenance and support. + + +2. OWNERSHIP + +The Licensed Software is protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties. The Licensed Software is licensed, not sold. + +To the extent Licensee submits bug fixes or error corrections, including information related thereto, Licensee hereby grants The Qt Company a sublicensable, irrevocable, perpetual, worldwide, non-exclusive, royalty-free and fully paid-up copyright and trade secret license to reproduce, adapt, translate, modify, and prepare derivative works of, publicly display, publicly perform, sublicense, make available and distribute error corrections and bug fixes, including derivative works thereof. All The Qt Company's and/or its licensors' trademarks, service marks, trade names, logos or other words or symbols are and shall remain the exclusive property of The Qt Company or its licensors respectively. + + +3. MODULES + +Some of the files in the Licensed Software have been grouped into modules. These files contain specific notices defining the module of which they are a part. The modules licensed to Licensee are specified in the License Certificate accompanying the Licensed Software. The terms of the License Certificate are considered part of the Agreement. In the event of inconsistency or conflict between the language of this Agreement and the License Certificate, the provisions of this Agreement shall govern. + + +4. VALIDITY OF THE AGREEMENT + +By installing, copying, or otherwise using the Licensed Software, Licensee agrees to be bound by the terms of this Agreement. If Licensee does not agree to the terms of this Agreement, Licensee should not install, copy, or otherwise use the Licensed Software. In addition, by installing, copying, or otherwise using any Updates or other components of the Licensed Software that Licensee receives separately as part of the Licensed Software, Licensee agrees to be bound by any additional license terms that accompany such Updates, if any. If Licensee does not agree to the additional license terms that accompany such Updates, Licensee should not install, copy, or otherwise use such Updates. + +Upon Licensee's acceptance of the terms and conditions of this Agreement, The Qt Company grants Licensee the right to use the Licensed Software in the manner provided below. + + +5. LICENSES FOR (I) EVALUATION TERM AND (II) USAGE TERM + +GENERAL: + +Licensee is hereby granted a free of charge limited thirty (30) days evaluation license for the Evaluation Term as described in Section 5.1 below. + +After Evaluation Term, Licensee may purchase additional license(s) for Usage Term, as described in Section 5.2 below, subject to The Qt Company's payment terms and conditions applicable at the time of purchase. In addition, Licensee may purchase license(s) for the Usage Term without such an Evaluation Term. + + +(I) LICENSE FOR EVALUATION TERM + +5.1 Evaluation license granted during the Evaluation Term + +5.1.1 Using and Copying + +The Qt Company grants to Licensee a non-exclusive, non-transferable, time-limited license to use and copy the Licensed Software for sole purpose of evaluating the Licensed Software during the Evaluation Term. + +Licensee may install copies of the Licensed Software on an unlimited number of computers provided that (a) if an individual, only such individual; or (b) if a legal entity only its employees; use the Licensed Software for the authorized purposes. + +5.1.2 No Distribution or Modifications + +Licensee may not disclose, modify, sell, market, commercialize, distribute, loan, rent, lease, or license the Licensed Software or any copy of it or use the Licensed Software for any purpose that is not expressly granted in this Section 5.1. Licensee may not alter or remove any details of ownership, copyright, trademark or other property right connected with the Licensed Software. Licensee may not distribute any software statically or dynamically linked with the Licensed Software. + +5.1.3 No Technical Support + +The Qt Company has no obligation to furnish Licensee with any technical support whatsoever. Any such support is subject to separate agreement between the Parties. + +5.1.4 Further Requirements + +It is expressly acknowledged and understood by Licensee, that Licensee is strictly prohibited from using or licensing Licensed Software for creation of mobile phones or tablet computers targeted for consumer end users. However, creation of Applications for mobile phones or tablet computers is allowed under this Agreement. + +Notwithstanding anything contrary to this Agreement, it is expressly acknowledged and understood by Licensee, that Nokia shall hereby be named as a third party beneficiary under this Agreement with respect to this Section 5.1.4. Therefore, Nokia shall have the same rights as The Qt Company under this Agreement with respect to this Section 5.1.4, and shall be entitled to exercise such rights independent from The Qt Company. + + +(II) LICENSE FOR USAGE TERM + +5.2 Licenses granted during the Usage Term + +5.2.1 Using, Modifying and Copying + +The Qt Company grants to Licensee a non-exclusive, non-transferable, limited term license to use and copy the Licensed Software for Designated Users specified in the License Certificate for the sole purposes of: +(i) designing, developing, and testing Application(s); and +(ii) compiling the Licensed Software into object code. + +Licensee may install copies of the Licensed Software on an unlimited number of computers provided that only the Designated Users use the Licensed Software. Licensee may at any time designate another Designated User to replace a then-current Designated User by notifying The Qt Company, provided that a) the then-current Designated User has not been designated as a replacement during the last six (6) months; and b) there is no more than the specified number of Designated Users at any given time. + +5.2.2 Limited Redistribution + +a) The Qt Company grants Licensee a non-exclusive, royalty-free right to reproduce and distribute the object code form of Redistributables (listed in Appendix 1, Section 1) for execution on the specified Deployment Platforms as defined in License Certificate, excluding the Joint Hardware and Software Distribution as defined in b) below. Copies of Redistributables may only be distributed with and for the sole purpose of executing Applications permitted under this Agreement that Licensee has created using the Licensed Software. Under no circumstances may any copies of Redistributables be distributed separately. This Agreement does not give Licensee any rights to distribute any of the parts of the Licensed Software listed in Appendix 1, Section 2, neither as a whole nor as parts or snippets of code. + +b) Licensee may not distribute, transfer, assign or otherwise dispose of Applications and/or Redistributables, in binary/compiled form, or in any other form, if such action is part of a Joint Software and Hardware Distribution. A Joint Hardware and Software Distribution shall be defined as either: +(i) distribution of a hardware device where, in its final end user configuration, the main user interface or substantial functionality of the device is provided by Application(s) created by Licensee or others, using Licensed Software or Licensed Software based software product, and depends on the Licensed Software or an open source version of Qt or any Qt based software product; or +(ii) distribution of the Licensed Software with a device designed to facilitate the installation of the Licensed Software onto the same device where the main user interface or substantial functionality of such device is provided by Application(s) created by Licensee or others, using the Licensed Software, and depends on the Licensed Software. + +c) Licensee may only distribute the Applications via Public Application Stores such as Google Play, Windows Store and Apple AppStore ("Public Application Stores"). + +5.2.3 Revenue Limitation + +Licensee hereby explicitly warrants that the total aggregate amount of revenue that the Licensee and its Affiliates generate does not exceed one hundred thousand euros (100.000 €) per calendar year ("Revenue Limitation"). If the revenue of the Licensee and its Affiliates exceeds the Revenue Limitation, Licensee´s Subscription shall be upgraded to Professional or other commercial license of Licensed Software that does not contain Revenue Limitation. In such case Licensee shall be obliged to pay to The Qt Company all applicable license fees pursuant to applicable commercial license calculated from the date that Licensee exceeded the Revenue Limitation. Licensee shall be obliged to immediately notify The Qt Company in writing, in accordance with Section 14.8 of this Agreement, in case Licensee would exceed the Revenue Limitation. If Licensee fails to notify The Qt Company about exceeding the Revenue Limitation within thirty (30) days from the date it took place, this Agreement and Licensee's right to use the Licensed Software shall terminate forthwith. + +5.2.4 Further Requirements + +It is expressly acknowledged and understood by Licensee, that Licensee is strictly prohibited from using or licensing Licensed Software for creation of mobile phones or tablet computers targeted for consumer end users. + +The aforementioned shall not prohibit Licensee from using Licensed Software for the purpose of creating Applications for any devices, including mobile phones and tablet computers. Notwithstanding anything contrary to this Agreement, it is expressly acknowledged and understood by Licensee, that Nokia shall hereby be named as a third party beneficiary under this Agreement with respect to this Section 5.2.3. Therefore, Nokia shall have the same rights as The Qt Company under this Agreement with respect to this Section 5.2.3, and shall be entitled to exercise such rights independent from The Qt Company. + +The licenses granted in this Section 5.2 by The Qt Company to Licensee are subject to Licensee's compliance with Section 8 of this Agreement. + + +6. VERIFICATION + +The Qt Company or a certified auditor on The Qt Company's behalf, may, upon its reasonable request and at its expense, audit Licensee with respect to the use of the Licensed Software. Such audit may be conducted by mail, electronic means or through an in-person visit to Licensee's place of business. Any such in-person audit shall be conducted during regular business hours at Licensee's facilities and shall not unreasonably interfere with Licensee's business activities. The Qt Company will not remove, copy, or redistribute any electronic material during the course of an audit. If an audit reveals that Licensee is using the Licensed Software in a way that is in material violation of the terms of the Agreement, then Licensee shall pay The Qt Company's reasonable costs of conducting the audit. In the case of a material violation, Licensee agrees to pay The Qt Company any amounts owing that are attributable to the unauthorized use. Alternatively, The Qt Company reserves the right, at The Qt Company's sole option, to terminate the licenses for the Licensed Software. + + +7. THIRD PARTY SOFTWARE + +The Licensed Software may provide links to third party libraries or code (collectively "Third Party Software") to implement various functions. Third Party Software does not comprise part of the Licensed Software. In some cases, access to Third Party Software may be included along with the Licensed Software delivery as a convenience for development and testing only. Such source code and libraries may be listed in the ".../src/3rdparty" source tree delivered with the Licensed Software or documented in the Licensed Software where the Third Party Software is used, as may be amended from time to time, do not comprise the Licensed Software. Licensee acknowledges (i) that some part of Third Party Software may require additional licensing of copyright and patents from the owners of such, and (ii) that distribution of any of the Licensed Software referencing any portion of a Third Party Software may require appropriate licensing from such third parties. + + +8. CONDITIONS FOR CREATING APPLICATIONS + +The licenses granted in this Agreement for Licensee to create, modify and distribute Applications is subject to all of the following conditions: (i) all copies of the Applications Licensee creates must bear a valid copyright notice either Licensee's own or the copyright notice that appears on the Licensed Software; (ii) Licensee may not remove or alter any copyright, trademark or other proprietary rights notice contained in any portion of the Licensed Software including but not limited to the About Boxes; (iii) Licensee will indemnify and hold The Qt Company, its Affiliates, contractors, and its suppliers, harmless from and against any claims or liabilities arising out of the use, reproduction or distribution of Applications; (iv) Applications must be developed using a licensed, registered copy of the Licensed Software; (v) Applications must add primary and substantial functionality to the Licensed Software; (vi) Applications may not pass on functionality which in any way makes it possible for others to create software with the Licensed Software; however Licensee may use the Licensed Software's scripting and QML ("Qt Quick") functionality solely in order to enable scripting, themes and styles that augment the functionality and appearance of the Application(s) without adding primary and substantial functionality to the Application(s); (vii) Licensee may not create Modified Software or break the source or binary compatibility with the Licensed Software. Modified Software includes, but is not limited to, changing the functionality or application programming interfaces ("API") by adding, changing or deleting any variable, method, or class signature in the Licensed Software, the inter-process QCop specification, and/or any inter-process protocols, services or standards in the Licensed Software libraries; (viii) Applications may not compete with the Licensed Software; (ix) Licensee may not use The Qt Company's or any of its suppliers' names, logos, or trademarks to market Applications, except to state that Licensee's Application(s) was developed using the Licensed Software; (x) each Designated User creating the Application(s) needs to have a separate license for the Licensed Software. + + +9. PRE-RELEASE CODE + +The Licensed Software may contain pre-release code and functionality marked or otherwise stated as "Technology Preview", "Alpha", "Beta" or similar. Such pre-release code may be present in order to provide experimental support for new platforms or preliminary version of new functionality. The pre-release code is not at the level of performance and compatibility of a final, generally available, product offering. The pre- release parts of the Licensed Software may not operate correctly and may be substantially modified prior to the first commercial product release, if any. The Qt Company is under no obligation to make pre-release code commercially available, or provide any Support or Updates relating thereto. The pre-release code must not be used for commercial purposes or in a live operating environment where it may be relied upon to perform in the same manner as a commercially released product or with data that has not been sufficiently backed up. + + +10. LIMITED WARRANTY AND WARRANTY DISCLAIMER + +The Qt Company hereby represents and warrants with respect to the Licensed Software that it has the power and authority to grant the rights and licenses granted to Licensee under this Agreement. Except as set forth above, the Licensed Software is licensed to Licensee "as is". To the maximum extent permitted by applicable law, The Qt Company on behalf of itself and its suppliers, disclaims all warranties and conditions, either express or implied, including, but not limited to, implied warranties of merchantability and fitness for a particular purpose, title and non-infringement regarding to the Licensed Software. + + +11. LIMITATION OF LIABILITY + +If, The Qt Company's warranty disclaimer notwithstanding, The Qt Company is held to be liable to Licensee whether in contract, tort, or any other legal theory, based on the Licensed Software, The Qt Company's entire liability to Licensee and Licensee's exclusive remedy shall be, at The Qt Company's option, either (a) return of the price Licensee paid for the Licensed Software, or (b) repair or replacement of the Licensed Software, provided Licensee returns all copies of the Licensed Software to The Qt Company as originally delivered to Licensee. The Qt Company shall not under any circumstances be liable to Licensee based on failure of the Licensed Software if the failure resulted from accident, abuse or misapplication, nor shall The Qt Company, under any circumstances, be liable for special damages, punitive or exemplary damages, damages for loss of profits or interruption of business or for loss or corruption of data. Any award of damages from The Qt Company to Licensee shall not exceed the total amount Licensee has paid to The Qt Company in connection with this Agreement. + + +12. UPDATES AND ONLINE SERVICES + +Licensee will be eligible to receive Updates and to use the Online Services during the Usage Term, in accordance with The Qt Company's then current policies and procedures, if any. Such policies and procedures may be changed from time to time. Following the Usage Term, The Qt Company shall no longer make the Licensed Software, Updates or Online Services available to Licensee unless Licensee purchases additional Updates and Online Services according to this Section 12 below. + +Licensee may purchase additional Updates and Online Services following the Evaluation Term or the currently ongoing Usage Term subject to The Qt Company's terms and conditions applicable at the time of purchase. + + +13. CONFIDENTIALITY + +Each party acknowledges that during the Initial Term of this Agreement it shall have access to information about the other party's business, business methods, business plans, customers, business relations, technology, and other information, including the terms of this Agreement, that is confidential and of great value to the other party, and the value of which would be significantly reduced if disclosed to third parties ("Confidential Information"). Accordingly, when a party (the "Receiving Party") receives Confidential Information from another party (the "Disclosing Party"), the Receiving Party shall, and shall obligate its employees and agents and employees and agents of its Affiliates to: (i) maintain the Confidential Information in strict confidence; (ii) not disclose the Confidential Information to a third party without the Disclosing Party's prior written approval; and (iii) not, directly or indirectly, use the Confidential Information for any purpose other than for exercising its rights and fulfilling its responsibilities pursuant to this Agreement. Each party shall take reasonable measures to protect the Confidential Information of the other party, which measures shall not be less than the measures taken by such party to protect its own confidential and proprietary information. + +"Confidential Information" shall not include information that (a) is or becomes generally known to the public through no act or omission of the Receiving Party; (b) was in the Receiving Party's lawful possession prior to the disclosure hereunder and was not subject to limitations on disclosure or use; (c) is developed by employees of the Receiving Party or other persons working for the Receiving Party who have not had access to the Confidential Information of the Disclosing Party, as proven by the written records of the Receiving Party or by persons who have not had access to the Confidential Information of the Disclosing Party as proven by the written records of the Receiving Party; (d) is lawfully disclosed to the Receiving Party without restrictions, by a third party not under an obligation of confidentiality; or (e) the Receiving Party is legally compelled to disclose the information, in which case the Receiving Party shall assert the privileged and confidential nature of the information and cooperate fully with the Disclosing Party to protect against and prevent disclosure of any Confidential Information and to limit the scope of disclosure and the dissemination of disclosed Confidential Information by all legally available means. + +The obligations of the Receiving Party under this Section shall continue during the Initial Term and for a period of five (5) years after expiration or termination of this Agreement. To the extent that the terms of the Non-Disclosure Agreement between The Qt Company and Licensee conflict with the terms of this Section 13, this Section 13 shall be controlling over the terms of the Non-Disclosure Agreement. + + +14. GENERAL PROVISIONS + +14.1 Marketing + +The Qt Company may include Licensee's company name and logo in a publicly available list of The Qt Company customers and in its public communications. The Qt Company may gather usage data from the Licensed Software as well as Applications created with Licensed Software. The Qt Company may include advertisements and other promotion of The Qt Company and 3rd party products to Licensed Software IDE and Online Services. + +14.2 No Assignment + +Licensee shall not be entitled to assign or transfer all or any of its rights, benefits and obligations under this Agreement without the prior written consent of The Qt Company, which shall not be unreasonably withheld. The Qt Company shall be entitled to assign or transfer any of its rights, benefits or obligations under this Agreement on an unrestricted basis. + +14.3 Termination This + +Agreement shall remain effective until terminated by You or The Qt Company subject to this Section + +You may terminate this Agreement at any time by cancelling your subscription. You will not receive any refunds if your account is cancelled. + +The Qt Company shall always have the right to terminate this Agreement with immediate effect, in the event that You (i) do not remit payment outstanding within thirty (30) days of a written reminder of payment due, or (ii) otherwise breaches this Agreement or other instructions applicable to Licensed Software, as such instructions are given by The Qt Company. + +Upon termination of this Agreement, Licensee has no longer the rights to design, develop, compile or test Application(s) by using the Licensed Software. In addition, Licensee shall cease using the Licensed Software and erase or destroy all copies of Licensed Software of Licensed Software in the possession or control of Licensee. Upon request by The Qt Company, You must promptly deliver to The Qt Company a written confirmation that this has occurred. + +Upon termination of this Agreement and Your right to use Licensed Software, also the Subscription and all Your rights thereto shall be simultaneously terminated as a whole. + +Licensee may distribute Applications after termination of this Agreement. + +14.4 Surviving Sections + +Any terms and conditions that by their nature or otherwise reasonably should survive a cancellation or termination of this Agreement shall also be deemed to survive. Such surviving terms and conditions include, but are not limited to the Section 13. + +14.5 Entire Agreement + +This Agreement constitutes the complete agreement between the parties and supersedes all prior or contemporaneous discussions, representations, and proposals, written or oral, with respect to the subject matters discussed herein, with the exception of the non-disclosure agreement executed by the parties in connection with this Agreement ("Non-Disclosure Agreement"), if any, shall be subject to Section 13. No modification of this Agreement shall be effective unless contained in a writing executed by an authorized representative of each party. No term or condition contained in Licensee's purchase order shall apply unless expressly accepted by The Qt Company in writing. If any provision of the Agreement is found void or unenforceable, the remainder shall remain valid and enforceable according to its terms. If any remedy provided is determined to have failed for its essential purpose, all limitations of liability and exclusions of damages set forth in this Agreement shall remain in effect. + +14.6 Payment and Taxes + +For all Licensed Software under this Agreement, The Qt Company will charge Licensee´s credit card on a monthly basis or at the interval indicated in fees and payment policies, if different. If credit has been extended to Licensee by The Qt Company, all payments under this Agreement are due within thirty (30) days of the date The Qt Company mails its invoice to Licensee. If The Qt Company has not extended credit to Licensee, Licensee shall be required to make payment concurrent with the delivery of the Licensed Software by The Qt Company. All amounts payable are gross amounts but exclusive of any value added tax, use tax, sales tax or similar tax. Licensee shall be entitled to withhold from payments any applicable withholding taxes and comply with all applicable tax and employment legislation. Each party shall pay all taxes (including, but not limited to, taxes based upon its income) or levies imposed on it under applicable laws, regulations and tax treaties as a result of this Agreement and any payments made hereunder (including those required to be withheld or deducted from payments). Each party shall furnish evidence of such paid taxes as is sufficient to enable the other party to obtain any credits available to it, including original withholding tax certificates. + +14.7 Force Majeure + +Neither party shall be liable to the other for any delay or non-performance of its obligations hereunder other than the obligation of paying the license fees in the event and to the extent that such delay or non- performance is due to an event of Force Majeure (as defined below). If any event of Force Majeure results in a delay or non-performance of a party for a period of three (3) months or longer, then either party shall have the right to terminate this Agreement with immediate effect without any liability (except for the obligations of payment arising prior to the event of Force Majeure) towards the other party. A "Force Majeure" event shall mean an act of God, terrorist attack or other catastrophic event of nature that prevents either party for fulfilling its obligations under this Agreement. + +14.8 Notices + +Any notice given by one party to the other shall be deemed properly given and deemed received if specifically acknowledged by the receiving party in writing or when successfully delivered to the recipient by hand, fax, or special courier during normal business hours on a business day to the addresses specified below. Each communication and document made or delivered by one party to the other party pursuant to this Agreement shall be in the English language or accompanied by a translation thereof. + +Notices to The Qt Company shall be given to: + The Qt Company Ltd + Attn: Legal + Valimotie 21 + FI-00380 Helsinki + Finland + +14.9 Export Control + +Licensee acknowledges that the Licensed Software may be subject to export control restrictions of various countries. Licensee shall fully comply with all applicable export license restrictions and requirements as well as with all laws and regulations relating to the importation of the Licensed Software and/or Modified Software and/or Applications and shall procure all necessary governmental authorizations, including without limitation, all necessary licenses, approvals, permissions or consents, where necessary for the re- exportation of the Licensed Software, Modified Software or Applications. + +14.10 Governing Law and Legal Venue + +This Agreement shall be construed and interpreted in accordance with the laws of Finland, excluding its choice of law provisions. Any disputes, controversy or claim arising out of or relating to this Agreement, or the breach, termination or validity thereof shall be shall be finally settled by arbitration in accordance with the Arbitration Rules of the Central Chamber of Commerce of Finland. The arbitration tribunal shall consist of one (1), or if either Party so requires, of three (3), arbitrators. The award shall be final and binding and enforceable in any court of competent jurisdiction. The arbitration shall be held in Helsinki, Finland and the process shall be conducted in the English language. + +14.11 No Implied License + +There are no implied licenses or other implied rights granted under this Agreement, and all rights, save for those expressly granted hereunder, shall remain with The Qt Company and its licensors. In addition, no licenses or immunities are granted to the combination of the Licensed Software and/or Modified Software, as applicable, with any other software or hardware not delivered by The Qt Company under this Agreement. + +14.12 Changes to the Agreement + +The Qt Company may change the terms of this Agreement by informing You of such updates or changes. None of such updates or changes shall have any effect on Your on-going subscription period. Should You not accept the updates or changes made by The Qt Company, You shall have the right at Your own discretion to terminate this Agreement with immediate effect by notifying The Qt Company in writing, e.g. email. For clarity, in case of your termination, none of the already paid subscription fees shall be returned or reimbursed by The Qt Company. + + +APPENDIX 1 + +1. Parts of the Licensed Software that are permitted for distribution ("Redistributables") + • The Licensed Software's essential and add-on libraries as listed in the License Certificate in object code form + • The Licensed Software's help tool in object code/executable form ("Qt Assistant") + • The Licensed Software's internationalization tools in object code/executable form ("Qt Linguist", "lupdate", "lrelease") + • The Licensed Software's QML ("Qt Quick") launcher tool ("qmlscene" and "qmlviewer") in object code/executable form + +2. Parts of the Licensed Software that are not permitted for distribution include, but are not limited to + • The Licensed Software's source code and header files + • The Licensed Software's documentation + • The Licensed Software's documentation generation tool ("qdoc") + • The Licensed Software's tool for writing makefiles ("qmake") + • The Licensed Software's Meta Object Compiler ("moc") + • The Licensed Software's User Interface Compiler ("uic") + • The Licensed Software's Resource Compiler ("rcc") + • The Licensed Software's tools which are not specifically allowed to be redistributed, including but not limited to IDE tool ("Qt Creator"), design ("Qt Designer" and "Qt Quick Designer") and build tools + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/qtlocation.pro qtlocation-opensource-src-5.11.1+dfsg/qtlocation.pro --- qtlocation-opensource-src-5.9.5+dfsg/qtlocation.pro 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/qtlocation.pro 2018-06-12 18:44:12.000000000 +0000 @@ -3,3 +3,5 @@ qtCompileTest(winrt) load(qt_parts) + +DISTFILES += sync.profile configure.json diff -Nru qtlocation-opensource-src-5.9.5+dfsg/.QT-PROFESSIONAL-LICENSE-AGREEMENT qtlocation-opensource-src-5.11.1+dfsg/.QT-PROFESSIONAL-LICENSE-AGREEMENT --- qtlocation-opensource-src-5.9.5+dfsg/.QT-PROFESSIONAL-LICENSE-AGREEMENT 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/.QT-PROFESSIONAL-LICENSE-AGREEMENT 2018-06-18 07:43:57.000000000 +0000 @@ -0,0 +1,247 @@ +Qt PROFESSIONAL LICENSE AGREEMENT +Agreement version 2.3 + +This Qt Professional License Agreement ("Agreement") is a legal agreement between The Qt Company Ltd ("The Qt Company") with its registered office at Valimotie 21, FI-00380 Helsinki, Finland, and you (either an individual or a legal entity) ("You" or "Licensee" as applicable) for the Licensed Software (as defined below). + +Please, read these license terms through carefully. By selecting "I accept the Agreement ", You are deemed to accept these license terms and to commit Yourself to observing them. When representing a legal entity, You should ensure Your due authorization to approve these terms before You select "I accept the Agreement". Otherwise, we regard You as personally responsible for compliance with this Agreement. + + +1. DEFINITIONS + +"Affiliate" of a Party shall mean an entity (i) which is directly or indirectly controlling such Party; (ii) which is under the same direct or indirect ownership or control as such Party; or (iii) which is directly or indirectly owned or controlled by such Party. For these purposes, an entity shall be treated as being controlled by another if that other entity has fifty percent (50 %) or more of the votes in such entity, is able to direct its affairs and/or to control the composition of its board of directors or equivalent body. + +"Applications" shall mean Licensee's software products created using the Licensed Software which may include portions of the Licensed Software. + +"Deployment Platforms" shall mean those operating systems in which the Licensed Software can be distributed on according to the terms and conditions of this Agreement, especially Section 5.2. + +"Development Platforms" shall mean those operating systems in which the Licensed Software can be used only for designing, developing and testing Applications, but not distributed in any form or used for any other purpose. + +"Designated User(s)" shall mean the employee(s) of Licensee acting within the scope of their employment or Licensee's consultant(s) or contractor(s) acting within the scope of their services for Licensee and on behalf of Licensee. + +"Evaluation Term" shall mean the period of thirty (30) days from the later of (a) the Effective Date; or (b) the date the Licensed Software was initially delivered to Licensee by The Qt Company. If no specific Effective Date is set forth in the Agreement, the Effective Date shall be deemed to be the date the Licensed Software was initially delivered to Licensee. "Usage Term" shall mean a time period that You have selected and paid for the usage of the Licensed Software, calculated from either (i) the end of the Evaluation Term, or (ii) from the purchase of the Usage Term, or (iii) from end of the previous Usage Term, as applicable. + +"License Certificate" shall mean the document accompanying the Licensed Software which specifies the modules which are licensed under the Agreement, Development Platforms, Deployment Platforms and Designated Users. + +"Licensed Software" shall mean the computer software, "online" or electronic documentation, associated media and printed materials, including the source code, example programs and the documentation delivered by The Qt Company to Licensee in conjunction with this Agreement. Licensed Software does not include Third Party Software (as defined in Section 7). + +"Modified Software" shall mean modifications made to the Licensed Software by Licensee. "Nokia" shall mean Nokia Corporation, a corporation incorporated under the laws of Finland, having its registered office at PO box 226, 00045 Nokia Group, Finland (visiting address Keilalahdentie 4, 02150 Espoo, Finland) and registered with the Finnish Trade Register under business ID 0112038-9 and acting on behalf of its respective Affiliates. + +"Online Services" shall mean any services or access to systems provided by The Qt Company to the Licensee over Internet in conjunction with the Licensed Software or for the purpose of use by the Licensee of the Licensed Software or Support. Using some of the Online Services may be subject to additional fees. + +"Party or Parties" shall mean Licensee and/or The Qt Company. + +"Redistributables" shall mean the portions of the Licensed Software set forth in Appendix 1, Section 1 that may be distributed with or as part of Applications in object code form. + +"Subscription" shall mean all the software and services that You have ordered and paid as a bundled subscription package from The Qt Company via qt.io. + +"Support" shall mean standard developer support that is provided by The Qt Company to assist eligible Designated Users in using the Licensed Software in accordance with its established standard support procedures. + +"Updates" shall mean a release or version of the Licensed Software containing enhancements, new features, bug fixes, error corrections and other changes that are generally made available to users of the Licensed Software that have contracted for maintenance and support. + + +2. OWNERSHIP + +The Licensed Software is protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties. The Licensed Software is licensed, not sold. + +To the extent Licensee submits bug fixes or error corrections, including information related thereto, Licensee hereby grants The Qt Company a sublicensable, irrevocable, perpetual, worldwide, non-exclusive, royalty-free and fully paid-up copyright and trade secret license to reproduce, adapt, translate, modify, and prepare derivative works of, publicly display, publicly perform, sublicense, make available and distribute error corrections and bug fixes, including derivative works thereof. All The Qt Company's and/or its licensors' trademarks, service marks, trade names, logos or other words or symbols are and shall remain the exclusive property of The Qt Company or its licensors respectively. + + +3. MODULES + +Some of the files in the Licensed Software have been grouped into modules. These files contain specific notices defining the module of which they are a part. The modules licensed to Licensee are specified in the License Certificate accompanying the Licensed Software. The terms of the License Certificate are considered part of the Agreement. In the event of inconsistency or conflict between the language of this Agreement and the License Certificate, the provisions of this Agreement shall govern. + + +4. VALIDITY OF THE AGREEMENT + +By installing, copying, or otherwise using the Licensed Software, Licensee agrees to be bound by the terms of this Agreement. If Licensee does not agree to the terms of this Agreement, Licensee should not install, copy, or otherwise use the Licensed Software. In addition, by installing, copying, or otherwise using any Updates or other components of the Licensed Software that Licensee receives separately as part of the Licensed Software, Licensee agrees to be bound by any additional license terms that accompany such Updates, if any. If Licensee does not agree to the additional license terms that accompany such Updates, Licensee should not install, copy, or otherwise use such Updates. + +Upon Licensee's acceptance of the terms and conditions of this Agreement, The Qt Company grants Licensee the right to use the Licensed Software in the manner provided below. + + +5. LICENSES FOR (I) EVALUATION TERM AND (II) USAGE TERM + +GENERAL: + +Licensee is hereby granted a free of charge limited thirty (30) days evaluation license for the Evaluation Term as described in Section 5.1 below. After Evaluation Term, Licensee may purchase additional license(s) for Usage Term, as described in Section 5.2 below, subject to The Qt Company's payment terms and conditions applicable at the time of purchase. In addition, Licensee may purchase license(s) for the Usage Term without such an Evaluation Term. + +(I) LICENSE FOR EVALUATION TERM + +5.1 Evaluation license granted during the Evaluation Term + +5.1.1 Using and Copying + +The Qt Company grants to Licensee a non-exclusive, non-transferable, time-limited license to use and copy the Licensed Software for sole purpose of evaluating the Licensed Software during the Evaluation Term. + +Licensee may install copies of the Licensed Software on an unlimited number of computers provided that (a) if an individual, only such individual; or (b) if a legal entity only its employees; use the Licensed Software for the authorized purposes. + +5.1.2 No Distribution or Modifications + +Licensee may not disclose, modify, sell, market, commercialize, distribute, loan, rent, lease, or license the Licensed Software or any copy of it or use the Licensed Software for any purpose that is not expressly granted in this Section 5.1. Licensee may not alter or remove any details of ownership, copyright, trademark or other property right connected with the Licensed Software. Licensee may not distribute any software statically or dynamically linked with the Licensed Software. + +5.1.3 No Technical Support + +The Qt Company has no obligation to furnish Licensee with any technical support whatsoever. Any such support is subject to separate agreement between the Parties. + +5.1.4 Further Requirements + +It is expressly acknowledged and understood by Licensee, that Licensee is strictly prohibited from using or licensing Licensed Software for creation of mobile phones or tablet computers targeted for consumer end users. However, creation of Applications for mobile phones or tablet computers is allowed under this Agreement. + +Notwithstanding anything contrary to this Agreement, it is expressly acknowledged and understood by Licensee, that Nokia shall hereby be named as a third party beneficiary under this Agreement with respect to this Section 5.1.4. Therefore, Nokia shall have the same rights as The Qt Company under this Agreement with respect to this Section 5.1.4, and shall be entitled to exercise such rights independent from The Qt Company. + + +(II) LICENSE FOR USAGE TERM + +5.2 Licenses granted during the Usage Term + +5.2.1 Using, Modifying and Copying + +The Qt Company grants to Licensee a non-exclusive, non-transferable, limited term license to use, modify and copy the Licensed Software for Designated Users specified in the License Certificate for the sole purposes of: +(i) designing, developing, and testing Application(s); +(ii) modifying the Licensed Software as limited by section 8 below; and +(iii) compiling the Licensed Software and/or Modified Software source code into object code. + +Licensee may install copies of the Licensed Software on an unlimited number of computers provided that only the Designated Users use the Licensed Software. Licensee may at any time designate another Designated User to replace a then-current Designated User by notifying The Qt Company, provided that a) the then-current Designated User has not been designated as a replacement during the last six (6) months; and b) there is no more than the specified number of Designated Users at any given time. + +5.2.2 Limited Redistribution + +a) The Qt Company grants Licensee a non-exclusive, royalty-free right to reproduce and distribute the object code form of Redistributables (listed in Appendix 1, Section 1) for execution on the specified Deployment Platforms as defined in License Certificate, excluding the Joint Hardware and Software Distribution as defined in b) below. Copies of Redistributables may only be distributed with and for the sole purpose of executing Applications permitted under this Agreement that Licensee has created using the Licensed Software. Under no circumstances may any copies of Redistributables be distributed separately. This Agreement does not give Licensee any rights to distribute any of the parts of the Licensed Software listed in Appendix 1, Section 2, neither as a whole nor as parts or snippets of code. + +b) Licensee may not distribute, transfer, assign or otherwise dispose of Applications and/or Redistributables, in binary/compiled form, or in any other form, if such action is part of a Joint Software and Hardware Distribution. A Joint Hardware and Software Distribution shall be defined as either: +(i) distribution of a hardware device where, in its final end user configuration, the main user interface or substantial functionality of the device is provided by Application(s) created by Licensee or others, using Licensed Software or Licensed Software based software product, and depends on the Licensed Software or an open source version of Qt or any Qt based software product; or +(ii) distribution of the Licensed Software with a device designed to facilitate the installation of the Licensed Software onto the same device where the main user interface or substantial functionality of such device is provided by Application(s) created by Licensee or others, using the Licensed Software, and depends on the Licensed Software. + +5.2.3 Further Requirements + +It is expressly acknowledged and understood by Licensee, that Licensee is strictly prohibited from using or licensing Licensed Software for creation of mobile phones or tablet computers targeted for consumer end users. + +The aforementioned shall not prohibit Licensee from using Licensed Software for the purpose of creating Applications for any devices, including mobile phones and tablet computers. + +Notwithstanding anything contrary to this Agreement, it is expressly acknowledged and understood by Licensee, that Nokia shall hereby be named as a third party beneficiary under this Agreement with respect to this Section 5.2.3. Therefore, Nokia shall have the same rights as The Qt Company under this Agreement with respect to this Section 5.2.3, and shall be entitled to exercise such rights independent from The Qt Company. + +The licenses granted in this Section 5.2 by The Qt Company to Licensee are subject to Licensee's compliance with Section 8 of this Agreement. + + +6. VERIFICATION + +The Qt Company or a certified auditor on The Qt Company's behalf, may, upon its reasonable request and at its expense, audit Licensee with respect to the use of the Licensed Software. Such audit may be conducted by mail, electronic means or through an in-person visit to Licensee's place of business. Any such in-person audit shall be conducted during regular business hours at Licensee's facilities and shall not unreasonably interfere with Licensee's business activities. The Qt Company will not remove, copy, or redistribute any electronic material during the course of an audit. If an audit reveals that Licensee is using the Licensed Software in a way that is in material violation of the terms of the Agreement, then Licensee shall pay The Qt Company's reasonable costs of conducting the audit. In the case of a material violation, Licensee agrees to pay The Qt Company any amounts owing that are attributable to the unauthorized use. Alternatively, The Qt Company reserves the right, at The Qt Company's sole option, to terminate the licenses for the Licensed Software. + + +7. THIRD PARTY SOFTWARE + +The Licensed Software may provide links to third party libraries or code (collectively "Third Party Software") to implement various functions. Third Party Software does not comprise part of the Licensed Software. In some cases, access to Third Party Software may be included along with the Licensed Software delivery as a convenience for development and testing only. Such source code and libraries may be listed in the ".../src/3rdparty" source tree delivered with the Licensed Software or documented in the Licensed Software where the Third Party Software is used, as may be amended from time to time, do not comprise the Licensed Software. Licensee acknowledges (i) that some part of Third Party Software may require additional licensing of copyright and patents from the owners of such, and (ii) that distribution of any of the Licensed Software referencing any portion of a Third Party Software may require appropriate licensing from such third parties. + + +8. CONDITIONS FOR CREATING APPLICATIONS + +The licenses granted in this Agreement for Licensee to create, modify and distribute Applications is subject to all of the following conditions: (i) all copies of the Applications Licensee creates must bear a valid copyright notice either Licensee's own or the copyright notice that appears on the Licensed Software; (ii) Licensee may not remove or alter any copyright, trademark or other proprietary rights notice contained in any portion of the Licensed Software including but not limited to the About Boxes; (iii) Licensee will indemnify and hold The Qt Company, its Affiliates, contractors, and its suppliers, harmless from and against any claims or liabilities arising out of the use, reproduction or distribution of Applications; (iv) Applications must be developed using a licensed, registered copy of the Licensed Software; (v) Applications must add primary and substantial functionality to the Licensed Software; (vi) Applications may not pass on functionality which in any way makes it possible for others to create software with the Licensed Software; however Licensee may use the Licensed Software's scripting and QML ("Qt Quick") functionality solely in order to enable scripting, themes and styles that augment the functionality and appearance of the Application(s) without adding primary and substantial functionality to the Application(s); (vii) Licensee may create Modified Software that breaks the source or binary compatibility with the Licensed Software. This includes, but is not limited to, changing the application programming interfaces ("API") by adding, changing or deleting any variable, method, or class signature in the Licensed Software, the inter-process QCop specification, and/or any inter-process protocols, services or standards in the Licensed Software libraries. To the extent that Licensee breaks source or binary compatibility with the Licensed Software, Licensee acknowledges that The Qt Company's ability to provide Support may be prevented or limited and Licensee's ability to make use of Updates may be restricted; (viii) Applications may not compete with the Licensed Software; (ix) Licensee may not use The Qt Company's or any of its suppliers' names, logos, or trademarks to market Applications, except to state that Licensee's Application(s) was developed using the Licensed Software; (x) each Designated User creating the Application(s) needs to have a separate license for the Licensed Software. + + +9. PRE-RELEASE CODE + +The Licensed Software may contain pre-release code and functionality marked or otherwise stated as "Technology Preview", "Alpha", "Beta" or similar. Such pre-release code may be present in order to provide experimental support for new platforms or preliminary version of new functionality. The pre-release code is not at the level of performance and compatibility of a final, generally available, product offering. The pre- release parts of the Licensed Software may not operate correctly and may be substantially modified prior to the first commercial product release, if any. The Qt Company is under no obligation to make pre-release code commercially available, or provide any Support or Updates relating thereto. The pre-release code must not be used for commercial purposes or in a live operating environment where it may be relied upon to perform in the same manner as a commercially released product or with data that has not been sufficiently backed up. + + +10. LIMITED WARRANTY AND WARRANTY DISCLAIMER + +The Qt Company hereby represents and warrants with respect to the Licensed Software that it has the power and authority to grant the rights and licenses granted to Licensee under this Agreement. Except as set forth above, the Licensed Software is licensed to Licensee "as is". To the maximum extent permitted by applicable law, The Qt Company on behalf of itself and its suppliers, disclaims all warranties and conditions, either express or implied, including, but not limited to, implied warranties of merchantability and fitness for a particular purpose, title and non-infringement regarding to the Licensed Software. + + +11. LIMITATION OF LIABILITY + +If, The Qt Company's warranty disclaimer notwithstanding, The Qt Company is held to be liable to Licensee whether in contract, tort, or any other legal theory, based on the Licensed Software, The Qt Company's entire liability to Licensee and Licensee's exclusive remedy shall be, at The Qt Company's option, either (a) return of the price Licensee paid for the Licensed Software, or (b) repair or replacement of the Licensed Software, provided Licensee returns all copies of the Licensed Software to The Qt Company as originally delivered to Licensee. The Qt Company shall not under any circumstances be liable to Licensee based on failure of the Licensed Software if the failure resulted from accident, abuse or misapplication, nor shall The Qt Company, under any circumstances, be liable for special damages, punitive or exemplary damages, damages for loss of profits or interruption of business or for loss or corruption of data. Any award of damages from The Qt Company to Licensee shall not exceed the total amount Licensee has paid to The Qt Company in connection with this Agreement. + + +12. SUPPORT, UPDATES AND ONLINE SERVICES + +Licensee will be eligible to receive Support and Updates and to use the Online Services during the Usage Term, in accordance with The Qt Company's then current policies and procedures, if any. Such policies and procedures may be changed from time to time. Following the Usage Term, The Qt Company shall no longer make the Licensed Software, Support, Updates or Online Services available to Licensee unless Licensee purchases additional Support, Updates and Online Services according to this Section 12 below. Licensee may purchase additional Support, Updates and Online Services following the Evaluation Term or the currently ongoing Usage Term subject to The Qt Company's terms and conditions applicable at the time of purchase. + + +13. CONFIDENTIALITY + +Each party acknowledges that during the Initial Term of this Agreement it shall have access to information about the other party's business, business methods, business plans, customers, business relations, technology, and other information, including the terms of this Agreement, that is confidential and of great value to the other party, and the value of which would be significantly reduced if disclosed to third parties ("Confidential Information"). Accordingly, when a party (the "Receiving Party") receives Confidential Information from another party (the "Disclosing Party"), the Receiving Party shall, and shall obligate its employees and agents and employees and agents of its Affiliates to: (i) maintain the Confidential Information in strict confidence; (ii) not disclose the Confidential Information to a third party without the Disclosing Party's prior written approval; and (iii) not, directly or indirectly, use the Confidential Information for any purpose other than for exercising its rights and fulfilling its responsibilities pursuant to this Agreement. Each party shall take reasonable measures to protect the Confidential Information of the other party, which measures shall not be less than the measures taken by such party to protect its own confidential and proprietary information. + +"Confidential Information" shall not include information that (a) is or becomes generally known to the public through no act or omission of the Receiving Party; (b) was in the Receiving Party's lawful possession prior to the disclosure hereunder and was not subject to limitations on disclosure or use; (c) is developed by employees of the Receiving Party or other persons working for the Receiving Party who have not had access to the Confidential Information of the Disclosing Party, as proven by the written records of the Receiving Party or by persons who have not had access to the Confidential Information of the Disclosing Party as proven by the written records of the Receiving Party; (d) is lawfully disclosed to the Receiving Party without restrictions, by a third party not under an obligation of confidentiality; or (e) the Receiving Party is legally compelled to disclose the information, in which case the Receiving Party shall assert the privileged and confidential nature of the information and cooperate fully with the Disclosing Party to protect against and prevent disclosure of any Confidential Information and to limit the scope of disclosure and the dissemination of disclosed Confidential Information by all legally available means. + +The obligations of the Receiving Party under this Section shall continue during the Initial Term and for a period of five (5) years after expiration or termination of this Agreement. To the extent that the terms of the Non-Disclosure Agreement between The Qt Company and Licensee conflict with the terms of this Section 13, this Section 13 shall be controlling over the terms of the Non-Disclosure Agreement. + + +14. GENERAL PROVISIONS + +14.1 Marketing + +The Qt Company may include Licensee's company name and logo in a publicly available list of The Qt Company customers and in its public communications. + +14.2 No Assignment + +Licensee shall not be entitled to assign or transfer all or any of its rights, benefits and obligations under this Agreement without the prior written consent of The Qt Company, which shall not be unreasonably withheld. The Qt Company shall be entitled to assign or transfer any of its rights, benefits or obligations under this Agreement on an unrestricted basis. + +14.3 Termination + +This Agreement shall remain effective until terminated by You or The Qt Company subject to this Section 14.3. You may terminate this Agreement at any time by cancelling your subscription. You will not receive any refunds if your account is cancelled. + +The Qt Company shall always have the right to terminate this Agreement with immediate effect, in the event that You (i) do not remit payment outstanding within thirty (30) days of a written reminder of payment due, or (ii) otherwise breaches this Agreement or other instructions applicable to Licensed Software, as such instructions are given by The Qt Company. + +Upon termination of this Agreement, Licensee has no longer the rights to design, develop, compile or test Application(s) by using the Licensed Software. In addition, Licensee shall cease using the Licensed Software and erase or destroy all copies of Licensed Software of Licensed Software in the possession or control of Licensee. Upon request by The Qt Company, You must promptly deliver to The Qt Company a written confirmation that this has occurred. + +Upon termination of this Agreement and Your right to use Licensed Software, also the Subscription and all Your rights thereto shall be simultaneously terminated as a whole. Licensee may distribute Applications after termination of this Agreement. + +14.4 Surviving Sections + +Any terms and conditions that by their nature or otherwise reasonably should survive a cancellation or termination of this Agreement shall also be deemed to survive. Such surviving terms and conditions include, but are not limited to the Section 13. + +14.5 Entire Agreement + +This Agreement constitutes the complete agreement between the parties and supersedes all prior or contemporaneous discussions, representations, and proposals, written or oral, with respect to the subject matters discussed herein, with the exception of the non-disclosure agreement executed by the parties in connection with this Agreement ("Non-Disclosure Agreement"), if any, shall be subject to Section 13. No modification of this Agreement shall be effective unless contained in a writing executed by an authorized representative of each party. No term or condition contained in Licensee's purchase order shall apply unless expressly accepted by The Qt Company in writing. If any provision of the Agreement is found void or unenforceable, the remainder shall remain valid and enforceable according to its terms. If any remedy provided is determined to have failed for its essential purpose, all limitations of liability and exclusions of damages set forth in this Agreement shall remain in effect. + +14.6 Payment and Taxes + +For all Licensed Software under this Agreement, The Qt Company will charge Licensee´s credit card on a monthly basis or at the interval indicated in fees and payment policies, if different. If credit has been extended to Licensee by The Qt Company, all payments under this Agreement are due within thirty (30) days of the date The Qt Company mails its invoice to Licensee. If The Qt Company has not extended credit to Licensee, Licensee shall be required to make payment concurrent with the delivery of the Licensed Software by The Qt Company. All amounts payable are gross amounts but exclusive of any value added tax, use tax, sales tax or similar tax. Licensee shall be entitled to withhold from payments any applicable withholding taxes and comply with all applicable tax and employment legislation. Each party shall pay all taxes (including, but not limited to, taxes based upon its income) or levies imposed on it under applicable laws, regulations and tax treaties as a result of this Agreement and any payments made hereunder (including those required to be withheld or deducted from payments). Each party shall furnish evidence of such paid taxes as is sufficient to enable the other party to obtain any credits available to it, including original withholding tax certificates. + +14.7 Force Majeure + +Neither party shall be liable to the other for any delay or non-performance of its obligations hereunder other than the obligation of paying the license fees in the event and to the extent that such delay or non- performance is due to an event of Force Majeure (as defined below). If any event of Force Majeure results in a delay or non-performance of a party for a period of three (3) months or longer, then either party shall have the right to terminate this Agreement with immediate effect without any liability (except for the obligations of payment arising prior to the event of Force Majeure) towards the other party. A "Force Majeure" event shall mean an act of God, terrorist attack or other catastrophic event of nature that prevents either party for fulfilling its obligations under this Agreement. + +14.8 Notices + +Any notice given by one party to the other shall be deemed properly given and deemed received if specifically acknowledged by the receiving party in writing or when successfully delivered to the recipient by hand, fax, or special courier during normal business hours on a business day to the addresses specified below. Each communication and document made or delivered by one party to the other party pursuant to this Agreement shall be in the English language or accompanied by a translation thereof. Notices to The Qt Company shall be given to: +The Qt Company Ltd +Attn: Legal +Valimotie 21 +FI-00380 Helsinki +Finland + +14.9 Export Control + +Licensee acknowledges that the Licensed Software may be subject to export control restrictions of various countries. Licensee shall fully comply with all applicable export license restrictions and requirements as well as with all laws and regulations relating to the importation of the Licensed Software and/or Modified Software and/or Applications and shall procure all necessary governmental authorizations, including without limitation, all necessary licenses, approvals, permissions or consents, where necessary for the re- exportation of the Licensed Software, Modified Software or Applications. + +14.10 Governing Law and Legal Venue + +This Agreement shall be construed and interpreted in accordance with the laws of Finland, excluding its choice of law provisions. Any disputes, controversy or claim arising out of or relating to this Agreement, or the breach, termination or validity thereof shall be shall be finally settled by arbitration in accordance with the Arbitration Rules of the Central Chamber of Commerce of Finland. The arbitration tribunal shall consist of one (1), or if either Party so requires, of three (3), arbitrators. The award shall be final and binding and enforceable in any court of competent jurisdiction. The arbitration shall be held in Helsinki, Finland and the process shall be conducted in the English language. + +14.11 No Implied License + +There are no implied licenses or other implied rights granted under this Agreement, and all rights, save for those expressly granted hereunder, shall remain with The Qt Company and its licensors. In addition, no licenses or immunities are granted to the combination of the Licensed Software and/or Modified Software, as applicable, with any other software or hardware not delivered by The Qt Company under this Agreement. + +14.12 Changes to the Agreement + +The Qt Company may change the terms of this Agreement by informing You of such updates or changes. None of such updates or changes shall have any effect on Your on-going subscription period. Should You not accept the updates or changes made by The Qt Company, You shall have the right at Your own discretion to terminate this Agreement with immediate effect by notifying The Qt Company in writing, e.g. email. For clarity, in case of your termination, none of the already paid subscription fees shall be returned or reimbursed by The Qt Company. + + +APPENDIX 1 + +1. Parts of the Licensed Software that are permitted for distribution ("Redistributables") +• The Licensed Software's essential and add-on libraries as listed in the License Certificate in object code form +• The Licensed Software's help tool in object code/executable form ("Qt Assistant") • The Licensed Software's internationalization tools in object code/executable form ("Qt Linguist", "lupdate", "lrelease") +• The Licensed Software's QML ("Qt Quick") launcher tool ("qmlscene" and "qmlviewer") in object code/executable form + +2. Parts of the Licensed Software that are not permitted for distribution +include, but are not limited to +• The Licensed Software's source code and header files +• The Licensed Software's documentation +• The Licensed Software's documentation generation tool ("qdoc") +• The Licensed Software's tool for writing makefiles ("qmake") +• The Licensed Software's Meta Object Compiler ("moc") +• The Licensed Software's User Interface Compiler ("uic" or in the case of Qt Jambi: "juic") +• The Licensed Software's Resource Compiler ("rcc") +• The Licensed Software's tools which are not specifically allowed to be redistributed, including but not limited to IDE tool ("Qt Creator"), design ("Qt Designer" and "Qt Quick Designer") and build tools + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/3rdparty/clip2tri/clip2tri.cpp qtlocation-opensource-src-5.11.1+dfsg/src/3rdparty/clip2tri/clip2tri.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/3rdparty/clip2tri/clip2tri.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/3rdparty/clip2tri/clip2tri.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -173,6 +173,11 @@ return solution; } +int clip2tri::pointInPolygon(const IntPoint &pt, const Path &path) +{ + return PointInPolygon(pt, path); +} + Path clip2tri::upscaleClipperPoints(const vector &inputPolygon) { Path outputPolygon; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/3rdparty/clip2tri/clip2tri.h qtlocation-opensource-src-5.11.1+dfsg/src/3rdparty/clip2tri/clip2tri.h --- qtlocation-opensource-src-5.9.5+dfsg/src/3rdparty/clip2tri/clip2tri.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/3rdparty/clip2tri/clip2tri.h 2018-06-12 18:44:12.000000000 +0000 @@ -91,6 +91,8 @@ const PolyFillType subjFillType = pftNonZero, const PolyFillType clipFillType = pftNonZero); + static int pointInPolygon(const IntPoint &pt, const Path &path); + Clipper clipper; bool openSubject; }; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/imports/imports.pro qtlocation-opensource-src-5.11.1+dfsg/src/imports/imports.pro --- qtlocation-opensource-src-5.9.5+dfsg/src/imports/imports.pro 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/imports/imports.pro 2018-06-12 18:44:12.000000000 +0000 @@ -1,5 +1,7 @@ TEMPLATE = subdirs -qtHaveModule(positioning): SUBDIRS += positioning -qtHaveModule(location): SUBDIRS += location +QT_FOR_CONFIG += location-private +qtHaveModule(positioningquick): SUBDIRS += positioning +qtHaveModule(location): SUBDIRS += location +qtHaveModule(location):qtConfig(location-labs-plugin): SUBDIRS += locationlabs diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/imports/location/location.cpp qtlocation-opensource-src-5.11.1+dfsg/src/imports/location/location.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/imports/location/location.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/imports/location/location.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -53,6 +53,7 @@ #include #include #include +#include //Place includes #include @@ -100,7 +101,7 @@ int minor = 0; // Register the 5.0 types - // 5.0 is siltent and not advertised + // 5.0 is silent and not advertised qmlRegisterType(uri, major, minor, "Plugin"); qmlRegisterType(uri, major, minor, "PluginParameter"); @@ -175,6 +176,26 @@ qmlRegisterType(uri, major, minor, "MapCopyrightNotice"); qmlRegisterType(uri, major, minor, "MapItemGroup"); + // Register the 5.10 types + minor = 10; + qmlRegisterUncreatableType(uri, major, minor, "CameraCapabilities" + , QStringLiteral("CameraCapabilities is not intended instantiable by developer.")); + + // Register the 5.11 types + minor = 11; + qmlRegisterType(uri, major, minor, "RouteManeuver"); + qmlRegisterType(uri, major, minor, "Map"); + qmlRegisterUncreatableType(uri, major, minor, "GeoMapItemBase", + QStringLiteral("GeoMapItemBase is not intended instantiable by developer.")); + qmlRegisterType(uri, major, minor, "DynamicParameter"); + qmlRegisterType(uri, major, minor, "Route"); + qmlRegisterType(uri, major, minor, "RouteQuery"); + qmlRegisterType(uri, major, minor, "Plugin"); + qmlRegisterType(uri, major, minor, "Waypoint"); + + // Register the latest Qt version as QML type version + qmlRegisterModule(uri, QT_VERSION_MAJOR, QT_VERSION_MINOR); + //registrations below are version independent qRegisterMetaType(); qRegisterMetaType(); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/imports/location/plugins.qmltypes qtlocation-opensource-src-5.11.1+dfsg/src/imports/location/plugins.qmltypes --- qtlocation-opensource-src-5.9.5+dfsg/src/imports/location/plugins.qmltypes 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/imports/location/plugins.qmltypes 2018-06-12 18:44:12.000000000 +0000 @@ -4,7 +4,7 @@ // It is used for QML tooling purposes only. // // This file was auto-generated by: -// 'qmlplugindump -nonrelocatable QtLocation 5.9' +// 'qmlplugindump -nonrelocatable QtLocation 5.11' Module { dependencies: ["QtQuick 2.8"] @@ -91,13 +91,27 @@ exportMetaObjectRevisions: [0] } Component { + name: "QDeclarativeGeoCameraCapabilities" + prototype: "QObject" + exports: ["QtLocation/CameraCapabilities 5.10"] + isCreatable: false + exportMetaObjectRevisions: [0] + Property { name: "minimumZoomLevel"; type: "double"; isReadonly: true } + Property { name: "maximumZoomLevel"; type: "double"; isReadonly: true } + Property { name: "minimumTilt"; type: "double"; isReadonly: true } + Property { name: "maximumTilt"; type: "double"; isReadonly: true } + Property { name: "minimumFieldOfView"; type: "double"; isReadonly: true } + Property { name: "maximumFieldOfView"; type: "double"; isReadonly: true } + } + Component { name: "QDeclarativeGeoManeuver" prototype: "QObject" exports: [ "QtLocation/RouteManeuver 5.0", + "QtLocation/RouteManeuver 5.11", "QtLocation/RouteManeuver 5.8" ] - exportMetaObjectRevisions: [0, 0] + exportMetaObjectRevisions: [0, 11, 0] Enum { name: "Direction" values: { @@ -123,13 +137,20 @@ Property { name: "distanceToNextInstruction"; type: "double"; isReadonly: true } Property { name: "waypoint"; type: "QGeoCoordinate"; isReadonly: true } Property { name: "waypointValid"; type: "bool"; isReadonly: true } + Property { + name: "extendedAttributes" + revision: 11 + type: "QObject" + isReadonly: true + isPointer: true + } } Component { name: "QDeclarativeGeoMap" defaultProperty: "data" prototype: "QQuickItem" - exports: ["QtLocation/Map 5.0"] - exportMetaObjectRevisions: [0] + exports: ["QtLocation/Map 5.0", "QtLocation/Map 5.11"] + exportMetaObjectRevisions: [0, 11] Property { name: "gesture"; type: "QQuickGeoMapGestureArea"; isReadonly: true; isPointer: true } Property { name: "plugin"; type: "QDeclarativeGeoServiceProvider"; isPointer: true } Property { name: "minimumZoomLevel"; type: "double" } @@ -222,6 +243,17 @@ name: "mapReadyChanged" Parameter { name: "ready"; type: "bool" } } + Signal { name: "mapObjectsChanged"; revision: 11 } + Method { + name: "setBearing" + Parameter { name: "bearing"; type: "double" } + Parameter { name: "coordinate"; type: "QGeoCoordinate" } + } + Method { + name: "alignCoordinateToPoint" + Parameter { name: "coordinate"; type: "QGeoCoordinate" } + Parameter { name: "point"; type: "QPointF" } + } Method { name: "removeMapItem" Parameter { name: "item"; type: "QDeclarativeGeoMapItemBase"; isPointer: true } @@ -238,6 +270,14 @@ name: "removeMapItemGroup" Parameter { name: "itemGroup"; type: "QDeclarativeGeoMapItemGroup"; isPointer: true } } + Method { + name: "removeMapItemView" + Parameter { name: "itemView"; type: "QDeclarativeGeoMapItemView"; isPointer: true } + } + Method { + name: "addMapItemView" + Parameter { name: "itemView"; type: "QDeclarativeGeoMapItemView"; isPointer: true } + } Method { name: "clearMapItems" } Method { name: "addMapParameter" @@ -300,6 +340,7 @@ name: "styleSheetChanged" Parameter { name: "styleSheet"; type: "string" } } + Signal { name: "copyrightsVisibleChanged" } Method { name: "copyrightsChanged" Parameter { name: "copyrightsImage"; type: "QImage" } @@ -317,11 +358,16 @@ name: "QDeclarativeGeoMapItemBase" defaultProperty: "data" prototype: "QQuickItem" - exports: ["QtLocation/GeoMapItemBase 5.0"] + exports: [ + "QtLocation/GeoMapItemBase 5.0", + "QtLocation/GeoMapItemBase 5.11" + ] isCreatable: false - exportMetaObjectRevisions: [0] + exportMetaObjectRevisions: [0, 11] Property { name: "geoShape"; type: "QGeoShape"; isReadonly: true } Signal { name: "mapItemOpacityChanged" } + Signal { name: "enterTransitionFinished"; revision: 11 } + Signal { name: "exitTransitionFinished"; revision: 11 } } Component { name: "QDeclarativeGeoMapItemGroup" @@ -342,8 +388,11 @@ Component { name: "QDeclarativeGeoMapParameter" prototype: "QGeoMapParameter" - exports: ["QtLocation/MapParameter 5.9"] - exportMetaObjectRevisions: [0] + exports: [ + "QtLocation/DynamicParameter 5.11", + "QtLocation/MapParameter 5.9" + ] + exportMetaObjectRevisions: [0, 0] Signal { name: "completed" Parameter { type: "QDeclarativeGeoMapParameter"; isPointer: true } @@ -388,17 +437,31 @@ Property { name: "description"; type: "string"; isReadonly: true } Property { name: "mobile"; type: "bool"; isReadonly: true } Property { name: "night"; revision: 1; type: "bool"; isReadonly: true } + Property { + name: "cameraCapabilities" + type: "QDeclarativeGeoCameraCapabilities" + isReadonly: true + isPointer: true + } + Property { name: "metadata"; type: "QVariantMap"; isReadonly: true } } Component { name: "QDeclarativeGeoRoute" prototype: "QObject" - exports: ["QtLocation/Route 5.0"] - exportMetaObjectRevisions: [0] + exports: ["QtLocation/Route 5.0", "QtLocation/Route 5.11"] + exportMetaObjectRevisions: [0, 11] Property { name: "bounds"; type: "QGeoRectangle"; isReadonly: true } Property { name: "travelTime"; type: "int"; isReadonly: true } Property { name: "distance"; type: "double"; isReadonly: true } Property { name: "path"; type: "QJSValue" } Property { name: "segments"; type: "QDeclarativeGeoRouteSegment"; isList: true; isReadonly: true } + Property { + name: "routeQuery" + revision: 11 + type: "QDeclarativeGeoRouteQuery" + isReadonly: true + isPointer: true + } } Component { name: "QDeclarativeGeoRouteModel" @@ -448,9 +511,10 @@ } Component { name: "QDeclarativeGeoRouteQuery" + defaultProperty: "quickChildren" prototype: "QObject" - exports: ["QtLocation/RouteQuery 5.0"] - exportMetaObjectRevisions: [0] + exports: ["QtLocation/RouteQuery 5.0", "QtLocation/RouteQuery 5.11"] + exportMetaObjectRevisions: [0, 11] Enum { name: "TravelMode" values: { @@ -482,7 +546,8 @@ "TunnelFeature": 16, "DirtRoadFeature": 32, "ParksFeature": 64, - "MotorPoolLaneFeature": 128 + "MotorPoolLaneFeature": 128, + "TrafficFeature": 256 } } Enum { @@ -546,17 +611,21 @@ Property { name: "routeOptimizations"; type: "RouteOptimizations" } Property { name: "segmentDetail"; type: "SegmentDetail" } Property { name: "maneuverDetail"; type: "ManeuverDetail" } - Property { name: "waypoints"; type: "QJSValue" } + Property { name: "waypoints"; type: "QVariantList" } Property { name: "excludedAreas"; type: "QJSValue" } Property { name: "featureTypes"; type: "QList"; isReadonly: true } + Property { name: "extraParameters"; revision: 11; type: "QVariantMap"; isReadonly: true } + Property { name: "quickChildren"; type: "QObject"; isList: true; isReadonly: true } Signal { name: "queryDetailsChanged" } + Signal { name: "extraParametersChanged"; revision: 11 } + Method { name: "waypointObjects"; type: "QVariantList" } Method { name: "addWaypoint" - Parameter { name: "waypoint"; type: "QGeoCoordinate" } + Parameter { name: "w"; type: "QVariant" } } Method { name: "removeWaypoint" - Parameter { name: "waypoint"; type: "QGeoCoordinate" } + Parameter { name: "waypoint"; type: "QVariant" } } Method { name: "clearWaypoints" } Method { @@ -594,8 +663,8 @@ name: "QDeclarativeGeoServiceProvider" defaultProperty: "parameters" prototype: "QObject" - exports: ["QtLocation/Plugin 5.0"] - exportMetaObjectRevisions: [0] + exports: ["QtLocation/Plugin 5.0", "QtLocation/Plugin 5.11"] + exportMetaObjectRevisions: [0, 11] Enum { name: "RoutingFeature" values: { @@ -700,6 +769,15 @@ "AnyPlacesFeatures": -1 } } + Enum { + name: "NavigationFeatures" + values: { + "NoNavigationFeatures": 0, + "OnlineNavigationFeature": 1, + "OfflineNavigationFeature": 2, + "AnyNavigationFeatures": -1 + } + } Property { name: "name"; type: "string" } Property { name: "availableServiceProviders"; type: "QStringList"; isReadonly: true } Property { @@ -711,7 +789,6 @@ Property { name: "required" type: "QDeclarativeGeoServiceProviderRequirements" - isReadonly: true isPointer: true } Property { name: "locales"; type: "QStringList" } @@ -755,6 +832,13 @@ Parameter { name: "feature"; type: "PlacesFeatures" } } Method { name: "supportsPlaces"; type: "bool" } + Method { + name: "supportsNavigation" + revision: 11 + type: "bool" + Parameter { name: "feature"; type: "NavigationFeature" } + } + Method { name: "supportsNavigation"; revision: 11; type: "bool" } } Component { name: "QDeclarativeGeoServiceProviderParameter" @@ -771,6 +855,7 @@ name: "valueChanged" Parameter { name: "value"; type: "QVariant" } } + Signal { name: "initialized" } } Component { name: "QDeclarativeGeoServiceProviderRequirements" @@ -806,6 +891,23 @@ } } Component { + name: "QDeclarativeGeoWaypoint" + defaultProperty: "quickChildren" + prototype: "QGeoCoordinateObject" + exports: ["QtLocation/Waypoint 5.11"] + exportMetaObjectRevisions: [0] + Property { name: "latitude"; type: "double" } + Property { name: "longitude"; type: "double" } + Property { name: "altitude"; type: "double" } + Property { name: "isValid"; type: "bool"; isReadonly: true } + Property { name: "bearing"; type: "double" } + Property { name: "metadata"; type: "QVariantMap"; isReadonly: true } + Property { name: "quickChildren"; type: "QObject"; isList: true; isReadonly: true } + Signal { name: "completed" } + Signal { name: "waypointDetailsChanged" } + Signal { name: "extraParametersChanged" } + } + Component { name: "QDeclarativeGeocodeModel" prototype: "QAbstractListModel" exports: ["QtLocation/GeocodeModel 5.0"] @@ -1067,6 +1169,10 @@ name: "removeCoordinate" Parameter { name: "index"; type: "int" } } + Method { + name: "setPath" + Parameter { name: "path"; type: "QGeoPath" } + } } Component { name: "QDeclarativeRatings" @@ -1245,6 +1351,11 @@ Method { name: "errorString"; type: "string" } } Component { + name: "QGeoCoordinateObject" + prototype: "QObject" + Property { name: "coordinate"; type: "QGeoCoordinate" } + } + Component { name: "QGeoMapParameter" prototype: "QObject" Property { name: "type"; type: "string" } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/imports/locationlabs/locationlabs.cpp qtlocation-opensource-src-5.11.1+dfsg/src/imports/locationlabs/locationlabs.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/imports/locationlabs/locationlabs.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/imports/locationlabs/locationlabs.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,95 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +static void initResources() +{ +#ifdef QT_STATIC + Q_INIT_RESOURCE(qmake_QtLocationLabs); +#endif +} + +QT_BEGIN_NAMESPACE + + +class QtLocationLabsDeclarativeModule: public QQmlExtensionPlugin +{ + Q_OBJECT + + Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid + FILE "plugin.json") + +public: + QtLocationLabsDeclarativeModule(QObject *parent = 0) : QQmlExtensionPlugin(parent) { initResources(); } + virtual void registerTypes(const char *uri) + { + if (QLatin1String(uri) == QLatin1String("Qt.labs.location")) { + + // @uri QtLocationLabs + int major = 1; + int minor = 0; + + // Register the 1.0 labs types + qmlRegisterType(uri, major, minor, "MapIconObject"); + qmlRegisterType(uri, major, minor, "MapObjectView"); + qmlRegisterType(uri, major, minor, "MapRouteObject"); + qmlRegisterType(uri, major, minor, "MapCircleObject"); + qmlRegisterType(uri, major, minor, "MapPolygonObject"); + qmlRegisterType(uri, major, minor, "MapPolylineObject"); + qmlRegisterType(uri, major, minor, "Navigator"); + + // Register the latest Qt version as QML type version + qmlRegisterModule(uri, QT_VERSION_MAJOR, QT_VERSION_MINOR); + } else { + qDebug() << "Unsupported URI given to load location QML plugin: " << QLatin1String(uri); + } + } +}; + +#include "locationlabs.moc" + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/imports/locationlabs/locationlabs.pro qtlocation-opensource-src-5.11.1+dfsg/src/imports/locationlabs/locationlabs.pro --- qtlocation-opensource-src-5.9.5+dfsg/src/imports/locationlabs/locationlabs.pro 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/imports/locationlabs/locationlabs.pro 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,16 @@ +QT += quick-private network positioning-private location-private qml-private core-private gui-private + +TARGET = locationlabsplugin +CXX_MODULE = $$TARGET +TARGETPATH = Qt/labs/location +IMPORT_VERSION = 5.11 + +SOURCES += \ + locationlabs.cpp + +#CONFIG += no_cxx_module +load(qml_plugin) + +OTHER_FILES += \ + plugin.json \ + qmldir diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/imports/locationlabs/plugin.json qtlocation-opensource-src-5.11.1+dfsg/src/imports/locationlabs/plugin.json --- qtlocation-opensource-src-5.9.5+dfsg/src/imports/locationlabs/plugin.json 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/imports/locationlabs/plugin.json 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,2 @@ +{ +} diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/imports/locationlabs/plugins.qmltypes qtlocation-opensource-src-5.11.1+dfsg/src/imports/locationlabs/plugins.qmltypes --- qtlocation-opensource-src-5.9.5+dfsg/src/imports/locationlabs/plugins.qmltypes 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/imports/locationlabs/plugins.qmltypes 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,77 @@ +import QtQuick.tooling 1.2 + +// This file describes the plugin-supplied types contained in the library. +// It is used for QML tooling purposes only. +// +// This file was auto-generated by: +// 'qmlplugindump -nonrelocatable Qt.labs.location 5.11' + +Module { + dependencies: ["QtQuick 2.8"] + Component { + name: "QGeoMapObject" + defaultProperty: "quickChildren" + prototype: "QParameterizableObject" + Enum { + name: "Type" + values: { + "InvalidType": 0, + "ViewType": 1, + "RouteType": 2, + "RectangleType": 3, + "CircleType": 4, + "PolylineType": 5, + "PolygonType": 6, + "IconType": 7, + "UserType": 256 + } + } + Property { name: "visible"; type: "bool" } + Property { name: "type"; type: "Type"; isReadonly: true } + Signal { name: "selected" } + Signal { name: "completed" } + } + Component { + name: "QMapObjectView" + defaultProperty: "quickChildren" + prototype: "QGeoMapObject" + exports: ["Qt.labs.location/MapObjectView 5.11"] + exportMetaObjectRevisions: [0] + Property { name: "model"; type: "QVariant" } + Property { name: "delegate"; type: "QQmlComponent"; isPointer: true } + Signal { + name: "modelChanged" + Parameter { name: "model"; type: "QVariant" } + } + Signal { + name: "delegateChanged" + Parameter { name: "delegate"; type: "QQmlComponent"; isPointer: true } + } + Method { + name: "addMapObject" + Parameter { name: "object"; type: "QGeoMapObject"; isPointer: true } + } + Method { + name: "removeMapObject" + Parameter { name: "object"; type: "QGeoMapObject"; isPointer: true } + } + } + Component { + name: "QMapRouteObject" + defaultProperty: "quickChildren" + prototype: "QGeoMapObject" + exports: ["Qt.labs.location/MapRouteObject 5.11"] + exportMetaObjectRevisions: [0] + Property { name: "route"; type: "QDeclarativeGeoRoute"; isPointer: true } + Signal { + name: "routeChanged" + Parameter { name: "route"; type: "QDeclarativeGeoRoute"; isPointer: true } + } + } + Component { + name: "QParameterizableObject" + defaultProperty: "quickChildren" + prototype: "QObject" + Property { name: "quickChildren"; type: "QObject"; isList: true; isReadonly: true } + } +} diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/imports/locationlabs/qmldir qtlocation-opensource-src-5.11.1+dfsg/src/imports/locationlabs/qmldir --- qtlocation-opensource-src-5.9.5+dfsg/src/imports/locationlabs/qmldir 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/imports/locationlabs/qmldir 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,4 @@ +module Qt.labs.location +plugin locationlabsplugin +classname QtLocationLabsDeclarativeModule +typeinfo plugins.qmltypes diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/imports/positioning/locationsingleton.cpp qtlocation-opensource-src-5.11.1+dfsg/src/imports/positioning/locationsingleton.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/imports/positioning/locationsingleton.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/imports/positioning/locationsingleton.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -234,6 +234,37 @@ } /*! + \qmlmethod geopolygon QtPositioning::polygon() const + + Constructs an empty polygon. + + \sa {geopolygon} + \since 5.10 +*/ +QGeoPath LocationSingleton::polygon() const +{ + return QGeoPolygon(); +} + +/*! + \qmlmethod geopolygon QtPositioning::polygon(list coordinates) const + + Constructs a polygon from coordinates. + + \sa {geopolygon} + \since 5.10 +*/ +QGeoPath LocationSingleton::polygon(const QVariantList &coordinates) const +{ + QList internalCoordinates; + for (int i = 0; i < coordinates.size(); i++) { + if (coordinates.at(i).canConvert()) + internalCoordinates << coordinates.at(i).value(); + } + return QGeoPolygon(internalCoordinates); +} + +/*! \qmlmethod geocircle QtPositioning::shapeToCircle(geoshape shape) const Converts \a shape to a geocircle. @@ -272,3 +303,15 @@ return QGeoPath(shape); } +/*! + \qmlmethod geopolygon QtPositioning::shapeToPolygon(geoshape shape) const + + Converts \a shape to a polygon. + + \sa {geopolygon} + \since 5.10 +*/ +QGeoPolygon LocationSingleton::shapeToPolygon(const QGeoShape &shape) const +{ + return QGeoPolygon(shape); +} diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/imports/positioning/locationsingleton.h qtlocation-opensource-src-5.11.1+dfsg/src/imports/positioning/locationsingleton.h --- qtlocation-opensource-src-5.9.5+dfsg/src/imports/positioning/locationsingleton.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/imports/positioning/locationsingleton.h 2018-06-12 18:44:12.000000000 +0000 @@ -47,6 +47,7 @@ #include #include #include +#include #include #include @@ -76,9 +77,13 @@ Q_INVOKABLE QGeoPath path() const; Q_INVOKABLE QGeoPath path(const QJSValue &value, qreal width = 0.0) const; + Q_INVOKABLE QGeoPath polygon() const; + Q_INVOKABLE QGeoPath polygon(const QVariantList &value) const; + Q_INVOKABLE QGeoCircle shapeToCircle(const QGeoShape &shape) const; Q_INVOKABLE QGeoRectangle shapeToRectangle(const QGeoShape &shape) const; Q_INVOKABLE QGeoPath shapeToPath(const QGeoShape &shape) const; + Q_INVOKABLE QGeoPolygon shapeToPolygon(const QGeoShape &shape) const; }; #endif // LOCATIONSINGLETON_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/imports/positioning/plugins.qmltypes qtlocation-opensource-src-5.11.1+dfsg/src/imports/positioning/plugins.qmltypes --- qtlocation-opensource-src-5.9.5+dfsg/src/imports/positioning/plugins.qmltypes 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/imports/positioning/plugins.qmltypes 2018-06-12 18:44:12.000000000 +0000 @@ -4,7 +4,7 @@ // It is used for QML tooling purposes only. // // This file was auto-generated by: -// 'qmlplugindump -nonrelocatable QtPositioning 5.9' +// 'qmlplugindump -nonrelocatable QtPositioning 5.11' Module { dependencies: ["QtQuick 2.8"] @@ -73,6 +73,12 @@ type: "QGeoPath" Parameter { name: "value"; type: "QJSValue" } } + Method { name: "polygon"; type: "QGeoPath" } + Method { + name: "polygon" + type: "QGeoPath" + Parameter { name: "value"; type: "QVariantList" } + } Method { name: "shapeToCircle" type: "QGeoCircle" @@ -88,6 +94,11 @@ type: "QGeoPath" Parameter { name: "shape"; type: "QGeoShape" } } + Method { + name: "shapeToPolygon" + type: "QGeoPolygon" + Parameter { name: "shape"; type: "QGeoShape" } + } } Component { name: "QDeclarativeGeoAddress" @@ -122,10 +133,9 @@ exports: [ "QtPositioning/Position 5.0", "QtPositioning/Position 5.3", - "QtPositioning/Position 5.4", - "QtPositioning/Position 5.9" + "QtPositioning/Position 5.4" ] - exportMetaObjectRevisions: [0, 1, 2, 2] + exportMetaObjectRevisions: [0, 1, 2] Property { name: "latitudeValid"; type: "bool"; isReadonly: true } Property { name: "longitudeValid"; type: "bool"; isReadonly: true } Property { name: "altitudeValid"; type: "bool"; isReadonly: true } @@ -209,7 +219,8 @@ "UnknownType": 0, "RectangleType": 1, "CircleType": 2, - "PathType": 3 + "PathType": 3, + "PolygonType": 4 } } Property { name: "type"; type: "ShapeType"; isReadonly: true } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/imports/positioning/positioning.cpp qtlocation-opensource-src-5.11.1+dfsg/src/imports/positioning/positioning.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/imports/positioning/positioning.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/imports/positioning/positioning.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -42,8 +42,8 @@ #include #include -#include "qdeclarativepositionsource_p.h" -#include "qdeclarativeposition_p.h" +#include +#include #include "qquickgeocoordinateanimation_p.h" #include "locationsingleton.h" @@ -57,6 +57,8 @@ #include #include #include +#include +#include #include @@ -307,9 +309,11 @@ Returns the current type of the shape. \list - \li GeoShape.UnknownType - The shape's type is not known. - \li GeoShape.RectangleType - The shape is a \l georectangle. - \li GeoShape.CircleType - The shape is a \l geocircle. + \li \c GeoShape.UnknownType - The shape's type is not known. + \li \c GeoShape.RectangleType - The shape is a \l georectangle. + \li \c GeoShape.CircleType - The shape is a \l geocircle. + \li \c GeoShape.PathType - The shape is a \l geopath. (Since Qt 5.9) + \li \c GeoShape.PolygonType - The shape is a \l geopolygon. (Since Qt 5.10) \endlist This QML property was introduced by Qt 5.5. @@ -527,6 +531,31 @@ The default value for the width is 0. */ +/*! + \qmlbasictype geopolygon + \inqmlmodule QtPositioning + \ingroup qml-QtPositioning5-basictypes + \since 5.10 + + \brief The geopolygon type represents a geographic polygon. + + The \c geopolygon type is a \l [QML] geoshape that represents a geographic + polygon. It is a direct representation of QGeoPolygon and is defined in + terms of a \l path which holds a list of geo coordinates in the polygon. + + The polygon is considered invalid if its path holds less than three + coordinates. + + When integrating with C++, note that any QGeoPolygon value passed into QML + is automatically converted into a \c geopolygon, and vice versa. + + \section1 Properties + + \section2 path + + This property holds the list of coordinates defining the polygon. +*/ + static QObject *singleton_type_factory(QQmlEngine *engine, QJSEngine *jsEngine) { Q_UNUSED(engine) @@ -562,9 +591,14 @@ QMetaType::registerEqualsComparator(); qRegisterMetaType(); QMetaType::registerEqualsComparator(); + qRegisterMetaType(); + QMetaType::registerEqualsComparator(); qRegisterMetaType(); qRegisterMetaType(); QMetaType::registerEqualsComparator(); + qRegisterMetaType(); + qRegisterMetaType(); + QMetaType::registerEqualsComparator(); qRegisterAnimationInterpolator(q_coordinateInterpolator); @@ -586,10 +620,8 @@ minor = 4; qmlRegisterType(uri, major, minor, "Position"); - // Register the 5.9 types - // Introduction of 5.9 version; existing 5.4 exports become automatically available under 5.9 - minor = 9; - qmlRegisterType(uri, major, minor, "Position"); + // Register the latest Qt version as QML type version + qmlRegisterModule(uri, QT_VERSION_MAJOR, QT_VERSION_MINOR); } else { qDebug() << "Unsupported URI given to load positioning QML plugin: " << QLatin1String(uri); } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/imports/positioning/positioning.pro qtlocation-opensource-src-5.11.1+dfsg/src/imports/positioning/positioning.pro --- qtlocation-opensource-src-5.9.5+dfsg/src/imports/positioning/positioning.pro 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/imports/positioning/positioning.pro 2018-06-12 18:44:12.000000000 +0000 @@ -1,18 +1,9 @@ -QT += quick-private positioning-private qml-private core-private +QT += quick-private positioning-private positioningquick-private qml-private core-private INCLUDEPATH *= $$PWD -HEADERS += qdeclarativeposition_p.h \ - qdeclarativepositionsource_p.h \ - locationsingleton.h \ - qquickgeocoordinateanimation_p.h \ - qquickgeocoordinateanimation_p_p.h - -SOURCES += qdeclarativeposition.cpp \ - positioning.cpp \ - qdeclarativepositionsource.cpp \ - locationsingleton.cpp \ - qquickgeocoordinateanimation.cpp +HEADERS += $$files(*.h) +SOURCES += $$files(*.cpp) load(qml_plugin) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/imports/positioning/qdeclarativeposition.cpp qtlocation-opensource-src-5.11.1+dfsg/src/imports/positioning/qdeclarativeposition.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/imports/positioning/qdeclarativeposition.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/imports/positioning/qdeclarativeposition.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,469 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 Jolla Ltd. -** Contact: Aaron McCarthy -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtPositioning module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** 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 https://www.qt.io/terms-conditions. For further -** information use the contact form at https://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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include -#include "qdeclarativeposition_p.h" -#include -#include -#include - -QT_BEGIN_NAMESPACE - -/*! - \qmltype Position - \instantiates QDeclarativePosition - \inqmlmodule QtPositioning - \since 5.2 - - \brief The Position type holds positional data at a particular point in time, - such as coordinate (longitude, latitude, altitude) and speed. - - The Position type holds values related to geographic location such as - a \l coordinate (longitude, latitude, and altitude), the \l timestamp when - the Position was obtained, the \l speed at that time, and the accuracy of - the data. - - Primarily, it is used in the \l{PositionSource::position}{position} property - of a \l{PositionSource}, as the basic unit of data available from the system - location data source. - - Not all properties of a Position object are necessarily valid or available - (for example latitude and longitude may be valid, but speed update has not been - received or set manually). As a result, corresponding "valid" properties - are available (for example \l{coordinate} and \l{longitudeValid}, \l{latitudeValid} - etc) to discern whether the data is available and valid in this position - update. - - Position objects are read-only and can only be produced by a PositionSource. - - \section2 Example Usage - - See the example given for the \l{PositionSource} type, or the - \l{geoflickr}{GeoFlickr} example application. - - \sa PositionSource, coordinate -*/ - -namespace -{ - -bool equalOrNaN(qreal a, qreal b) -{ - return a == b || (qIsNaN(a) && qIsNaN(b)); -} - -bool exclusiveNaN(qreal a, qreal b) -{ - return qIsNaN(a) != qIsNaN(b); -} - -} - -QDeclarativePosition::QDeclarativePosition(QObject *parent) -: QObject(parent) -{ -} - -QDeclarativePosition::~QDeclarativePosition() -{ -} - -void QDeclarativePosition::setPosition(const QGeoPositionInfo &info) -{ - // timestamp - const QDateTime pTimestamp = m_info.timestamp(); - const QDateTime timestamp = info.timestamp(); - bool emitTimestampChanged = pTimestamp != timestamp; - - // coordinate - const QGeoCoordinate pCoordinate = m_info.coordinate(); - const QGeoCoordinate coordinate = info.coordinate(); - bool emitCoordinateChanged = pCoordinate != coordinate; - bool emitLatitudeValidChanged = exclusiveNaN(pCoordinate.latitude(), coordinate.latitude()); - bool emitLongitudeValidChanged = exclusiveNaN(pCoordinate.longitude(), coordinate.longitude()); - bool emitAltitudeValidChanged = exclusiveNaN(pCoordinate.altitude(), coordinate.altitude()); - - // direction - const qreal pDirection = m_info.attribute(QGeoPositionInfo::Direction); - const qreal direction = info.attribute(QGeoPositionInfo::Direction); - bool emitDirectionChanged = !equalOrNaN(pDirection, direction); - bool emitDirectionValidChanged = exclusiveNaN(pDirection, direction); - - // ground speed - const qreal pSpeed = m_info.attribute(QGeoPositionInfo::GroundSpeed); - const qreal speed = info.attribute(QGeoPositionInfo::GroundSpeed); - bool emitSpeedChanged = !equalOrNaN(pSpeed, speed); - bool emitSpeedValidChanged = exclusiveNaN(pSpeed, speed); - - // vertical speed - const qreal pVerticalSpeed = m_info.attribute(QGeoPositionInfo::VerticalSpeed); - const qreal verticalSpeed = info.attribute(QGeoPositionInfo::VerticalSpeed); - bool emitVerticalSpeedChanged = !equalOrNaN(pVerticalSpeed, verticalSpeed); - bool emitVerticalSpeedValidChanged = exclusiveNaN(pVerticalSpeed, verticalSpeed); - - // magnetic variation - const qreal pMagneticVariation = m_info.attribute(QGeoPositionInfo::MagneticVariation); - const qreal magneticVariation = info.attribute(QGeoPositionInfo::MagneticVariation); - bool emitMagneticVariationChanged = !equalOrNaN(pMagneticVariation, magneticVariation); - bool emitMagneticVariationValidChanged = exclusiveNaN(pMagneticVariation, magneticVariation); - - // horizontal accuracy - const qreal pHorizontalAccuracy = m_info.attribute(QGeoPositionInfo::HorizontalAccuracy); - const qreal horizontalAccuracy = info.attribute(QGeoPositionInfo::HorizontalAccuracy); - bool emitHorizontalAccuracyChanged = !equalOrNaN(pHorizontalAccuracy, horizontalAccuracy); - bool emitHorizontalAccuracyValidChanged = exclusiveNaN(pHorizontalAccuracy, horizontalAccuracy); - - // vertical accuracy - const qreal pVerticalAccuracy = m_info.attribute(QGeoPositionInfo::VerticalAccuracy); - const qreal verticalAccuracy = info.attribute(QGeoPositionInfo::VerticalAccuracy); - bool emitVerticalAccuracyChanged = !equalOrNaN(pVerticalAccuracy, verticalAccuracy); - bool emitVerticalAccuracyValidChanged = exclusiveNaN(pVerticalAccuracy, verticalAccuracy); - - m_info = info; - - if (emitTimestampChanged) - emit timestampChanged(); - if (emitCoordinateChanged) - emit coordinateChanged(); - if (emitLatitudeValidChanged) - emit latitudeValidChanged(); - if (emitLongitudeValidChanged) - emit longitudeValidChanged(); - if (emitAltitudeValidChanged) - emit altitudeValidChanged(); - if (emitDirectionChanged) - emit directionChanged(); - if (emitDirectionValidChanged) - emit directionValidChanged(); - if (emitSpeedChanged) - emit speedChanged(); - if (emitSpeedValidChanged) - emit speedValidChanged(); - if (emitVerticalSpeedChanged) - emit verticalSpeedChanged(); - if (emitVerticalSpeedValidChanged) - emit verticalSpeedValidChanged(); - if (emitHorizontalAccuracyChanged) - emit horizontalAccuracyChanged(); - if (emitHorizontalAccuracyValidChanged) - emit horizontalAccuracyValidChanged(); - if (emitVerticalAccuracyChanged) - emit verticalAccuracyChanged(); - if (emitVerticalAccuracyValidChanged) - emit verticalAccuracyValidChanged(); - if (emitMagneticVariationChanged) - emit magneticVariationChanged(); - if (emitMagneticVariationValidChanged) - emit magneticVariationValidChanged(); -} - -/*! - \qmlproperty coordinate Position::coordinate - - This property holds the latitude, longitude, and altitude value of the Position. - - It is a read-only property. - - \sa longitudeValid, latitudeValid, altitudeValid -*/ -QGeoCoordinate QDeclarativePosition::coordinate() -{ - return m_info.coordinate(); -} - -/*! - \qmlproperty bool Position::latitudeValid - - This property is true if coordinate's latitude has been set - (to indicate whether that data has been received or not, as every update - does not necessarily contain all data). - - \sa coordinate -*/ -bool QDeclarativePosition::isLatitudeValid() const -{ - return !qIsNaN(m_info.coordinate().latitude()); -} - - -/*! - \qmlproperty bool Position::longitudeValid - - This property is true if coordinate's longitude has been set - (to indicate whether that data has been received or not, as every update - does not necessarily contain all data). - - \sa coordinate -*/ -bool QDeclarativePosition::isLongitudeValid() const -{ - return !qIsNaN(m_info.coordinate().longitude()); -} - - -/*! - \qmlproperty bool Position::speedValid - - This property is true if \l speed has been set - (to indicate whether that data has been received or not, as every update - does not necessarily contain all data). - - \sa speed -*/ -bool QDeclarativePosition::isSpeedValid() const -{ - return !qIsNaN(m_info.attribute(QGeoPositionInfo::GroundSpeed)); -} - -/*! - \qmlproperty bool Position::altitudeValid - - This property is true if coordinate's altitude has been set - (to indicate whether that data has been received or not, as every update - does not necessarily contain all data). - - \sa coordinate -*/ -bool QDeclarativePosition::isAltitudeValid() const -{ - return !qIsNaN(m_info.coordinate().altitude()); -} - -/*! - \qmlproperty double Position::speed - - This property holds the value of speed (groundspeed, meters / second). - - It is a read-only property. - - \sa speedValid, coordinate -*/ -double QDeclarativePosition::speed() const -{ - return m_info.attribute(QGeoPositionInfo::GroundSpeed); -} - -/*! - \qmlproperty real Position::horizontalAccuracy - - This property holds the horizontal accuracy of the coordinate (in meters). - - \sa horizontalAccuracyValid, coordinate -*/ -void QDeclarativePosition::setHorizontalAccuracy(qreal horizontalAccuracy) -{ - const qreal pHorizontalAccuracy = m_info.attribute(QGeoPositionInfo::HorizontalAccuracy); - - if (equalOrNaN(pHorizontalAccuracy, horizontalAccuracy)) - return; - - bool validChanged = exclusiveNaN(pHorizontalAccuracy, horizontalAccuracy); - - m_info.setAttribute(QGeoPositionInfo::HorizontalAccuracy, horizontalAccuracy); - emit horizontalAccuracyChanged(); - if (validChanged) - emit horizontalAccuracyValidChanged(); -} - -qreal QDeclarativePosition::horizontalAccuracy() const -{ - return m_info.attribute(QGeoPositionInfo::HorizontalAccuracy); -} - -/*! - \qmlproperty bool Position::horizontalAccuracyValid - - This property is true if \l horizontalAccuracy has been set - (to indicate whether that data has been received or not, as every update - does not necessarily contain all data). - - \sa horizontalAccuracy -*/ -bool QDeclarativePosition::isHorizontalAccuracyValid() const -{ - return !qIsNaN(m_info.attribute(QGeoPositionInfo::HorizontalAccuracy)); -} - -/*! - \qmlproperty real Position::verticalAccuracy - - This property holds the vertical accuracy of the coordinate (in meters). - - \sa verticalAccuracyValid, coordinate -*/ -void QDeclarativePosition::setVerticalAccuracy(qreal verticalAccuracy) -{ - const qreal pVerticalAccuracy = m_info.attribute(QGeoPositionInfo::VerticalAccuracy); - - if (equalOrNaN(pVerticalAccuracy, verticalAccuracy)) - return; - - bool validChanged = exclusiveNaN(pVerticalAccuracy, verticalAccuracy); - - m_info.setAttribute(QGeoPositionInfo::VerticalAccuracy, verticalAccuracy); - emit verticalAccuracyChanged(); - if (validChanged) - emit verticalAccuracyValidChanged(); -} - -qreal QDeclarativePosition::verticalAccuracy() const -{ - return m_info.attribute(QGeoPositionInfo::VerticalAccuracy); -} - -/*! - \qmlproperty bool Position::verticalAccuracyValid - - This property is true if \l verticalAccuracy has been set - (to indicate whether that data has been received or not, as every update - does not necessarily contain all data). - - \sa verticalAccuracy -*/ -bool QDeclarativePosition::isVerticalAccuracyValid() const -{ - return !qIsNaN(m_info.attribute(QGeoPositionInfo::VerticalAccuracy)); -} - -/*! - \qmlproperty date Position::timestamp - - This property holds the timestamp when this position - was received. If the property has not been set, it is invalid. - - It is a read-only property. -*/ -QDateTime QDeclarativePosition::timestamp() const -{ - return m_info.timestamp(); -} - -/*! - \qmlproperty bool Position::directionValid - \since Qt Positioning 5.3 - - This property is true if \l direction has been set (to indicate whether that data has been - received or not, as every update does not necessarily contain all data). - - \sa direction -*/ -bool QDeclarativePosition::isDirectionValid() const -{ - return !qIsNaN(m_info.attribute(QGeoPositionInfo::Direction)); -} - -/*! - \qmlproperty double Position::direction - \since Qt Positioning 5.3 - - This property holds the value of the direction of travel in degrees from true north. - - It is a read-only property. - - \sa directionValid -*/ -double QDeclarativePosition::direction() const -{ - return m_info.attribute(QGeoPositionInfo::Direction); -} - -/*! - \qmlproperty bool Position::verticalSpeedValid - \since Qt Positioning 5.3 - - This property is true if \l verticalSpeed has been set (to indicate whether that data has been - received or not, as every update does not necessarily contain all data). - - \sa verticalSpeed -*/ -bool QDeclarativePosition::isVerticalSpeedValid() const -{ - return !qIsNaN(m_info.attribute(QGeoPositionInfo::VerticalSpeed)); -} - -/*! - \qmlproperty double Position::verticalSpeed - \since Qt Positioning 5.3 - - This property holds the value of the vertical speed in meters per second. - - It is a read-only property. - - \sa verticalSpeedValid -*/ -double QDeclarativePosition::verticalSpeed() const -{ - return m_info.attribute(QGeoPositionInfo::VerticalSpeed); -} - -/*! - \qmlproperty bool Position::magneticVariationValid - \since Qt Positioning 5.4 - - This property is true if \l magneticVariation has been set (to indicate whether that data has been - received or not, as every update does not necessarily contain all data). - - \sa magneticVariation -*/ -bool QDeclarativePosition::isMagneticVariationValid() const -{ - return !qIsNaN(m_info.attribute(QGeoPositionInfo::MagneticVariation)); -} - -/*! - \qmlproperty double Position::magneticVariation - \since Qt Positioning 5.4 - - This property holds the angle between the horizontal component of the - magnetic field and true north, in degrees. Also known as magnetic - declination. A positive value indicates a clockwise direction from - true north and a negative value indicates a counter-clockwise direction. - - It is a read-only property. - - \sa magneticVariationValid -*/ -double QDeclarativePosition::magneticVariation() const -{ - return m_info.attribute(QGeoPositionInfo::MagneticVariation); -} - -QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/imports/positioning/qdeclarativeposition_p.h qtlocation-opensource-src-5.11.1+dfsg/src/imports/positioning/qdeclarativeposition_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/imports/positioning/qdeclarativeposition_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/imports/positioning/qdeclarativeposition_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,147 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 Jolla Ltd. -** Contact: Aaron McCarthy -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtPositioning module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** 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 https://www.qt.io/terms-conditions. For further -** information use the contact form at https://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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -***************************************************************************/ - -#ifndef QDECLARATIVEPOSITION_H -#define QDECLARATIVEPOSITION_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -class QDeclarativePosition : public QObject -{ - Q_OBJECT - - Q_PROPERTY(bool latitudeValid READ isLatitudeValid NOTIFY latitudeValidChanged) - Q_PROPERTY(bool longitudeValid READ isLongitudeValid NOTIFY longitudeValidChanged) - Q_PROPERTY(bool altitudeValid READ isAltitudeValid NOTIFY altitudeValidChanged) - Q_PROPERTY(QGeoCoordinate coordinate READ coordinate NOTIFY coordinateChanged) - Q_PROPERTY(QDateTime timestamp READ timestamp NOTIFY timestampChanged) - Q_PROPERTY(double speed READ speed NOTIFY speedChanged) - Q_PROPERTY(bool speedValid READ isSpeedValid NOTIFY speedValidChanged) - Q_PROPERTY(qreal horizontalAccuracy READ horizontalAccuracy WRITE setHorizontalAccuracy NOTIFY horizontalAccuracyChanged) - Q_PROPERTY(qreal verticalAccuracy READ verticalAccuracy WRITE setVerticalAccuracy NOTIFY verticalAccuracyChanged) - Q_PROPERTY(bool horizontalAccuracyValid READ isHorizontalAccuracyValid NOTIFY horizontalAccuracyValidChanged) - Q_PROPERTY(bool verticalAccuracyValid READ isVerticalAccuracyValid NOTIFY verticalAccuracyValidChanged) - - Q_PROPERTY(bool directionValid READ isDirectionValid NOTIFY directionValidChanged REVISION 1) - Q_PROPERTY(double direction READ direction NOTIFY directionChanged REVISION 1) - Q_PROPERTY(bool verticalSpeedValid READ isVerticalSpeedValid NOTIFY verticalSpeedValidChanged REVISION 1) - Q_PROPERTY(double verticalSpeed READ verticalSpeed NOTIFY verticalSpeedChanged REVISION 1) - - Q_PROPERTY(double magneticVariation READ magneticVariation NOTIFY magneticVariationChanged REVISION 2) - Q_PROPERTY(bool magneticVariationValid READ isMagneticVariationValid NOTIFY magneticVariationChanged REVISION 2) - -public: - explicit QDeclarativePosition(QObject *parent = 0); - ~QDeclarativePosition(); - - bool isLatitudeValid() const; - bool isLongitudeValid() const; - bool isAltitudeValid() const; - QDateTime timestamp() const; - double speed() const; - bool isSpeedValid() const; - QGeoCoordinate coordinate(); - bool isHorizontalAccuracyValid() const; - qreal horizontalAccuracy() const; - void setHorizontalAccuracy(qreal horizontalAccuracy); - bool isVerticalAccuracyValid() const; - qreal verticalAccuracy() const; - void setVerticalAccuracy(qreal verticalAccuracy); - - bool isDirectionValid() const; - double direction() const; - void setDirection(double direction); - - bool isVerticalSpeedValid() const; - double verticalSpeed() const; - void setVerticalSpeed(double speed); - - bool isMagneticVariationValid() const; - double magneticVariation() const; - - void setPosition(const QGeoPositionInfo &info); - -Q_SIGNALS: - void latitudeValidChanged(); - void longitudeValidChanged(); - void altitudeValidChanged(); - void timestampChanged(); - void speedChanged(); - void speedValidChanged(); - void coordinateChanged(); - void horizontalAccuracyChanged(); - void horizontalAccuracyValidChanged(); - void verticalAccuracyChanged(); - void verticalAccuracyValidChanged(); - - Q_REVISION(1) void directionValidChanged(); - Q_REVISION(1) void directionChanged(); - Q_REVISION(1) void verticalSpeedValidChanged(); - Q_REVISION(1) void verticalSpeedChanged(); - - Q_REVISION(2) void magneticVariationChanged(); - Q_REVISION(2) void magneticVariationValidChanged(); - -private: - QGeoPositionInfo m_info; -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QDeclarativePosition) - -#endif diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/imports/positioning/qdeclarativepositionsource.cpp qtlocation-opensource-src-5.11.1+dfsg/src/imports/positioning/qdeclarativepositionsource.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/imports/positioning/qdeclarativepositionsource.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/imports/positioning/qdeclarativepositionsource.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,763 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtPositioning module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** 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 https://www.qt.io/terms-conditions. For further -** information use the contact form at https://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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qdeclarativepositionsource_p.h" -#include "qdeclarativeposition_p.h" - -#include -#include -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -/*! - \qmltype PositionSource - \instantiates QDeclarativePositionSource - \inqmlmodule QtPositioning - \since 5.2 - - \brief The PositionSource type provides the device's current position. - - The PositionSource type provides information about the user device's - current position. The position is available as a \l{Position} type, which - contains all the standard parameters typically available from GPS and other - similar systems, including longitude, latitude, speed and accuracy details. - - As different position sources are available on different platforms and - devices, these are categorized by their basic type (Satellite, NonSatellite, - and AllPositioningMethods). The available methods for the current platform - can be enumerated in the \l{supportedPositioningMethods} property. - - To indicate which methods are suitable for your application, set the - \l{preferredPositioningMethods} property. If the preferred methods are not - available, the default source of location data for the platform will be - chosen instead. If no default source is available (because none are installed - for the runtime platform, or because it is disabled), the \l{valid} property - will be set to false. - - The \l updateInterval property can then be used to indicate how often your - application wishes to receive position updates. The \l{start}(), - \l{stop}() and \l{update}() methods can be used to control the operation - of the PositionSource, as well as the \l{active} property, which when set - is equivalent to calling \l{start}() or \l{stop}(). - - When the PositionSource is active, position updates can be retrieved - either by simply using the \l{position} property in a binding (as the - value of another item's property), or by providing an implementation of - the \c {onPositionChanged} signal-handler. - - \section2 Example Usage - - The following example shows a simple PositionSource used to receive - updates every second and print the longitude and latitude out to - the console. - - \code - PositionSource { - id: src - updateInterval: 1000 - active: true - - onPositionChanged: { - var coord = src.position.coordinate; - console.log("Coordinate:", coord.longitude, coord.latitude); - } - } - \endcode - - The \l{geoflickr}{GeoFlickr} example application shows how to use - a PositionSource in your application to retrieve local data for users - from a REST web service. - - \sa {QtPositioning::Position}, {QGeoPositionInfoSource} - -*/ - -/*! - \qmlsignal PositionSource::updateTimeout() - - If \l update() was called, this signal is emitted if the current position could not be - retrieved within a certain amount of time. - - If \l start() was called, this signal is emitted if the position engine determines that - it is not able to provide further regular updates. - - \since Qt Positioning 5.5 - - \sa QGeoPositionInfoSource::updateTimeout() -*/ - - -QDeclarativePositionSource::QDeclarativePositionSource() -: m_positionSource(0), m_preferredPositioningMethods(NoPositioningMethods), m_nmeaFile(0), - m_nmeaSocket(0), m_active(false), m_singleUpdate(false), m_updateInterval(0), - m_sourceError(NoError) -{ -} - -QDeclarativePositionSource::~QDeclarativePositionSource() -{ - delete m_nmeaFile; - delete m_nmeaSocket; - delete m_positionSource; -} - - -/*! - \qmlproperty string PositionSource::name - - This property holds the unique internal name for the plugin currently - providing position information. - - Setting the property causes the PositionSource to use a particular positioning provider. If - the PositionSource is active at the time that the name property is changed, it will become - inactive. If the specified positioning provider cannot be loaded the position source will - become invalid. - - Changing the name property may cause the \l {updateInterval}, \l {supportedPositioningMethods} - and \l {preferredPositioningMethods} properties to change as well. -*/ - - -QString QDeclarativePositionSource::name() const -{ - if (m_positionSource) - return m_positionSource->sourceName(); - else - return QString(); -} - -void QDeclarativePositionSource::setName(const QString &newName) -{ - if (m_positionSource && m_positionSource->sourceName() == newName) - return; - - const QString previousName = name(); - int previousUpdateInterval = updateInterval(); - PositioningMethods previousPositioningMethods = supportedPositioningMethods(); - PositioningMethods previousPreferredPositioningMethods = preferredPositioningMethods(); - - delete m_positionSource; - if (newName.isEmpty()) - m_positionSource = QGeoPositionInfoSource::createDefaultSource(this); - else - m_positionSource = QGeoPositionInfoSource::createSource(newName, this); - - if (m_positionSource) { - connect(m_positionSource, SIGNAL(positionUpdated(QGeoPositionInfo)), - this, SLOT(positionUpdateReceived(QGeoPositionInfo))); - connect(m_positionSource, SIGNAL(error(QGeoPositionInfoSource::Error)), - this, SLOT(sourceErrorReceived(QGeoPositionInfoSource::Error))); - connect(m_positionSource, SIGNAL(updateTimeout()), - this, SLOT(updateTimeoutReceived())); - - m_positionSource->setUpdateInterval(m_updateInterval); - m_positionSource->setPreferredPositioningMethods( - static_cast(int(m_preferredPositioningMethods))); - - setPosition(m_positionSource->lastKnownPosition()); - } - - if (previousUpdateInterval != updateInterval()) - emit updateIntervalChanged(); - - if (previousPreferredPositioningMethods != preferredPositioningMethods()) - emit preferredPositioningMethodsChanged(); - - if (previousPositioningMethods != supportedPositioningMethods()) - emit supportedPositioningMethodsChanged(); - - emit validityChanged(); - - if (m_active) { - m_active = false; - emit activeChanged(); - } - - if (previousName != name()) - emit nameChanged(); -} - -/*! - \qmlproperty bool PositionSource::valid - - This property is true if the PositionSource object has acquired a valid - backend plugin to provide data. If false, other methods on the PositionSource - will have no effect. - - Applications should check this property to determine whether positioning is - available and enabled on the runtime platform, and react accordingly. -*/ -bool QDeclarativePositionSource::isValid() const -{ - return (m_positionSource != 0); -} - -/*! - \internal -*/ -void QDeclarativePositionSource::setNmeaSource(const QUrl &nmeaSource) -{ - if (nmeaSource.scheme() == QLatin1String("socket")) { - if (m_nmeaSocket - && nmeaSource.host() == m_nmeaSocket->peerName() - && nmeaSource.port() == m_nmeaSocket->peerPort()) { - return; - } - - delete m_nmeaSocket; - m_nmeaSocket = new QTcpSocket(); - - connect(m_nmeaSocket, static_cast (&QAbstractSocket::error), - this, &QDeclarativePositionSource::socketError); - connect(m_nmeaSocket, &QTcpSocket::connected, - this, &QDeclarativePositionSource::socketConnected); - - m_nmeaSocket->connectToHost(nmeaSource.host(), nmeaSource.port(), QTcpSocket::ReadOnly); - } else { - // Strip the filename. This is clumsy but the file may be prefixed in several - // ways: "file:///", "qrc:///", "/", "" in platform dependent manner. - QString localFileName = nmeaSource.toString(); - if (!QFile::exists(localFileName)) { - if (localFileName.startsWith("qrc:///")) { - localFileName.remove(0, 7); - } else if (localFileName.startsWith("file:///")) { - localFileName.remove(0, 7); - } else if (localFileName.startsWith("qrc:/")) { - localFileName.remove(0, 5); - } - if (!QFile::exists(localFileName) && localFileName.startsWith('/')) { - localFileName.remove(0,1); - } - } - if (m_nmeaFileName == localFileName) - return; - m_nmeaFileName = localFileName; - - PositioningMethods previousPositioningMethods = supportedPositioningMethods(); - - // The current position source needs to be deleted - // because QNmeaPositionInfoSource can be bound only to a one file. - delete m_nmeaSocket; - m_nmeaSocket = 0; - delete m_positionSource; - m_positionSource = 0; - setPosition(QGeoPositionInfo()); - // Create the NMEA source based on the given data. QML has automatically set QUrl - // type to point to correct path. If the file is not found, check if the file actually - // was an embedded resource file. - delete m_nmeaFile; - m_nmeaFile = new QFile(localFileName); - if (!m_nmeaFile->exists()) { - localFileName.prepend(":"); - m_nmeaFile->setFileName(localFileName); - } - if (m_nmeaFile->exists()) { -#ifdef QDECLARATIVE_POSITION_DEBUG - qDebug() << "QDeclarativePositionSource NMEA File was found: " << localFileName; -#endif - m_positionSource = new QNmeaPositionInfoSource(QNmeaPositionInfoSource::SimulationMode); - (qobject_cast(m_positionSource))->setUserEquivalentRangeError(2.5); // it is internally multiplied by 2 in qlocationutils_readGga - (qobject_cast(m_positionSource))->setDevice(m_nmeaFile); - connect(m_positionSource, SIGNAL(positionUpdated(QGeoPositionInfo)), - this, SLOT(positionUpdateReceived(QGeoPositionInfo))); - connect(m_positionSource, SIGNAL(error(QGeoPositionInfoSource::Error)), - this, SLOT(sourceErrorReceived(QGeoPositionInfoSource::Error))); - connect(m_positionSource, SIGNAL(updateTimeout()), - this, SLOT(updateTimeoutReceived())); - - setPosition(m_positionSource->lastKnownPosition()); - if (m_active && !m_singleUpdate) { - // Keep on updating even though source changed - QTimer::singleShot(0, this, SLOT(start())); - } - } else { - qmlWarning(this) << QStringLiteral("Nmea file not found") << localFileName; -#ifdef QDECLARATIVE_POSITION_DEBUG - qDebug() << "QDeclarativePositionSource NMEA File was not found: " << localFileName; -#endif - if (m_active) { - m_active = false; - m_singleUpdate = false; - emit activeChanged(); - } - } - - if (previousPositioningMethods != supportedPositioningMethods()) - emit supportedPositioningMethodsChanged(); - } - - m_nmeaSource = nmeaSource; - emit nmeaSourceChanged(); -} - -/*! - \internal -*/ -void QDeclarativePositionSource::socketConnected() -{ -#ifdef QDECLARATIVE_POSITION_DEBUG - qDebug() << "Socket connected: " << m_nmeaSocket->peerName(); -#endif - PositioningMethods previousPositioningMethods = supportedPositioningMethods(); - - // The current position source needs to be deleted - // because QNmeaPositionInfoSource can be bound only to a one file. - delete m_nmeaFile; - m_nmeaFile = 0; - delete m_positionSource; - - m_positionSource = new QNmeaPositionInfoSource(QNmeaPositionInfoSource::RealTimeMode); - (qobject_cast(m_positionSource))->setDevice(m_nmeaSocket); - - connect(m_positionSource, &QNmeaPositionInfoSource::positionUpdated, - this, &QDeclarativePositionSource::positionUpdateReceived); - connect(m_positionSource, SIGNAL(error(QGeoPositionInfoSource::Error)), - this, SLOT(sourceErrorReceived(QGeoPositionInfoSource::Error))); - connect(m_positionSource, SIGNAL(updateTimeout()), - this, SLOT(updateTimeoutReceived())); - - setPosition(m_positionSource->lastKnownPosition()); - - if (m_active && !m_singleUpdate) { - // Keep on updating even though source changed - QTimer::singleShot(0, this, SLOT(start())); - } - - if (previousPositioningMethods != supportedPositioningMethods()) - emit supportedPositioningMethodsChanged(); -} - -/*! - \internal -*/ -void QDeclarativePositionSource::socketError(QAbstractSocket::SocketError error) -{ - delete m_nmeaSocket; - m_nmeaSocket = 0; - - switch (error) { - case QAbstractSocket::UnknownSocketError: - m_sourceError = QDeclarativePositionSource::UnknownSourceError; - break; - case QAbstractSocket::SocketAccessError: - m_sourceError = QDeclarativePositionSource::AccessError; - break; - case QAbstractSocket::RemoteHostClosedError: - m_sourceError = QDeclarativePositionSource::ClosedError; - break; - default: - qWarning() << "Connection failed! QAbstractSocket::SocketError" << error; - m_sourceError = QDeclarativePositionSource::SocketError; - break; - } - - emit sourceErrorChanged(); -} - - -void QDeclarativePositionSource::updateTimeoutReceived() -{ - if (!m_active) - return; - - if (m_singleUpdate) { - m_singleUpdate = false; - - // only singleUpdate based timeouts change activity - // continuous updates may resume again (see QGeoPositionInfoSource::startUpdates()) - m_active = false; - emit activeChanged(); - } - - emit updateTimeout(); -} - -void QDeclarativePositionSource::setPosition(const QGeoPositionInfo &pi) -{ - m_position.setPosition(pi); - emit positionChanged(); -} - -/*! - \internal -*/ -void QDeclarativePositionSource::setUpdateInterval(int updateInterval) -{ - if (m_positionSource) { - int previousUpdateInterval = m_positionSource->updateInterval(); - - m_updateInterval = updateInterval; - - if (previousUpdateInterval != updateInterval) { - m_positionSource->setUpdateInterval(updateInterval); - if (previousUpdateInterval != m_positionSource->updateInterval()) - emit updateIntervalChanged(); - } - } else { - if (m_updateInterval != updateInterval) { - m_updateInterval = updateInterval; - emit updateIntervalChanged(); - } - } -} - -/*! - \qmlproperty url PositionSource::nmeaSource - - This property holds the source for NMEA (National Marine Electronics Association) - position-specification data (file). One purpose of this property is to be of - development convenience. - - Setting this property will override any other position source. Currently only - files local to the .qml -file are supported. The NMEA source is created in simulation mode, - meaning that the data and time information in the NMEA source data is used to provide - positional updates at the rate at which the data was originally recorded. - - If nmeaSource has been set for a PositionSource object, there is no way to revert - back to non-file sources. -*/ - -QUrl QDeclarativePositionSource::nmeaSource() const -{ - return m_nmeaSource; -} - -/*! - \qmlproperty int PositionSource::updateInterval - - This property holds the desired interval between updates (milliseconds). - - \sa {QGeoPositionInfoSource::updateInterval()} -*/ - -int QDeclarativePositionSource::updateInterval() const -{ - if (!m_positionSource) - return m_updateInterval; - - return m_positionSource->updateInterval(); -} - -/*! - \qmlproperty enumeration PositionSource::supportedPositioningMethods - - This property holds the supported positioning methods of the - current source. - - \list - \li PositionSource.NoPositioningMethods - No positioning methods supported (no source). - \li PositionSource.SatellitePositioningMethods - Satellite-based positioning methods such as GPS are supported. - \li PositionSource.NonSatellitePositioningMethods - Non-satellite-based methods are supported. - \li PositionSource.AllPositioningMethods - Both satellite-based and non-satellite positioning methods are supported. - \endlist - -*/ - -QDeclarativePositionSource::PositioningMethods QDeclarativePositionSource::supportedPositioningMethods() const -{ - if (m_positionSource) { - return static_cast( - int(m_positionSource->supportedPositioningMethods())); - } - return QDeclarativePositionSource::NoPositioningMethods; -} - -/*! - \qmlproperty enumeration PositionSource::preferredPositioningMethods - - This property holds the preferred positioning methods of the - current source. - - \list - \li PositionSource.NoPositioningMethods - No positioning method is preferred. - \li PositionSource.SatellitePositioningMethods - Satellite-based positioning methods such as GPS should be preferred. - \li PositionSource.NonSatellitePositioningMethods - Non-satellite-based methods should be preferred. - \li PositionSource.AllPositioningMethods - Any positioning methods are acceptable. - \endlist - -*/ - -void QDeclarativePositionSource::setPreferredPositioningMethods(PositioningMethods methods) -{ - if (m_positionSource) { - PositioningMethods previousPreferredPositioningMethods = preferredPositioningMethods(); - - m_preferredPositioningMethods = methods; - - if (previousPreferredPositioningMethods != methods) { - m_positionSource->setPreferredPositioningMethods( - static_cast(int(methods))); - if (previousPreferredPositioningMethods != m_positionSource->preferredPositioningMethods()) - emit preferredPositioningMethodsChanged(); - } - } else { - if (m_preferredPositioningMethods != methods) { - m_preferredPositioningMethods = methods; - emit preferredPositioningMethodsChanged(); - } - } -} - -QDeclarativePositionSource::PositioningMethods QDeclarativePositionSource::preferredPositioningMethods() const -{ - if (m_positionSource) { - return static_cast( - int(m_positionSource->preferredPositioningMethods())); - } - return m_preferredPositioningMethods; -} - -/*! - \qmlmethod PositionSource::start() - - Requests updates from the location source. - Uses \l updateInterval if set, default interval otherwise. - If there is no source available, this method has no effect. - - \sa stop, update, active -*/ - -void QDeclarativePositionSource::start() -{ - if (m_positionSource) - m_positionSource->startUpdates(); - - if (!m_active) { - m_active = true; - emit activeChanged(); - } -} - -/*! - \qmlmethod PositionSource::update() - - A convenience method to request single update from the location source. - If there is no source available, this method has no effect. - - If the position source is not active, it will be activated for as - long as it takes to receive an update, or until the request times - out. The request timeout period is source-specific. - - \sa start, stop, active -*/ - -void QDeclarativePositionSource::update() -{ - if (m_positionSource) { - if (!m_active) { - m_active = true; - m_singleUpdate = true; - emit activeChanged(); - } - // Use default timeout value. Set active before calling the - // update request because on some platforms there may - // be results immediately. - m_positionSource->requestUpdate(); - } -} - -/*! - \qmlmethod PositionSource::stop() - - Stops updates from the location source. - If there is no source available or it is not active, - this method has no effect. - - \sa start, update, active -*/ - -void QDeclarativePositionSource::stop() -{ - if (m_positionSource) { - m_positionSource->stopUpdates(); - if (m_active) { - m_active = false; - emit activeChanged(); - } - } -} - -/*! - \qmlproperty bool PositionSource::active - - This property indicates whether the position source is active. - Setting this property to false equals calling \l stop, and - setting this property true equals calling \l start. - - \sa start, stop, update -*/ -void QDeclarativePositionSource::setActive(bool active) -{ - if (active == m_active) - return; - - if (active) - QTimer::singleShot(0, this, SLOT(start())); // delay ensures all properties have been set - else - stop(); -} - -bool QDeclarativePositionSource::isActive() const -{ - return m_active; -} - -/*! - \qmlproperty Position PositionSource::position - - This property holds the last known positional data. - It is a read-only property. - - The Position type has different positional member variables, - whose validity can be checked with appropriate validity functions - (for example sometimes an update does not have speed or altitude data). - - However, whenever a \c {positionChanged} signal has been received, at least - position::coordinate::latitude, position::coordinate::longitude, and position::timestamp can - be assumed to be valid. - - \sa start, stop, update -*/ - -QDeclarativePosition *QDeclarativePositionSource::position() -{ - return &m_position; -} - -void QDeclarativePositionSource::positionUpdateReceived(const QGeoPositionInfo &update) -{ - setPosition(update); - - if (m_singleUpdate && m_active) { - m_active = false; - m_singleUpdate = false; - emit activeChanged(); - } -} - - -/*! - \qmlproperty enumeration PositionSource::sourceError - - This property holds the error which last occurred with the PositionSource. - - \list - \li PositionSource.AccessError - The connection setup to the remote positioning backend failed because the - application lacked the required privileges. - \li PositionSource.ClosedError - The positioning backend closed the connection, which happens for example in case - the user is switching location services to off. As soon as the location service is re-enabled - regular updates will resume. - \li PositionSource.NoError - No error has occurred. - \li PositionSource.UnknownSourceError - An unidentified error occurred. - \li PositionSource.SocketError - An error occurred while connecting to an nmea source using a socket. - \endlist - -*/ - -QDeclarativePositionSource::SourceError QDeclarativePositionSource::sourceError() const -{ - return m_sourceError; -} - -void QDeclarativePositionSource::componentComplete() -{ - if (!m_positionSource) { - int previousUpdateInterval = updateInterval(); - PositioningMethods previousPositioningMethods = supportedPositioningMethods(); - PositioningMethods previousPreferredPositioningMethods = preferredPositioningMethods(); - - m_positionSource = QGeoPositionInfoSource::createDefaultSource(this); - if (m_positionSource) { - connect(m_positionSource, SIGNAL(positionUpdated(QGeoPositionInfo)), - this, SLOT(positionUpdateReceived(QGeoPositionInfo))); - connect(m_positionSource, SIGNAL(error(QGeoPositionInfoSource::Error)), - this, SLOT(sourceErrorReceived(QGeoPositionInfoSource::Error))); - connect(m_positionSource, SIGNAL(updateTimeout()), - this, SLOT(updateTimeoutReceived())); - - m_positionSource->setUpdateInterval(m_updateInterval); - m_positionSource->setPreferredPositioningMethods( - static_cast(int(m_preferredPositioningMethods))); - - setPosition(m_positionSource->lastKnownPosition()); - - if (m_active) - QTimer::singleShot(0, this, SLOT(start())); // delay ensures all properties have been set - } else if (m_active) { - m_active = false; - emit activeChanged(); - } - - if (previousUpdateInterval != updateInterval()) - emit updateIntervalChanged(); - - if (previousPreferredPositioningMethods != preferredPositioningMethods()) - emit preferredPositioningMethodsChanged(); - - if (previousPositioningMethods != supportedPositioningMethods()) - emit supportedPositioningMethodsChanged(); - - emit validityChanged(); - emit nameChanged(); - } -} - -/*! - \internal -*/ -void QDeclarativePositionSource::sourceErrorReceived(const QGeoPositionInfoSource::Error error) -{ - if (error == QGeoPositionInfoSource::AccessError) - m_sourceError = QDeclarativePositionSource::AccessError; - else if (error == QGeoPositionInfoSource::ClosedError) - m_sourceError = QDeclarativePositionSource::ClosedError; - else if (error == QGeoPositionInfoSource::NoError) - return; //nothing to do - else - m_sourceError = QDeclarativePositionSource::UnknownSourceError; - - emit sourceErrorChanged(); -} - -QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/imports/positioning/qdeclarativepositionsource_p.h qtlocation-opensource-src-5.11.1+dfsg/src/imports/positioning/qdeclarativepositionsource_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/imports/positioning/qdeclarativepositionsource_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/imports/positioning/qdeclarativepositionsource_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,172 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtPositioning module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** 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 https://www.qt.io/terms-conditions. For further -** information use the contact form at https://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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -***************************************************************************/ - -#ifndef QDECLARATIVEPOSITIONSOURCE_H -#define QDECLARATIVEPOSITIONSOURCE_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qdeclarativeposition_p.h" - -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -class QFile; -class QTcpSocket; - -class QDeclarativePositionSource : public QObject, public QQmlParserStatus -{ - Q_OBJECT - - Q_PROPERTY(QDeclarativePosition *position READ position NOTIFY positionChanged) - Q_PROPERTY(bool active READ isActive WRITE setActive NOTIFY activeChanged) - Q_PROPERTY(bool valid READ isValid NOTIFY validityChanged) - Q_PROPERTY(QUrl nmeaSource READ nmeaSource WRITE setNmeaSource NOTIFY nmeaSourceChanged) - Q_PROPERTY(int updateInterval READ updateInterval WRITE setUpdateInterval NOTIFY updateIntervalChanged) - Q_PROPERTY(PositioningMethods supportedPositioningMethods READ supportedPositioningMethods NOTIFY supportedPositioningMethodsChanged) - Q_PROPERTY(PositioningMethods preferredPositioningMethods READ preferredPositioningMethods WRITE setPreferredPositioningMethods NOTIFY preferredPositioningMethodsChanged) - Q_PROPERTY(SourceError sourceError READ sourceError NOTIFY sourceErrorChanged) - Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) - Q_ENUMS(PositioningMethod) - - Q_INTERFACES(QQmlParserStatus) - -public: - enum PositioningMethod { - NoPositioningMethods = QGeoPositionInfoSource::NoPositioningMethods, - SatellitePositioningMethods = QGeoPositionInfoSource::SatellitePositioningMethods, - NonSatellitePositioningMethods = QGeoPositionInfoSource::NonSatellitePositioningMethods, - AllPositioningMethods = QGeoPositionInfoSource::AllPositioningMethods - }; - - Q_DECLARE_FLAGS(PositioningMethods, PositioningMethod) - Q_FLAGS(PositioningMethods) - - enum SourceError { - AccessError = QGeoPositionInfoSource::AccessError, - ClosedError = QGeoPositionInfoSource::ClosedError, - UnknownSourceError = QGeoPositionInfoSource::UnknownSourceError, - NoError = QGeoPositionInfoSource::NoError, - - //Leave a gap for future error enum values in QGeoPositionInfoSource::Error - SocketError = 100 - }; - Q_ENUMS(SourceError) - - QDeclarativePositionSource(); - ~QDeclarativePositionSource(); - void setNmeaSource(const QUrl &nmeaSource); - void setUpdateInterval(int updateInterval); - void setActive(bool active); - void setPreferredPositioningMethods(PositioningMethods methods); - - QString name() const; - void setName(const QString &name); - - QUrl nmeaSource() const; - int updateInterval() const; - bool isActive() const; - bool isValid() const; - QDeclarativePosition *position(); - PositioningMethods supportedPositioningMethods() const; - PositioningMethods preferredPositioningMethods() const; - SourceError sourceError() const; - - // Virtuals from QQmlParserStatus - void classBegin() { } - void componentComplete(); - -public Q_SLOTS: - void update(); // TODO Qt 6 change to void update(int) - void start(); - void stop(); - -Q_SIGNALS: - void positionChanged(); - void activeChanged(); - void nmeaSourceChanged(); - void updateIntervalChanged(); - void supportedPositioningMethodsChanged(); - void preferredPositioningMethodsChanged(); - void sourceErrorChanged(); - void nameChanged(); - void validityChanged(); - void updateTimeout(); - -private Q_SLOTS: - void positionUpdateReceived(const QGeoPositionInfo &update); - void sourceErrorReceived(const QGeoPositionInfoSource::Error error); - void socketConnected(); - void socketError(QAbstractSocket::SocketError error); - void updateTimeoutReceived(); - -private: - void setPosition(const QGeoPositionInfo &pi); - - QGeoPositionInfoSource *m_positionSource; - QDeclarativePosition m_position; - PositioningMethods m_preferredPositioningMethods; - QFile *m_nmeaFile; - QTcpSocket *m_nmeaSocket; - QString m_nmeaFileName; - QUrl m_nmeaSource; - bool m_active; - bool m_singleUpdate; - int m_updateInterval; - SourceError m_sourceError; -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QDeclarativePositionSource) - -#endif diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/imports/positioning/qquickgeocoordinateanimation.cpp qtlocation-opensource-src-5.11.1+dfsg/src/imports/positioning/qquickgeocoordinateanimation.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/imports/positioning/qquickgeocoordinateanimation.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/imports/positioning/qquickgeocoordinateanimation.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -275,14 +275,14 @@ d->m_direction = direction; switch (direction) { case West: - d->interpolator = reinterpret_cast(&q_coordinateWestInterpolator); + d->interpolator = reinterpret_cast(reinterpret_cast(&q_coordinateWestInterpolator)); break; case East: - d->interpolator = reinterpret_cast(&q_coordinateEastInterpolator); + d->interpolator = reinterpret_cast(reinterpret_cast(&q_coordinateEastInterpolator)); break; case Shortest: default: - d->interpolator = reinterpret_cast(&q_coordinateShortestInterpolator); + d->interpolator = reinterpret_cast(reinterpret_cast(&q_coordinateShortestInterpolator)); break; } emit directionChanged(); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/configure.json qtlocation-opensource-src-5.11.1+dfsg/src/location/configure.json --- qtlocation-opensource-src-5.9.5+dfsg/src/location/configure.json 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/configure.json 2018-06-12 18:44:12.000000000 +0000 @@ -5,6 +5,12 @@ ], "features": { + "location-labs-plugin": { + "label": "Qt.labs.location experimental QML plugin", + "purpose": "Provides experimental QtLocation QML types", + "section": "Location", + "output": [ "privateFeature" ] + }, "geoservices_osm": { "label": "OpenStreetMap", "purpose": "Provides access to OpenStreetMap geoservices", @@ -37,7 +43,7 @@ "condition": [ "features.opengl", "features.c++14", - "!config.qnx && (!config.win32 || config.mingw)" + "!config.qnx && !config.intel_icc && (!config.win32 || config.mingw)" ], "output": [ "privateFeature" ] }, @@ -53,6 +59,7 @@ { "section": "Qt Location", "entries": [ + "location-labs-plugin", { "section": "Geoservice plugins", "entries": [ diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/declarativemaps.pri qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/declarativemaps.pri --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/declarativemaps.pri 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/declarativemaps.pri 2018-06-12 18:44:12.000000000 +0000 @@ -5,7 +5,6 @@ PRIVATE_HEADERS += \ declarativemaps/error_messages_p.h \ declarativemaps/qdeclarativegeomapitemview_p.h \ - declarativemaps/qdeclarativegeomapitemview_p_p.h \ declarativemaps/qdeclarativegeoserviceprovider_p.h \ declarativemaps/qdeclarativegeocodemodel_p.h \ declarativemaps/qdeclarativegeoroutemodel_p.h \ @@ -27,7 +26,9 @@ declarativemaps/locationvaluetypehelper_p.h \ declarativemaps/qquickgeomapgesturearea_p.h \ declarativemaps/qdeclarativegeomapitemgroup_p.h \ - declarativemaps/mapitemviewdelegateincubator_p.h \ + declarativemaps/qparameterizableobject_p.h \ + declarativemaps/qgeomapobject_p.h \ + declarativemaps/qgeomapobject_p_p.h \ ../imports/positioning/qquickgeocoordinateanimation_p.h SOURCES += \ @@ -53,11 +54,10 @@ declarativemaps/error_messages.cpp \ declarativemaps/locationvaluetypehelper.cpp \ declarativemaps/qquickgeomapgesturearea.cpp \ + declarativemaps/qparameterizableobject.cpp \ declarativemaps/qdeclarativegeomapitemgroup.cpp \ - ../imports/positioning/qquickgeocoordinateanimation.cpp \ - declarativemaps/mapitemviewdelegateincubator.cpp + declarativemaps/qgeomapobject.cpp \ + ../imports/positioning/qquickgeocoordinateanimation.cpp load(qt_build_paths) LIBS_PRIVATE += -L$$MODULE_BASE_OUTDIR/lib -lpoly2tri$$qtPlatformTargetSuffix() -lclip2tri$$qtPlatformTargetSuffix() - - diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/locationvaluetypehelper.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/locationvaluetypehelper.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/locationvaluetypehelper.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/locationvaluetypehelper.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -35,11 +35,16 @@ ****************************************************************************/ #include "locationvaluetypehelper_p.h" +#include +#include +#include QGeoCoordinate parseCoordinate(const QJSValue &value, bool *ok) { QGeoCoordinate c; + if (ok) + *ok = false; if (value.isObject()) { if (value.hasProperty(QStringLiteral("latitude"))) @@ -56,6 +61,33 @@ return c; } +QGeoCoordinate parseCoordinate(const QVariant &value, bool *ok) +{ + QGeoCoordinate c; + if (ok) + *ok = false; + + if (value.canConvert()) { + c = value.value(); + if (ok) + *ok = true; + } else if (value.type() == QVariant::Map) { + const QVariantMap &map = value.toMap(); + + if (map.contains(QStringLiteral("latitude"))) + c.setLatitude(map.value(QStringLiteral("latitude")).toDouble()); + if (map.contains(QStringLiteral("longitude"))) + c.setLongitude(map.value(QStringLiteral("longitude")).toDouble()); + if (map.contains(QStringLiteral("altitude"))) + c.setAltitude(map.value(QStringLiteral("altitude")).toDouble()); + + if (ok) + *ok = c.isValid(); // Not considering the case where the map is valid but containing NaNs. + } + + return c; +} + QGeoRectangle parseRectangle(const QJSValue &value, bool *ok) { QGeoRectangle r; @@ -115,3 +147,42 @@ return c; } + +QJSValue fromList(const QObject *object, const QList &list) +{ + QQmlContext *context = QQmlEngine::contextForObject(object); + QQmlEngine *engine = context->engine(); + QV4::ExecutionEngine *v4 = QQmlEnginePrivate::getV4Engine(engine); + + QV4::Scope scope(v4); + QV4::Scoped pathArray(scope, v4->newArrayObject(list.length())); + int i = 0; + for (const auto &val : list) { + QV4::ScopedValue cv(scope, v4->fromVariant(QVariant::fromValue(val))); + pathArray->putIndexed(i++, cv); + } + + return QJSValue(v4, pathArray.asReturnedValue()); +} + +QList toList(const QObject *object, const QJSValue &value) +{ + if (!value.isArray()) + return {}; + + QList pathList; + quint32 length = value.property(QStringLiteral("length")).toUInt(); + for (quint32 i = 0; i < length; ++i) { + bool ok; + QGeoCoordinate c = parseCoordinate(value.property(i), &ok); + + if (!ok || !c.isValid()) { + qmlWarning(object) << "Unsupported path type"; + return {}; + } + + pathList.append(c); + } + + return pathList; +} diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/locationvaluetypehelper_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/locationvaluetypehelper_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/locationvaluetypehelper_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/locationvaluetypehelper_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -48,13 +48,17 @@ // We mean it. // +#include #include +#include #include #include #include -QGeoCoordinate parseCoordinate(const QJSValue &value, bool *ok); -QGeoRectangle parseRectangle(const QJSValue &value, bool *ok); -QGeoCircle parseCircle(const QJSValue &value, bool *ok); - +QGeoCoordinate Q_LOCATION_PRIVATE_EXPORT parseCoordinate(const QJSValue &value, bool *ok = nullptr); +QGeoCoordinate Q_LOCATION_PRIVATE_EXPORT parseCoordinate(const QVariant &value, bool *ok = nullptr); +QGeoRectangle Q_LOCATION_PRIVATE_EXPORT parseRectangle(const QJSValue &value, bool *ok); +QGeoCircle Q_LOCATION_PRIVATE_EXPORT parseCircle(const QJSValue &value, bool *ok); +QJSValue Q_LOCATION_PRIVATE_EXPORT fromList(const QObject *object, const QList &list); +QList Q_LOCATION_PRIVATE_EXPORT toList(const QObject *object, const QJSValue &value); #endif diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/mapitemviewdelegateincubator.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/mapitemviewdelegateincubator.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/mapitemviewdelegateincubator.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/mapitemviewdelegateincubator.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,54 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Copyright (C) 2015 Jolla Ltd, author: Aaron McCarthy -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the QtLocation module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL3$ -** 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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "mapitemviewdelegateincubator_p.h" -#include "qdeclarativegeomapitemview_p.h" -#include "qdeclarativegeomapitemview_p_p.h" - -QT_BEGIN_NAMESPACE - -MapItemViewDelegateIncubator::MapItemViewDelegateIncubator(QDeclarativeGeoMapItemView *view, QDeclarativeGeoMapItemViewItemData *itemData, bool batched) -: m_view(view), m_itemData(itemData), m_batched(batched) -{ -} - -void MapItemViewDelegateIncubator::statusChanged(QQmlIncubator::Status status) -{ - m_view->incubatorStatusChanged(this, status, m_batched); -} - -QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/mapitemviewdelegateincubator_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/mapitemviewdelegateincubator_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/mapitemviewdelegateincubator_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/mapitemviewdelegateincubator_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -62,7 +62,7 @@ MapItemViewDelegateIncubator(QDeclarativeGeoMapItemView *view, QDeclarativeGeoMapItemViewItemData *itemData, bool batched = true); protected: - void statusChanged(Status status) Q_DECL_OVERRIDE; + void statusChanged(Status status) override; private: QDeclarativeGeoMapItemView *m_view; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativecirclemapitem.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativecirclemapitem.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativecirclemapitem.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativecirclemapitem.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -65,7 +65,7 @@ \instantiates QDeclarativeCircleMapItem \inqmlmodule QtLocation \ingroup qml-QtLocation5-maps - \since Qt Location 5.5 + \since QtLocation 5.5 \brief The MapCircle type displays a geographic circle on a Map. @@ -144,6 +144,7 @@ */ void QGeoMapCircleGeometry::updateScreenPointsInvert(const QList &circlePath, const QGeoMap &map) { + const QGeoProjectionWebMercator &p = static_cast(map.geoProjection()); // Not checking for !screenDirty anymore, as everything is now recalculated. clear(); if (map.viewportWidth() == 0 || map.viewportHeight() == 0 || circlePath.size() < 3) // a circle requires at least 3 points; @@ -160,23 +161,23 @@ */ // 1) - double topLati = QLocationUtils::mercatorMaxLatitude(); - double bottomLati = -(QLocationUtils::mercatorMaxLatitude()); - double leftLongi = QLocationUtils::mapLeftLongitude(map.cameraData().center().longitude()); - double rightLongi = QLocationUtils::mapRightLongitude(map.cameraData().center().longitude()); + const double topLati = QLocationUtils::mercatorMaxLatitude(); + const double bottomLati = -(QLocationUtils::mercatorMaxLatitude()); + const double leftLongi = QLocationUtils::mapLeftLongitude(map.cameraData().center().longitude()); + const double rightLongi = QLocationUtils::mapRightLongitude(map.cameraData().center().longitude()); srcOrigin_ = QGeoCoordinate(topLati,leftLongi); - QDoubleVector2D tl = map.geoProjection().geoToWrappedMapProjection(QGeoCoordinate(topLati,leftLongi)); - QDoubleVector2D tr = map.geoProjection().geoToWrappedMapProjection(QGeoCoordinate(topLati,rightLongi)); - QDoubleVector2D br = map.geoProjection().geoToWrappedMapProjection(QGeoCoordinate(bottomLati,rightLongi)); - QDoubleVector2D bl = map.geoProjection().geoToWrappedMapProjection(QGeoCoordinate(bottomLati,leftLongi)); + const QDoubleVector2D tl = p.geoToWrappedMapProjection(QGeoCoordinate(topLati,leftLongi)); + const QDoubleVector2D tr = p.geoToWrappedMapProjection(QGeoCoordinate(topLati,rightLongi)); + const QDoubleVector2D br = p.geoToWrappedMapProjection(QGeoCoordinate(bottomLati,rightLongi)); + const QDoubleVector2D bl = p.geoToWrappedMapProjection(QGeoCoordinate(bottomLati,leftLongi)); QList fill; fill << tl << tr << br << bl; QList hole; for (const QDoubleVector2D &c: circlePath) - hole << map.geoProjection().wrapMapProjection(c); + hole << p.wrapMapProjection(c); c2t::clip2tri clipper; clipper.addSubjectPath(QClipperUtils::qListToPath(fill), true); @@ -184,9 +185,9 @@ Paths difference = clipper.execute(c2t::clip2tri::Difference, QtClipperLib::pftEvenOdd, QtClipperLib::pftEvenOdd); // 2) - QDoubleVector2D lb = map.geoProjection().geoToWrappedMapProjection(srcOrigin_); + QDoubleVector2D lb = p.geoToWrappedMapProjection(srcOrigin_); QList > clippedPaths; - const QList &visibleRegion = map.geoProjection().visibleRegion(); + const QList &visibleRegion = p.visibleGeometry(); if (visibleRegion.size()) { clipper.clearClipper(); for (const Path &p: difference) @@ -210,19 +211,19 @@ // Prevent the conversion to and from clipper from introducing negative offsets which // in turn will make the geometry wrap around. lb.setX(qMax(tl.x(), lb.x())); - srcOrigin_ = map.geoProjection().mapProjectionToGeo(map.geoProjection().unwrapMapProjection(lb)); + srcOrigin_ = p.mapProjectionToGeo(p.unwrapMapProjection(lb)); } else { clippedPaths = QClipperUtils::pathsToQList(difference); } //3) - QDoubleVector2D origin = map.geoProjection().wrappedMapProjectionToItemPosition(lb); + QDoubleVector2D origin = p.wrappedMapProjectionToItemPosition(lb); QPainterPath ppi; for (const QList &path: clippedPaths) { QDoubleVector2D lastAddedPoint; for (int i = 0; i < path.size(); ++i) { - QDoubleVector2D point = map.geoProjection().wrappedMapProjectionToItemPosition(path.at(i)); + QDoubleVector2D point = p.wrappedMapProjectionToItemPosition(path.at(i)); //point = point - origin; // Do this using ppi.translate() if (i == 0) { @@ -483,16 +484,24 @@ */ void QDeclarativeCircleMapItem::updatePolish() { - if (!map() || !circle_.isValid()) + if (!map() || map()->geoProjection().projectionType() != QGeoProjection::ProjectionWebMercator) return; + if (!circle_.isValid()) { + geometry_.clear(); + borderGeometry_.clear(); + setWidth(0); + setHeight(0); + return; + } + const QGeoProjectionWebMercator &p = static_cast(map()->geoProjection()); QScopedValueRollback rollback(updatingGeometry_); updatingGeometry_ = true; QList circlePath = circlePath_; int pathCount = circlePath.size(); - bool preserve = preserveCircleGeometry(circlePath, circle_.center(), circle_.radius()); + bool preserve = preserveCircleGeometry(circlePath, circle_.center(), circle_.radius(), p); // using leftBound_ instead of the analytically calculated circle_.boundingGeoRectangle().topLeft()); // to fix QTBUG-62154 geometry_.setPreserveGeometry(true, leftBound_); // to set the geoLeftBound_ @@ -504,7 +513,7 @@ invertedCircle = true; } else { geometry_.updateSourcePoints(*map(), circlePath); - geometry_.updateScreenPoints(*map()); + geometry_.updateScreenPoints(*map(), border_.width()); } borderGeometry_.clear(); @@ -533,7 +542,7 @@ QDoubleVector2D borderLeftBoundWrapped; QList > clippedPaths = borderGeometry_.clipPath(*map(), closedPath, borderLeftBoundWrapped); if (clippedPaths.size()) { - borderLeftBoundWrapped = map()->geoProjection().geoToWrappedMapProjection(geometryOrigin); + borderLeftBoundWrapped = p.geoToWrappedMapProjection(geometryOrigin); borderGeometry_.pathToScreen(*map(), clippedPaths, borderLeftBoundWrapped); borderGeometry_.updateScreenPoints(*map(), border_.width()); geoms << &borderGeometry_; @@ -543,9 +552,17 @@ } QRectF combined = QGeoMapItemGeometry::translateToCommonOrigin(geoms); - setWidth(combined.width()); - setHeight(combined.height()); + if (invertedCircle || !preserve) { + setWidth(combined.width()); + setHeight(combined.height()); + setPositionOnMap(geometry_.origin(), geometry_.firstPointOffset()); + } else { + setWidth(combined.width() + 2 * border_.width()); + setHeight(combined.height() + 2 * border_.width()); + } + + // No offsetting here, even in normal case, because first point offset is already translated setPositionOnMap(geometry_.origin(), geometry_.firstPointOffset()); } @@ -565,13 +582,15 @@ */ void QDeclarativeCircleMapItem::updateCirclePath() { - if (!map()) + if (!map() || map()->geoProjection().projectionType() != QGeoProjection::ProjectionWebMercator) return; + + const QGeoProjectionWebMercator &p = static_cast(map()->geoProjection()); QList path; calculatePeripheralPoints(path, circle_.center(), circle_.radius(), CircleSamples, leftBound_); circlePath_.clear(); for (const QGeoCoordinate &c : path) - circlePath_ << map()->geoProjection().geoToMapProjection(c); + circlePath_ << p.geoToMapProjection(c); } /*! @@ -612,11 +631,11 @@ } bool QDeclarativeCircleMapItem::preserveCircleGeometry (QList &path, - const QGeoCoordinate ¢er, qreal distance) + const QGeoCoordinate ¢er, qreal distance, const QGeoProjectionWebMercator &p) { // if circle crosses north/south pole, then don't preserve circular shape, if ( crossEarthPole(center, distance)) { - updateCirclePathForRendering(path, center, distance); + updateCirclePathForRendering(path, center, distance, p); return false; } return true; @@ -642,7 +661,7 @@ */ void QDeclarativeCircleMapItem::updateCirclePathForRendering(QList &path, const QGeoCoordinate ¢er, - qreal distance) + qreal distance, const QGeoProjectionWebMercator &p) { const qreal poleLat = 90; const qreal distanceToNorthPole = center.distanceTo(QGeoCoordinate(poleLat, 0)); @@ -651,11 +670,11 @@ bool crossSouthPole = distanceToSouthPole < distance; QList wrapPathIndex; - QDoubleVector2D prev = map()->geoProjection().wrapMapProjection(path.at(0)); + QDoubleVector2D prev = p.wrapMapProjection(path.at(0)); for (int i = 1; i <= path.count(); ++i) { int index = i % path.count(); - QDoubleVector2D point = map()->geoProjection().wrapMapProjection(path.at(index)); + QDoubleVector2D point = p.wrapMapProjection(path.at(index)); double diff = qAbs(point.x() - prev.x()); if (diff > 0.5) { continue; @@ -665,7 +684,7 @@ // find the points in path where wrapping occurs for (int i = 1; i <= path.count(); ++i) { int index = i % path.count(); - QDoubleVector2D point = map()->geoProjection().wrapMapProjection(path.at(index)); + QDoubleVector2D point = p.wrapMapProjection(path.at(index)); if ( (qAbs(point.x() - prev.x())) >= 0.5 ) { wrapPathIndex << index; if (wrapPathIndex.size() == 2 || !(crossNorthPole && crossSouthPole)) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativecirclemapitem_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativecirclemapitem_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativecirclemapitem_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativecirclemapitem_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -58,7 +58,7 @@ QT_BEGIN_NAMESPACE -class QGeoMapCircleGeometry : public QGeoMapPolygonGeometry +class Q_LOCATION_PRIVATE_EXPORT QGeoMapCircleGeometry : public QGeoMapPolygonGeometry { public: QGeoMapCircleGeometry(); @@ -78,8 +78,8 @@ explicit QDeclarativeCircleMapItem(QQuickItem *parent = 0); ~QDeclarativeCircleMapItem(); - virtual void setMap(QDeclarativeGeoMap *quickMap, QGeoMap *map) Q_DECL_OVERRIDE; - virtual QSGNode *updateMapItemPaintNode(QSGNode *, UpdatePaintNodeData *) Q_DECL_OVERRIDE; + virtual void setMap(QDeclarativeGeoMap *quickMap, QGeoMap *map) override; + virtual QSGNode *updateMapItemPaintNode(QSGNode *, UpdatePaintNodeData *) override; QGeoCoordinate center(); void setCenter(const QGeoCoordinate ¢er); @@ -92,15 +92,17 @@ QDeclarativeMapLineProperties *border(); - bool contains(const QPointF &point) const Q_DECL_OVERRIDE; - const QGeoShape &geoShape() const Q_DECL_OVERRIDE; - QGeoMap::ItemType itemType() const Q_DECL_OVERRIDE; + bool contains(const QPointF &point) const override; + const QGeoShape &geoShape() const override; + QGeoMap::ItemType itemType() const override; static bool crossEarthPole(const QGeoCoordinate ¢er, qreal distance); static void calculatePeripheralPoints(QList &path, const QGeoCoordinate ¢er, qreal distance, int steps, QGeoCoordinate &leftBound); - bool preserveCircleGeometry(QList &path, const QGeoCoordinate ¢er, - qreal distance); + static bool preserveCircleGeometry(QList &path, const QGeoCoordinate ¢er, + qreal distance, const QGeoProjectionWebMercator &p); + static void updateCirclePathForRendering(QList &path, const QGeoCoordinate ¢er, + qreal distance, const QGeoProjectionWebMercator &p); Q_SIGNALS: void centerChanged(const QGeoCoordinate ¢er); @@ -108,17 +110,15 @@ void colorChanged(const QColor &color); protected: - void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) Q_DECL_OVERRIDE; - void updatePolish() Q_DECL_OVERRIDE; + void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) override; + void updatePolish() override; protected Q_SLOTS: void markSourceDirtyAndUpdate(); - virtual void afterViewportChanged(const QGeoMapViewportChangeEvent &event) Q_DECL_OVERRIDE; + virtual void afterViewportChanged(const QGeoMapViewportChangeEvent &event) override; private: void updateCirclePath(); - void updateCirclePathForRendering(QList &path, const QGeoCoordinate ¢er, - qreal distance); private: QGeoCircle circle_; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeocodemodel.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeocodemodel.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeocodemodel.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeocodemodel.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -42,6 +42,7 @@ #include #include #include +#include QT_BEGIN_NAMESPACE @@ -50,7 +51,7 @@ \instantiates QDeclarativeGeocodeModel \inqmlmodule QtLocation \ingroup qml-QtLocation5-geocoding - \since Qt Location 5.5 + \since QtLocation 5.5 \brief The GeocodeModel type provides support for searching operations related to geographic information. @@ -374,6 +375,8 @@ return QVariant::fromValue(QGeoRectangle(boundingArea_)); else if (boundingArea_.type() == QGeoShape::CircleType) return QVariant::fromValue(QGeoCircle(boundingArea_)); + else if (boundingArea_.type() == QGeoShape::PolygonType) + return QVariant::fromValue(QGeoPolygon(boundingArea_)); else return QVariant::fromValue(boundingArea_); } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomaneuver.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomaneuver.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomaneuver.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomaneuver.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -43,7 +43,7 @@ \instantiates QDeclarativeGeoManeuver \inqmlmodule QtLocation \ingroup qml-QtLocation5-routing - \since Qt Location 5.5 + \since QtLocation 5.5 \brief The RouteManeuver type represents the information relevant to the point at which two RouteSegments meet. @@ -185,6 +185,36 @@ } /*! + \qmlproperty Object RouteManeuver::extendedAttributes + + This property holds the extended attributes of the maneuver and is a map. + These attributes are plugin specific, and can be empty. + + Consult the \l {Qt Location#Plugin References and Parameters}{plugin documentation} + for what attributes are supported and how they should be used. + + Note, due to limitations of the QQmlPropertyMap, it is not possible + to declaratively specify the attributes in QML, assignment of attributes keys + and values can only be accomplished by JavaScript. + + \since QtLocation 5.11 +*/ +QQmlPropertyMap *QDeclarativeGeoManeuver::extendedAttributes() const +{ + if (!m_extendedAttributes) { + QDeclarativeGeoManeuver *self = const_cast(this); + self->m_extendedAttributes = new QQmlPropertyMap(self); + // Fill it + const QStringList keys = maneuver_.extendedAttributes().keys(); + for (const QString &key: keys) { + self->m_extendedAttributes->insert(key, + maneuver_.extendedAttributes().value(key)); + } + } + return m_extendedAttributes; +} + +/*! \qmlproperty bool RouteManeuver::waypointValid This read-only property holds whether this \l waypoint, associated with this diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomaneuver_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomaneuver_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomaneuver_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomaneuver_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -50,7 +50,7 @@ #include #include - +#include #include #include @@ -71,6 +71,7 @@ Q_PROPERTY(qreal distanceToNextInstruction READ distanceToNextInstruction CONSTANT) Q_PROPERTY(QGeoCoordinate waypoint READ waypoint CONSTANT) Q_PROPERTY(bool waypointValid READ waypointValid CONSTANT) + Q_PROPERTY(QObject *extendedAttributes READ extendedAttributes NOTIFY extendedAttributesChanged REVISION 11) public: enum Direction { @@ -101,9 +102,15 @@ int timeToNextInstruction() const; qreal distanceToNextInstruction() const; QGeoCoordinate waypoint() const; + QQmlPropertyMap *extendedAttributes() const; + +Q_SIGNALS: + void extendedAttributesChanged(); //in practice is never emitted since parameters cannot be re-assigned + //the declaration is needed to avoid warnings about non-notifyable properties private: QGeoManeuver maneuver_; + QQmlPropertyMap *m_extendedAttributes = nullptr; }; QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomapcopyrightsnotice.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomapcopyrightsnotice.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomapcopyrightsnotice.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomapcopyrightsnotice.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -59,7 +59,7 @@ \instantiates QDeclarativeGeoMapCopyrightNotice \inqmlmodule QtLocation \ingroup qml-QtLocation5-maps - \since Qt Location 5.9 + \since QtLocation 5.9 \brief The MapCopyrightNotice item displays the current valid copyright notice for a Map element. @@ -134,7 +134,7 @@ if (m_copyrightsHtml) m_copyrightsHtml->clear(); m_copyrightsImage = QImage(); - m_mapSource = Q_NULLPTR; + m_mapSource = nullptr; } if (map) { diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomapcopyrightsnotice_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomapcopyrightsnotice_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomapcopyrightsnotice_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomapcopyrightsnotice_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -67,7 +67,7 @@ Q_PROPERTY(QString styleSheet READ styleSheet WRITE setStyleSheet NOTIFY styleSheetChanged) public: - QDeclarativeGeoMapCopyrightNotice(QQuickItem *parent = Q_NULLPTR); + QDeclarativeGeoMapCopyrightNotice(QQuickItem *parent = nullptr); ~QDeclarativeGeoMapCopyrightNotice(); void setCopyrightsZ(qreal copyrightsZ); @@ -95,9 +95,9 @@ void copyrightsVisibleChanged(); protected: - void paint(QPainter *painter) Q_DECL_OVERRIDE; - void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE; - void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE; + void paint(QPainter *painter) override; + void mousePressEvent(QMouseEvent *event) override; + void mouseReleaseEvent(QMouseEvent *event) override; void rasterizeHtmlAndUpdate(); void connectMap(); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomap.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomap.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomap.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomap.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -43,9 +43,11 @@ #include "qgeocameracapabilities_p.h" #include "qgeomap_p.h" #include "qdeclarativegeomapparameter_p.h" +#include "qgeomapobject_p.h" #include #include #include +#include #include #include #include @@ -60,12 +62,21 @@ QT_BEGIN_NAMESPACE +static qreal sanitizeBearing(qreal bearing) +{ + bearing = std::fmod(bearing, qreal(360.0)); + if (bearing < 0.0) + bearing += 360.0; + + return bearing; +} + /*! \qmltype Map \instantiates QDeclarativeGeoMap \inqmlmodule QtLocation \ingroup qml-QtLocation5-maps - \since Qt Location 5.0 + \since QtLocation 5.0 \brief The Map type displays a map. @@ -102,15 +113,17 @@ \section2 Map Objects Map related objects can be declared within the body of a Map object in Qt Quick and will - automatically appear on the Map. To add objects programmatically, first be - sure they are created with the Map as their parent (for example in an argument to - Component::createObject), and then call the \l addMapItem method on the Map. + automatically appear on the Map. To add an object programmatically, first be + sure it is created with the Map as its parent (for example in an argument to + Component::createObject). + Then call the \l addMapItem method on the Map, if the type of this object is one of + \l MapCircle, \l MapRectangle, \l MapPolyline, \l MapPolygon, \l MapRoute or \l MapQuickItem. A corresponding \l removeMapItem method also exists to do the opposite and - remove an object from the Map. + remove any of the above types of map objects from the Map. Moving Map objects around, resizing them or changing their shape normally does not involve any special interaction with Map itself -- changing these - details about a map object will automatically update the display. + properties in a map object will automatically update the display. \section2 Interaction @@ -189,7 +202,11 @@ m_activeMapType = new QDeclarativeGeoMapType(QGeoMapType(QGeoMapType::NoMap, tr("No Map"), - tr("No Map"), false, false, 0, QByteArrayLiteral("")), this); + tr("No Map"), + false, false, + 0, + QByteArrayLiteral(""), + QGeoCameraCapabilities()), this); m_cameraData.setCenter(QGeoCoordinate(51.5073,-0.1277)); //London city center m_cameraData.setZoomLevel(8.0); @@ -217,8 +234,18 @@ m_map->clearMapItems(); } - if (!m_mapViews.isEmpty()) - qDeleteAll(m_mapViews); + // This forces the destruction of the associated items now, not when QObject destructor is called, at which point + // QDeclarativeGeoMap is long gone + if (!m_mapViews.isEmpty()) { + for (QDeclarativeGeoMapItemView *v : qAsConst(m_mapViews)) { + if (!v) + continue; + if (v->parent() == this) + delete v; + else + v->removeInstantiatedItems(); + } + } // remove any map items associations for (int i = 0; i < m_mapItems.count(); ++i) { if (m_mapItems.at(i)) @@ -242,7 +269,10 @@ delete m_copyrights.data(); m_copyrights.clear(); - delete m_map; + for (auto obj: qAsConst(m_pendingMapObjects)) + obj->setMap(nullptr); // worst case: going to be setMap(nullptr)'d twice + + delete m_map; // map objects get reset here } static QDeclarativeGeoMapType *findMapType(const QList &types, const QGeoMapType &type) @@ -250,7 +280,7 @@ for (int i = 0; i < types.size(); ++i) if (types[i]->mapType() == type) return types[i]; - return Q_NULLPTR; + return nullptr; } void QDeclarativeGeoMap::onSupportedMapTypesChanged() @@ -306,7 +336,7 @@ QGeoCoordinate center = m_cameraData.center(); - if (qIsNaN(m_userMinimumZoomLevel)) + if (!qIsFinite(m_userMinimumZoomLevel)) setMinimumZoomLevel(m_map->minimumZoom(), false); else setMinimumZoomLevel(qMax(m_map->minimumZoom(), m_userMinimumZoomLevel), false); @@ -342,6 +372,9 @@ m_map->setCameraData(m_cameraData); + for (auto obj : qAsConst(m_pendingMapObjects)) + obj->setMap(m_map); + m_initialized = true; if (centerHasChanged) @@ -402,59 +435,6 @@ } /*! - \internal -*/ -void QDeclarativeGeoMap::mousePressEvent(QMouseEvent *event) -{ - if (isInteractive()) - m_gestureArea->handleMousePressEvent(event); - else - QQuickItem::mousePressEvent(event); -} - -/*! - \internal -*/ -void QDeclarativeGeoMap::mouseMoveEvent(QMouseEvent *event) -{ - if (isInteractive()) - m_gestureArea->handleMouseMoveEvent(event); - else - QQuickItem::mouseMoveEvent(event); -} - -/*! - \internal -*/ -void QDeclarativeGeoMap::mouseReleaseEvent(QMouseEvent *event) -{ - if (isInteractive()) { - m_gestureArea->handleMouseReleaseEvent(event); - } else { - QQuickItem::mouseReleaseEvent(event); - } -} - -/*! - \internal -*/ -void QDeclarativeGeoMap::mouseUngrabEvent() -{ - if (isInteractive()) - m_gestureArea->handleMouseUngrabEvent(); - else - QQuickItem::mouseUngrabEvent(); -} - -void QDeclarativeGeoMap::touchUngrabEvent() -{ - if (isInteractive()) - m_gestureArea->handleTouchUngrabEvent(); - else - QQuickItem::touchUngrabEvent(); -} - -/*! \qmlproperty MapGestureArea QtLocation::Map::gesture Contains the MapGestureArea created with the Map. This covers pan, flick and pinch gestures. @@ -498,6 +478,10 @@ addMapItemGroup(itemGroup); continue; } + + QGeoMapObject *mapObject = qobject_cast(k); + if (mapObject) + addMapObject(mapObject); } } @@ -519,9 +503,7 @@ */ void QDeclarativeGeoMap::setupMapView(QDeclarativeGeoMapItemView *view) { - Q_UNUSED(view) view->setMap(this); - view->repopulate(); } /*! @@ -591,7 +573,7 @@ if (m_cameraCapabilities.maximumZoomLevelAt256() < m_gestureArea->maximumZoomLevel()) { setMaximumZoomLevel(m_cameraCapabilities.maximumZoomLevelAt256(), false); } else if (m_cameraCapabilities.maximumZoomLevelAt256() > m_gestureArea->maximumZoomLevel()) { - if (qIsNaN(m_userMaximumZoomLevel)) { + if (!qIsFinite(m_userMaximumZoomLevel)) { // If the user didn't set anything setMaximumZoomLevel(m_cameraCapabilities.maximumZoomLevelAt256(), false); } else { // Try to set what the user requested @@ -604,7 +586,7 @@ if (m_cameraCapabilities.minimumZoomLevelAt256() > m_gestureArea->minimumZoomLevel()) { setMinimumZoomLevel(m_cameraCapabilities.minimumZoomLevelAt256(), false); } else if (m_cameraCapabilities.minimumZoomLevelAt256() < m_gestureArea->minimumZoomLevel()) { - if (qIsNaN(m_userMinimumZoomLevel)) { + if (!qIsFinite(m_userMinimumZoomLevel)) { // If the user didn't set anything, trying to set the new caps. setMinimumZoomLevel(m_cameraCapabilities.minimumZoomLevelAt256(), false); } else { // Try to set what the user requested @@ -620,7 +602,7 @@ if (m_cameraCapabilities.maximumTilt() < m_maximumTilt) { setMaximumTilt(m_cameraCapabilities.maximumTilt(), false); } else if (m_cameraCapabilities.maximumTilt() > m_maximumTilt) { - if (qIsNaN(m_userMaximumTilt)) + if (!qIsFinite(m_userMaximumTilt)) setMaximumTilt(m_cameraCapabilities.maximumTilt(), false); else // Try to set what the user requested setMaximumTilt(qMin(m_cameraCapabilities.maximumTilt(), m_userMaximumTilt), false); @@ -629,7 +611,7 @@ if (m_cameraCapabilities.minimumTilt() > m_minimumTilt) { setMinimumTilt(m_cameraCapabilities.minimumTilt(), false); } else if (m_cameraCapabilities.minimumTilt() < m_minimumTilt) { - if (qIsNaN(m_userMinimumTilt)) + if (!qIsFinite(m_userMinimumTilt)) setMinimumTilt(m_cameraCapabilities.minimumTilt(), false); else // Try to set what the user requested setMinimumTilt(qMax(m_cameraCapabilities.minimumTilt(), m_userMinimumTilt), false); @@ -639,7 +621,7 @@ if (m_cameraCapabilities.maximumFieldOfView() < m_maximumFieldOfView) { setMaximumFieldOfView(m_cameraCapabilities.maximumFieldOfView(), false); } else if (m_cameraCapabilities.maximumFieldOfView() > m_maximumFieldOfView) { - if (qIsNaN(m_userMaximumFieldOfView)) + if (!qIsFinite(m_userMaximumFieldOfView)) setMaximumFieldOfView(m_cameraCapabilities.maximumFieldOfView(), false); else // Try to set what the user requested setMaximumFieldOfView(qMin(m_cameraCapabilities.maximumFieldOfView(), m_userMaximumFieldOfView), false); @@ -648,7 +630,7 @@ if (m_cameraCapabilities.minimumFieldOfView() > m_minimumFieldOfView) { setMinimumFieldOfView(m_cameraCapabilities.minimumFieldOfView(), false); } else if (m_cameraCapabilities.minimumFieldOfView() < m_minimumFieldOfView) { - if (qIsNaN(m_userMinimumFieldOfView)) + if (!qIsFinite(m_userMinimumFieldOfView)) setMinimumFieldOfView(m_cameraCapabilities.minimumFieldOfView(), false); else // Try to set what the user requested setMinimumFieldOfView(qMax(m_cameraCapabilities.minimumFieldOfView(), m_userMinimumFieldOfView), false); @@ -692,7 +674,12 @@ } else { m_activeMapType = new QDeclarativeGeoMapType(QGeoMapType(QGeoMapType::NoMap, tr("No Map"), - tr("No Map"), false, false, 0, QByteArrayLiteral("")), this); + tr("No Map"), + false, + false, + 0, + QByteArrayLiteral(""), + QGeoCameraCapabilities()), this); } } @@ -958,16 +945,12 @@ If the Plugin used for the Map supports bearing, the valid range for this value is between 0 and 360. If the Plugin used for the Map does not support bearing, changing this property will have no effect. - \since Qt Location 5.9 + \since QtLocation 5.9 */ void QDeclarativeGeoMap::setBearing(qreal bearing) { - bearing = std::fmod(bearing, qreal(360.0)); - if (bearing < 0.0) - bearing += 360.0; - if (m_map && !m_cameraCapabilities.supportsBearing()) - bearing = 0.0; - if (m_cameraData.bearing() == bearing || bearing < 0.0) + bearing = sanitizeBearing(bearing); + if (m_cameraData.bearing() == bearing) return; m_cameraData.setBearing(bearing); @@ -976,6 +959,45 @@ emit bearingChanged(bearing); } +/*! + \qmlmethod void QtLocation::Map::setBearing(real bearing, coordinate coordinate) + + Sets the bearing for the map to \a bearing, rotating it around \a coordinate. + If the Plugin used for the Map supports bearing, the valid range for \a bearing is between 0 and 360. + If the Plugin used for the Map does not support bearing, or if the map is tilted and \a coordinate happens + to be behind the camera, or if the map is not ready (see \l mapReady), calling this method will have no effect. + + The release of this API with Qt 5.10 is a Technology Preview. + + \since 5.10 +*/ +void QDeclarativeGeoMap::setBearing(qreal bearing, const QGeoCoordinate &coordinate) +{ + if (!m_map) + return; + + const QGeoCoordinate currentCenter = center(); + const qreal currentBearing = QDeclarativeGeoMap::bearing(); + bearing = sanitizeBearing(bearing); + + if (!coordinate.isValid() + || !qIsFinite(bearing) + || (coordinate == currentCenter && bearing == currentBearing)) + return; + + if (m_map->capabilities() & QGeoMap::SupportsSetBearing) { + if (!m_map->setBearing(bearing, coordinate)) + return; + + m_cameraData = m_map->cameraData(); + + if (m_cameraData.center() != currentCenter) + emit centerChanged(m_cameraData.center()); + if (m_cameraData.bearing() != currentBearing) + emit bearingChanged(bearing); + } +} + qreal QDeclarativeGeoMap::bearing() const { return m_cameraData.bearing(); @@ -991,7 +1013,7 @@ \sa minimumTilt, maximumTilt - \since Qt Location 5.9 + \since QtLocation 5.9 */ void QDeclarativeGeoMap::setTilt(qreal tilt) { @@ -1043,7 +1065,7 @@ \sa minimumFieldOfView, maximumFieldOfView - \since Qt Location 5.9 + \since QtLocation 5.9 */ void QDeclarativeGeoMap::setFieldOfView(qreal fieldOfView) { @@ -1092,7 +1114,7 @@ \sa fieldOfView, maximumFieldOfView - \since Qt Location 5.9 + \since QtLocation 5.9 */ qreal QDeclarativeGeoMap::minimumFieldOfView() const { @@ -1129,7 +1151,7 @@ \sa fieldOfView, minimumFieldOfView - \since Qt Location 5.9 + \since QtLocation 5.9 */ qreal QDeclarativeGeoMap::maximumFieldOfView() const { @@ -1147,7 +1169,7 @@ \sa tilt, maximumTilt - \since Qt Location 5.9 + \since QtLocation 5.9 */ qreal QDeclarativeGeoMap::minimumTilt() const { @@ -1184,7 +1206,7 @@ \sa tilt, minimumTilt - \since Qt Location 5.9 + \since QtLocation 5.9 */ qreal QDeclarativeGeoMap::maximumTilt() const { @@ -1271,23 +1293,23 @@ if (!m_map || !width() || !height()) return m_visibleRegion; - const QList &visibleRegion = m_map->geoProjection().visibleRegion(); - QGeoPath path; - for (int i = 0; i < visibleRegion.size(); ++i) { - const QDoubleVector2D &c = visibleRegion.at(i); - // If a segment spans more than half of the map longitudinally, split in 2. - if (i && qAbs(visibleRegion.at(i-1).x() - c.x()) >= 0.5) { // This assumes a segment is never >= 1.0 (whole map span) - QDoubleVector2D extraPoint = (visibleRegion.at(i-1) + c) * 0.5; - path.addCoordinate(m_map->geoProjection().wrappedMapProjectionToGeo(extraPoint)); - } - path.addCoordinate(m_map->geoProjection().wrappedMapProjectionToGeo(c)); - } - if (visibleRegion.size() >= 2 && qAbs(visibleRegion.last().x() - visibleRegion.first().x()) >= 0.5) { - QDoubleVector2D extraPoint = (visibleRegion.last() + visibleRegion.first()) * 0.5; - path.addCoordinate(m_map->geoProjection().wrappedMapProjectionToGeo(extraPoint)); + if (m_map->capabilities() & QGeoMap::SupportsVisibleRegion) { + return m_map->visibleRegion(); + } else { + // ToDo: handle projections not supporting visible region in a better way. + // This approach will fail when horizon is in the view or the map is greatly zoomed out. + QList visiblePoly; + visiblePoly << m_map->geoProjection().itemPositionToCoordinate(QDoubleVector2D(0,0), false); + visiblePoly << m_map->geoProjection().itemPositionToCoordinate(QDoubleVector2D(m_map->viewportWidth() - 1, + 0), false); + visiblePoly << m_map->geoProjection().itemPositionToCoordinate(QDoubleVector2D(m_map->viewportWidth() - 1, + m_map->viewportHeight() - 1), false); + visiblePoly << m_map->geoProjection().itemPositionToCoordinate(QDoubleVector2D(0, + m_map->viewportHeight() - 1), false); + QGeoPath path; + path.setPath(visiblePoly); + return path.boundingGeoRectangle(); } - - return path.boundingGeoRectangle(); } /*! @@ -1359,35 +1381,53 @@ // TODO: offer the possibility to specify the margins. void QDeclarativeGeoMap::fitViewportToGeoShape() { - const int margins = 10; - if (!m_map || !m_visibleRegion.isValid() || width() <= margins || height() <= margins) - return; - - QDoubleVector2D topLeftPoint = m_map->geoProjection().geoToMapProjection(m_visibleRegion.topLeft()); - QDoubleVector2D bottomRightPoint = m_map->geoProjection().geoToMapProjection(m_visibleRegion.bottomRight()); - if (bottomRightPoint.x() < topLeftPoint.x()) // crossing the dateline - bottomRightPoint.setX(bottomRightPoint.x() + 1.0); - - // find center of the bounding box - QDoubleVector2D center = (topLeftPoint + bottomRightPoint) * 0.5; - center.setX(center.x() > 1.0 ? center.x() - 1.0 : center.x()); - QGeoCoordinate centerCoordinate = m_map->geoProjection().mapProjectionToGeo(center); - - // position camera to the center of bounding box - setProperty("center", QVariant::fromValue(centerCoordinate)); // not using setCenter(centerCoordinate) to honor a possible animation set on the center property - - // if the shape is empty we just change center position, not zoom - double bboxWidth = (bottomRightPoint.x() - topLeftPoint.x()) * m_map->mapWidth(); - double bboxHeight = (bottomRightPoint.y() - topLeftPoint.y()) * m_map->mapHeight(); - - if (bboxHeight == 0.0 && bboxWidth == 0.0) - return; - - double zoomRatio = qMax(bboxWidth / (width() - margins), - bboxHeight / (height() - margins)); - zoomRatio = std::log(zoomRatio) / std::log(2.0); - double newZoom = qMax(minimumZoomLevel(), zoomLevel() - zoomRatio); - setProperty("zoomLevel", QVariant::fromValue(newZoom)); // not using setZoomLevel(newZoom) to honor a possible animation set on the zoomLevel property + if (m_map->geoProjection().projectionType() == QGeoProjection::ProjectionWebMercator) { + // This case remains handled here, and not inside QGeoMap*::fitViewportToGeoRectangle, + // in order to honor animations on center and zoomLevel + const QGeoProjectionWebMercator &p = static_cast(m_map->geoProjection()); + const int margins = 10; + if (!m_map || !m_visibleRegion.isValid() || width() <= margins || height() <= margins) + return; + + QDoubleVector2D topLeftPoint = p.geoToMapProjection(m_visibleRegion.topLeft()); + QDoubleVector2D bottomRightPoint = p.geoToMapProjection(m_visibleRegion.bottomRight()); + if (bottomRightPoint.x() < topLeftPoint.x()) // crossing the dateline + bottomRightPoint.setX(bottomRightPoint.x() + 1.0); + + // find center of the bounding box + QDoubleVector2D center = (topLeftPoint + bottomRightPoint) * 0.5; + center.setX(center.x() > 1.0 ? center.x() - 1.0 : center.x()); + QGeoCoordinate centerCoordinate = p.mapProjectionToGeo(center); + + // position camera to the center of bounding box + setProperty("center", QVariant::fromValue(centerCoordinate)); // not using setCenter(centerCoordinate) to honor a possible animation set on the center property + + // if the shape is empty we just change center position, not zoom + double bboxWidth = (bottomRightPoint.x() - topLeftPoint.x()) * m_map->mapWidth(); + double bboxHeight = (bottomRightPoint.y() - topLeftPoint.y()) * m_map->mapHeight(); + + if (bboxHeight == 0.0 && bboxWidth == 0.0) + return; + + double zoomRatio = qMax(bboxWidth / (width() - margins), + bboxHeight / (height() - margins)); + zoomRatio = std::log(zoomRatio) / std::log(2.0); + double newZoom = qMax(minimumZoomLevel(), zoomLevel() - zoomRatio); + setProperty("zoomLevel", QVariant::fromValue(newZoom)); // not using setZoomLevel(newZoom) to honor a possible animation set on the zoomLevel property + } else if (m_map->capabilities() & QGeoMap::SupportsFittingViewportToGeoRectangle) { + // Animations cannot be honored in this case, as m_map act as a black box + const QGeoCoordinate currentCenter = center(); + const qreal currentZoom = zoomLevel(); + + if (!m_map->fitViewportToGeoRectangle(m_visibleRegion)) + return; + + m_cameraData = m_map->cameraData(); + if (m_cameraData.center() != currentCenter) + emit centerChanged(m_cameraData.center()); + if (m_cameraData.zoomLevel() != currentZoom) + emit zoomLevelChanged(m_cameraData.zoomLevel()); + } } @@ -1404,6 +1444,45 @@ } /*! + \qmlmethod void QtLocation::Map::alignCoordinateToPoint(coordinate coordinate, QPointF point) + + Aligns \a coordinate to \a point. + This method effectively extends the functionality offered by the \l center qml property, allowing + to align a coordinate to point of the Map element other than its center. + This is useful in those applications where the center of the scene (e.g., a cursor) is not to be + placed exactly in the center of the map. + + If the map is tilted, and \a coordinate happens to be behind the camera, or if the map is not ready + (see \l mapReady), calling this method will have no effect. + + The release of this API with Qt 5.10 is a Technology Preview. + + \sa center + + \since 5.10 +*/ +void QDeclarativeGeoMap::alignCoordinateToPoint(const QGeoCoordinate &coordinate, const QPointF &point) +{ + if (!m_map || !(m_map->capabilities() & QGeoMap::SupportsAnchoringCoordinate)) + return; + + const QGeoCoordinate currentCenter = center(); + + if (!coordinate.isValid() + || !qIsFinite(point.x()) + || !qIsFinite(point.y())) + return; + + if (!m_map->anchorCoordinateToPoint(coordinate, point)) + return; + + m_cameraData = m_map->cameraData(); + + if (m_cameraData.center() != currentCenter) + emit centerChanged(m_cameraData.center()); +} + +/*! \qmlmethod coordinate QtLocation::Map::toCoordinate(QPointF position, bool clipToViewPort) Returns the coordinate which corresponds to the \a position relative to the map item. @@ -1481,7 +1560,8 @@ */ void QDeclarativeGeoMap::clearData() { - m_map->clearData(); + if (m_map) + m_map->clearData(); } /*! @@ -1522,6 +1602,11 @@ return m_error; } +QGeoMap *QDeclarativeGeoMap::map() const +{ + return m_map; +} + void QDeclarativeGeoMap::itemChange(ItemChange change, const ItemChangeData &value) { if (change == ItemChildAddedChange) { @@ -1543,33 +1628,6 @@ QQuickItem::itemChange(change, value); } -/*! - \internal -*/ -void QDeclarativeGeoMap::touchEvent(QTouchEvent *event) -{ - if (isInteractive()) { - m_gestureArea->handleTouchEvent(event); - } else { - //ignore event so sythesized event is generated; - QQuickItem::touchEvent(event); - } -} - -#if QT_CONFIG(wheelevent) -/*! - \internal -*/ -void QDeclarativeGeoMap::wheelEvent(QWheelEvent *event) -{ - if (isInteractive()) - m_gestureArea->handleWheelEvent(event); - else - QQuickItem::wheelEvent(event); - -} -#endif - bool QDeclarativeGeoMap::isInteractive() { return (m_gestureArea->enabled() && m_gestureArea->acceptedGestures()) || m_gestureArea->isActive(); @@ -1602,50 +1660,6 @@ } /*! - \internal -*/ -bool QDeclarativeGeoMap::childMouseEventFilter(QQuickItem *item, QEvent *event) -{ - Q_UNUSED(item) - if (!isVisible() || !isEnabled() || !isInteractive()) - return QQuickItem::childMouseEventFilter(item, event); - - switch (event->type()) { - case QEvent::MouseButtonPress: - case QEvent::MouseMove: - case QEvent::MouseButtonRelease: - return sendMouseEvent(static_cast(event)); - case QEvent::UngrabMouse: { - QQuickWindow *win = window(); - if (!win) break; - if (!win->mouseGrabberItem() || - (win->mouseGrabberItem() && - win->mouseGrabberItem() != this)) { - // child lost grab, we could even lost - // some events if grab already belongs for example - // in item in diffrent window , clear up states - mouseUngrabEvent(); - } - break; - } - case QEvent::TouchBegin: - case QEvent::TouchUpdate: - case QEvent::TouchEnd: - case QEvent::TouchCancel: - if (static_cast(event)->touchPoints().count() >= 2) { - // 1 touch point = handle with MouseEvent (event is always synthesized) - // let the synthesized mouse event grab the mouse, - // note there is no mouse grabber at this point since - // touch event comes first (see Qt::AA_SynthesizeMouseForUnhandledTouchEvents) - return sendTouchEvent(static_cast(event)); - } - default: - break; - } - return QQuickItem::childMouseEventFilter(item, event); -} - -/*! \qmlmethod void QtLocation::Map::addMapItem(MapItem item) Adds the given \a item to the Map (for example MapQuickItem, MapCircle). If the object @@ -1767,6 +1781,75 @@ return ret; } +/* + \internal +*/ +void QDeclarativeGeoMap::addMapObject(QGeoMapObject *object) +{ + if (!object || object->map()) + return; + + if (!m_initialized) { + m_pendingMapObjects.append(object); + return; + } + + int curObjects = m_map->mapObjects().size(); + // object adds itself to the map + object->setMap(m_map); + + if (curObjects != m_map->mapObjects().size()) + emit mapObjectsChanged(); +} + +/* + \internal +*/ +void QDeclarativeGeoMap::removeMapObject(QGeoMapObject *object) +{ + if (!object || object->map() != m_map) // if !initialized this is fine, since both object and m_map are supposed to be NULL + return; + + if (!m_initialized) { + m_pendingMapObjects.removeOne(object); + return; + } + + int curObjects = m_map->mapObjects().size(); + // object adds itself to the map + object->setMap(nullptr); + + if (curObjects != m_map->mapObjects().size()) + emit mapObjectsChanged(); +} + +/* + \internal +*/ +void QDeclarativeGeoMap::clearMapObjects() +{ + if (!m_initialized) { + m_pendingMapObjects.clear(); + } else { + const QList objs = m_map->mapObjects(); + for (QGeoMapObject *o: objs) + o->setMap(nullptr); + if (objs.size()) + emit mapObjectsChanged(); + } +} + +/* + \internal +*/ +QList QDeclarativeGeoMap::mapObjects() +{ + if (!m_initialized) + return m_pendingMapObjects; + else + return m_map->mapObjects(); +} + /*! \qmlproperty list QtLocation::Map::mapItems @@ -1822,9 +1905,10 @@ */ void QDeclarativeGeoMap::clearMapItems() { - m_map->clearMapItems(); if (m_mapItems.isEmpty()) return; + if (m_map) + m_map->clearMapItems(); for (auto i : qAsConst(m_mapItems)) { if (i) { i->setMap(0, 0); @@ -1893,6 +1977,47 @@ } /*! + \qmlmethod void QtLocation::Map::removeMapItemView(MapItemView itemView) + + Removes \a itemView and the items instantiated by it from the Map. + + \sa MapItemView, addMapItemView + + \since 5.10 +*/ +void QDeclarativeGeoMap::removeMapItemView(QDeclarativeGeoMapItemView *itemView) +{ + if (!itemView || itemView->m_map != this) // can't remove a view that is already added to another map + return; + + itemView->removeInstantiatedItems(); + itemView->m_map = 0; + // it can be removed from the list at this point, since no operations that require a Map have to be done + // anymore on destruction. + m_mapViews.removeOne(itemView); +} + +/*! + \qmlmethod void QtLocation::Map::addMapItemView(MapItemView itemView) + + Adds \a itemView to the Map. + + \sa MapItemView, removeMapItemView + + \since 5.10 +*/ +void QDeclarativeGeoMap::addMapItemView(QDeclarativeGeoMapItemView *itemView) +{ + if (!itemView || itemView->m_map) // can't add a view twice + return; + + // Not appending it to m_mapViews because it seems unnecessary even if the + // itemView is a child of this (in which case it would be destroyed + m_mapViews.append(itemView); + setupMapView(itemView); +} + +/*! \qmlproperty MapType QtLocation::Map::activeMapType \brief Access to the currently active \l{MapType}{map type}. @@ -1956,7 +2081,7 @@ } } - /*! + /* The fitViewportTo*() functions depend on a valid map geometry. If they were called prior to the first resize they cause the zoomlevel to jump to 0 (showing the world). Therefore the @@ -2109,6 +2234,129 @@ fitViewportToMapItemsRefine(false, onlyVisible); } +/*! + \internal +*/ +void QDeclarativeGeoMap::mousePressEvent(QMouseEvent *event) +{ + if (isInteractive()) + m_gestureArea->handleMousePressEvent(event); + else + QQuickItem::mousePressEvent(event); +} + +/*! + \internal +*/ +void QDeclarativeGeoMap::mouseMoveEvent(QMouseEvent *event) +{ + if (isInteractive()) + m_gestureArea->handleMouseMoveEvent(event); + else + QQuickItem::mouseMoveEvent(event); +} + +/*! + \internal +*/ +void QDeclarativeGeoMap::mouseReleaseEvent(QMouseEvent *event) +{ + if (isInteractive()) + m_gestureArea->handleMouseReleaseEvent(event); + else + QQuickItem::mouseReleaseEvent(event); +} + +/*! + \internal +*/ +void QDeclarativeGeoMap::mouseUngrabEvent() +{ + if (isInteractive()) + m_gestureArea->handleMouseUngrabEvent(); + else + QQuickItem::mouseUngrabEvent(); +} + +void QDeclarativeGeoMap::touchUngrabEvent() +{ + if (isInteractive()) + m_gestureArea->handleTouchUngrabEvent(); + else + QQuickItem::touchUngrabEvent(); +} + +/*! + \internal +*/ +void QDeclarativeGeoMap::touchEvent(QTouchEvent *event) +{ + if (isInteractive()) { + m_gestureArea->handleTouchEvent(event); + } else { + //ignore event so sythesized event is generated; + QQuickItem::touchEvent(event); + } +} + +#if QT_CONFIG(wheelevent) +/*! + \internal +*/ +void QDeclarativeGeoMap::wheelEvent(QWheelEvent *event) +{ + if (isInteractive()) + m_gestureArea->handleWheelEvent(event); + else + QQuickItem::wheelEvent(event); + +} +#endif + +/*! + \internal +*/ +bool QDeclarativeGeoMap::childMouseEventFilter(QQuickItem *item, QEvent *event) +{ + Q_UNUSED(item) + if (!isVisible() || !isEnabled() || !isInteractive()) + return QQuickItem::childMouseEventFilter(item, event); + + switch (event->type()) { + case QEvent::MouseButtonPress: + case QEvent::MouseMove: + case QEvent::MouseButtonRelease: + return sendMouseEvent(static_cast(event)); + case QEvent::UngrabMouse: { + QQuickWindow *win = window(); + if (!win) break; + if (!win->mouseGrabberItem() || + (win->mouseGrabberItem() && + win->mouseGrabberItem() != this)) { + // child lost grab, we could even lost + // some events if grab already belongs for example + // in item in diffrent window , clear up states + mouseUngrabEvent(); + } + break; + } + case QEvent::TouchBegin: + case QEvent::TouchUpdate: + case QEvent::TouchEnd: + case QEvent::TouchCancel: + if (static_cast(event)->touchPoints().count() >= 2) { + // 1 touch point = handle with MouseEvent (event is always synthesized) + // let the synthesized mouse event grab the mouse, + // note there is no mouse grabber at this point since + // touch event comes first (see Qt::AA_SynthesizeMouseForUnhandledTouchEvents) + return sendTouchEvent(static_cast(event)); + } + default: + break; + } + return QQuickItem::childMouseEventFilter(item, event); +} + bool QDeclarativeGeoMap::sendMouseEvent(QMouseEvent *event) { QPointF localPos = mapFromScene(event->windowPos()); @@ -2160,7 +2408,7 @@ auto touchPointGrabberItem = [touchDevice, windowPriv](const QTouchEvent::TouchPoint &point) -> QQuickItem* { if (QQuickEventPoint *eventPointer = windowPriv->pointerEventInstance(touchDevice)->pointById(point.id())) - return eventPointer->grabber(); + return eventPointer->grabberItem(); return nullptr; }; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomapitembase.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomapitembase.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomapitembase.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomapitembase.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -185,11 +185,19 @@ if (!map_ || !quickMap_) return; - QDoubleVector2D wrappedProjection = map_->geoProjection().geoToWrappedMapProjection(coordinate); - if (!map_->geoProjection().isProjectable(wrappedProjection)) - return; + QDoubleVector2D pos; + if (map()->geoProjection().projectionType() == QGeoProjection::ProjectionWebMercator) { + const QGeoProjectionWebMercator &p = static_cast(map()->geoProjection()); + QDoubleVector2D wrappedProjection = p.geoToWrappedMapProjection(coordinate); + if (!p.isProjectable(wrappedProjection)) + return; + pos = p.wrappedMapProjectionToItemPosition(wrappedProjection); + } else { + pos = map()->geoProjection().coordinateToItemPosition(coordinate, false); + if (qIsNaN(pos.x())) + return; + } - QDoubleVector2D pos = map_->geoProjection().wrappedMapProjectionToItemPosition(wrappedProjection); QPointF topLeft = pos.toPointF() - offset; setPosition(topLeft); @@ -275,6 +283,44 @@ return opacity(); } +bool QDeclarativeGeoMapItemBase::prepareEnterTransition() +{ + if (m_transitionManager->m_transitionState == QDeclarativeGeoMapItemTransitionManager::EnterTransition + && m_transitionManager->isRunning()) + return false; + + if (m_transitionManager->m_transitionState != QDeclarativeGeoMapItemTransitionManager::EnterTransition) { + setVisible(true); + m_transitionManager->m_transitionState = QDeclarativeGeoMapItemTransitionManager::EnterTransition; + } + return true; +} + +bool QDeclarativeGeoMapItemBase::prepareExitTransition() +{ + if (m_transitionManager->m_transitionState == QDeclarativeGeoMapItemTransitionManager::ExitTransition + && m_transitionManager->isRunning()) + return false; + + if (m_transitionManager->m_transitionState != QDeclarativeGeoMapItemTransitionManager::ExitTransition) { + m_transitionManager->m_transitionState = QDeclarativeGeoMapItemTransitionManager::ExitTransition; + } + return true; +} + +void QDeclarativeGeoMapItemBase::finalizeEnterTransition() +{ + m_transitionManager->m_transitionState = QDeclarativeGeoMapItemTransitionManager::NoTransition; + emit enterTransitionFinished(); +} + +void QDeclarativeGeoMapItemBase::finalizeExitTransition() +{ + setVisible(false); + m_transitionManager->m_transitionState = QDeclarativeGeoMapItemTransitionManager::NoTransition; + emit exitTransitionFinished(); +} + bool QDeclarativeGeoMapItemBase::isPolishScheduled() const { return QQuickItemPrivate::get(this)->polishScheduled; @@ -286,4 +332,43 @@ update(); } +QDeclarativeGeoMapItemTransitionManager::QDeclarativeGeoMapItemTransitionManager(QDeclarativeGeoMapItemBase *mapItem) + : QQuickTransitionManager(), m_mapItem(mapItem) +{ +} + +void QDeclarativeGeoMapItemTransitionManager::transitionEnter() +{ + if (m_transitionState == ExitTransition) + cancel(); + + if (!m_mapItem->prepareEnterTransition()) + return; + + if (m_view && m_view->m_enter) + transition(enterActions, m_view->m_enter, m_mapItem); + else + finished(); +} + +void QDeclarativeGeoMapItemTransitionManager::transitionExit() +{ + if (!m_mapItem->prepareExitTransition()) + return; + + if (m_view && m_view->m_exit) + transition(exitActions, m_view->m_exit, m_mapItem); + else + finished(); +} + +void QDeclarativeGeoMapItemTransitionManager::finished() +{ + if (m_transitionState == EnterTransition) + m_mapItem->finalizeEnterTransition(); + else if (m_transitionState == ExitTransition) + m_mapItem->finalizeExitTransition(); +} + + QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomapitembase_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomapitembase_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomapitembase_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomapitembase_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -56,9 +56,12 @@ #include #include #include +#include +#include QT_BEGIN_NAMESPACE - +class QDeclarativeGeoMapItemTransitionManager; +class QDeclarativeGeoMapItemBase; class Q_LOCATION_PRIVATE_EXPORT QGeoMapViewportChangeEvent { public: @@ -77,6 +80,29 @@ bool rollChanged; }; +class QDeclarativeGeoMapItemTransitionManager : public QQuickTransitionManager +{ +public: + enum TransitionState { + NoTransition, EnterTransition, ExitTransition + }; + + QDeclarativeGeoMapItemTransitionManager(QDeclarativeGeoMapItemBase *mapItem); + + void transitionEnter(); + void transitionExit(); + +protected: + void finished() override; + +public: + QDeclarativeGeoMapItemBase *m_mapItem; + QDeclarativeGeoMapItemView *m_view = nullptr; + QList enterActions; + QList exitActions; + TransitionState m_transitionState = NoTransition; +}; + class Q_LOCATION_PRIVATE_EXPORT QDeclarativeGeoMapItemBase : public QQuickItem { Q_OBJECT @@ -99,8 +125,15 @@ virtual QGeoMap::ItemType itemType() const = 0; qreal mapItemOpacity() const; + virtual bool prepareEnterTransition(); + virtual bool prepareExitTransition(); + virtual void finalizeEnterTransition(); + virtual void finalizeExitTransition(); + Q_SIGNALS: void mapItemOpacityChanged(); + Q_REVISION(11) void enterTransitionFinished(); + Q_REVISION(11) void exitTransitionFinished(); protected Q_SLOTS: virtual void afterChildrenChanged(); @@ -116,7 +149,7 @@ void baseCameraDataChanged(const QGeoCameraData &camera); private: - QGeoMap *map_; + QPointer map_; QDeclarativeGeoMap *quickMap_; QSizeF lastSize_; @@ -124,7 +157,11 @@ QDeclarativeGeoMapItemGroup *parentGroup_; + QScopedPointer m_transitionManager; + friend class QDeclarativeGeoMap; + friend class QDeclarativeGeoMapItemView; + friend class QDeclarativeGeoMapItemTransitionManager; }; QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomapitemgroup.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomapitemgroup.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomapitemgroup.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomapitemgroup.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -43,7 +43,7 @@ \instantiates QDeclarativeGeoMapItemGroup \inqmlmodule QtLocation \ingroup qml-QtLocation5-maps - \since Qt Location 5.9 + \since QtLocation 5.9 \brief The MapItemGroup type is a container for map items. diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomapitemview.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomapitemview.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomapitemview.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomapitemview.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -37,15 +37,16 @@ ****************************************************************************/ #include "qdeclarativegeomapitemview_p.h" -#include "qdeclarativegeomapitemview_p_p.h" #include "qdeclarativegeomap_p.h" #include "qdeclarativegeomapitembase_p.h" #include "mapitemviewdelegateincubator_p.h" #include #include -#include +#include #include +#include +#include QT_BEGIN_NAMESPACE @@ -54,7 +55,7 @@ \instantiates QDeclarativeGeoMapItemView \inqmlmodule QtLocation \ingroup qml-QtLocation5-maps - \since Qt Location 5.5 + \since QtLocation 5.5 \inherits QObject \brief The MapItemView is used to populate Map from a model. @@ -75,17 +76,21 @@ */ QDeclarativeGeoMapItemView::QDeclarativeGeoMapItemView(QQuickItem *parent) - : QObject(parent), componentCompleted_(false), delegate_(0), - itemModel_(0), map_(0), fitViewport_(false), m_metaObjectType(0), - m_readyIncubators(0), m_repopulating(false) + : QObject(parent), m_componentCompleted(false), m_delegate(0), + m_map(0), m_fitViewport(false), m_delegateModel(0) { + m_exit = new QQuickTransition(this); + QQmlListProperty anims = m_exit->animations(); + QQuickNumberAnimation *ani = new QQuickNumberAnimation(m_exit); + ani->setProperty(QStringLiteral("opacity")); + ani->setTo(0.0); + ani->setDuration(300.0); + anims.append(&anims, ani); } QDeclarativeGeoMapItemView::~QDeclarativeGeoMapItemView() { removeInstantiatedItems(); - if (m_metaObjectType) - m_metaObjectType->release(); } /*! @@ -93,240 +98,105 @@ */ void QDeclarativeGeoMapItemView::componentComplete() { - componentCompleted_ = true; -} - -void QDeclarativeGeoMapItemView::incubatorStatusChanged(MapItemViewDelegateIncubator *incubator, - QQmlIncubator::Status status, - bool batched) -{ - if (status == QQmlIncubator::Loading) - return; + m_componentCompleted = true; + if (!m_itemModel.isNull()) + m_delegateModel->setModel(m_itemModel); - QDeclarativeGeoMapItemViewItemData *itemData = incubator->m_itemData; - if (!itemData) { - // Should never get here - qWarning() << "MapItemViewDelegateIncubator incubating invalid itemData"; - return; - } + if (m_delegate) + m_delegateModel->setDelegate(m_delegate); - switch (status) { - case QQmlIncubator::Ready: - { - QDeclarativeGeoMapItemBase *item = qobject_cast(incubator->object()); - if (!item) - break; - itemData->item = item; - if (!itemData->item) { - qWarning() << "QDeclarativeGeoMapItemView map item delegate is of unsupported type."; - delete incubator->object(); - } else { - if (!batched) { - map_->addMapItem(itemData->item); - fitViewport(); - } else { - ++m_readyIncubators; // QSemaphore not needed as multiple threads not involved - - if (m_readyIncubators == m_itemDataBatched.size()) { - - // Clearing stuff older than the reset - foreach (QDeclarativeGeoMapItemViewItemData *i, m_itemData) - removeItemData(i); - m_itemData.clear(); - - // Adding everthing created after reset was issued - foreach (QDeclarativeGeoMapItemViewItemData *i, m_itemDataBatched) { - map_->addMapItem(i->item); - } - m_itemData = m_itemDataBatched; - m_itemDataBatched.clear(); - - m_readyIncubators = 0; - m_repopulating = false; - - fitViewport(); - } - } - } - delete itemData->incubator; - itemData->incubator = 0; - break; - } - case QQmlIncubator::Null: - // Should never get here - delete itemData->incubator; - itemData->incubator = 0; - break; - case QQmlIncubator::Error: - qWarning() << "QDeclarativeGeoMapItemView map item creation failed."; - delete itemData->incubator; - itemData->incubator = 0; - break; - default: - ; - } + m_delegateModel->componentComplete(); } -/*! - \qmlproperty model QtLocation::MapItemView::model - - This property holds the model that provides data used for creating the map items defined by the - delegate. Only QAbstractItemModel based models are supported. -*/ -QVariant QDeclarativeGeoMapItemView::model() const +void QDeclarativeGeoMapItemView::classBegin() { - return QVariant::fromValue(itemModel_); + QQmlContext *ctx = qmlContext(this); + m_delegateModel = new QQmlDelegateModel(ctx, this); + m_delegateModel->classBegin(); + + connect(m_delegateModel, &QQmlInstanceModel::modelUpdated, this, &QDeclarativeGeoMapItemView::modelUpdated); + connect(m_delegateModel, &QQmlInstanceModel::createdItem, this, &QDeclarativeGeoMapItemView::createdItem); + connect(m_delegateModel, &QQmlInstanceModel::destroyingItem, this, &QDeclarativeGeoMapItemView::destroyingItem); + connect(m_delegateModel, &QQmlInstanceModel::initItem, this, &QDeclarativeGeoMapItemView::initItem); } -void QDeclarativeGeoMapItemView::setModel(const QVariant &model) +void QDeclarativeGeoMapItemView::destroyingItem(QObject */*object*/) { - QAbstractItemModel *itemModel = model.value(); - if (itemModel == itemModel_) - return; - - if (itemModel_) { - disconnect(itemModel_, SIGNAL(modelReset()), this, SLOT(itemModelReset())); - disconnect(itemModel_, SIGNAL(rowsRemoved(QModelIndex,int,int)), - this, SLOT(itemModelRowsRemoved(QModelIndex,int,int))); - disconnect(itemModel_, SIGNAL(rowsInserted(QModelIndex,int,int)), - this, SLOT(itemModelRowsInserted(QModelIndex,int,int))); - disconnect(itemModel_, SIGNAL(rowsMoved(QModelIndex,int,int,QModelIndex,int)), - this, SLOT(itemModelRowsMoved(QModelIndex,int,int,QModelIndex,int))); - disconnect(itemModel_, SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector)), - this, SLOT(itemModelDataChanged(QModelIndex,QModelIndex,QVector))); - - removeInstantiatedItems(); // this also terminates ongong repopulations. - m_metaObjectType->release(); - m_metaObjectType = 0; - - itemModel_ = 0; - } - - if (itemModel) { - itemModel_ = itemModel; - connect(itemModel_, SIGNAL(modelReset()), this, SLOT(itemModelReset())); - connect(itemModel_, SIGNAL(rowsRemoved(QModelIndex,int,int)), - this, SLOT(itemModelRowsRemoved(QModelIndex,int,int))); - connect(itemModel_, SIGNAL(rowsInserted(QModelIndex,int,int)), - this, SLOT(itemModelRowsInserted(QModelIndex,int,int))); - connect(itemModel_, SIGNAL(rowsMoved(QModelIndex,int,int,QModelIndex,int)), - this, SLOT(itemModelRowsMoved(QModelIndex,int,int,QModelIndex,int))); - connect(itemModel_, SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector)), - this, SLOT(itemModelDataChanged(QModelIndex,QModelIndex,QVector))); - - m_metaObjectType = new QQmlOpenMetaObjectType(&QObject::staticMetaObject, 0); - foreach (const QByteArray &name, itemModel_->roleNames()) - m_metaObjectType->createProperty(name); - - instantiateAllItems(); - } - emit modelChanged(); } -/*! - \internal -*/ -void QDeclarativeGeoMapItemView::itemModelReset() +void QDeclarativeGeoMapItemView::initItem(int /*index*/, QObject */*object*/) { - repopulate(); + } -/*! - \internal -*/ -void QDeclarativeGeoMapItemView::itemModelRowsInserted(const QModelIndex &index, int start, int end) +void QDeclarativeGeoMapItemView::createdItem(int index, QObject */*object*/) { - Q_UNUSED(index) - - if (!componentCompleted_ || !map_ || !delegate_ || !itemModel_) + if (!m_map) return; - - for (int i = start; i <= end; ++i) { - const QModelIndex insertedIndex = itemModel_->index(i, 0, index); - // If ran inside a qquickwidget which forces incubators to be synchronous, this call won't happen - // with m_repopulating == true while incubators from a model reset are still incubating. - // Note that having the model in a different thread is not supported in general. - createItemForIndex(insertedIndex, m_repopulating); - } - - fitViewport(); + // createdItem is emitted on asynchronous creation. In which case, object has to be invoked again. + // See QQmlDelegateModel::object for further info. + QDeclarativeGeoMapItemBase *item = + qobject_cast(m_delegateModel->object(index, QQmlIncubator::Asynchronous)); + if (item) + addItemToMap(item, index); + else + qWarning() << "createdItem for " << index << " produced a null item"; } -/*! - \internal -*/ -void QDeclarativeGeoMapItemView::itemModelRowsRemoved(const QModelIndex &index, int start, int end) +void QDeclarativeGeoMapItemView::modelUpdated(const QQmlChangeSet &changeSet, bool reset) { - Q_UNUSED(index) - - if (!componentCompleted_ || !map_ || !delegate_ || !itemModel_) - return; + // move changes are expressed as one remove + one insert, with the same moveId. + // For simplicity, they will be treated as remove + insert. + // Changes will be also ignored, as they represent only data changes, not layout changes + if (reset) { // Assuming this means "remove everything already instantiated" + removeInstantiatedItems(); + } else { + // Remove items from the back to the front to retain the mapping to what is received from the changesets + const QVector &removes = changeSet.removes(); + std::map mapRemoves; + for (int i = 0; i < removes.size(); i++) + mapRemoves.insert(std::pair(removes.at(i).start(), i)); + + for (auto rit = mapRemoves.rbegin(); rit != mapRemoves.rend(); ++rit) { + const QQmlChangeSet::Change &c = removes.at(rit->second); + for (int idx = c.end() - 1; idx >= c.start(); --idx) + removeItemFromMap(idx); + } + } - for (int i = end; i >= start; --i) { - if (m_repopulating) { - QDeclarativeGeoMapItemViewItemData *itemData = m_itemDataBatched.takeAt(i); - if (!itemData) - continue; - if (itemData->incubator) { - if (itemData->incubator->isReady()) { - --m_readyIncubators; - delete itemData->incubator->object(); - } - itemData->incubator->clear(); - } - delete itemData; - } else { - QDeclarativeGeoMapItemViewItemData *itemData = m_itemData.takeAt(i); - removeItemData(itemData); + for (const QQmlChangeSet::Change &c: changeSet.inserts()) { + for (int idx = c.start(); idx < c.end(); idx++) { + QDeclarativeGeoMapItemBase *item = + qobject_cast(m_delegateModel->object(idx, QQmlIncubator::Asynchronous)); + addItemToMap(item, idx); // if not item, a createdItem signal will be emitted. } } fitViewport(); } -void QDeclarativeGeoMapItemView::itemModelRowsMoved(const QModelIndex &parent, int start, int end, - const QModelIndex &destination, int row) -{ - Q_UNUSED(parent) - Q_UNUSED(start) - Q_UNUSED(end) - Q_UNUSED(destination) - Q_UNUSED(row) +/*! + \qmlproperty model QtLocation::MapItemView::model - qWarning() << "QDeclarativeGeoMapItemView does not support models that move rows."; + This property holds the model that provides data used for creating the map items defined by the + delegate. Only QAbstractItemModel based models are supported. +*/ +QVariant QDeclarativeGeoMapItemView::model() const +{ + return m_itemModel; } -void QDeclarativeGeoMapItemView::itemModelDataChanged(const QModelIndex &topLeft, - const QModelIndex &bottomRight, - const QVector &roles) +void QDeclarativeGeoMapItemView::setModel(const QVariant &model) { - Q_UNUSED(roles) - - if (!m_itemData.count() || (m_repopulating && !m_itemDataBatched.count()) ) + if (model == m_itemModel) return; - for (int i = topLeft.row(); i <= bottomRight.row(); ++i) { - const QModelIndex index = itemModel_->index(i, 0); - QDeclarativeGeoMapItemViewItemData *itemData; - if (m_repopulating) - itemData= m_itemDataBatched.at(i); - else - itemData= m_itemData.at(i); - - QHashIterator iterator(itemModel_->roleNames()); - while (iterator.hasNext()) { - iterator.next(); - - QVariant modelData = itemModel_->data(index, iterator.key()); - if (!modelData.isValid()) - continue; - - itemData->context->setContextProperty(QString::fromLatin1(iterator.value().constData()), - modelData); - itemData->modelDataMeta->setValue(iterator.value(), modelData); - } - } + m_itemModel = model; + if (m_componentCompleted) + m_delegateModel->setModel(m_itemModel); + + emit modelChanged(); } /*! @@ -338,17 +208,18 @@ */ QQmlComponent *QDeclarativeGeoMapItemView::delegate() const { - return delegate_; + return m_delegate; } void QDeclarativeGeoMapItemView::setDelegate(QQmlComponent *delegate) { - if (delegate_ == delegate) + if (m_delegate == delegate) return; - delegate_ = delegate; + m_delegate = delegate; + if (m_componentCompleted) + m_delegateModel->setDelegate(m_delegate); - repopulate(); emit delegateChanged(); } @@ -362,14 +233,15 @@ */ bool QDeclarativeGeoMapItemView::autoFitViewport() const { - return fitViewport_; + return m_fitViewport; } -void QDeclarativeGeoMapItemView::setAutoFitViewport(const bool &fitViewport) +void QDeclarativeGeoMapItemView::setAutoFitViewport(const bool &fit) { - if (fitViewport == fitViewport_) + if (fit == m_fitViewport) return; - fitViewport_ = fitViewport; + m_fitViewport = fit; + fitViewport(); emit autoFitViewportChanged(); } @@ -378,11 +250,12 @@ */ void QDeclarativeGeoMapItemView::fitViewport() { - if (!map_ || !map_->mapReady() || !fitViewport_ || m_repopulating) + + if (!m_map || !m_map->mapReady() || !m_fitViewport) return; - if (map_->mapItems().size() > 0) - map_->fitViewportToMapItems(); + if (m_map->mapItems().size() > 0) + m_map->fitViewportToMapItems(); } /*! @@ -390,9 +263,10 @@ */ void QDeclarativeGeoMapItemView::setMap(QDeclarativeGeoMap *map) { - if (!map || map_) // changing map on the fly not supported + if (!map || m_map) // changing map on the fly not supported return; - map_ = map; + m_map = map; + instantiateAllItems(); } /*! @@ -400,13 +274,12 @@ */ void QDeclarativeGeoMapItemView::removeInstantiatedItems() { - if (!map_) + if (!m_map) return; - terminateOngoingRepopulation(); - foreach (QDeclarativeGeoMapItemViewItemData *itemData, m_itemData) - removeItemData(itemData); - m_itemData.clear(); + // Backward as removeItemFromMap modifies m_instantiatedItems + for (int i = m_instantiatedItems.size() -1; i >= 0 ; i--) + removeItemFromMap(i); } /*! @@ -416,124 +289,98 @@ */ void QDeclarativeGeoMapItemView::instantiateAllItems() { - if (!componentCompleted_ || !map_ || !delegate_ || !itemModel_) + // The assumption is that if m_instantiatedItems isn't empty, instantiated items have been already added + if (!m_componentCompleted || !m_map || !m_delegate || m_itemModel.isNull() || !m_instantiatedItems.isEmpty()) return; - Q_ASSERT(!m_itemDataBatched.size()); - m_repopulating = true; - // QQuickWidget forces incubators to synchronous mode. Thus itemDataChanged gets called during the for loop below. - m_itemDataBatched.resize(itemModel_->rowCount()); - for (int i = 0; i < itemModel_->rowCount(); ++i) { - const QModelIndex index = itemModel_->index(i, 0); - createItemForIndex(index, true); + // If here, m_delegateModel may contain data, but QQmlInstanceModel::object for each row hasn't been called yet. + for (int i = 0; i < m_delegateModel->count(); i++) { + QDeclarativeGeoMapItemBase *item = + qobject_cast(m_delegateModel->object(i, QQmlIncubator::Asynchronous)); + addItemToMap(item, i); // if not item, createdItem will be emitted. } fitViewport(); } -void QDeclarativeGeoMapItemView::removeItemData(QDeclarativeGeoMapItemViewItemData *itemData) +void QDeclarativeGeoMapItemView::removeItemFromMap(int index) { - if (!itemData) - return; - if (itemData->incubator) { - if (itemData->incubator->isReady()) { - if (itemData->incubator->object() == itemData->item) { - map_->removeMapItem(itemData->item); // removeMapItem checks whether the item is in the map, so it's safe to call. - itemData->item = 0; + if (index >= 0 && index < m_instantiatedItems.size()) { + QDeclarativeGeoMapItemBase *item = m_instantiatedItems.takeAt(index); + if (!item) { + if (m_incubatingItems.contains(index)) { + // cancel request + m_delegateModel->cancel(index); + m_incubatingItems.remove(index); } - delete itemData->incubator->object(); + return; + } + if (m_exit && m_map) { + if (!item->m_transitionManager) { + QScopedPointermanager(new QDeclarativeGeoMapItemTransitionManager(item)); + item->m_transitionManager.swap(manager); + item->m_transitionManager->m_view = this; + } + connect(item, &QDeclarativeGeoMapItemBase::exitTransitionFinished, + this, &QDeclarativeGeoMapItemView::exitTransitionFinished); + item->m_transitionManager->transitionExit(); + } else { + disconnect(item, 0, this, 0); + if (m_map) + m_map->removeMapItem(item); + QQmlInstanceModel::ReleaseFlags releaseStatus = m_delegateModel->release(item); + if (releaseStatus == QQmlInstanceModel::Referenced) + qWarning() << "item "<< index << " still referenced"; } - itemData->incubator->clear(); // stops ongoing incubation } - if (itemData->item) - map_->removeMapItem(itemData->item); - delete itemData; // destroys the ->item too. } -void QDeclarativeGeoMapItemView::terminateOngoingRepopulation() +void QDeclarativeGeoMapItemView::exitTransitionFinished() +{ + QDeclarativeGeoMapItemBase *item = static_cast(sender()); + disconnect(item, 0, this, 0); + if (m_map) + m_map->removeMapItem(item); + QQmlInstanceModel::ReleaseFlags releaseStatus = m_delegateModel->release(item); + if (releaseStatus == QQmlInstanceModel::Referenced) + qWarning() << "item "<quickMap() == m_map) // belonging to another map?? + return; - foreach (QDeclarativeGeoMapItemViewItemData *itemData, m_itemDataBatched) - removeItemData(itemData); + if (m_map) { + if (!item) { + m_incubatingItems.insert(index); + m_instantiatedItems.insert(index, nullptr); + return; + } - m_itemDataBatched.clear(); - m_readyIncubators = 0; - m_repopulating = false; + insertInstantiatedItem(index, item); + m_map->addMapItem(item); + if (m_enter) { + if (!item->m_transitionManager) { + QScopedPointermanager(new QDeclarativeGeoMapItemTransitionManager(item)); + item->m_transitionManager.swap(manager); + } + item->m_transitionManager->m_view = this; + item->m_transitionManager->transitionEnter(); + } } } -/*! - \internal - Removes and repopulates all items. -*/ -void QDeclarativeGeoMapItemView::repopulate() +void QDeclarativeGeoMapItemView::insertInstantiatedItem(int index, QDeclarativeGeoMapItemBase *o) { - if (!itemModel_ || !itemModel_->rowCount()) { - removeInstantiatedItems(); + if (m_incubatingItems.contains(index)) { + m_incubatingItems.remove(index); + m_instantiatedItems.replace(index, o); } else { - terminateOngoingRepopulation(); - instantiateAllItems(); // removal of instantiated item done at incubation completion + m_instantiatedItems.insert(index, o); } } -/*! - \internal - - Note: this call is async. that is returns to the event loop before returning to the caller. - May also trigger incubatorStatusChanged() before returning to the caller if the incubator is fast enough. -*/ -void QDeclarativeGeoMapItemView::createItemForIndex(const QModelIndex &index, bool batched) -{ - // Expected to be already tested by caller. - Q_ASSERT(delegate_); - Q_ASSERT(itemModel_); - - QDeclarativeGeoMapItemViewItemData *itemData = new QDeclarativeGeoMapItemViewItemData; - - itemData->modelData = new QObject; - itemData->modelDataMeta = new QQmlOpenMetaObject(itemData->modelData, m_metaObjectType, false); - itemData->context = new QQmlContext(qmlContext(this)); - - QHashIterator iterator(itemModel_->roleNames()); - while (iterator.hasNext()) { - iterator.next(); - - QVariant modelData = itemModel_->data(index, iterator.key()); - if (!modelData.isValid()) - continue; - - itemData->context->setContextProperty(QString::fromLatin1(iterator.value().constData()), - modelData); - - itemData->modelDataMeta->setValue(iterator.value(), modelData); - } - - itemData->context->setContextProperty(QLatin1String("model"), itemData->modelData); - itemData->context->setContextProperty(QLatin1String("index"), index.row()); +QT_END_NAMESPACE - if (batched || m_repopulating) { - if (index.row() < m_itemDataBatched.size()) - m_itemDataBatched.replace(index.row(), itemData); - else - m_itemDataBatched.insert(index.row(), itemData); - } else - m_itemData.insert(index.row(), itemData); - itemData->incubator = new MapItemViewDelegateIncubator(this, itemData, batched || m_repopulating); - - delegate_->create(*itemData->incubator, itemData->context); -} - -QDeclarativeGeoMapItemViewItemData::~QDeclarativeGeoMapItemViewItemData() -{ - delete incubator; - delete item; - delete context; - delete modelData; -} -QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomapitemview_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomapitemview_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomapitemview_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomapitemview_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -51,11 +51,13 @@ // #include - +#include #include #include #include #include +#include +#include QT_BEGIN_NAMESPACE @@ -68,6 +70,7 @@ class QQmlOpenMetaObjectType; class MapItemViewDelegateIncubator; class QDeclarativeGeoMapItemViewItemData; +class QDeclarativeGeoMapItemView; class Q_LOCATION_PRIVATE_EXPORT QDeclarativeGeoMapItemView : public QObject, public QQmlParserStatus { @@ -78,6 +81,8 @@ Q_PROPERTY(QVariant model READ model WRITE setModel NOTIFY modelChanged) Q_PROPERTY(QQmlComponent *delegate READ delegate WRITE setDelegate NOTIFY delegateChanged) Q_PROPERTY(bool autoFitViewport READ autoFitViewport WRITE setAutoFitViewport NOTIFY autoFitViewportChanged) +// Q_PROPERTY(QQuickTransition *enter MEMBER m_enter) +// Q_PROPERTY(QQuickTransition *exit MEMBER m_exit) public: explicit QDeclarativeGeoMapItemView(QQuickItem *parent = 0); @@ -90,59 +95,48 @@ void setDelegate(QQmlComponent *); bool autoFitViewport() const; - void setAutoFitViewport(const bool &); + void setAutoFitViewport(const bool &fit); void setMap(QDeclarativeGeoMap *); - void repopulate(); void removeInstantiatedItems(); void instantiateAllItems(); - qreal zValue(); - void setZValue(qreal zValue); - // From QQmlParserStatus - virtual void componentComplete(); - void classBegin() {} + void componentComplete() override; + void classBegin() override; Q_SIGNALS: void modelChanged(); void delegateChanged(); void autoFitViewportChanged(); -protected: - void incubatorStatusChanged(MapItemViewDelegateIncubator *incubator, - QQmlIncubator::Status status, - bool batched); - private Q_SLOTS: - void itemModelReset(); - void itemModelRowsInserted(const QModelIndex &index, int start, int end); - void itemModelRowsRemoved(const QModelIndex &index, int start, int end); - void itemModelRowsMoved(const QModelIndex &parent, int start, int end, - const QModelIndex &destination, int row); - void itemModelDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, - const QVector &roles); + void destroyingItem(QObject *object); + void initItem(int index, QObject *object); + void createdItem(int index, QObject *object); + void modelUpdated(const QQmlChangeSet &changeSet, bool reset); + void exitTransitionFinished(); private: - void createItemForIndex(const QModelIndex &index, bool batched = false); void fitViewport(); - void terminateOngoingRepopulation(); - void removeItemData(QDeclarativeGeoMapItemViewItemData *itemData); - - bool componentCompleted_; - QQmlComponent *delegate_; - QAbstractItemModel *itemModel_; - QDeclarativeGeoMap *map_; - QVector m_itemData; - QVector m_itemDataBatched; - bool fitViewport_; - - QQmlOpenMetaObjectType *m_metaObjectType; - int m_readyIncubators; - bool m_repopulating; - - friend class QDeclarativeGeoMapItemViewItemData; - friend class MapItemViewDelegateIncubator; + void removeItemFromMap(int index); + void addItemToMap(QDeclarativeGeoMapItemBase *item, int index); + void insertInstantiatedItem(int index, QDeclarativeGeoMapItemBase *o); + + bool m_componentCompleted; + QQmlComponent *m_delegate; + QVariant m_itemModel; + QDeclarativeGeoMap *m_map; + QList m_instantiatedItems; + QSet m_incubatingItems; + bool m_fitViewport; + QQmlDelegateModel *m_delegateModel; + QQuickTransition *m_enter = nullptr; + QQuickTransition *m_exit = nullptr; + + friend class QDeclarativeGeoMap; + friend class QDeclarativeGeoMapItemBase; + friend class QDeclarativeGeoMapItemTransitionManager; }; QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomapitemview_p_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomapitemview_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomapitemview_p_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomapitemview_p_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,87 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the QtLocation module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL3$ -** 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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QDECLARATIVEGEOMAPITEMVIEW_P_P_H -#define QDECLARATIVEGEOMAPITEMVIEW_P_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -class MapItemViewDelegateIncubator; -class QDeclarativeGeoMapItemView; -class QDeclarativeGeoMapItemBase; - -class QDeclarativeGeoMapItemViewItemData -{ -public: - QDeclarativeGeoMapItemViewItemData() - : incubator(0), item(0), context(0), modelData(0), modelDataMeta(0) - { - } - - ~QDeclarativeGeoMapItemViewItemData(); - - MapItemViewDelegateIncubator *incubator; - QDeclarativeGeoMapItemBase *item; - QQmlContext *context; - QObject *modelData; - QQmlOpenMetaObject *modelDataMeta; - - friend class MapItemViewDelegateIncubator; - friend class QDeclarativeGeoMapItemView; -}; - -Q_DECLARE_TYPEINFO(QDeclarativeGeoMapItemViewItemData, Q_MOVABLE_TYPE); - -QT_END_NAMESPACE - -#endif // QDECLARATIVEGEOMAPITEMVIEW_P_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomapparameter.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomapparameter.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomapparameter.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomapparameter.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -45,32 +45,40 @@ /*! \qmltype MapParameter + \inqmlmodule QtLocation + \ingroup qml-QtLocation5-maps + \since QtLocation 5.9 + \deprecated + + Use \l DynamicParameter instead. +*/ + +/*! + \qmltype DynamicParameter \instantiates QDeclarativeGeoMapParameter \inqmlmodule QtLocation \ingroup qml-QtLocation5-maps - \since Qt Location 5.9 + \since Qt Location 5.11 - \brief The MapParameter type represents a parameter for a Map element. + \brief The DynamicParameter type represents a parameter for a Map element. This type provides a mean to specify plugin-dependent optional parameters for a map. - MapParameters by default contain only the \l type property, and + DynamicParameters by default contain only the \l type property, and are highly plugin-dependent. For this reason, additional properties have to be defined inside a - MapParameter at declaration time, using the QML syntax "property var foo". + DynamicParameter at declaration time, using the QML syntax "property var foo". - What properties have to be put inside a particular MapParameter type for + What properties have to be put inside a particular DynamicParameter type for a particular plugin can be found in the documentation of the plugin. - Note that MapProperties are \b optional. + Note that DynamicParameters are \b optional. By not specifying any of them, the Map will have the default behavior. - - The release of this API with Qt 5.9 is a Technology Preview. */ /*! - \qmlproperty string QtLocation::MapParameter::type + \qmlproperty string QtLocation::DynamicParameter::type - Set-once property which holds a string defining the type of the MapParameter + Set-once property which holds a string defining the type of the DynamicParameter */ QDeclarativeGeoMapParameter::QDeclarativeGeoMapParameter(QObject *parent) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomap_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomap_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomap_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomap_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -158,12 +158,18 @@ QQmlListProperty supportedMapTypes(); + Q_INVOKABLE void setBearing(qreal bearing, const QGeoCoordinate &coordinate); + Q_INVOKABLE void alignCoordinateToPoint(const QGeoCoordinate &coordinate, const QPointF &point); + Q_INVOKABLE void removeMapItem(QDeclarativeGeoMapItemBase *item); Q_INVOKABLE void addMapItem(QDeclarativeGeoMapItemBase *item); Q_INVOKABLE void addMapItemGroup(QDeclarativeGeoMapItemGroup *itemGroup); Q_INVOKABLE void removeMapItemGroup(QDeclarativeGeoMapItemGroup *itemGroup); + Q_INVOKABLE void removeMapItemView(QDeclarativeGeoMapItemView *itemView); + Q_INVOKABLE void addMapItemView(QDeclarativeGeoMapItemView *itemView); + Q_INVOKABLE void clearMapItems(); QList mapItems(); @@ -172,6 +178,12 @@ Q_INVOKABLE void clearMapParameters(); QList mapParameters(); + void addMapObject(QGeoMapObject *object); + void removeMapObject(QGeoMapObject *object); + void clearMapObjects(); + QList mapObjects(); + + Q_INVOKABLE QGeoCoordinate toCoordinate(const QPointF &position, bool clipToViewPort = true) const; Q_INVOKABLE QPointF fromCoordinate(const QGeoCoordinate &coordinate, bool clipToViewPort = true) const; @@ -185,6 +197,7 @@ QString errorString() const; QGeoServiceProvider::Error error() const; + QGeoMap* map() const; // From QQuickItem void itemChange(ItemChange, const ItemChangeData &) override; @@ -212,25 +225,26 @@ void copyrightsChanged(const QImage ©rightsImage); void copyrightsChanged(const QString ©rightsHtml); void mapReadyChanged(bool ready); + Q_REVISION(11) void mapObjectsChanged(); protected: - void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE ; - void mouseMoveEvent(QMouseEvent *event) Q_DECL_OVERRIDE ; - void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE ; - void mouseUngrabEvent() Q_DECL_OVERRIDE ; - void touchUngrabEvent() Q_DECL_OVERRIDE; - void touchEvent(QTouchEvent *event) Q_DECL_OVERRIDE ; + void mousePressEvent(QMouseEvent *event) override ; + void mouseMoveEvent(QMouseEvent *event) override ; + void mouseReleaseEvent(QMouseEvent *event) override ; + void mouseUngrabEvent() override ; + void touchUngrabEvent() override; + void touchEvent(QTouchEvent *event) override ; #if QT_CONFIG(wheelevent) - void wheelEvent(QWheelEvent *event) Q_DECL_OVERRIDE ; + void wheelEvent(QWheelEvent *event) override ; #endif - bool childMouseEventFilter(QQuickItem *item, QEvent *event) Q_DECL_OVERRIDE; + bool childMouseEventFilter(QQuickItem *item, QEvent *event) override; bool sendMouseEvent(QMouseEvent *event); bool sendTouchEvent(QTouchEvent *event); - void componentComplete() Q_DECL_OVERRIDE; - QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *) Q_DECL_OVERRIDE; - void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) Q_DECL_OVERRIDE; + void componentComplete() override; + QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *) override; + void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) override; void setError(QGeoServiceProvider::Error error, const QString &errorString); void initialize(); @@ -260,7 +274,7 @@ QList m_supportedMapTypes; QList m_mapViews; QQuickGeoMapGestureArea *m_gestureArea; - QGeoMap* m_map = nullptr; + QPointer m_map; QPointer m_copyrights; QList > m_mapItems; QList > m_mapItemGroups; @@ -275,6 +289,7 @@ double m_maximumViewportLatitude; bool m_initialized; QList m_mapParameters; + QList m_pendingMapObjects; // Used only in the initialization phase QGeoCameraCapabilities m_cameraCapabilities; qreal m_userMinimumZoomLevel; qreal m_userMaximumZoomLevel; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomapquickitem.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomapquickitem.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomapquickitem.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomapquickitem.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -53,7 +53,7 @@ \instantiates QDeclarativeGeoMapQuickItem \inqmlmodule QtLocation \ingroup qml-QtLocation5-maps - \since Qt Location 5.5 + \since QtLocation 5.5 \brief The MapQuickItem type displays an arbitrary Qt Quick object on a Map. @@ -210,9 +210,12 @@ QGeoCoordinate newCoordinate; // with zoomLevel set the anchorPoint has to be factored into the transformation to properly transform around it. - if (zoomLevel_ != 0.0) { + if (zoomLevel_ != 0.0 + && map()->geoProjection().projectionType() == QGeoProjection::ProjectionWebMercator) { + const QGeoProjectionWebMercator &p = static_cast(map()->geoProjection()); + // When dragStartCoordinate_ can't be projected to screen, dragging must be disabled. - if (!map()->geoProjection().isProjectable(map()->geoProjection().geoToWrappedMapProjection(dragStartCoordinate_))) + if (!p.isProjectable(p.geoToWrappedMapProjection(dragStartCoordinate_))) return; QDoubleVector2D pos = map()->geoProjection().coordinateToItemPosition(dragStartCoordinate_, false); @@ -392,27 +395,42 @@ setWidth(sourceItem_.data()->width()); setHeight(sourceItem_.data()->height()); - if (zoomLevel_ != 0.0) { // zoom level initialized to 0.0. If it's different, it has been set explicitly. + if (zoomLevel_ != 0.0 // zoom level initialized to 0.0. If it's different, it has been set explicitly. + && map()->geoProjection().projectionType() == QGeoProjection::ProjectionWebMercator) { // Currently unsupported on any other projection + const QGeoProjectionWebMercator &p = static_cast(map()->geoProjection()); + if (!matrix_) { matrix_ = new QMapQuickItemMatrix4x4(this); matrix_->appendToItem(opacityContainer_); } - matrix_->setMatrix(map()->geoProjection().quickItemTransformation(coordinate(), anchorPoint_, zoomLevel_)); + matrix_->setMatrix(p.quickItemTransformation(coordinate(), anchorPoint_, zoomLevel_)); setPosition(QPointF(0,0)); } else { - // if the coordinate is behind the camera, we use the transformation to get the item out of the way - if (map()->cameraData().tilt() > 0.0 - && !map()->geoProjection().isProjectable(map()->geoProjection().geoToWrappedMapProjection(coordinate()))) { - if (!matrix_) { - matrix_ = new QMapQuickItemMatrix4x4(this); - matrix_->appendToItem(opacityContainer_); + if (map()->geoProjection().projectionType() == QGeoProjection::ProjectionWebMercator) { + const QGeoProjectionWebMercator &p = static_cast(map()->geoProjection()); + if (map()->cameraData().tilt() > 0.0 + && !p.isProjectable(p.geoToWrappedMapProjection(coordinate()))) { + // if the coordinate is behind the camera, we use the transformation to get the item out of the way + if (!matrix_) { + matrix_ = new QMapQuickItemMatrix4x4(this); + matrix_->appendToItem(opacityContainer_); + } + matrix_->setMatrix(p.quickItemTransformation(coordinate(), anchorPoint_, map()->cameraData().zoomLevel())); + setPosition(QPointF(0,0)); + } else { // All good, rendering screen-aligned + if (matrix_) + matrix_->setMatrix(QMatrix4x4()); + setPositionOnMap(coordinate(), anchorPoint_); + } + } else { // On other projections we can only currently test if coordinateToItemPosition returns a valid position + if (map()->cameraData().tilt() > 0.0 + && qIsNaN(map()->geoProjection().coordinateToItemPosition(coordinate(), false).x())) { + opacityContainer_->setVisible(false); + } else { + if (matrix_) + matrix_->setMatrix(QMatrix4x4()); + setPositionOnMap(coordinate(), anchorPoint_); } - matrix_->setMatrix(map()->geoProjection().quickItemTransformation(coordinate(), anchorPoint_, map()->cameraData().zoomLevel())); - setPosition(QPointF(0,0)); - } else { - if (matrix_) - matrix_->setMatrix(QMatrix4x4()); - setPositionOnMap(coordinate(), anchorPoint_); } } } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomapquickitem_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomapquickitem_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomapquickitem_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomapquickitem_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -65,7 +65,7 @@ QMapQuickItemMatrix4x4(QObject *parent = nullptr); void setMatrix(const QMatrix4x4& matrix); - void applyTo(QMatrix4x4 *matrix) const Q_DECL_OVERRIDE; + void applyTo(QMatrix4x4 *matrix) const override; QMatrix4x4 m_matrix; }; @@ -82,7 +82,7 @@ explicit QDeclarativeGeoMapQuickItem(QQuickItem *parent = 0); ~QDeclarativeGeoMapQuickItem(); - virtual void setMap(QDeclarativeGeoMap *quickMap, QGeoMap *map) Q_DECL_OVERRIDE; + virtual void setMap(QDeclarativeGeoMap *quickMap, QGeoMap *map) override; void setCoordinate(const QGeoCoordinate &coordinate); QGeoCoordinate coordinate(); @@ -96,8 +96,8 @@ void setZoomLevel(qreal zoomLevel); qreal zoomLevel() const; - const QGeoShape &geoShape() const Q_DECL_OVERRIDE; - QGeoMap::ItemType itemType() const Q_DECL_OVERRIDE; + const QGeoShape &geoShape() const override; + QGeoMap::ItemType itemType() const override; Q_SIGNALS: void coordinateChanged(); @@ -106,13 +106,13 @@ void zoomLevelChanged(); protected: - void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) Q_DECL_OVERRIDE; - void updatePolish() Q_DECL_OVERRIDE; - bool childMouseEventFilter(QQuickItem *item, QEvent *event) Q_DECL_OVERRIDE; + void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) override; + void updatePolish() override; + bool childMouseEventFilter(QQuickItem *item, QEvent *event) override; protected Q_SLOTS: - virtual void afterChildrenChanged() Q_DECL_OVERRIDE; - virtual void afterViewportChanged(const QGeoMapViewportChangeEvent &event) Q_DECL_OVERRIDE; + virtual void afterChildrenChanged() override; + virtual void afterViewportChanged(const QGeoMapViewportChangeEvent &event) override; private: qreal scaleFactor(); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomaptype.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomaptype.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomaptype.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomaptype.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -47,7 +47,7 @@ \inherits QObject \inqmlmodule QtLocation \ingroup qml-QtLocation5-maps - \since Qt Location 5.5 + \since QtLocation 5.5 \brief The MapType type holds information about a map type. @@ -57,7 +57,8 @@ QDeclarativeGeoMapType::QDeclarativeGeoMapType(const QGeoMapType mapType, QObject *parent) : QObject(parent), - mapType_(mapType) {} + mapType_(mapType), + cameraCapabilities_(new QDeclarativeGeoCameraCapabilities(mapType.cameraCapabilities(), this)) {} QDeclarativeGeoMapType::~QDeclarativeGeoMapType() {} @@ -120,7 +121,7 @@ /*! \qmlproperty bool MapType::night - \since Qt Location 5.4 + \since QtLocation 5.4 \brief Whether the map type is optimized for use at night. @@ -131,4 +132,116 @@ return mapType_.night(); } +/*! + \qmlproperty CameraCapabilities MapType::cameraCapabilities + \since QtLocation 5.10 + + This property holds the camera capabilities for this map type. +*/ +QDeclarativeGeoCameraCapabilities *QDeclarativeGeoMapType::cameraCapabilities() const +{ + return cameraCapabilities_; +} + +/*! + \qmlproperty VariantMap MapType::metadata + \since QtLocation 5.10 + + This property holds optional, extra metadata related to a specific map type. + The content of this property is entirely plugin-specific. +*/ +QVariantMap QDeclarativeGeoMapType::metadata() const +{ + return mapType_.metadata(); +} + +/* + * QDeclarativeGeoCameraCapabilities implementation + */ + +/*! + \qmltype CameraCapabilities + \instantiates QDeclarativeGeoCameraCapabilities + \inherits QObject + \inqmlmodule QtLocation + \ingroup qml-QtLocation5-maps + \since QtLocation 5.10 + + \brief The CameraCapabilities type holds information about the camera capabilities for a specific map type. + + This includes the map minimum and maximum zoom level, minimum and maximum tilt angle and + minimum and maximum field of view. +*/ + +QDeclarativeGeoCameraCapabilities::QDeclarativeGeoCameraCapabilities(const QGeoCameraCapabilities &cameraCaps, QObject *parent) + : QObject(parent), cameraCaps_(cameraCaps) +{ + +} + +QDeclarativeGeoCameraCapabilities::~QDeclarativeGeoCameraCapabilities() +{ + +} + +/*! + \qmlproperty qreal CameraCapabilities::minimumZoomLevel + + This read-only property holds the minimum available zoom level with this map type. +*/ +qreal QDeclarativeGeoCameraCapabilities::minimumZoomLevel() const +{ + return cameraCaps_.minimumZoomLevelAt256(); +} + +/*! + \qmlproperty qreal CameraCapabilities::maximumZoomLevel + + This read-only property holds the maximum available zoom level with this map type. +*/ +qreal QDeclarativeGeoCameraCapabilities::maximumZoomLevel() const +{ + return cameraCaps_.maximumZoomLevelAt256(); +} + +/*! + \qmlproperty qreal CameraCapabilities::minimumTilt + + This read-only property holds the minimum available tilt with this map type. +*/ +qreal QDeclarativeGeoCameraCapabilities::minimumTilt() const +{ + return cameraCaps_.minimumTilt(); +} + +/*! + \qmlproperty qreal CameraCapabilities::maximumTilt + + This read-only property holds the maximum available tilt with this map type. +*/ +qreal QDeclarativeGeoCameraCapabilities::maximumTilt() const +{ + return cameraCaps_.maximumTilt(); +} + +/*! + \qmlproperty qreal CameraCapabilities::minimumFieldOfView + + This read-only property holds the minimum available field of view with this map type. +*/ +qreal QDeclarativeGeoCameraCapabilities::minimumFieldOfView() const +{ + return cameraCaps_.minimumFieldOfView(); +} + +/*! + \qmlproperty qreal CameraCapabilities::maximumFieldOfView + + This read-only property holds the maximum available field of view with this map type. +*/ +qreal QDeclarativeGeoCameraCapabilities::maximumFieldOfView() const +{ + return cameraCaps_.maximumFieldOfView(); +} + QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomaptype_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomaptype_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeomaptype_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeomaptype_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -56,6 +56,31 @@ QT_BEGIN_NAMESPACE +class Q_LOCATION_PRIVATE_EXPORT QDeclarativeGeoCameraCapabilities: public QObject +{ + Q_OBJECT + Q_PROPERTY(qreal minimumZoomLevel READ minimumZoomLevel CONSTANT) + Q_PROPERTY(qreal maximumZoomLevel READ maximumZoomLevel CONSTANT) + Q_PROPERTY(qreal minimumTilt READ minimumTilt CONSTANT) + Q_PROPERTY(qreal maximumTilt READ maximumTilt CONSTANT) + Q_PROPERTY(qreal minimumFieldOfView READ minimumFieldOfView CONSTANT) + Q_PROPERTY(qreal maximumFieldOfView READ maximumFieldOfView CONSTANT) + +public: + QDeclarativeGeoCameraCapabilities(const QGeoCameraCapabilities &cameraCaps, QObject *parent = 0); + ~QDeclarativeGeoCameraCapabilities(); + + qreal minimumZoomLevel() const; + qreal maximumZoomLevel() const; + qreal minimumTilt() const; + qreal maximumTilt() const; + qreal minimumFieldOfView() const; + qreal maximumFieldOfView() const; + +private: + QGeoCameraCapabilities cameraCaps_; +}; + class Q_LOCATION_PRIVATE_EXPORT QDeclarativeGeoMapType : public QObject { Q_OBJECT @@ -66,6 +91,8 @@ Q_PROPERTY(QString description READ description CONSTANT) Q_PROPERTY(bool mobile READ mobile CONSTANT) Q_PROPERTY(bool night READ night CONSTANT REVISION 1) + Q_PROPERTY(QDeclarativeGeoCameraCapabilities *cameraCapabilities READ cameraCapabilities CONSTANT) + Q_PROPERTY(QVariantMap metadata READ metadata CONSTANT) public: enum MapStyle { @@ -91,11 +118,14 @@ QString description() const; bool mobile() const; bool night() const; + QDeclarativeGeoCameraCapabilities *cameraCapabilities() const; + QVariantMap metadata() const; const QGeoMapType mapType() { return mapType_; } private: QGeoMapType mapType_; + QDeclarativeGeoCameraCapabilities *cameraCapabilities_; }; QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeoroute.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeoroute.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeoroute.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeoroute.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -37,6 +37,8 @@ #include "qdeclarativegeoroute_p.h" #include "locationvaluetypehelper_p.h" #include +#include +#include #include #include @@ -50,7 +52,7 @@ \instantiates QDeclarativeGeoRoute \inqmlmodule QtLocation \ingroup qml-QtLocation5-routing - \since Qt Location 5.5 + \since QtLocation 5.5 \brief The Route type represents one geographical route. @@ -77,29 +79,37 @@ */ QDeclarativeGeoRoute::QDeclarativeGeoRoute(QObject *parent) - : QObject(parent) + : QObject(parent), segmentsDirty_(true) { - this->init(); } QDeclarativeGeoRoute::QDeclarativeGeoRoute(const QGeoRoute &route, QObject *parent) - : QObject(parent), - route_(route) + : QObject(parent), route_(route), segmentsDirty_(true) { - this->init(); } QDeclarativeGeoRoute::~QDeclarativeGeoRoute() {} -void QDeclarativeGeoRoute::init() +void QDeclarativeGeoRoute::initSegments(unsigned int lastIndex) // -1 turns it into unsigned int max { + if (!segmentsDirty_) + return; + QGeoRouteSegment segment = route_.firstRouteSegment(); + unsigned int idx = 0; + unsigned int initialListSize = static_cast(segments_.size()); while (segment.isValid()) { - QDeclarativeGeoRouteSegment *routeSegment = new QDeclarativeGeoRouteSegment(segment, this); - QQmlEngine::setContextForObject(routeSegment, QQmlEngine::contextForObject(this)); - segments_.append(routeSegment); + if (idx >= initialListSize) { + QDeclarativeGeoRouteSegment *routeSegment = new QDeclarativeGeoRouteSegment(segment, this); + QQmlEngine::setContextForObject(routeSegment, QQmlEngine::contextForObject(this)); + segments_.append(routeSegment); + } + ++idx; segment = segment.nextRouteSegment(); + if (idx > lastIndex && segment.isValid()) // Do not clean segmentsDirty_ if there are still segments to initialize + return; } + segmentsDirty_ = false; } /*! @@ -229,7 +239,9 @@ void QDeclarativeGeoRoute::segments_append(QQmlListProperty *prop, QDeclarativeGeoRouteSegment *segment) { - static_cast(prop->object)->appendSegment(segment); + QDeclarativeGeoRoute *declRoute = static_cast(prop->object); + declRoute->initSegments(); + declRoute->appendSegment(segment); } /*! @@ -237,7 +249,8 @@ */ int QDeclarativeGeoRoute::segments_count(QQmlListProperty *prop) { - return static_cast(prop->object)->segments_.count(); + QDeclarativeGeoRoute *declRoute = static_cast(prop->object); + return declRoute->segmentsCount(); } /*! @@ -245,7 +258,9 @@ */ QDeclarativeGeoRouteSegment *QDeclarativeGeoRoute::segments_at(QQmlListProperty *prop, int index) { - return static_cast(prop->object)->segments_.at(index); + QDeclarativeGeoRoute *declRoute = static_cast(prop->object); + declRoute->initSegments(index); // init only what's needed. + return declRoute->segments_.at(index); } /*! @@ -272,4 +287,38 @@ segments_.clear(); } +/*! + \qmlmethod int QtLocation::Route::segmentsCount() + + Returns the number of segments in the route + + \sa RouteSegment + + \since 5.11 +*/ + +int QDeclarativeGeoRoute::segmentsCount() const +{ + return qMax(route_.d_ptr->segmentsCount(), segments_.count()); +} + +const QGeoRoute &QDeclarativeGeoRoute::route() const +{ + return route_; +} + +/*! + \qmlproperty RouteQuery QtLocation::Route::routeQuery + + Returns the route query associated with this route. + + \since 5.11 +*/ +QDeclarativeGeoRouteQuery *QDeclarativeGeoRoute::routeQuery() +{ + if (!routeQuery_) + routeQuery_ = new QDeclarativeGeoRouteQuery(route_.request(), this); + return routeQuery_; +} + QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeoroutemodel.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeoroutemodel.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeoroutemodel.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeoroutemodel.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -45,15 +45,69 @@ #include #include #include +#include "qdeclarativegeomapparameter_p.h" QT_BEGIN_NAMESPACE +static bool compareFloats(qreal a, qreal b) +{ + return (qIsNaN(a) && qIsNaN(b)) + || a == b; +} + +static bool compareParameterList(const QList &a, const QList &b) +{ + if (a.size() != b.size()) + return false; + if (a != b) { + for (int i = 0; i < a.size(); ++i) { + if (! (*a.at(i) == *b.at(i))) + return false; + } + } + return true; +} + +static int findWaypoint(const QList &waypoints, const QDeclarativeGeoWaypoint *w) +{ + for (int i = waypoints.size() - 1; i >= 0; --i) { + if (waypoints.at(i) == w || *waypoints.at(i) == *w) + return i; + } + return -1; +} + +static int findWaypoint(const QList &waypoints, const QGeoCoordinate &c) +{ + for (int i = waypoints.size() - 1; i >= 0; --i) { + if (waypoints.at(i)->coordinate() == c) + return i; + } + return -1; +} + +static QList waypointCoordinates(const QList &waypoints) +{ + QList res; + for (const QDeclarativeGeoWaypoint *w: waypoints) + res << w->coordinate(); + return res; +} + +static QList waypointMetadata(const QList &waypoints) +{ + QList res; + for (QDeclarativeGeoWaypoint *w: waypoints) + res << w->metadata(); + return res; +} + /*! \qmltype RouteModel \instantiates QDeclarativeGeoRouteModel \inqmlmodule QtLocation \ingroup qml-QtLocation5-routing - \since Qt Location 5.5 + \since QtLocation 5.5 \brief The RouteModel type provides access to routes. @@ -185,7 +239,7 @@ } /*! - \qmlmethod void QtLocation::RouteModel::get(int) + \qmlmethod Route QtLocation::RouteModel::get(int) Returns the Route at given index. Use \l count property to check the amount of routes available. The routes are indexed from zero, so the accessible range @@ -648,12 +702,12 @@ \instantiates QDeclarativeGeoRouteQuery \inqmlmodule QtLocation \ingroup qml-QtLocation5-routing - \since Qt Location 5.5 + \since QtLocation 5.5 \brief The RouteQuery type is used to provide query parameters to a RouteModel. - A RouteQuery contains all the parameters necessary to make a request + A RouteQuery is used to pack all the parameters necessary to make a request to a routing service, which can then populate the contents of a RouteModel. These parameters describe key details of the route, such as \l waypoints to @@ -665,6 +719,10 @@ RouteModel's \l{RouteModel::query}{query} property, which can then begin the retrieval process to populate the model. + Some plugins might allow or require specific parameters to operate. + In order to specify these plugin-specific parameters, MapParameter elements + can be nested inside a RouteQuery. + \section2 Example Usage The following snipped shows an incomplete example of creating a RouteQuery @@ -694,6 +752,21 @@ { } +QDeclarativeGeoRouteQuery::QDeclarativeGeoRouteQuery(const QGeoRouteRequest &request, QObject *parent) +: QObject(parent), request_(request), complete_(false), m_excludedAreaCoordinateChanged(false) +{ + // Extra params assumed to be already set in the request. + // Init waypoints + const QList wpts = request_.waypoints(); + const QList meta = request_.waypointsMetadata(); + for (int i = 0; i < wpts.size(); ++i) { + QDeclarativeGeoWaypoint *w = new QDeclarativeGeoWaypoint(this); + w->setCoordinate(wpts.at(i)); + w->setMetadata(meta.at(i)); + m_waypoints << w; + } +} + QDeclarativeGeoRouteQuery::~QDeclarativeGeoRouteQuery() { } @@ -722,6 +795,7 @@ \li RouteQuery.DirtRoadFeature - Consider dirt roads when planning the route \li RouteQuery.ParksFeature - Consider parks when planning the route \li RouteQuery.MotorPoolLaneFeature - Consider motor pool lanes when planning the route + \li RouteQuery.TrafficFeature - Consider traffic when planning the route \endlist \sa setFeatureWeight, featureWeight @@ -767,60 +841,93 @@ \qmlproperty list RouteQuery::waypoints - The waypoint coordinates of the desired route. + The coordinates of the waypoints for the desired route. The waypoints should be given in order from origin to destination. Two or more coordinates are needed. Waypoints can be set as part of the RouteQuery type declaration or dynamically with the functions provided. - \sa addWaypoint, removeWaypoint, clearWaypoints + When setting this property to a list of waypoints, each waypoint + can be either a \l coordinate or a \l Waypoint, interchangeably. + If a \l coordinate is passed, it will be internally converted to a + \l Waypoint. + + This property, however, always contains a list of coordinates. + + \sa waypointObjects, addWaypoint, removeWaypoint, clearWaypoints */ -QJSValue QDeclarativeGeoRouteQuery::waypoints() +QVariantList QDeclarativeGeoRouteQuery::waypoints() { - QQmlContext *context = QQmlEngine::contextForObject(parent()); - QQmlEngine *engine = context->engine(); - QV4::ExecutionEngine *v4 = QQmlEnginePrivate::getV4Engine(engine); + QVariantList res; - QV4::Scope scope(v4); - QV4::Scoped waypointArray(scope, v4->newArrayObject(request_.waypoints().length())); - for (int i = 0; i < request_.waypoints().length(); ++i) { - const QGeoCoordinate &c = request_.waypoints().at(i); + for (const auto &w : m_waypoints) + res << QVariant::fromValue(w->coordinate()); - QV4::ScopedValue cv(scope, v4->fromVariant(QVariant::fromValue(c))); - waypointArray->putIndexed(i, cv); - } + return res; +} + +/*! + \qmlmethod list QtLocation::RouteQuery::waypointObjects() + + This method can be used to retrieve the list of Waypoint objects + relative to RouteQuery::waypoints. - return QJSValue(v4, waypointArray.asReturnedValue()); + \sa waypointObjects, addWaypoint, removeWaypoint, clearWaypoints +*/ +QVariantList QDeclarativeGeoRouteQuery::waypointObjects() +{ + QVariantList res; + + for (const auto &w : m_waypoints) + res << QVariant::fromValue(w); + + return res; } -void QDeclarativeGeoRouteQuery::setWaypoints(const QJSValue &value) +void QDeclarativeGeoRouteQuery::setWaypoints(const QVariantList &value) { - if (!value.isArray()) - return; + QList waypointList; + bool allWaypoints = true; - QList waypointList; - quint32 length = value.property(QStringLiteral("length")).toUInt(); - for (quint32 i = 0; i < length; ++i) { - bool ok; - QGeoCoordinate c = parseCoordinate(value.property(i), &ok); + for (const auto &w: value) { + // First, test if this is already a QDeclarativeGeoWaypoint + // From QVariant to QObject * + QDeclarativeGeoWaypoint *waypoint = nullptr; + QObject *obj = qvariant_cast(w); + waypoint = qobject_cast(obj); - if (!ok || !c.isValid()) { - qmlWarning(this) << "Unsupported waypoint type"; + if (waypoint) { + waypointList << waypoint; + continue; + } + + // if here, w is not a Waypoint, so either a QGeoCoordinate or a variant map, so a waypoint has to be instantiated. + allWaypoints = false; + + QGeoCoordinate c = parseCoordinate(w); + if (!c.isValid()) { + qmlWarning(this) << QStringLiteral("Invalid waypoint"); + flushWaypoints(waypointList); return; } - waypointList.append(c); + waypoint = new QDeclarativeGeoWaypoint(this); + waypoint->setCoordinate(c); + waypointList << waypoint; + } - if (request_.waypoints() == waypointList) + if (allWaypoints && m_waypoints == waypointList) return; - request_.setWaypoints(waypointList); + flushWaypoints(m_waypoints); + m_waypoints = waypointList; + for (const QDeclarativeGeoWaypoint *w: qAsConst(m_waypoints)) + connect(w, &QDeclarativeGeoWaypoint::waypointDetailsChanged, this, &QDeclarativeGeoRouteQuery::waypointChanged); - emit waypointsChanged(); - emit queryDetailsChanged(); + waypointChanged(); } /*! @@ -863,7 +970,7 @@ QGeoRectangle r = parseRectangle(value.property(i), &ok); if (!ok || !r.isValid()) { - qmlWarning(this) << "Unsupported area type"; + qmlWarning(this) << QStringLiteral("Unsupported area type"); return; } @@ -875,8 +982,10 @@ request_.setExcludeAreas(excludedAreasList); - emit excludedAreasChanged(); - emit queryDetailsChanged(); + if (complete_) { + emit excludedAreasChanged(); + emit queryDetailsChanged(); + } } /*! @@ -932,8 +1041,10 @@ excludedAreas.removeAt(index); request_.setExcludeAreas(excludedAreas); - emit excludedAreasChanged(); - emit queryDetailsChanged(); + if (complete_) { + emit excludedAreasChanged(); + emit queryDetailsChanged(); + } } /*! @@ -951,8 +1062,10 @@ request_.setExcludeAreas(QList()); - emit excludedAreasChanged(); - emit queryDetailsChanged(); + if (complete_) { + emit excludedAreasChanged(); + emit queryDetailsChanged(); + } } /*! @@ -960,24 +1073,43 @@ Appends a coordinate to the list of waypoints. Same coordinate can be set multiple times. + The \a coordinate argument can be a \l coordinate or a \l Waypoint. + If a \l coordinate is used, it will be internally converted to a + \l Waypoint. \sa removeWaypoint, clearWaypoints */ -void QDeclarativeGeoRouteQuery::addWaypoint(const QGeoCoordinate &waypoint) +void QDeclarativeGeoRouteQuery::addWaypoint(const QVariant &waypoint) { - if (!waypoint.isValid()) { - qmlWarning(this) << QStringLiteral("Not adding invalid waypoint."); + QDeclarativeGeoWaypoint *w = nullptr; + QObject *obj = qvariant_cast(waypoint); + w = qobject_cast(obj); + + if (w) { + if (! w->isValid()) { + qmlWarning(this) << QStringLiteral("Invalid waypoint"); + return; + } + + m_waypoints << w; + connect(w, &QDeclarativeGeoWaypoint::waypointDetailsChanged, this, &QDeclarativeGeoRouteQuery::waypointChanged); + waypointChanged(); return; } - QList waypoints = request_.waypoints(); - waypoints.append(waypoint); - request_.setWaypoints(waypoints); + // if here, waypoint is not a Waypoint, so either a QGeoCoordinate or a variant map, so a waypoint has to be instantiated. - if (complete_) { - emit waypointsChanged(); - emit queryDetailsChanged(); + QGeoCoordinate c = parseCoordinate(waypoint); + if (!c.isValid()) { + qmlWarning(this) << QStringLiteral("Invalid coordinate as waypoint"); + return; } + + w = new QDeclarativeGeoWaypoint(this); + w->setCoordinate(c); + m_waypoints << w; + connect(w, &QDeclarativeGeoWaypoint::waypointDetailsChanged, this, &QDeclarativeGeoRouteQuery::waypointChanged); + waypointChanged(); } /*! @@ -989,22 +1121,49 @@ \sa addWaypoint, clearWaypoints */ -void QDeclarativeGeoRouteQuery::removeWaypoint(const QGeoCoordinate &waypoint) +void QDeclarativeGeoRouteQuery::removeWaypoint(const QVariant &waypoint) { - QList waypoints = request_.waypoints(); + QDeclarativeGeoWaypoint *w = nullptr; + QObject *obj = qvariant_cast(waypoint); + w = qobject_cast(obj); + + if (w) { + if (!w->isValid()) { + qmlWarning(this) << QStringLiteral("Invalid waypoint"); + return; + } - int index = waypoints.lastIndexOf(waypoint); - if (index == -1) { - qmlWarning(this) << QStringLiteral("Cannot remove nonexistent waypoint."); + int idx = findWaypoint(m_waypoints, w); + if (idx >= 0) { + QDeclarativeGeoWaypoint *toRemove = m_waypoints.takeAt(idx); + toRemove->disconnect(this); + if (toRemove->parent() == this) + delete toRemove; + + waypointChanged(); + } else { + qmlWarning(this) << QStringLiteral("Cannot remove nonexistent waypoint."); + } return; } - waypoints.removeAt(index); + QGeoCoordinate c = parseCoordinate(waypoint); + if (!c.isValid()) { + qmlWarning(this) << QStringLiteral("Invalid coordinate as waypoint"); + return; + } - request_.setWaypoints(waypoints); + int idx = findWaypoint(m_waypoints, c); + if (idx >= 0) { + QDeclarativeGeoWaypoint *toRemove = m_waypoints.takeAt(idx); + toRemove->disconnect(this); + if (toRemove->parent() == this) + delete toRemove; - emit waypointsChanged(); - emit queryDetailsChanged(); + waypointChanged(); + } else { + qmlWarning(this) << QStringLiteral("Cannot remove nonexistent waypoint."); + } } /*! @@ -1016,13 +1175,21 @@ */ void QDeclarativeGeoRouteQuery::clearWaypoints() { - if (request_.waypoints().isEmpty()) + if (m_waypoints.isEmpty()) return; - request_.setWaypoints(QList()); + flushWaypoints(m_waypoints); + waypointChanged(); +} - emit waypointsChanged(); - emit queryDetailsChanged(); +void QDeclarativeGeoRouteQuery::flushWaypoints(QList &waypoints) +{ + for (const QDeclarativeGeoWaypoint *w : qAsConst(waypoints)) { + w->disconnect(this); + if (w->parent() == this) // w has been created internally as a result of adding a QGeoCoordinate + delete w; + } + waypoints.clear(); } /*! @@ -1033,13 +1200,20 @@ Following lists the possible feature weights: - \list - \li RouteQuery.NeutralFeatureWeight - The presence or absence of the feature will not affect the planning of the route - \li RouteQuery.PreferFeatureWeight - Routes which contain the feature will be preferred over those that do not - \li RouteQuery.RequireFeatureWeight - Only routes which contain the feature will be considered, otherwise no route will be returned - \li RouteQuery.AvoidFeatureWeight - Routes which do not contain the feature will be preferred over those that do - \li RouteQuery.DisallowFeatureWeight - Only routes which do not contain the feature will be considered, otherwise no route will be returned - \endlist + \value RouteQuery.NeutralFeatureWeight + The presence or absence of the feature will not affect the planning of the route + + \value RouteQuery.PreferFeatureWeight + Routes which contain the feature will be preferred over those that do not + + \value RouteQuery.RequireFeatureWeight + Only routes which contain the feature will be considered, otherwise no route will be returned + + \value RouteQuery.AvoidFeatureWeight + Routes which do not contain the feature will be preferred over those that do + + \value RouteQuery.DisallowFeatureWeight + Only routes which do not contain the feature will be considered, otherwise no route will be returned \sa featureTypes, resetFeatureWeights, featureWeight @@ -1135,12 +1309,13 @@ The level of detail which will be used in the representation of routing segments. - \list - \li RouteQuery.NoSegmentData - No segment data should be included with the route - \li RouteQuery.BasicSegmentData - Basic segment data will be included with the route - \endlist + \value RouteQuery.NoSegmentData + No segment data should be included with the route + + \value RouteQuery.BasicSegmentData + Basic segment data will be included with the route - The default value is RouteQuery.BasicSegmentData + The default value is \c {RouteQuery.BasicSegmentData}. */ void QDeclarativeGeoRouteQuery::setSegmentDetail(SegmentDetail segmentDetail) @@ -1164,12 +1339,13 @@ The level of detail which will be used in the representation of routing maneuvers. - \list - \li RouteQuery.NoManeuvers - No maneuvers should be included with the route - \li RouteQuery.BasicManeuvers - Basic maneuvers will be included with the route - \endlist + \value RouteQuery.NoManeuvers + No maneuvers should be included with the route + + \value RouteQuery.BasicManeuvers + Basic maneuvers will be included with the route - The default value is RouteQuery.BasicManeuvers + The default value is \c {RouteQuery.BasicManeuvers}. */ void QDeclarativeGeoRouteQuery::setManeuverDetail(ManeuverDetail maneuverDetail) @@ -1194,15 +1370,22 @@ The travel modes which should be considered during the planning of the route. Values can be combined with OR ('|') -operator. - \list - \li RouteQuery.CarTravel - The route will be optimized for someone who is driving a car - \li RouteQuery.PedestrianTravel - The route will be optimized for someone who is walking - \li RouteQuery.BicycleTravel - The route will be optimized for someone who is riding a bicycle - \li RouteQuery.PublicTransitTravel - The route will be optimized for someone who is making use of public transit - \li RouteQuery.TruckTravel - The route will be optimized for someone who is driving a truck - \endlist + \value RouteQuery.CarTravel + The route will be optimized for someone who is driving a car - The default value is RouteQuery.CarTravel + \value RouteQuery.PedestrianTravel + The route will be optimized for someone who is walking + + \value RouteQuery.BicycleTravel + The route will be optimized for someone who is riding a bicycle + + \value RouteQuery.PublicTransit + Travel The route will be optimized for someone who is making use of public transit + + \value RouteQuery.TruckTravel + The route will be optimized for someone who is driving a truck + + The default value is \c {RouteQuery.CarTravel}. */ QDeclarativeGeoRouteQuery::TravelModes QDeclarativeGeoRouteQuery::travelModes() const @@ -1230,14 +1413,20 @@ The route optimizations which should be considered during the planning of the route. Values can be combined with OR ('|') -operator. - \list - \li RouteQuery.ShortestRoute - Minimize the length of the journey - \li RouteQuery.FastestRoute - Minimize the traveling time for the journey - \li RouteQuery.MostEconomicRoute - Minimize the cost of the journey - \li RouteQuery.MostScenicRoute - Maximize the scenic potential of the journey - \endlist - The default value is RouteQuery.FastestRoute + \value RouteQuery.ShortestRoute + Minimize the length of the journey + + \value RouteQuery.FastestRoute + Minimize the traveling time for the journey + + \value RouteQuery.MostEconomicRoute + Minimize the cost of the journey + + \value RouteQuery.MostScenicRoute + Maximize the scenic potential of the journey + + The default value is \c {RouteQuery.FastestRoute}. */ QDeclarativeGeoRouteQuery::RouteOptimizations QDeclarativeGeoRouteQuery::routeOptimizations() const @@ -1284,11 +1473,42 @@ /*! \internal */ -QGeoRouteRequest QDeclarativeGeoRouteQuery::routeRequest() const +QGeoRouteRequest QDeclarativeGeoRouteQuery::routeRequest() { + if (m_extraParametersChanged) { + m_extraParametersChanged = false; + // Update extra params into request + const QList params = quickChildren(); + QVariantMap extraParameters; + for (const QDeclarativeGeoMapParameter *p: params) + extraParameters[p->type()] = p->toVariantMap(); + request_.setExtraParameters(extraParameters); + } + if (m_waypointsChanged) { + m_waypointsChanged = false; + // Update waypoints and metadata into request + request_.setWaypoints(waypointCoordinates(m_waypoints)); + request_.setWaypointsMetadata(waypointMetadata(m_waypoints)); + } return request_; } + +/*! + \qmlproperty VariantMap RouteQuery::extraParameters + \readonly + + The route query extra parameters. This property is read only. If the query is + defined by the user, these can be set by using MapParameters. + If the route query comes from the engine via signals, the query is intended to be read-only. + + \since 5.11 +*/ +QVariantMap QDeclarativeGeoRouteQuery::extraParameters() +{ + return routeRequest().extraParameters(); +} + void QDeclarativeGeoRouteQuery::excludedAreaCoordinateChanged() { if (!m_excludedAreaCoordinateChanged) { @@ -1297,10 +1517,397 @@ } } +void QDeclarativeGeoRouteQuery::extraParameterChanged() +{ + m_extraParametersChanged = true; + if (complete_) { + emit extraParametersChanged(); + emit queryDetailsChanged(); + } +} + +void QDeclarativeGeoRouteQuery::waypointChanged() +{ + m_waypointsChanged = true; + if (complete_) { + emit waypointsChanged(); + emit queryDetailsChanged(); + } +} + +void QDeclarativeGeoRouteQuery::append(QQmlListProperty *p, QObject *v) +{ + QDeclarativeGeoRouteQuery *query = static_cast(p->object); + query->m_children.append(v); + + QDeclarativeGeoMapParameter *param = qobject_cast(v); + if (param) { + query->m_extraParametersChanged = true; + query->connect(param, &QGeoMapParameter::propertyUpdated, + query, &QDeclarativeGeoRouteQuery::extraParameterChanged); + if (query->complete_) { + emit query->extraParametersChanged(); + emit query->queryDetailsChanged(); + } + } +} + +int QDeclarativeGeoRouteQuery::count(QQmlListProperty *p) +{ + return static_cast(p->object)->m_children.count(); +} + +QObject *QDeclarativeGeoRouteQuery::at(QQmlListProperty *p, int idx) +{ + return static_cast(p->object)->m_children.at(idx); +} + +void QDeclarativeGeoRouteQuery::clear(QQmlListProperty *p) +{ + QDeclarativeGeoRouteQuery *query = static_cast(p->object); + for (auto kid : qAsConst(query->m_children)) { + auto val = qobject_cast(kid); + if (val) { + val->disconnect(val, nullptr, query, nullptr); + query->m_extraParametersChanged = true; + } + } + query->m_children.clear(); + if (query->m_extraParametersChanged && query->complete_) { + emit query->extraParametersChanged(); + emit query->queryDetailsChanged(); + } +} + +QQmlListProperty QDeclarativeGeoRouteQuery::declarativeChildren() +{ + return QQmlListProperty(this, nullptr, + &QDeclarativeGeoRouteQuery::append, + &QDeclarativeGeoRouteQuery::count, + &QDeclarativeGeoRouteQuery::at, + &QDeclarativeGeoRouteQuery::clear); +} + void QDeclarativeGeoRouteQuery::doCoordinateChanged() { m_excludedAreaCoordinateChanged = false; - emit queryDetailsChanged(); + if (complete_) + emit queryDetailsChanged(); +} + +/*! + \qmltype Waypoint + \instantiates QDeclarativeGeoWaypoint + \inqmlmodule QtLocation + \ingroup qml-QtLocation5-routing + \since QtLocation 5.11 + + \brief The Waypoint type provides a mean to specify a waypoint in a \l RouteQuery + in a more detailed way than by using a simple \l coordinate. + + A Waypoint is a type that allows to specify properties of a waypoint in a \l RouteQuery, + such as the waypoint coordinate, or the angle of approach to the waypoint. + + Additional information that are backend-specific can be specified by nesting \l MapParameter + elements. + + Changing properties of the waypoint or of its nested MapParameteters will cause the containing + \l RouteQuery to emit the queryDetailsChanged signal. + + \section2 Example Usage + + \code + Plugin { + id: aPlugin + name: "osm" + } + + Waypoint { + id: waypointStart + coordinate: ... + bearing: ... + } + Waypoint { + id: waypointFinish + coordinate: ... + bearing: ... + } + + RouteQuery { + id: aQuery + Component.onCompleted: { + travelModes = RouteQuery.CarTravel + addWaypoint(waypointStart) + var aWaypoint = Qt.createQmlObject ('import QtLocation 5.11; Waypoint { ... }', ...) + addWaypoint(aWaypoint) + addWaypoint(waypointFinish) + } + } + + RouteModel { + id: routeModel + plugin: aPlugin + query: aQuery + autoUpdate: true + } + \endcode + + \sa RouteQuery +*/ + + +/* + * + At the time of adding this class (2017.11), 3 routing services are natively supported in Qt: Esri, Here and OSRM. + Waypoint documentation for each of these: + Esri: http://resources.arcgis.com/en/help/arcgis-rest-api/index.html#//02r300000036000000 , called "stop" + HERE: https://developer.here.com/documentation/routing/topics/resource-param-type-waypoint.html + OSRM: https://github.com/Project-OSRM/osrm-backend/blob/master/docs/http.md , under Request Options + * + */ + + +static QGeoCoordinate convertWaypointToCoordinate(const QDeclarativeGeoWaypoint *value) +{ + return value->coordinate(); +} + +struct WaypointVariantConversions +{ + WaypointVariantConversions() + { + QMetaType::registerConverter(convertWaypointToCoordinate); + } +}; + +Q_GLOBAL_STATIC(WaypointVariantConversions, initWaypointConversions) + + +QDeclarativeGeoWaypoint::QDeclarativeGeoWaypoint(QObject *parent) : QGeoCoordinateObject(parent) +{ + initWaypointConversions(); + connect(this, &QGeoCoordinateObject::coordinateChanged, + this, &QDeclarativeGeoWaypoint::waypointDetailsChanged); +} + +QDeclarativeGeoWaypoint::~QDeclarativeGeoWaypoint() +{ + +} + +bool QDeclarativeGeoWaypoint::operator==(const QDeclarativeGeoWaypoint &other) const +{ + const QList params = quickChildren(); + const QList otherParams = other.quickChildren(); + + return coordinate() == other.coordinate() && + compareFloats(m_bearing, other.bearing()) && + compareParameterList(params, otherParams); +} + +/*! + \qmlproperty coordinate Waypoint::coordinate + + The waypoint's coordinate. The default value is undefined. +*/ + + +/*! + \qmlproperty real Waypoint::latitude + + The latitude of the waypoint's coordinate. The default value is NaN. + Changing this property will affect the \l Waypoint::coordinate property as well. +*/ +qreal QDeclarativeGeoWaypoint::latitude() const +{ + return m_coordinate.latitude(); +} + +void QDeclarativeGeoWaypoint::setLatitude(qreal latitude) +{ + if (compareFloats(latitude, m_coordinate.latitude())) + return; + + m_coordinate.setLatitude(latitude); + if (m_complete) { + emit coordinateChanged(); + emit waypointDetailsChanged(); + } +} + +/*! + \qmlproperty real Waypoint::longitude + + The longitude of the waypoint's coordinate. The default value is NaN. + Changing this property will affect the \l Waypoint::coordinate property as well. +*/ +qreal QDeclarativeGeoWaypoint::longitude() const +{ + return m_coordinate.longitude(); +} + +void QDeclarativeGeoWaypoint::setLongitude(qreal longitude) +{ + if (compareFloats(longitude, m_coordinate.longitude())) + return; + + m_coordinate.setLongitude(longitude); + if (m_complete) { + emit coordinateChanged(); + emit waypointDetailsChanged(); + } +} + +/*! + \qmlproperty real Waypoint::altitude + + The altitude of the waypoint's coordinate. The default value is NaN. + Changing this property will affect the \l Waypoint::coordinate property as well. +*/ +qreal QDeclarativeGeoWaypoint::altitude() const +{ + return m_coordinate.altitude(); +} + +void QDeclarativeGeoWaypoint::setAltitude(qreal altitude) +{ + if (compareFloats(altitude, m_coordinate.altitude())) + return; + + m_coordinate.setAltitude(altitude); + if (m_complete) { + emit coordinateChanged(); + emit waypointDetailsChanged(); + } +} + +bool QDeclarativeGeoWaypoint::isValid() const +{ + return m_coordinate.isValid(); +} + +/*! + \qmlproperty real Waypoint::bearing + + The bearing specifying the angle of approach of the waypoint, that is the bearing with which the waypoint is to be approached. + This information may be used by the provider to filter the road segment the waypoint will be placed on, and, + depending on the provider and the \l {QGeoRouteRequest::TravelMode} {travel mode} used, to restrict the maneuvers + allowed at the waypoint, potentially making the provider calculating and returning a different route. + + If set to NaN, this value will not be considered. + + The default value is NaN. +*/ +qreal QDeclarativeGeoWaypoint::bearing() const +{ + return m_bearing; +} + +void QDeclarativeGeoWaypoint::setBearing(qreal bearing) +{ + if (compareFloats(bearing, m_bearing)) + return; + + m_bearing = bearing; + + // Bearing is actually packed into QGeoRouteRequest::waypointMetadata() together with the extra parameters + m_metadataChanged = true; + if (m_complete) { + emit bearingChanged(); + emit waypointDetailsChanged(); + } +} + +/*! + \qmlproperty VariantMap Waypoint::metadata + \readonly + + The waypoint metadata. This property is read only. If the waypoint is + defined by the user, these can be set by using MapParameters. + If the waypoint comes from the engine via signals, or as part of a read-only route query, + the waypoint is intended to be read-only. +*/ +QVariantMap QDeclarativeGeoWaypoint::metadata() +{ + if (m_metadataChanged) { + m_metadataChanged = false; + m_metadata.clear(); + // Update metadata + const QList params = quickChildren(); + QVariantMap extraParameters; + for (const QDeclarativeGeoMapParameter *p: params) + extraParameters[p->type()] = p->toVariantMap(); + m_metadata[QStringLiteral("extra")] = extraParameters; + m_metadata[QStringLiteral("bearing")] = m_bearing; + } + return m_metadata; +} + +// Used only by QDeclarativeGeoRouteRequest +void QDeclarativeGeoWaypoint::setMetadata(const QVariantMap &meta) +{ + m_metadata = meta; + if (m_metadata.contains(QStringLiteral("bearing")) && m_metadata.value(QStringLiteral("bearing")).canConvert()) + m_bearing = m_metadata.value(QStringLiteral("bearing")).toDouble(); + m_metadataChanged = false; +} + +void QDeclarativeGeoWaypoint::extraParameterChanged() +{ + m_metadataChanged = true; + if (m_complete) { + emit extraParametersChanged(); + emit waypointDetailsChanged(); + } +} + +void QDeclarativeGeoWaypoint::append(QQmlListProperty *p, QObject *v) +{ + QDeclarativeGeoWaypoint *waypoint = static_cast(p->object); + waypoint->m_children.append(v); + + QDeclarativeGeoMapParameter *param = qobject_cast(v); + if (param) { + waypoint->connect(param, &QGeoMapParameter::propertyUpdated, + waypoint, &QDeclarativeGeoWaypoint::extraParameterChanged); + waypoint->extraParameterChanged(); + } +} + +int QDeclarativeGeoWaypoint::count(QQmlListProperty *p) +{ + return static_cast(p->object)->m_children.count(); +} + +QObject *QDeclarativeGeoWaypoint::at(QQmlListProperty *p, int idx) +{ + return static_cast(p->object)->m_children.at(idx); +} + +void QDeclarativeGeoWaypoint::clear(QQmlListProperty *p) +{ + QDeclarativeGeoWaypoint *waypoint = static_cast(p->object); + for (auto kid : qAsConst(waypoint->m_children)) { + auto val = qobject_cast(kid); + if (val) { + val->disconnect(waypoint); + waypoint->m_metadataChanged = true; + } + } + waypoint->m_children.clear(); + if (waypoint->m_metadataChanged && waypoint->m_complete) { + emit waypoint->extraParametersChanged(); + emit waypoint->waypointDetailsChanged(); + } +} + +QQmlListProperty QDeclarativeGeoWaypoint::declarativeChildren() +{ + return QQmlListProperty(this, nullptr, + &QDeclarativeGeoWaypoint::append, + &QDeclarativeGeoWaypoint::count, + &QDeclarativeGeoWaypoint::at, + &QDeclarativeGeoWaypoint::clear); } QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeoroutemodel_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeoroutemodel_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeoroutemodel_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeoroutemodel_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -53,6 +53,7 @@ #include #include +#include #include #include @@ -185,6 +186,93 @@ RouteError error_; }; + + +// purpose of this class is to be convertible to a QGeoCoordinate (through QGeoWaypoint), but also +// to behave like it, so that in QML source compatibility would be preserved. This is, however, not possible to achieve at the present. +class Q_LOCATION_PRIVATE_EXPORT QDeclarativeGeoWaypoint : public QGeoCoordinateObject, public QQmlParserStatus +{ + Q_OBJECT + + Q_PROPERTY(double latitude READ latitude WRITE setLatitude STORED false) + Q_PROPERTY(double longitude READ longitude WRITE setLongitude STORED false) + Q_PROPERTY(double altitude READ altitude WRITE setAltitude STORED false) + Q_PROPERTY(bool isValid READ isValid STORED false) + + Q_PROPERTY(qreal bearing READ bearing WRITE setBearing NOTIFY bearingChanged) + Q_PROPERTY(QVariantMap metadata READ metadata) + Q_PROPERTY(QQmlListProperty quickChildren READ declarativeChildren DESIGNABLE false) + Q_CLASSINFO("DefaultProperty", "quickChildren") + Q_INTERFACES(QQmlParserStatus) + +public: + QDeclarativeGeoWaypoint(QObject *parent = 0); + virtual ~QDeclarativeGeoWaypoint(); + + bool operator==(const QDeclarativeGeoWaypoint &other) const; + + qreal latitude() const; + void setLatitude(qreal latitude); + + qreal longitude() const; + void setLongitude(qreal longitude); + + qreal altitude() const; + void setAltitude(qreal altitude); + + bool isValid() const; + + qreal bearing() const; + void setBearing(qreal bearing); + + template + QList quickChildren() const + { + QList res; + for (auto kid : qAsConst(m_children)) { + auto val = qobject_cast(kid); + if (val) + res.push_back(val); + } + return res; + } + + QVariantMap metadata(); + void setMetadata(const QVariantMap &meta); + +Q_SIGNALS: + void completed(); + void waypointDetailsChanged(); + void bearingChanged(); + void extraParametersChanged(); + +private Q_SLOTS: + void extraParameterChanged(); + +protected: + // From QQmlParserStatus + void classBegin() override {} + void componentComplete() override { m_complete = true; emit completed(); } + + // For quickChildren + static void append(QQmlListProperty *p, QObject *v); + static int count(QQmlListProperty *p); + static QObject *at(QQmlListProperty *p, int idx); + static void clear(QQmlListProperty *p); + QQmlListProperty declarativeChildren(); + QList m_children; + + // other data members + bool m_metadataChanged = false; + bool m_complete = false; + + qreal m_bearing = Q_QNAN; + QVariantMap m_metadata; +}; + + + + class Q_LOCATION_PRIVATE_EXPORT QDeclarativeGeoRouteQuery : public QObject, public QQmlParserStatus { Q_OBJECT @@ -204,21 +292,26 @@ Q_PROPERTY(RouteOptimizations routeOptimizations READ routeOptimizations WRITE setRouteOptimizations NOTIFY routeOptimizationsChanged) Q_PROPERTY(SegmentDetail segmentDetail READ segmentDetail WRITE setSegmentDetail NOTIFY segmentDetailChanged) Q_PROPERTY(ManeuverDetail maneuverDetail READ maneuverDetail WRITE setManeuverDetail NOTIFY maneuverDetailChanged) - Q_PROPERTY(QJSValue waypoints READ waypoints WRITE setWaypoints NOTIFY waypointsChanged) + Q_PROPERTY(QVariantList waypoints READ waypoints WRITE setWaypoints NOTIFY waypointsChanged) Q_PROPERTY(QJSValue excludedAreas READ excludedAreas WRITE setExcludedAreas NOTIFY excludedAreasChanged) Q_PROPERTY(QList featureTypes READ featureTypes NOTIFY featureTypesChanged) + Q_PROPERTY(QVariantMap extraParameters READ extraParameters REVISION 11) + Q_PROPERTY(QQmlListProperty quickChildren READ declarativeChildren DESIGNABLE false) + Q_CLASSINFO("DefaultProperty", "quickChildren") Q_INTERFACES(QQmlParserStatus) public: explicit QDeclarativeGeoRouteQuery(QObject *parent = 0); + QDeclarativeGeoRouteQuery(const QGeoRouteRequest &request, QObject *parent = 0); // init from request. For instances intended to be read only ~QDeclarativeGeoRouteQuery(); // From QQmlParserStatus void classBegin() {} void componentComplete(); - QGeoRouteRequest routeRequest() const; + QGeoRouteRequest routeRequest(); + QVariantMap extraParameters(); enum TravelMode { CarTravel = QGeoRouteRequest::CarTravel, @@ -238,7 +331,8 @@ TunnelFeature = QGeoRouteRequest::TunnelFeature, DirtRoadFeature = QGeoRouteRequest::DirtRoadFeature, ParksFeature = QGeoRouteRequest::ParksFeature, - MotorPoolLaneFeature = QGeoRouteRequest::MotorPoolLaneFeature + MotorPoolLaneFeature = QGeoRouteRequest::MotorPoolLaneFeature, + TrafficFeature = QGeoRouteRequest::TrafficFeature }; Q_DECLARE_FLAGS(FeatureTypes, FeatureType) @@ -278,16 +372,18 @@ QList featureTypes(); - QJSValue waypoints(); - void setWaypoints(const QJSValue &value); + QVariantList waypoints(); + Q_INVOKABLE QVariantList waypointObjects(); + void setWaypoints(const QVariantList &value); // READ functions for list properties QJSValue excludedAreas() const; void setExcludedAreas(const QJSValue &value); - Q_INVOKABLE void addWaypoint(const QGeoCoordinate &waypoint); - Q_INVOKABLE void removeWaypoint(const QGeoCoordinate &waypoint); + Q_INVOKABLE void addWaypoint(const QVariant &w); + Q_INVOKABLE void removeWaypoint(const QVariant &waypoint); Q_INVOKABLE void clearWaypoints(); + void flushWaypoints(QList &waypoints); Q_INVOKABLE void addExcludedArea(const QGeoRectangle &area); Q_INVOKABLE void removeExcludedArea(const QGeoRectangle &area); @@ -313,6 +409,18 @@ void setRouteOptimizations(RouteOptimizations optimization); RouteOptimizations routeOptimizations() const; + template + QList quickChildren() const + { + QList res; + for (auto kid : qAsConst(m_children)) { + auto val = qobject_cast(kid); + if (val) + res.push_back(val); + } + return res; + } + Q_SIGNALS: void numberAlternativeRoutesChanged(); void travelModesChanged(); @@ -326,9 +434,21 @@ void segmentDetailChanged(); void queryDetailsChanged(); + Q_REVISION(11) void extraParametersChanged(); private Q_SLOTS: void excludedAreaCoordinateChanged(); + void extraParameterChanged(); + void waypointChanged(); + +protected: + static void append(QQmlListProperty *p, QObject *v); + static int count(QQmlListProperty *p); + static QObject *at(QQmlListProperty *p, int idx); + static void clear(QQmlListProperty *p); + + QQmlListProperty declarativeChildren(); + QList m_children; private: Q_INVOKABLE void doCoordinateChanged(); @@ -336,9 +456,13 @@ QGeoRouteRequest request_; bool complete_; bool m_excludedAreaCoordinateChanged; - + bool m_extraParametersChanged = false; + bool m_waypointsChanged = false; + QList m_waypoints; }; QT_END_NAMESPACE +Q_DECLARE_METATYPE(QDeclarativeGeoWaypoint*) + #endif diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeoroute_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeoroute_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeoroute_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeoroute_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -56,6 +56,7 @@ #include QT_BEGIN_NAMESPACE +class QDeclarativeGeoRouteQuery; class Q_LOCATION_PRIVATE_EXPORT QDeclarativeGeoRoute : public QObject { @@ -66,6 +67,7 @@ Q_PROPERTY(qreal distance READ distance CONSTANT) Q_PROPERTY(QJSValue path READ path WRITE setPath NOTIFY pathChanged) Q_PROPERTY(QQmlListProperty segments READ segments CONSTANT) + Q_PROPERTY(QDeclarativeGeoRouteQuery *routeQuery READ routeQuery REVISION 11) public: explicit QDeclarativeGeoRoute(QObject *parent = 0); @@ -84,6 +86,10 @@ void appendSegment(QDeclarativeGeoRouteSegment *segment); void clearSegments(); + int segmentsCount() const; + const QGeoRoute &route() const; + QDeclarativeGeoRouteQuery *routeQuery(); + Q_SIGNALS: void pathChanged(); @@ -93,11 +99,13 @@ static QDeclarativeGeoRouteSegment *segments_at(QQmlListProperty *prop, int index); static void segments_clear(QQmlListProperty *prop); - void init(); + void initSegments(unsigned int lastIndex = ~0U); QList routePath(); QGeoRoute route_; + QDeclarativeGeoRouteQuery *routeQuery_ = nullptr; QList segments_; + bool segmentsDirty_; friend class QDeclarativeRouteMapItem; }; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeoroutesegment.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeoroutesegment.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeoroutesegment.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeoroutesegment.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -46,7 +46,7 @@ \instantiates QDeclarativeGeoRouteSegment \inqmlmodule QtLocation \ingroup qml-QtLocation5-routing - \since Qt Location 5.5 + \since QtLocation 5.5 \brief The RouteSegment type represents a segment of a Route. diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeoserviceprovider.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeoserviceprovider.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeoserviceprovider.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeoserviceprovider.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -45,7 +45,7 @@ \instantiates QDeclarativeGeoServiceProvider \inqmlmodule QtLocation \ingroup qml-QtLocation5-common - \since Qt Location 5.5 + \since QtLocation 5.5 \brief The Plugin type describes a Location based services plugin. @@ -57,8 +57,8 @@ Plugins recognized by the system have a \l name property, a simple string normally indicating the name of the service that the Plugin retrieves data from. They also have a variety of features, which can be test for using the - \l {supportsRouting()}, \l {supportsGeocoding()}, \l {supportsMapping()} and - \l {supportsPlaces()} methods. + \l {supportsRouting()}, \l {supportsGeocoding()}, \l {supportsMapping()}, + \l {supportsPlaces()} and \l {supportsNavigation()} methods. When a Plugin object is created, it is "detached" and not associated with any actual service plugin. Once it has received information via setting @@ -226,8 +226,8 @@ \qmlmethod bool Plugin::supportsGeocoding(GeocodingFeatures features) This method returns a boolean indicating whether the specified set of \a features are supported - by the geo service provider plugin. True is returned if all specified \a features are - supported; otherwise false is returned. + by the geo service provider plugin. \c True is returned if all specified \a features are + supported; otherwise \c false is returned. The \a features parameter can be any flag combination of: \table @@ -401,11 +401,11 @@ \li Matches a geo service provider that provides any places features. \endtable */ -bool QDeclarativeGeoServiceProvider::supportsPlaces(const PlacesFeatures &features) const +bool QDeclarativeGeoServiceProvider::supportsPlaces(const PlacesFeatures &feature) const { QGeoServiceProvider *sp = sharedGeoServiceProvider(); QGeoServiceProvider::PlacesFeatures f = - static_cast(int(features)); + static_cast(int(feature)); if (f == QGeoServiceProvider::AnyPlacesFeatures) return (sp && (sp->placesFeatures() != QGeoServiceProvider::NoPlacesFeatures)); else @@ -413,6 +413,43 @@ } /*! + \qmlmethod bool Plugin::supportsNavigation(NavigationFeatures features) + + This method returns a boolean indicating whether the specified set of \a features are supported + by the geo service provider plugin. True is returned if all specified \a features are + supported; otherwise false is returned. + + The \a features parameter can be any flag combination of: + \table + \header + \li Feature + \li Description + \row + \li Plugin.NoNavigationFeatures + \li No navigation features are supported. + \row + \li Plugin.OnlineNavigationFeature + \li Online navigation is supported. + \row + \li Plugin.OfflineNavigationFeature + \li Offline navigation is supported. + \row + \li Plugin.AnyNavigationFeatures + \li Matches a geo service provider that provides any navigation features. + \endtable +*/ +bool QDeclarativeGeoServiceProvider::supportsNavigation(const QDeclarativeGeoServiceProvider::NavigationFeature &feature) const +{ + QGeoServiceProvider *sp = sharedGeoServiceProvider(); + QGeoServiceProvider::NavigationFeatures f = + static_cast(int(feature)); + if (f == QGeoServiceProvider::AnyNavigationFeatures) + return (sp && (sp->navigationFeatures() != QGeoServiceProvider::NoNavigationFeatures)); + else + return (sp && (sp->navigationFeatures() & f) == f); +} + +/*! \qmlproperty enumeration Plugin::required This property contains the set of features that will be required by the @@ -796,7 +833,7 @@ \instantiates QDeclarativeGeoServiceProviderParameter \inqmlmodule QtLocation \ingroup qml-QtLocation5-common - \since Qt Location 5.5 + \since QtLocation 5.5 \brief The PluginParameter type describes a parameter to a \l Plugin. diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeoserviceprovider_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeoserviceprovider_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativegeoserviceprovider_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativegeoserviceprovider_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -113,7 +113,7 @@ Q_INTERFACES(QQmlParserStatus) public: - explicit QDeclarativeGeoServiceProvider(QObject *parent = Q_NULLPTR); + explicit QDeclarativeGeoServiceProvider(QObject *parent = nullptr); ~QDeclarativeGeoServiceProvider(); enum RoutingFeature { @@ -160,6 +160,13 @@ AnyPlacesFeatures = QGeoServiceProvider::AnyPlacesFeatures }; + enum NavigationFeature { + NoNavigationFeatures = QGeoServiceProvider::NoNavigationFeatures, + OnlineNavigationFeature = QGeoServiceProvider::OnlineNavigationFeature, + OfflineNavigationFeature = QGeoServiceProvider::OfflineNavigationFeature, + AnyNavigationFeatures = QGeoServiceProvider::AnyNavigationFeatures + }; + Q_DECLARE_FLAGS(RoutingFeatures, RoutingFeature) Q_FLAGS(RoutingFeatures) @@ -172,6 +179,9 @@ Q_DECLARE_FLAGS(PlacesFeatures, PlacesFeature) Q_FLAGS(PlacesFeatures) + Q_DECLARE_FLAGS(NavigationFeatures, NavigationFeature) + Q_FLAGS(NavigationFeatures) + // From QQmlParserStatus virtual void classBegin() {} virtual void componentComplete(); @@ -196,6 +206,7 @@ Q_INVOKABLE bool supportsGeocoding(const GeocodingFeatures &feature = AnyGeocodingFeatures) const; Q_INVOKABLE bool supportsMapping(const MappingFeatures &feature = AnyMappingFeatures) const; Q_INVOKABLE bool supportsPlaces(const PlacesFeatures &feature = AnyPlacesFeatures) const; + Q_REVISION(11) Q_INVOKABLE bool supportsNavigation(const NavigationFeature &feature = AnyNavigationFeatures) const; QStringList locales() const; void setLocales(const QStringList &locales); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativepolygonmapitem.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativepolygonmapitem.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativepolygonmapitem.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativepolygonmapitem.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -63,7 +63,7 @@ \instantiates QDeclarativePolygonMapItem \inqmlmodule QtLocation \ingroup qml-QtLocation5-maps - \since Qt Location 5.5 + \since QtLocation 5.5 \brief The MapPolygon type displays a polygon on a Map @@ -147,14 +147,14 @@ { if (!sourceDirty_) return; - + const QGeoProjectionWebMercator &p = static_cast(map.geoProjection()); srcPath_ = QPainterPath(); // build the actual path // The approach is the same as described in QGeoMapPolylineGeometry::updateSourcePoints srcOrigin_ = geoLeftBound_; double unwrapBelowX = 0; - QDoubleVector2D leftBoundWrapped = map.geoProjection().wrapMapProjection(map.geoProjection().geoToMapProjection(geoLeftBound_)); + QDoubleVector2D leftBoundWrapped = p.wrapMapProjection(p.geoToMapProjection(geoLeftBound_)); if (preserveGeometry_) unwrapBelowX = leftBoundWrapped.x(); @@ -164,7 +164,7 @@ // 1) for (int i = 0; i < path.size(); ++i) { const QDoubleVector2D &coord = path.at(i); - QDoubleVector2D wrappedProjection = map.geoProjection().wrapMapProjection(coord); + QDoubleVector2D wrappedProjection = p.wrapMapProjection(coord); // We can get NaN if the map isn't set up correctly, or the projection // is faulty -- probably best thing to do is abort @@ -187,7 +187,7 @@ // 2) QList > clippedPaths; - const QList &visibleRegion = map.geoProjection().projectableRegion(); + const QList &visibleRegion = p.projectableGeometry(); if (visibleRegion.size()) { c2t::clip2tri clipper; clipper.addSubjectPath(QClipperUtils::qListToPath(wrappedPath), true); @@ -210,17 +210,17 @@ // in turn will make the geometry wrap around. lb.setX(qMax(wrappedLeftBound.x(), lb.x())); leftBoundWrapped = lb; - srcOrigin_ = map.geoProjection().mapProjectionToGeo(map.geoProjection().unwrapMapProjection(lb)); + srcOrigin_ = p.mapProjectionToGeo(p.unwrapMapProjection(lb)); } else { clippedPaths.append(wrappedPath); } // 3) - QDoubleVector2D origin = map.geoProjection().wrappedMapProjectionToItemPosition(leftBoundWrapped); + QDoubleVector2D origin = p.wrappedMapProjectionToItemPosition(leftBoundWrapped); for (const QList &path: clippedPaths) { QDoubleVector2D lastAddedPoint; for (int i = 0; i < path.size(); ++i) { - QDoubleVector2D point = map.geoProjection().wrappedMapProjectionToItemPosition(path.at(i)); + QDoubleVector2D point = p.wrappedMapProjectionToItemPosition(path.at(i)); point = point - origin; // (0,0) if point == geoLeftBound_ if (i == 0) { @@ -246,7 +246,7 @@ /*! \internal */ -void QGeoMapPolygonGeometry::updateScreenPoints(const QGeoMap &map) +void QGeoMapPolygonGeometry::updateScreenPoints(const QGeoMap &map, qreal strokeWidth) { if (!screenDirty_) return; @@ -310,6 +310,8 @@ } screenBounds_ = ppi.boundingRect(); + if (strokeWidth != 0.0) + this->translate(QPointF(strokeWidth, strokeWidth)); } QDeclarativePolygonMapItem::QDeclarativePolygonMapItem(QQuickItem *parent) @@ -380,20 +382,7 @@ */ QJSValue QDeclarativePolygonMapItem::path() const { - QQmlContext *context = QQmlEngine::contextForObject(this); - QQmlEngine *engine = context->engine(); - QV4::ExecutionEngine *v4 = QQmlEnginePrivate::getV4Engine(engine); - - QV4::Scope scope(v4); - QV4::Scoped pathArray(scope, v4->newArrayObject(geopath_.path().length())); - for (int i = 0; i < geopath_.path().length(); ++i) { - const QGeoCoordinate &c = geopath_.coordinateAt(i); - - QV4::ScopedValue cv(scope, v4->fromVariant(QVariant::fromValue(c))); - pathArray->putIndexed(i, cv); - } - - return QJSValue(v4, pathArray.asReturnedValue()); + return fromList(this, geopath_.path()); } void QDeclarativePolygonMapItem::setPath(const QJSValue &value) @@ -401,19 +390,7 @@ if (!value.isArray()) return; - QList pathList; - quint32 length = value.property(QStringLiteral("length")).toUInt(); - for (quint32 i = 0; i < length; ++i) { - bool ok; - QGeoCoordinate c = parseCoordinate(value.property(i), &ok); - - if (!ok || !c.isValid()) { - qmlWarning(this) << "Unsupported path type"; - return; - } - - pathList.append(c); - } + QList pathList = toList(this, value); // Equivalent to QDeclarativePolylineMapItem::setPathFromGeoList if (geopath_.path() == pathList) @@ -525,14 +502,22 @@ */ void QDeclarativePolygonMapItem::updatePolish() { - if (!map() || geopath_.path().length() == 0) + if (!map() || map()->geoProjection().projectionType() != QGeoProjection::ProjectionWebMercator) + return; + if (geopath_.path().length() == 0) { // Possibly cleared + geometry_.clear(); + borderGeometry_.clear(); + setWidth(0); + setHeight(0); return; + } + const QGeoProjectionWebMercator &p = static_cast(map()->geoProjection()); QScopedValueRollback rollback(updatingGeometry_); updatingGeometry_ = true; geometry_.updateSourcePoints(*map(), geopathProjected_); - geometry_.updateScreenPoints(*map()); + geometry_.updateScreenPoints(*map(), border_.width()); QList geoms; geoms << &geometry_; @@ -552,7 +537,7 @@ QDoubleVector2D borderLeftBoundWrapped; QList > clippedPaths = borderGeometry_.clipPath(*map(), closedPath, borderLeftBoundWrapped); if (clippedPaths.size()) { - borderLeftBoundWrapped = map()->geoProjection().geoToWrappedMapProjection(geometryOrigin); + borderLeftBoundWrapped = p.geoToWrappedMapProjection(geometryOrigin); borderGeometry_.pathToScreen(*map(), clippedPaths, borderLeftBoundWrapped); borderGeometry_.updateScreenPoints(*map(), border_.width()); @@ -563,10 +548,11 @@ } QRectF combined = QGeoMapItemGeometry::translateToCommonOrigin(geoms); - setWidth(combined.width()); - setHeight(combined.height()); + setWidth(combined.width() + 2 * border_.width()); + setHeight(combined.height() + 2 * border_.width()); - setPositionOnMap(geometry_.origin(), -1 * geometry_.sourceBoundingBox().topLeft()); + setPositionOnMap(geometry_.origin(), -1 * geometry_.sourceBoundingBox().topLeft() + + QPointF(border_.width(), border_.width())); } void QDeclarativePolygonMapItem::markSourceDirtyAndUpdate() @@ -596,12 +582,13 @@ */ void QDeclarativePolygonMapItem::regenerateCache() { - if (!map()) + if (!map() || map()->geoProjection().projectionType() != QGeoProjection::ProjectionWebMercator) return; + const QGeoProjectionWebMercator &p = static_cast(map()->geoProjection()); geopathProjected_.clear(); geopathProjected_.reserve(geopath_.path().size()); for (const QGeoCoordinate &c : geopath_.path()) - geopathProjected_ << map()->geoProjection().geoToMapProjection(c); + geopathProjected_ << p.geoToMapProjection(c); } /*! @@ -609,9 +596,10 @@ */ void QDeclarativePolygonMapItem::updateCache() { - if (!map()) + if (!map() || map()->geoProjection().projectionType() != QGeoProjection::ProjectionWebMercator) return; - geopathProjected_ << map()->geoProjection().geoToMapProjection(geopath_.path().last()); + const QGeoProjectionWebMercator &p = static_cast(map()->geoProjection()); + geopathProjected_ << p.geoToMapProjection(geopath_.path().last()); } /*! @@ -666,8 +654,7 @@ MapPolygonNode::MapPolygonNode() : border_(new MapPolylineNode()), - geometry_(QSGGeometry::defaultAttributes_Point2D(), 0), - blocked_(true) + geometry_(QSGGeometry::defaultAttributes_Point2D(), 0) { geometry_.setDrawingMode(QSGGeometry::DrawTriangles); QSGGeometryNode::setMaterial(&fill_material_); @@ -683,14 +670,6 @@ /*! \internal */ -bool MapPolygonNode::isSubtreeBlocked() const -{ - return blocked_; -} - -/*! - \internal -*/ void MapPolygonNode::update(const QColor &fillColor, const QColor &borderColor, const QGeoMapItemGeometry *fillShape, const QGeoMapItemGeometry *borderShape) @@ -702,16 +681,12 @@ * tree. We can't just block the fill without blocking the border too, so * we're a little conservative here (maybe at the expense of rendering * accuracy) */ - if (fillShape->size() == 0) { - if (borderShape->size() == 0) { - blocked_ = true; + if (fillShape->size() == 0 && borderShape->size() == 0) { + setSubtreeBlocked(true); return; - } else { - blocked_ = false; - } - } else { - blocked_ = false; } + setSubtreeBlocked(false); + QSGGeometry *fill = QSGGeometryNode::geometry(); fillShape->allocateAndFill(fill); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativepolygonmapitem_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativepolygonmapitem_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativepolygonmapitem_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativepolygonmapitem_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -60,7 +60,7 @@ class MapPolygonNode; -class QGeoMapPolygonGeometry : public QGeoMapItemGeometry +class Q_LOCATION_PRIVATE_EXPORT QGeoMapPolygonGeometry : public QGeoMapItemGeometry { public: QGeoMapPolygonGeometry(); @@ -70,7 +70,7 @@ void updateSourcePoints(const QGeoMap &map, const QList &path); - void updateScreenPoints(const QGeoMap &map); + void updateScreenPoints(const QGeoMap &map, qreal strokeWidth = 0.0); protected: QPainterPath srcPath_; @@ -89,9 +89,9 @@ explicit QDeclarativePolygonMapItem(QQuickItem *parent = 0); ~QDeclarativePolygonMapItem(); - virtual void setMap(QDeclarativeGeoMap *quickMap, QGeoMap *map) Q_DECL_OVERRIDE; + virtual void setMap(QDeclarativeGeoMap *quickMap, QGeoMap *map) override; //from QuickItem - virtual QSGNode *updateMapItemPaintNode(QSGNode *, UpdatePaintNodeData *) Q_DECL_OVERRIDE; + virtual QSGNode *updateMapItemPaintNode(QSGNode *, UpdatePaintNodeData *) override; Q_INVOKABLE void addCoordinate(const QGeoCoordinate &coordinate); Q_INVOKABLE void removeCoordinate(const QGeoCoordinate &coordinate); @@ -104,22 +104,22 @@ QDeclarativeMapLineProperties *border(); - bool contains(const QPointF &point) const Q_DECL_OVERRIDE; - const QGeoShape &geoShape() const Q_DECL_OVERRIDE; - QGeoMap::ItemType itemType() const Q_DECL_OVERRIDE; + bool contains(const QPointF &point) const override; + const QGeoShape &geoShape() const override; + QGeoMap::ItemType itemType() const override; Q_SIGNALS: void pathChanged(); void colorChanged(const QColor &color); protected: - void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) Q_DECL_OVERRIDE; - void updatePolish() Q_DECL_OVERRIDE; + void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) override; + void updatePolish() override; protected Q_SLOTS: void markSourceDirtyAndUpdate(); void handleBorderUpdated(); - virtual void afterViewportChanged(const QGeoMapViewportChangeEvent &event) Q_DECL_OVERRIDE; + virtual void afterViewportChanged(const QGeoMapViewportChangeEvent &event) override; private: void regenerateCache(); @@ -137,24 +137,20 @@ ////////////////////////////////////////////////////////////////////// -class MapPolygonNode : public QSGGeometryNode +class Q_LOCATION_PRIVATE_EXPORT MapPolygonNode : public MapItemGeometryNode { public: MapPolygonNode(); - ~MapPolygonNode(); + ~MapPolygonNode() override; void update(const QColor &fillColor, const QColor &borderColor, const QGeoMapItemGeometry *fillShape, const QGeoMapItemGeometry *borderShape); - - bool isSubtreeBlocked() const; - private: QSGFlatColorMaterial fill_material_; MapPolylineNode *border_; QSGGeometry geometry_; - bool blocked_; }; QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativepolylinemapitem.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativepolylinemapitem.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativepolylinemapitem.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativepolylinemapitem.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -54,15 +54,194 @@ #include #include +#include QT_BEGIN_NAMESPACE + +static const double kClipperScaleFactor = 281474976710656.0; // 48 bits of precision + +static inline IntPoint toIntPoint(const double x, const double y) +{ + return IntPoint(cInt(x * kClipperScaleFactor), cInt(y * kClipperScaleFactor)); +} + +static IntPoint toIntPoint(const QDoubleVector2D &p) +{ + return toIntPoint(p.x(), p.y()); +} + +static bool get_line_intersection(const double p0_x, + const double p0_y, + const double p1_x, + const double p1_y, + const double p2_x, + const double p2_y, + const double p3_x, + const double p3_y, + double *i_x, + double *i_y, + double *i_t) +{ + const double s10_x = p1_x - p0_x; + const double s10_y = p1_y - p0_y; + const double s32_x = p3_x - p2_x; + const double s32_y = p3_y - p2_y; + + const double denom = s10_x * s32_y - s32_x * s10_y; + if (denom == 0.0) + return false; // Collinear + const bool denomPositive = denom > 0; + + const double s02_x = p0_x - p2_x; + const double s02_y = p0_y - p2_y; + const double s_numer = s10_x * s02_y - s10_y * s02_x; + if ((s_numer < 0.0) == denomPositive) + return false; // No collision + + const double t_numer = s32_x * s02_y - s32_y * s02_x; + if ((t_numer < 0.0) == denomPositive) + return false; // No collision + + if (((s_numer > denom) == denomPositive) || ((t_numer > denom) == denomPositive)) + return false; // No collision + // Collision detected + *i_t = t_numer / denom; + *i_x = p0_x + (*i_t * s10_x); + *i_y = p0_y + (*i_t * s10_y); + + return true; +} + +enum SegmentType { + NoIntersection, + OneIntersection, + TwoIntersections +}; + +static QList > clipLine( + const QList &l, + const QList &poly) +{ + QList > res; + if (poly.size() < 3 || l.size() < 2) + return res; + + // Step 1: build edges + std::vector > edges; + for (int i = 1; i < poly.size(); i++) + edges.push_back({ { poly.at(i-1).x(), poly.at(i-1).y(), poly.at(i).x(), poly.at(i).y() } }); + edges.push_back({ { poly.at(poly.size()-1).x(), poly.at(poly.size()-1).y(), poly.at(0).x(), poly.at(0).y() } }); + + // Build Path to check for containment, for edges not intersecting + // This step could be speeded up by forcing the orientation of the polygon, and testing the cross products in the step + // below, thus avoiding to resort to clipper. + Path clip; + for (const auto &v: poly) + clip.push_back(toIntPoint(v)); + + // Step 2: check each segment against each edge + QList subLine; + std::array intersections = { { 0.0, 0.0, 0.0, 0.0 } }; + + for (int i = 0; i < l.size() - 1; ++i) { + SegmentType type = NoIntersection; + double t = -1; // valid values are in [0, 1]. Only written if intersects + double previousT = t; + double i_x, i_y; + + const int firstContained = c2t::clip2tri::pointInPolygon(toIntPoint(l.at(i).x(), l.at(i).y()), clip); + const int secondContained = c2t::clip2tri::pointInPolygon(toIntPoint(l.at(i+1).x(), l.at(i+1).y()), clip); + + if (firstContained && secondContained) { // Second most common condition, test early and skip inner loop if possible + if (!subLine.size()) + subLine.push_back(l.at(i)); // the initial element has to be pushed now. + subLine.push_back(l.at(i+1)); + continue; + } + + for (unsigned int j = 0; j < edges.size(); ++j) { + const bool intersects = get_line_intersection(l.at(i).x(), + l.at(i).y(), + l.at(i+1).x(), + l.at(i+1).y(), + edges.at(j).at(0), + edges.at(j).at(1), + edges.at(j).at(2), + edges.at(j).at(3), + &i_x, + &i_y, + &t); + if (intersects) { + if (previousT >= 0.0) { //One intersection already hit + if (t < previousT) { // Reorder + intersections[2] = intersections[0]; + intersections[3] = intersections[1]; + intersections[0] = i_x; + intersections[1] = i_y; + } else { + intersections[2] = i_x; + intersections[3] = i_y; + } + + type = TwoIntersections; + break; // no need to check anything else + } else { // First intersection + intersections[0] = i_x; + intersections[1] = i_y; + type = OneIntersection; + } + previousT = t; + } + } + + if (type == NoIntersection) { + if (!firstContained && !secondContained) { // Both outside + subLine.clear(); + } else if (firstContained && secondContained) { + // Handled above already. + } else { // Mismatch between PointInPolygon and get_line_intersection. Treat it as no intersection + if (subLine.size()) + res.push_back(subLine); + subLine.clear(); + } + } else if (type == OneIntersection) { // Need to check the following cases to avoid mismatch with PointInPolygon result. + if (firstContained <= 0 && secondContained > 0) { // subLine MUST be empty + if (!subLine.size()) + subLine.push_back(QDoubleVector2D(intersections[0], intersections[1])); + subLine.push_back(l.at(i+1)); + } else if (firstContained > 0 && secondContained <= 0) { // subLine MUST NOT be empty + if (!subLine.size()) + subLine.push_back(l.at(i)); + subLine.push_back(QDoubleVector2D(intersections[0], intersections[1])); + res.push_back(subLine); + subLine.clear(); + } else { + if (subLine.size()) + res.push_back(subLine); + subLine.clear(); + } + } else { // Two + // restart strip + subLine.clear(); + subLine.push_back(QDoubleVector2D(intersections[0], intersections[1])); + subLine.push_back(QDoubleVector2D(intersections[2], intersections[3])); + res.push_back(subLine); + subLine.clear(); + } + } + + if (subLine.size()) + res.push_back(subLine); + return res; +} + /*! \qmltype MapPolyline \instantiates QDeclarativePolylineMapItem \inqmlmodule QtLocation \ingroup qml-QtLocation5-maps - \since Qt Location 5.0 + \since QtLocation 5.0 \brief The MapPolyline type displays a polyline on a map. @@ -93,11 +272,6 @@ appearance. Setting the \l {Item::opacity}{opacity} property will force the object to be blended, which decreases performance considerably depending on the hardware in use. - \note MapPolylines are implemented using the OpenGL GL_LINES - primitive. There have been occasional reports of issues and rendering - inconsistencies on some (particularly quite old) platforms. No workaround - is yet available for these issues. - \section2 Example Usage The following snippet shows a MapPolyline with 4 points, making a shape @@ -189,11 +363,11 @@ * 2.1) recalculate the origin and geoLeftBound to prevent these parameters from ending in unprojectable areas * 2.2) ensure the left bound does not wrap around due to QGeoCoordinate <-> clipper conversions */ - + const QGeoProjectionWebMercator &p = static_cast(map.geoProjection()); srcOrigin_ = geoLeftBound_; double unwrapBelowX = 0; - leftBoundWrapped = map.geoProjection().wrapMapProjection(map.geoProjection().geoToMapProjection(geoLeftBound_)); + leftBoundWrapped = p.wrapMapProjection(p.geoToMapProjection(geoLeftBound_)); if (preserveGeometry_) unwrapBelowX = leftBoundWrapped.x(); @@ -203,7 +377,7 @@ // 1) for (int i = 0; i < path.size(); ++i) { const QDoubleVector2D &coord = path.at(i); - QDoubleVector2D wrappedProjection = map.geoProjection().wrapMapProjection(coord); + QDoubleVector2D wrappedProjection = p.wrapMapProjection(coord); // We can get NaN if the map isn't set up correctly, or the projection // is faulty -- probably best thing to do is abort @@ -226,13 +400,9 @@ // 2) QList > clippedPaths; - const QList &visibleRegion = map.geoProjection().projectableRegion(); + const QList &visibleRegion = p.visibleGeometryExpanded(); if (visibleRegion.size()) { - c2t::clip2tri clipper; - clipper.addSubjectPath(QClipperUtils::qListToPath(wrappedPath), false); - clipper.addClipPolygon(QClipperUtils::qListToPath(visibleRegion)); - Paths res = clipper.execute(c2t::clip2tri::Intersection); - clippedPaths = QClipperUtils::pathsToQList(res); + clippedPaths = clipLine(wrappedPath, visibleRegion); // 2.1) update srcOrigin_ and leftBoundWrapped with the point with minimum X QDoubleVector2D lb(qInf(), qInf()); @@ -265,18 +435,19 @@ const QList > &clippedPaths, const QDoubleVector2D &leftBoundWrapped) { + const QGeoProjectionWebMercator &p = static_cast(map.geoProjection()); // 3) project the resulting geometry to screen position and calculate screen bounds double minX = qInf(); double minY = qInf(); double maxX = -qInf(); double maxY = -qInf(); - srcOrigin_ = map.geoProjection().mapProjectionToGeo(map.geoProjection().unwrapMapProjection(leftBoundWrapped)); - QDoubleVector2D origin = map.geoProjection().wrappedMapProjectionToItemPosition(leftBoundWrapped); + srcOrigin_ = p.mapProjectionToGeo(p.unwrapMapProjection(leftBoundWrapped)); + QDoubleVector2D origin = p.wrappedMapProjectionToItemPosition(leftBoundWrapped); for (const QList &path: clippedPaths) { QDoubleVector2D lastAddedPoint; for (int i = 0; i < path.size(); ++i) { - QDoubleVector2D point = map.geoProjection().wrappedMapProjectionToItemPosition(path.at(i)); + QDoubleVector2D point = p.wrappedMapProjectionToItemPosition(path.at(i)); point = point - origin; // (0,0) if point == geoLeftBound_ @@ -342,7 +513,8 @@ \internal */ void QGeoMapPolylineGeometry::updateScreenPoints(const QGeoMap &map, - qreal strokeWidth) + qreal strokeWidth, + bool adjustTranslation) { if (!screenDirty_) return; @@ -354,20 +526,14 @@ return; } - // Create the viewport rect in the same coordinate system - // as the actual points - QRectF viewport(0, 0, map.viewportWidth(), map.viewportHeight()); - viewport.adjust(-strokeWidth, -strokeWidth, strokeWidth, strokeWidth); - viewport.translate(-1 * origin); - // The geometry has already been clipped against the visible region projection in wrapped mercator space. QVector points = srcPoints_; QVector types = srcPointTypes_; QVectorPath vp(points.data(), types.size(), types.data()); QTriangulatingStroker ts; - // viewport is not used in the call below. - ts.process(vp, QPen(QBrush(Qt::black), strokeWidth), viewport, QPainter::Qt4CompatiblePainting); + // As of Qt5.11, the clip argument is not actually used, in the call below. + ts.process(vp, QPen(QBrush(Qt::black), strokeWidth), QRectF(), QPainter::Qt4CompatiblePainting); clear(); @@ -406,7 +572,32 @@ } screenBounds_ = bb; - this->translate( -1 * sourceBounds_.topLeft()); + const QPointF strokeOffset = (adjustTranslation) ? QPointF(strokeWidth, strokeWidth) : QPointF(); + this->translate( -1 * sourceBounds_.topLeft() + strokeOffset); +} + +void QGeoMapPolylineGeometry::clearSource() +{ + srcPoints_.clear(); + srcPointTypes_.clear(); +} + +bool QGeoMapPolylineGeometry::contains(const QPointF &point) const +{ + // screenOutline_.contains(screenPoint) doesn't work, as, it appears, that + // screenOutline_ for QGeoMapPolylineGeometry is empty (QRectF(0,0 0x0)) + const QVector &verts = vertices(); + QPolygonF tri; + for (int i = 0; i < verts.size(); ++i) { + tri << verts[i]; + if (tri.size() == 3) { + if (tri.containsPoint(point,Qt::OddEvenFill)) + return true; + tri.remove(0); + } + } + + return false; } QDeclarativePolylineMapItem::QDeclarativePolylineMapItem(QQuickItem *parent) @@ -455,20 +646,7 @@ QJSValue QDeclarativePolylineMapItem::path() const { - QQmlContext *context = QQmlEngine::contextForObject(this); - QQmlEngine *engine = context->engine(); - QV4::ExecutionEngine *v4 = QQmlEnginePrivate::getV4Engine(engine); - - QV4::Scope scope(v4); - QV4::Scoped pathArray(scope, v4->newArrayObject(geopath_.path().length())); - for (int i = 0; i < geopath_.path().length(); ++i) { - const QGeoCoordinate &c = geopath_.coordinateAt(i); - - QV4::ScopedValue cv(scope, v4->fromVariant(QVariant::fromValue(c))); - pathArray->putIndexed(i, cv); - } - - return QJSValue(v4, pathArray.asReturnedValue()); + return fromList(this, geopath_.path()); } void QDeclarativePolylineMapItem::setPath(const QJSValue &value) @@ -476,21 +654,28 @@ if (!value.isArray()) return; - QList pathList; - quint32 length = value.property(QStringLiteral("length")).toUInt(); - for (quint32 i = 0; i < length; ++i) { - bool ok; - QGeoCoordinate c = parseCoordinate(value.property(i), &ok); - - if (!ok || !c.isValid()) { - qmlWarning(this) << "Unsupported path type"; - return; - } + setPathFromGeoList(toList(this, value)); +} - pathList.append(c); - } +/*! + \qmlmethod int MapPolyline::setPath(geopath path) + + Sets the \l path using a \l QGeoPath type. - setPathFromGeoList(pathList); + \since 5.10 + + \sa path +*/ +void QDeclarativePolylineMapItem::setPath(const QGeoPath &path) +{ + if (geopath_.path() == path.path()) + return; + + geopath_ = path; + regenerateCache(); + geometry_.setPreserveGeometry(true, geopath_.boundingGeoRectangle().topLeft()); + markSourceDirtyAndUpdate(); + emit pathChanged(); } /*! @@ -514,7 +699,7 @@ Returns the number of coordinates of the polyline. - \since Qt Location 5.6 + \since QtLocation 5.6 \sa path */ @@ -548,7 +733,7 @@ Inserts a \a coordinate to the path at the given \a index. - \since Qt Location 5.6 + \since QtLocation 5.6 \sa addCoordinate, removeCoordinate, path */ @@ -571,7 +756,7 @@ Replaces the coordinate in the current path at the given \a index with the new \a coordinate. - \since Qt Location 5.6 + \since QtLocation 5.6 \sa addCoordinate, insertCoordinate, removeCoordinate, path */ @@ -595,7 +780,7 @@ If the index is outside the path's bounds then an invalid coordinate is returned. - \since Qt Location 5.6 + \since QtLocation 5.6 */ QGeoCoordinate QDeclarativePolylineMapItem::coordinateAt(int index) const { @@ -610,7 +795,7 @@ Returns true if the given \a coordinate is part of the path. - \since Qt Location 5.6 + \since QtLocation 5.6 */ bool QDeclarativePolylineMapItem::containsCoordinate(const QGeoCoordinate &coordinate) { @@ -646,7 +831,7 @@ If \a index is invalid then this method does nothing. - \since Qt Location 5.6 + \since QtLocation 5.6 \sa addCoordinate, insertCoordinate, path */ @@ -728,12 +913,13 @@ */ void QDeclarativePolylineMapItem::regenerateCache() { - if (!map()) + if (!map() || map()->geoProjection().projectionType() != QGeoProjection::ProjectionWebMercator) return; + const QGeoProjectionWebMercator &p = static_cast(map()->geoProjection()); geopathProjected_.clear(); geopathProjected_.reserve(geopath_.path().size()); for (const QGeoCoordinate &c : geopath_.path()) - geopathProjected_ << map()->geoProjection().geoToMapProjection(c); + geopathProjected_ << p.geoToMapProjection(c); } /*! @@ -741,9 +927,10 @@ */ void QDeclarativePolylineMapItem::updateCache() { - if (!map()) + if (!map() || map()->geoProjection().projectionType() != QGeoProjection::ProjectionWebMercator) return; - geopathProjected_ << map()->geoProjection().geoToMapProjection(geopath_.path().last()); + const QGeoProjectionWebMercator &p = static_cast(map()->geoProjection()); + geopathProjected_ << p.geoToMapProjection(geopath_.path().last()); } /*! @@ -751,8 +938,14 @@ */ void QDeclarativePolylineMapItem::updatePolish() { - if (!map() || geopath_.path().length() == 0) + if (!map() || map()->geoProjection().projectionType() != QGeoProjection::ProjectionWebMercator) return; + if (geopath_.path().length() == 0) { // Possibly cleared + geometry_.clear(); + setWidth(0); + setHeight(0); + return; + } QScopedValueRollback rollback(updatingGeometry_); updatingGeometry_ = true; @@ -760,10 +953,10 @@ geometry_.updateSourcePoints(*map(), geopathProjected_, geopath_.boundingGeoRectangle().topLeft()); geometry_.updateScreenPoints(*map(), line_.width()); - setWidth(geometry_.sourceBoundingBox().width()); - setHeight(geometry_.sourceBoundingBox().height()); + setWidth(geometry_.sourceBoundingBox().width() + 2 * line_.width()); + setHeight(geometry_.sourceBoundingBox().height() + 2 * line_.width()); - setPositionOnMap(geometry_.origin(), -1 * geometry_.sourceBoundingBox().topLeft()); + setPositionOnMap(geometry_.origin(), -1 * geometry_.sourceBoundingBox().topLeft() + QPointF(line_.width(), line_.width())); } void QDeclarativePolylineMapItem::markSourceDirtyAndUpdate() @@ -797,18 +990,7 @@ bool QDeclarativePolylineMapItem::contains(const QPointF &point) const { - QVector vertices = geometry_.vertices(); - QPolygonF tri; - for (int i = 0; i < vertices.size(); ++i) { - tri << vertices[i]; - if (tri.size() == 3) { - if (tri.containsPoint(point,Qt::OddEvenFill)) - return true; - tri.remove(0); - } - } - - return false; + return geometry_.contains(point); } const QGeoShape &QDeclarativePolylineMapItem::geoShape() const @@ -826,29 +1008,76 @@ /*! \internal */ -MapPolylineNode::MapPolylineNode() : - geometry_(QSGGeometry::defaultAttributes_Point2D(),0), - blocked_(true) +VisibleNode::VisibleNode() : m_blocked{true}, m_visible{true} { - geometry_.setDrawingMode(QSGGeometry::DrawTriangleStrip); - QSGGeometryNode::setMaterial(&fill_material_); - QSGGeometryNode::setGeometry(&geometry_); + +} + +VisibleNode::~VisibleNode() +{ + } +/*! + \internal +*/ +bool VisibleNode::subtreeBlocked() const +{ + return m_blocked || !m_visible; +} /*! \internal */ -MapPolylineNode::~MapPolylineNode() +void VisibleNode::setSubtreeBlocked(bool blocked) { + m_blocked = blocked; } +bool VisibleNode::visible() const +{ + return m_visible; +} + +/*! + \internal +*/ +void VisibleNode::setVisible(bool visible) +{ + m_visible = visible; +} + +/*! + \internal +*/ +MapItemGeometryNode::~MapItemGeometryNode() +{ + +} + +bool MapItemGeometryNode::isSubtreeBlocked() const +{ + return subtreeBlocked(); +} + + +/*! + \internal +*/ +MapPolylineNode::MapPolylineNode() : + geometry_(QSGGeometry::defaultAttributes_Point2D(),0) +{ + geometry_.setDrawingMode(QSGGeometry::DrawTriangleStrip); + QSGGeometryNode::setMaterial(&fill_material_); + QSGGeometryNode::setGeometry(&geometry_); +} + + /*! \internal */ -bool MapPolylineNode::isSubtreeBlocked() const +MapPolylineNode::~MapPolylineNode() { - return blocked_; } /*! @@ -858,10 +1087,10 @@ const QGeoMapItemGeometry *shape) { if (shape->size() == 0) { - blocked_ = true; + setSubtreeBlocked(true); return; } else { - blocked_ = false; + setSubtreeBlocked(false); } QSGGeometry *fill = QSGGeometryNode::geometry(); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativepolylinemapitem_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativepolylinemapitem_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativepolylinemapitem_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativepolylinemapitem_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -85,7 +85,7 @@ QColor color_; }; -class QGeoMapPolylineGeometry : public QGeoMapItemGeometry +class Q_LOCATION_PRIVATE_EXPORT QGeoMapPolylineGeometry : public QGeoMapItemGeometry { public: QGeoMapPolylineGeometry(); @@ -95,9 +95,13 @@ const QGeoCoordinate geoLeftBound); void updateScreenPoints(const QGeoMap &map, - qreal strokeWidth); + qreal strokeWidth, + bool adjustTranslation = true); + + void clearSource(); + + bool contains(const QPointF &point) const override; -protected: QList > clipPath(const QGeoMap &map, const QList &path, QDoubleVector2D &leftBoundWrapped); @@ -126,9 +130,9 @@ explicit QDeclarativePolylineMapItem(QQuickItem *parent = 0); ~QDeclarativePolylineMapItem(); - virtual void setMap(QDeclarativeGeoMap *quickMap, QGeoMap *map) Q_DECL_OVERRIDE; + virtual void setMap(QDeclarativeGeoMap *quickMap, QGeoMap *map) override; //from QuickItem - virtual QSGNode *updateMapItemPaintNode(QSGNode *, UpdatePaintNodeData *) Q_DECL_OVERRIDE; + virtual QSGNode *updateMapItemPaintNode(QSGNode *, UpdatePaintNodeData *) override; Q_INVOKABLE int pathLength() const; Q_INVOKABLE void addCoordinate(const QGeoCoordinate &coordinate); @@ -141,10 +145,11 @@ QJSValue path() const; virtual void setPath(const QJSValue &value); + Q_INVOKABLE void setPath(const QGeoPath &path); - bool contains(const QPointF &point) const Q_DECL_OVERRIDE; - const QGeoShape &geoShape() const Q_DECL_OVERRIDE; - QGeoMap::ItemType itemType() const Q_DECL_OVERRIDE; + bool contains(const QPointF &point) const override; + const QGeoShape &geoShape() const override; + QGeoMap::ItemType itemType() const override; QDeclarativeMapLineProperties *line(); @@ -152,14 +157,14 @@ void pathChanged(); protected: - void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) Q_DECL_OVERRIDE; + void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) override; void setPathFromGeoList(const QList &path); - void updatePolish() Q_DECL_OVERRIDE; + void updatePolish() override; protected Q_SLOTS: void markSourceDirtyAndUpdate(); void updateAfterLinePropertiesChanged(); - virtual void afterViewportChanged(const QGeoMapViewportChangeEvent &event) Q_DECL_OVERRIDE; + virtual void afterViewportChanged(const QGeoMapViewportChangeEvent &event) override; private: void regenerateCache(); @@ -176,20 +181,39 @@ ////////////////////////////////////////////////////////////////////// -class MapPolylineNode : public QSGGeometryNode +class Q_LOCATION_PRIVATE_EXPORT VisibleNode +{ +public: + VisibleNode(); + virtual ~VisibleNode(); + + bool subtreeBlocked() const; + void setSubtreeBlocked(bool blocked); + bool visible() const; + void setVisible(bool visible); + + bool m_blocked : 1; + bool m_visible : 1; +}; + +class Q_LOCATION_PRIVATE_EXPORT MapItemGeometryNode : public QSGGeometryNode, public VisibleNode { +public: + ~MapItemGeometryNode() override; + bool isSubtreeBlocked() const override; +}; +class Q_LOCATION_PRIVATE_EXPORT MapPolylineNode : public MapItemGeometryNode +{ public: MapPolylineNode(); - ~MapPolylineNode(); + ~MapPolylineNode() override; void update(const QColor &fillColor, const QGeoMapItemGeometry *shape); - bool isSubtreeBlocked() const; private: QSGFlatColorMaterial fill_material_; QSGGeometry geometry_; - bool blocked_; }; QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativerectanglemapitem.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativerectanglemapitem.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativerectanglemapitem.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativerectanglemapitem.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include @@ -52,7 +53,7 @@ \instantiates QDeclarativeRectangleMapItem \inqmlmodule QtLocation \ingroup qml-QtLocation5-maps - \since Qt Location 5.5 + \since QtLocation 5.5 \brief The MapRectangle type displays a rectangle on a Map. @@ -272,15 +273,24 @@ */ void QDeclarativeRectangleMapItem::updatePolish() { - if (!map() || !topLeft().isValid() || !bottomRight().isValid()) + if (!map() || map()->geoProjection().projectionType() != QGeoProjection::ProjectionWebMercator) return; + if (!topLeft().isValid() || !bottomRight().isValid()) { + geometry_.clear(); + borderGeometry_.clear(); + setWidth(0); + setHeight(0); + return; + } + + const QGeoProjectionWebMercator &p = static_cast(map()->geoProjection()); QScopedValueRollback rollback(updatingGeometry_); updatingGeometry_ = true; geometry_.setPreserveGeometry(true, rectangle_.topLeft()); geometry_.updateSourcePoints(*map(), pathMercator_); - geometry_.updateScreenPoints(*map()); + geometry_.updateScreenPoints(*map(), border_.width()); QList geoms; geoms << &geometry_; @@ -299,7 +309,7 @@ QDoubleVector2D borderLeftBoundWrapped; QList > clippedPaths = borderGeometry_.clipPath(*map(), closedPath, borderLeftBoundWrapped); if (clippedPaths.size()) { - borderLeftBoundWrapped = map()->geoProjection().geoToWrappedMapProjection(geometryOrigin); + borderLeftBoundWrapped = p.geoToWrappedMapProjection(geometryOrigin); borderGeometry_.pathToScreen(*map(), clippedPaths, borderLeftBoundWrapped); borderGeometry_.updateScreenPoints(*map(), border_.width()); @@ -310,8 +320,8 @@ } QRectF combined = QGeoMapItemGeometry::translateToCommonOrigin(geoms); - setWidth(combined.width()); - setHeight(combined.height()); + setWidth(combined.width() + 2 * border_.width()); + setHeight(combined.height() + 2 * border_.width()); setPositionOnMap(geometry_.origin(), geometry_.firstPointOffset()); } @@ -355,11 +365,11 @@ if (!map()) return; pathMercator_.clear(); - pathMercator_ << map()->geoProjection().geoToMapProjection(rectangle_.topLeft()); - pathMercator_ << map()->geoProjection().geoToMapProjection( + pathMercator_ << QWebMercator::coordToMercator(rectangle_.topLeft()); + pathMercator_ << QWebMercator::coordToMercator( QGeoCoordinate(rectangle_.topLeft().latitude(), rectangle_.bottomRight().longitude())); - pathMercator_ << map()->geoProjection().geoToMapProjection(rectangle_.bottomRight()); - pathMercator_ << map()->geoProjection().geoToMapProjection( + pathMercator_ << QWebMercator::coordToMercator(rectangle_.bottomRight()); + pathMercator_ << QWebMercator::coordToMercator( QGeoCoordinate(rectangle_.bottomRight().latitude(), rectangle_.topLeft().longitude())); } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativerectanglemapitem_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativerectanglemapitem_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativerectanglemapitem_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativerectanglemapitem_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -67,15 +67,15 @@ Q_PROPERTY(QGeoCoordinate topLeft READ topLeft WRITE setTopLeft NOTIFY topLeftChanged) Q_PROPERTY(QGeoCoordinate bottomRight READ bottomRight WRITE setBottomRight NOTIFY bottomRightChanged) Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged) - Q_PROPERTY(QDeclarativeMapLineProperties *border READ border) + Q_PROPERTY(QDeclarativeMapLineProperties *border READ border CONSTANT) public: explicit QDeclarativeRectangleMapItem(QQuickItem *parent = 0); ~QDeclarativeRectangleMapItem(); - virtual void setMap(QDeclarativeGeoMap *quickMap, QGeoMap *map) Q_DECL_OVERRIDE; + virtual void setMap(QDeclarativeGeoMap *quickMap, QGeoMap *map) override; //from QuickItem - virtual QSGNode *updateMapItemPaintNode(QSGNode *, UpdatePaintNodeData *) Q_DECL_OVERRIDE; + virtual QSGNode *updateMapItemPaintNode(QSGNode *, UpdatePaintNodeData *) override; QGeoCoordinate topLeft(); void setTopLeft(const QGeoCoordinate ¢er); @@ -88,9 +88,9 @@ QDeclarativeMapLineProperties *border(); - bool contains(const QPointF &point) const Q_DECL_OVERRIDE; - const QGeoShape &geoShape() const Q_DECL_OVERRIDE; - QGeoMap::ItemType itemType() const Q_DECL_OVERRIDE; + bool contains(const QPointF &point) const override; + const QGeoShape &geoShape() const override; + QGeoMap::ItemType itemType() const override; Q_SIGNALS: void topLeftChanged(const QGeoCoordinate &topLeft); @@ -99,12 +99,12 @@ protected: void updatePath(); - void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) Q_DECL_OVERRIDE; - void updatePolish() Q_DECL_OVERRIDE; + void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) override; + void updatePolish() override; protected Q_SLOTS: void markSourceDirtyAndUpdate(); - virtual void afterViewportChanged(const QGeoMapViewportChangeEvent &event) Q_DECL_OVERRIDE; + virtual void afterViewportChanged(const QGeoMapViewportChangeEvent &event) override; private: QGeoRectangle rectangle_; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativeroutemapitem.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativeroutemapitem.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativeroutemapitem.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativeroutemapitem.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -49,7 +49,7 @@ \instantiates QDeclarativeRouteMapItem \inqmlmodule QtLocation \ingroup qml-QtLocation5-maps - \since Qt Location 5.0 + \since QtLocation 5.0 \brief The MapRoute type displays a Route on a Map. diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativeroutemapitem_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativeroutemapitem_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qdeclarativeroutemapitem_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qdeclarativeroutemapitem_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -79,7 +79,7 @@ void updateRoutePath(); protected: - void setPath(const QJSValue &value) Q_DECL_OVERRIDE; + void setPath(const QJSValue &value) override; private: QDeclarativeGeoRoute *route_; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qgeomapitemgeometry_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qgeomapitemgeometry_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qgeomapitemgeometry_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qgeomapitemgeometry_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -63,7 +63,7 @@ class QSGGeometry; class QGeoMap; -class QGeoMapItemGeometry +class Q_LOCATION_PRIVATE_EXPORT QGeoMapItemGeometry { public: QGeoMapItemGeometry(); @@ -91,7 +91,11 @@ inline const QGeoCoordinate &origin() const { return srcOrigin_; } - inline bool contains(const QPointF &screenPoint) const { + QPainterPath screenOutline() const { + return screenOutline_; + } + + virtual bool contains(const QPointF &screenPoint) const { return screenOutline_.contains(screenPoint); } @@ -124,6 +128,9 @@ static QRectF translateToCommonOrigin(const QList &geoms); +private: + QGeoMapItemGeometry(const QGeoMapItemGeometry &other); // Or else it may crash on copy + QGeoMapItemGeometry &operator= (const QGeoMapItemGeometry & other); // Or else it may crash on copy protected: bool sourceDirty_; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qgeomapobject.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qgeomapobject.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qgeomapobject.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qgeomapobject.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,297 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qdeclarativegeomap_p.h" +#include "qgeomapobject_p.h" +#include "qgeomapobject_p_p.h" + +QT_BEGIN_NAMESPACE + +/*! + \internal + + \qmltype GeoMapObject + \instantiates QGeoMapObject + \inqmlmodule Qt.labs.location + \ingroup qml-QtLocation5-maps + + \brief The GeoObject type is a base class for geographical objects that can be added to a map. + + The difference between a GeoMapObject and a MapItem is twofold. First, GeoMapObject are always backed + by a plugin-specific implementation and do not come with a default implementation. If a plugin does + not support a specific GeoMapObject type, adding such a GeoMapObject will have no effect. + Second, GeoMapObject are not QQuickItems, thus being a much more lightweight way to add content to + a map. + + GeoMapObject support is plugin-dependent, and is documented per plugin. +*/ + +template<> +QGeoMapObjectPrivate *QExplicitlySharedDataPointer::clone() +{ + return d->clone(); +} + +QGeoMapObject::~QGeoMapObject() +{ + +} + +/*! + Returns whether this geographical object and \a other are equal. +*/ +bool QGeoMapObject::operator ==(const QGeoMapObject &other) const +{ + return ( (d_ptr.constData() == other.d_ptr.constData()) + || (*d_ptr) == (*other.d_ptr)); +} + +/*! + Returns whether this geographical object and \a other are not equal. +*/ +bool QGeoMapObject::operator !=(const QGeoMapObject &other) const +{ + return !(operator==(other)); +} + +/*! + \internal + Returns which features are supported by the geographical object +*/ +QGeoMapObject::Features QGeoMapObject::features() const +{ + return d_ptr->features(); +} + +QGeoMapObjectPrivate *QGeoMapObject::implementation() const +{ + return d_ptr.data(); +} + +bool QGeoMapObject::setImplementation(const QExplicitlySharedDataPointer &pimpl) +{ + if (d_ptr->type() != pimpl->type()) + return false; + d_ptr = pimpl; + return true; +} + +bool QGeoMapObject::implemented() const +{ + return !d_ptr->engineName().isEmpty(); +} + +bool QGeoMapObject::visible() const +{ + return d_ptr->visible(); +} + +void QGeoMapObject::setVisible(bool visible) +{ + if (visible == d_ptr->m_visible) + return; + + const bool oldVisible = QGeoMapObject::visible(); + d_ptr->setVisible(visible); + if (d_ptr->m_componentCompleted) + setChildrenVisibility(); + if (QGeoMapObject::visible() != oldVisible) + emit visibleChanged(); +} + +void QGeoMapObject::setParentVisiblity(bool visible) +{ + if (visible == d_ptr->m_parentVisible) + return; + + const bool oldVisible = QGeoMapObject::visible(); + d_ptr->setParentVisibility(visible); + if (d_ptr->m_componentCompleted) + setChildrenVisibility(); + if (QGeoMapObject::visible() != oldVisible) + emit visibleChanged(); +} + +QGeoMapObject::Type QGeoMapObject::type() const +{ + return d_ptr->type(); +} + +QList QGeoMapObject::geoMapObjectChildren() const +{ + return quickChildren(); +} + +QGeoMapObject::QGeoMapObject(const QExplicitlySharedDataPointer &dd, QObject *parent) + : QParameterizableObject(parent), d_ptr(dd) +{ +} + +void QGeoMapObject::setChildrenVisibility() +{ + const bool v = visible(); + const QList kids = geoMapObjectChildren(); + for (auto kid : qAsConst(kids)) + kid->setParentVisiblity(v); +} + +void QGeoMapObject::classBegin() +{ + +} + +void QGeoMapObject::completeComponent() +{ + d_ptr->m_componentCompleted = true; + setChildrenVisibility(); +} + +void QGeoMapObject::componentComplete() +{ + completeComponent(); + emit completed(); +} + +void QGeoMapObject::setMap(QGeoMap *map) +{ + if (d_ptr->m_map == map) + return; + + if (map) { + bool oldVisible = d_ptr->m_visible; + bool oldCmponentCompleted = d_ptr->m_componentCompleted; + if (!map->createMapObjectImplementation(this)) + qWarning() << "Unsupported type " << type(); + // old implementation gets destroyed if/when d_ptr gets replaced + d_ptr->m_componentCompleted = oldCmponentCompleted; + d_ptr->setVisible(oldVisible); + d_ptr->setMap(map); + } + + const QList kids = geoMapObjectChildren(); + for (auto kid : kids) + kid->setMap(map); + + // Each subclass is in charge to do the equivalent of + // if (!map) { + // // Map was set, now it has ben re-set to NULL, but not inside d_ptr. + // // so m_map inside d_ptr can still be used to remove itself, inside the destructor. + // d_ptr = new QMapCircleObjectPrivateDefault(*d); + // // Old pimpl deleted implicitly by QExplicitlySharedDataPointer + // } + // After this method is called. +} + +QGeoMap *QGeoMapObject::map() const +{ + return d_ptr->m_map; +} + + +// +// QGeoMapObjectPrivate +// + +QGeoMapObjectPrivate::QGeoMapObjectPrivate() +{ +} + +QGeoMapObjectPrivate::QGeoMapObjectPrivate(QGeoMapObject *q) : q(q) +{ +} + +QGeoMapObjectPrivate::QGeoMapObjectPrivate(const QGeoMapObjectPrivate &other) + :QSharedData(other) + ,q(other.q) + ,m_componentCompleted(other.m_componentCompleted) + ,m_visible(other.m_visible) +{ + +} + +QGeoMapObjectPrivate::~QGeoMapObjectPrivate() +{ +} + +bool QGeoMapObjectPrivate::operator ==(const QGeoMapObjectPrivate &other) const +{ + return (type() == other.type() && engineName() == other.engineName() + && equals(other)); +} + +QByteArray QGeoMapObjectPrivate::engineName() const +{ + return QByteArray(); +} + +QGeoMapObject::Type QGeoMapObjectPrivate::type() const +{ + return QGeoMapObject::InvalidType; +} + +QGeoMapObject::Features QGeoMapObjectPrivate::features() const +{ + return QGeoMapObject::NoFeature; +} + +bool QGeoMapObjectPrivate::equals(const QGeoMapObjectPrivate &other) const +{ + return (visible() == other.visible() && type() == other.type() + && engineName() == other.engineName() && features() == other.features() + && m_map == other.m_map); +} + +bool QGeoMapObjectPrivate::visible() const +{ + return m_visible && m_parentVisible; +} + +void QGeoMapObjectPrivate::setVisible(bool visible) +{ + m_visible = visible; +} + +void QGeoMapObjectPrivate::setParentVisibility(bool visible) +{ + m_parentVisible = visible; +} + +void QGeoMapObjectPrivate::setMap(QGeoMap *map) +{ + m_map = map; +} + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qgeomapobject_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qgeomapobject_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qgeomapobject_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qgeomapobject_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,133 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QGEOMAPOBJECTBASE_H +#define QGEOMAPOBJECTBASE_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include + +QT_BEGIN_NAMESPACE + +class QGeoMapObjectPrivate; +class QGeoMap; + +class Q_LOCATION_PRIVATE_EXPORT QGeoMapObject : public QParameterizableObject, public QQmlParserStatus +{ + Q_OBJECT + + Q_PROPERTY(bool visible READ visible WRITE setVisible NOTIFY visibleChanged) + Q_PROPERTY(Type type READ type CONSTANT) + Q_INTERFACES(QQmlParserStatus) + +public: + enum Feature { + NoFeature = 0x0, + Clickable = 0x01, + Draggable = 0x02, + AllFeatures = 0xFFFFFFFF + }; + + enum Type { + InvalidType = 0, + ViewType = 1, + RouteType = 2, + RectangleType = 3, + CircleType = 4, + PolylineType = 5, + PolygonType = 6, + IconType = 7, + UserType = 0x0100 + }; + + Q_ENUM(Type) + Q_DECLARE_FLAGS(Features, Feature) + + virtual ~QGeoMapObject(); + + bool operator == (const QGeoMapObject &other) const; + bool operator != (const QGeoMapObject &other) const; + + Features features() const; + QGeoMapObjectPrivate *implementation() const; + bool setImplementation(const QExplicitlySharedDataPointer &pimpl); + bool implemented() const; + + bool visible() const; + void setVisible(bool visible); + void setParentVisiblity(bool visible); + + Type type() const; + + virtual QList geoMapObjectChildren() const; + virtual void setMap(QGeoMap *map); + QGeoMap *map() const; + +Q_SIGNALS: + void visibleChanged(); + void selected(); + void completed(); + +protected: + QGeoMapObject(const QExplicitlySharedDataPointer &dd, QObject *parent = nullptr); + QExplicitlySharedDataPointer d_ptr; + + void setChildrenVisibility(); + + // QQmlParserStatus interface + void classBegin() override; + void componentComplete() override; + void completeComponent(); + + friend class QGeoMap; + friend class QDeclarativeGeoMap; + friend class QGeoMapLayer; + friend class QDeclarativeNavigator; +}; +QT_END_NAMESPACE + +#endif // QGEOMAPOBJECTBASE_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qgeomapobject_p_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qgeomapobject_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qgeomapobject_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qgeomapobject_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,95 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QGEOMAPOBJECTBASE_P_H +#define QGEOMAPOBJECTBASE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include + +#include +#include "qgeomapobject_p.h" + +QT_BEGIN_NAMESPACE + +class QGeoMapObject; +class Q_LOCATION_PRIVATE_EXPORT QGeoMapObjectPrivate : public QSharedData +{ +public: + virtual ~QGeoMapObjectPrivate(); + + bool operator == (const QGeoMapObjectPrivate &other) const; + + virtual QByteArray engineName() const; + virtual QGeoMapObject::Features features() const; + virtual bool equals(const QGeoMapObjectPrivate &other) const; + virtual QGeoMapObject::Type type() const; + virtual bool visible() const; + virtual void setVisible(bool visible); + virtual void setParentVisibility(bool visible); + virtual void setMap(QGeoMap *map); + virtual QGeoMapObjectPrivate *clone() = 0; // to allow proper detaching + + QGeoMapObject *q = nullptr; + QPointer m_map; + bool m_componentCompleted = false; + bool m_visible = true; + bool m_parentVisible = true; + +protected: + QGeoMapObjectPrivate(QGeoMapObject *q); + QGeoMapObjectPrivate(const QGeoMapObjectPrivate &other); + +private: + QGeoMapObjectPrivate(); +}; + +QT_END_NAMESPACE + +#endif // QGEOMAPOBJECTBASE_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qparameterizableobject.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qparameterizableobject.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qparameterizableobject.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qparameterizableobject.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,88 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qparameterizableobject_p.h" +#include "qdeclarativegeomapparameter_p.h" +#include + +QT_BEGIN_NAMESPACE + +QParameterizableObject::QParameterizableObject(QObject *parent) + : QObject(parent) +{} + +void QParameterizableObject::appendChild(QObject *v) +{ + m_children.append(v); +} + +void QParameterizableObject::clearChildren() +{ + m_children.clear(); +} + +QQmlListProperty QParameterizableObject::declarativeChildren() +{ + return QQmlListProperty(this, nullptr, + &QParameterizableObject::append, + &QParameterizableObject::count, + &QParameterizableObject::at, + &QParameterizableObject::clear); +} + +void QParameterizableObject::append(QQmlListProperty *p, QObject *v) +{ + QParameterizableObject *object = static_cast(p->object); + object->appendChild(v); +} + +int QParameterizableObject::count(QQmlListProperty *p) +{ + return static_cast(p->object)->m_children.count(); +} + +QObject *QParameterizableObject::at(QQmlListProperty *p, int idx) +{ + return static_cast(p->object)->m_children.at(idx); +} + +void QParameterizableObject::clear(QQmlListProperty *p) +{ + QParameterizableObject *object = static_cast(p->object); + object->clearChildren(); +} + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qparameterizableobject_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qparameterizableobject_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qparameterizableobject_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qparameterizableobject_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,93 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QPARAMETERIZABLEOBJECT_H +#define QPARAMETERIZABLEOBJECT_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE +class QGeoMapParameter; +class Q_LOCATION_PRIVATE_EXPORT QParameterizableObject : public QObject +{ + Q_OBJECT + Q_PROPERTY(QQmlListProperty quickChildren READ declarativeChildren DESIGNABLE false) + Q_CLASSINFO("DefaultProperty", "quickChildren") + +public: + explicit QParameterizableObject(QObject *parent = nullptr); + + template + QList quickChildren() const + { + QList res; + for (auto kid : qAsConst(m_children)) { + auto val = qobject_cast(kid); + if (val) + res.push_back(val); + } + return res; + } + +protected: + virtual void appendChild(QObject *v); + virtual void clearChildren(); + + static void append(QQmlListProperty *p, QObject *v); + static int count(QQmlListProperty *p); + static QObject *at(QQmlListProperty *p, int idx); + static void clear(QQmlListProperty *p); + + QQmlListProperty declarativeChildren(); + QList m_children; +}; +QT_END_NAMESPACE + +#endif // QPARAMETERIZABLEOBJECT_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qquickgeomapgesturearea.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qquickgeomapgesturearea.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativemaps/qquickgeomapgesturearea.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativemaps/qquickgeomapgesturearea.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -84,18 +84,6 @@ return QLineF(p1, p2).length(); } -// Returns the new map center after anchoring coordinate to anchorPoint on the screen -// Approach: find the displacement in (wrapped) mercator space, and apply that to the center -static QGeoCoordinate anchorCoordinateToPoint(QGeoMap &map, const QGeoCoordinate &coordinate, const QPointF &anchorPoint) -{ - QDoubleVector2D centerProj = map.geoProjection().geoToWrappedMapProjection(map.cameraData().center()); - QDoubleVector2D coordProj = map.geoProjection().geoToWrappedMapProjection(coordinate); - - QDoubleVector2D anchorProj = map.geoProjection().itemPositionToWrappedMapProjection(QDoubleVector2D(anchorPoint)); - // Y-clamping done in mercatorToCoord - return map.geoProjection().wrappedMapProjectionToGeo(centerProj + coordProj - anchorProj); -} - static qreal angleFromPoints(const QPointF &p1, const QPointF &p2) { return QLineF(p1, p2).angle(); @@ -202,7 +190,7 @@ \endcode \ingroup qml-QtLocation5-maps - \since Qt Location 5.0 + \since QtLocation 5.0 */ /*! @@ -255,6 +243,8 @@ MapGestureArea objects are used as part of a Map, to provide for panning, flicking and pinch-to-zoom gesture used on touch displays, as well as two finger rotation and two finger parallel vertical sliding to tilt the map. + On platforms supporting \l QWheelEvent, using the scroll wheel alone, or in combination with + key modifiers Shift or Control will also zoom, rotate or tilt the map, respectively. A MapGestureArea is automatically created with a new Map and available with the \l{Map::gesture}{gesture} property. This is the only way @@ -286,7 +276,7 @@ \endcode \ingroup qml-QtLocation5-maps - \since Qt Location 5.0 + \since QtLocation 5.0 */ /*! @@ -314,7 +304,7 @@ This read-only property holds whether the two-finger rotation gesture is active. - \since Qt Location 5.9 + \since QtLocation 5.9 */ /*! @@ -322,7 +312,7 @@ This read-only property holds whether the two-finger tilt gesture is active. - \since Qt Location 5.9 + \since QtLocation 5.9 */ /*! @@ -425,7 +415,7 @@ \sa rotationUpdated, rotationFinished - \since Qt Location 5.9 + \since QtLocation 5.9 */ /*! @@ -438,7 +428,7 @@ \sa rotationStarted, rotationFinished - \since Qt Location 5.9 + \since QtLocation 5.9 */ /*! @@ -450,7 +440,7 @@ \sa rotationStarted, rotationUpdated - \since Qt Location 5.9 + \since QtLocation 5.9 */ /*! @@ -462,7 +452,7 @@ \sa tiltUpdated, tiltFinished - \since Qt Location 5.9 + \since QtLocation 5.9 */ /*! @@ -475,7 +465,7 @@ \sa tiltStarted, tiltFinished - \since Qt Location 5.9 + \since QtLocation 5.9 */ /*! @@ -487,7 +477,7 @@ \sa tiltStarted, tiltUpdated - \since Qt Location 5.9 + \since QtLocation 5.9 */ QQuickGeoMapGestureArea::QQuickGeoMapGestureArea(QDeclarativeGeoMap *map) @@ -519,6 +509,7 @@ m_flick.m_animation->setProperty(QStringLiteral("center")); m_flick.m_animation->setEasing(QEasingCurve(QEasingCurve::OutQuad)); connect(m_flick.m_animation, &QQuickAbstractAnimation::stopped, this, &QQuickGeoMapGestureArea::handleFlickAnimationStopped); + m_map->setAcceptedGestures(panEnabled(), flickEnabled(), pinchEnabled(), rotationEnabled(), tiltEnabled()); } /*! @@ -593,6 +584,9 @@ setTiltEnabled(acceptedGestures & TiltGesture); } + if (m_map) + m_map->setAcceptedGestures(panEnabled(), flickEnabled(), pinchEnabled(), rotationEnabled(), tiltEnabled()); + emit acceptedGesturesChanged(); } @@ -658,6 +652,8 @@ setRotationEnabled(false); setTiltEnabled(false); } + if (m_map) + m_map->setAcceptedGestures(panEnabled(), flickEnabled(), pinchEnabled(), rotationEnabled(), tiltEnabled()); emit enabledChanged(); } @@ -867,8 +863,14 @@ */ void QQuickGeoMapGestureArea::handleMousePressEvent(QMouseEvent *event) { + if (m_map && m_map->handleEvent(event)) { + event->accept(); + return; + } + m_mousePoint.reset(createTouchPointFromMouseEvent(event, Qt::TouchPointPressed)); - if (m_touchPoints.isEmpty()) update(); + if (m_touchPoints.isEmpty()) + update(); event->accept(); } @@ -877,8 +879,14 @@ */ void QQuickGeoMapGestureArea::handleMouseMoveEvent(QMouseEvent *event) { + if (m_map && m_map->handleEvent(event)) { + event->accept(); + return; + } + m_mousePoint.reset(createTouchPointFromMouseEvent(event, Qt::TouchPointMoved)); - if (m_touchPoints.isEmpty()) update(); + if (m_touchPoints.isEmpty()) + update(); event->accept(); } @@ -887,11 +895,17 @@ */ void QQuickGeoMapGestureArea::handleMouseReleaseEvent(QMouseEvent *event) { + if (m_map && m_map->handleEvent(event)) { + event->accept(); + return; + } + if (!m_mousePoint.isNull()) { //this looks super ugly , however is required in case we do not get synthesized MouseReleaseEvent //and we reset the point already in handleTouchUngrabEvent m_mousePoint.reset(createTouchPointFromMouseEvent(event, Qt::TouchPointReleased)); - if (m_touchPoints.isEmpty()) update(); + if (m_touchPoints.isEmpty()) + update(); } event->accept(); } @@ -927,6 +941,11 @@ */ void QQuickGeoMapGestureArea::handleTouchEvent(QTouchEvent *event) { + if (m_map && m_map->handleEvent(event)) { + event->accept(); + return; + } + m_touchPoints.clear(); m_mousePoint.reset(); @@ -948,18 +967,38 @@ if (!m_map) return; - const QGeoCoordinate &wheelGeoPos = m_map->geoProjection().itemPositionToCoordinate(QDoubleVector2D(event->posF()), false); - const QPointF &preZoomPoint = event->posF(); + if (m_map->handleEvent(event)) { + event->accept(); + return; + } - const double zoomLevelDelta = event->angleDelta().y() * qreal(0.001); - // Gesture area should always honor maxZL, but Map might not. - m_declarativeMap->setZoomLevel(qMin(m_declarativeMap->zoomLevel() + zoomLevelDelta, maximumZoomLevel()), - false); - const QPointF &postZoomPoint = m_map->geoProjection().coordinateToItemPosition(wheelGeoPos, false).toPointF(); + const QGeoCoordinate &wheelGeoPos = m_declarativeMap->toCoordinate(event->posF(), false); + const QPointF &preZoomPoint = event->posF(); - if (preZoomPoint != postZoomPoint) // need to re-anchor the wheel geoPos to the event position - m_declarativeMap->setCenter(anchorCoordinateToPoint(*m_map, wheelGeoPos, preZoomPoint)); + // Not using AltModifier as, for some reason, it causes angleDelta to be 0 + if (event->modifiers() & Qt::ShiftModifier && rotationEnabled()) { + emit rotationStarted(&m_pinch.m_event); + // First set bearing + const double bearingDelta = event->angleDelta().y() * qreal(0.05); + m_declarativeMap->setBearing(m_declarativeMap->bearing() + bearingDelta, wheelGeoPos); + emit rotationUpdated(&m_pinch.m_event); + emit rotationFinished(&m_pinch.m_event); + } else if (event->modifiers() & Qt::ControlModifier && tiltEnabled()) { + emit tiltStarted(&m_pinch.m_event); + const double tiltDelta = event->angleDelta().y() * qreal(0.05); + m_declarativeMap->setTilt(m_declarativeMap->tilt() + tiltDelta); + emit tiltUpdated(&m_pinch.m_event); + emit tiltFinished(&m_pinch.m_event); + } else if (pinchEnabled()) { + const double zoomLevelDelta = event->angleDelta().y() * qreal(0.001); + // Gesture area should always honor maxZL, but Map might not. + m_declarativeMap->setZoomLevel(qMin(m_declarativeMap->zoomLevel() + zoomLevelDelta, maximumZoomLevel()), + false); + const QPointF &postZoomPoint = m_declarativeMap->fromCoordinate(wheelGeoPos, false); + if (preZoomPoint != postZoomPoint) // need to re-anchor the wheel geoPos to the event position + m_declarativeMap->alignCoordinateToPoint(wheelGeoPos, preZoomPoint); + } event->accept(); } #endif @@ -1096,7 +1135,7 @@ if (m_allPoints.count() == 0) { setTouchPointState(touchPoints0); } else if (m_allPoints.count() == 2) { - m_touchCenterCoord = m_map->geoProjection().itemPositionToCoordinate(QDoubleVector2D(m_touchPointsCentroid), false); + m_touchCenterCoord = m_declarativeMap->toCoordinate(m_touchPointsCentroid, false); startTwoTouchPoints(); setTouchPointState(touchPoints2); } @@ -1105,7 +1144,7 @@ if (m_allPoints.count() == 0) { setTouchPointState(touchPoints0); } else if (m_allPoints.count() == 1) { - m_touchCenterCoord = m_map->geoProjection().itemPositionToCoordinate(QDoubleVector2D(m_touchPointsCentroid), false); + m_touchCenterCoord = m_declarativeMap->toCoordinate(m_touchPointsCentroid, false); startOneTouchPoint(); setTouchPointState(touchPoints1); } @@ -1133,7 +1172,7 @@ m_sceneStartPoint1 = mapFromScene(m_allPoints.at(0).scenePos()); m_lastPos = m_sceneStartPoint1; m_lastPosTime.start(); - QGeoCoordinate startCoord = m_map->geoProjection().itemPositionToCoordinate(QDoubleVector2D(m_sceneStartPoint1), false); + QGeoCoordinate startCoord = m_declarativeMap->toCoordinate(m_sceneStartPoint1, false); // ensures a smooth transition for panning m_startCoord.setLongitude(m_startCoord.longitude() + startCoord.longitude() - m_touchCenterCoord.longitude()); @@ -1160,7 +1199,7 @@ QPointF startPos = (m_sceneStartPoint1 + m_sceneStartPoint2) * 0.5; m_lastPos = startPos; m_lastPosTime.start(); - QGeoCoordinate startCoord = m_map->geoProjection().itemPositionToCoordinate(QDoubleVector2D(startPos), false); + QGeoCoordinate startCoord = m_declarativeMap->toCoordinate(startPos, false); m_startCoord.setLongitude(m_startCoord.longitude() + startCoord.longitude() - m_touchCenterCoord.longitude()); m_startCoord.setLatitude(m_startCoord.latitude() + startCoord.latitude() - @@ -1630,7 +1669,7 @@ case flickInactive: if (!isTiltActive() && canStartPan()) { // Update startCoord_ to ensure smooth start for panning when going over startDragDistance - QGeoCoordinate newStartCoord = m_map->geoProjection().itemPositionToCoordinate(QDoubleVector2D(m_touchPointsCentroid), false); + QGeoCoordinate newStartCoord = m_declarativeMap->toCoordinate(m_touchPointsCentroid, false); m_startCoord.setLongitude(newStartCoord.longitude()); m_startCoord.setLatitude(newStartCoord.latitude()); m_declarativeMap->setKeepMouseGrab(true); @@ -1686,7 +1725,8 @@ */ bool QQuickGeoMapGestureArea::canStartPan() { - if (m_allPoints.count() == 0 || (m_acceptedGestures & PanGesture) == 0) + if (m_allPoints.count() == 0 || (m_acceptedGestures & PanGesture) == 0 + || (m_mousePoint && m_mousePoint->state() == Qt::TouchPointReleased)) // mouseReleaseEvent handling does not clear m_mousePoint, only ungrabMouse does -- QTBUG-66534 return false; // Check if thresholds for normal panning are met. @@ -1705,8 +1745,7 @@ */ void QQuickGeoMapGestureArea::updatePan() { - QGeoCoordinate animationStartCoordinate = anchorCoordinateToPoint(*m_map, m_startCoord, m_touchPointsCentroid); - m_declarativeMap->setCenter(animationStartCoordinate); + m_declarativeMap->alignCoordinateToPoint(m_startCoord, m_touchPointsCentroid); } /*! diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativecategory.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativecategory.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativecategory.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativecategory.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -53,7 +53,7 @@ \ingroup qml-QtLocation5-places \ingroup qml-QtLocation5-places-data - \since Qt Location 5.5 + \since QtLocation 5.5 \brief The Category type represents a category that a \l Place can be associated with. diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativecontactdetail.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativecontactdetail.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativecontactdetail.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativecontactdetail.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -44,7 +44,7 @@ \inqmlmodule QtLocation \ingroup qml-QtLocation5-places \ingroup qml-QtLocation5-places-data - \since Qt Location 5.5 + \since QtLocation 5.5 \brief The ContactDetails type holds contact details for a \l Place. @@ -122,7 +122,7 @@ \inqmlmodule QtLocation \ingroup qml-QtLocation5-places \ingroup qml-QtLocation5-places-data - \since Qt Location 5.5 + \since QtLocation 5.5 \brief The ContactDetail type holds a contact detail such as a phone number or a website address. diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativeplaceattribute.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativeplaceattribute.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativeplaceattribute.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativeplaceattribute.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -44,7 +44,7 @@ \inqmlmodule QtLocation \ingroup qml-QtLocation5-places \ingroup qml-QtLocation5-places-data - \since Qt Location 5.5 + \since QtLocation 5.5 \brief The ExtendedAttributes type holds additional data about a \l Place. @@ -124,7 +124,7 @@ \inqmlmodule QtLocation \ingroup qml-QtLocation5-places \ingroup qml-QtLocation5-places-data - \since Qt Location 5.5 + \since QtLocation 5.5 \brief The PlaceAttribute type holds generic place attribute information. diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativeplace.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativeplace.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativeplace.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativeplace.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -60,7 +60,7 @@ \inqmlmodule QtLocation \ingroup qml-QtLocation5-places \ingroup qml-QtLocation5-places-data - \since Qt Location 5.5 + \since QtLocation 5.5 \brief The Place type represents a location that is a position of interest. @@ -385,7 +385,7 @@ m_src.content(QPlaceContent::EditorialType)); } - synchronizeExtendedAttributes(); + pullExtendedAttributes(); synchronizeContacts(); } @@ -1076,7 +1076,7 @@ /*! \internal */ -void QDeclarativePlace::synchronizeExtendedAttributes() +void QDeclarativePlace::pullExtendedAttributes() { QStringList keys = m_extendedAttributes->keys(); foreach (const QString &key, keys) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativeplaceeditorialmodel.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativeplaceeditorialmodel.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativeplaceeditorialmodel.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativeplaceeditorialmodel.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -47,7 +47,7 @@ \inqmlmodule QtLocation \ingroup qml-QtLocation5-places \ingroup qml-QtLocation5-places-models - \since Qt Location 5.5 + \since QtLocation 5.5 \brief The EditorialModel type provides a model of place editorials. diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativeplaceicon.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativeplaceicon.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativeplaceicon.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativeplaceicon.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -50,7 +50,7 @@ \inqmlmodule QtLocation \ingroup qml-QtLocation5-places \ingroup qml-QtLocation5-places-data - \since Qt Location 5.5 + \since QtLocation 5.5 \brief The Icon type represents an icon image source which can have multiple sizes. diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativeplaceimagemodel.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativeplaceimagemodel.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativeplaceimagemodel.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativeplaceimagemodel.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -48,7 +48,7 @@ \inqmlmodule QtLocation \ingroup qml-QtLocation5-places \ingroup qml-QtLocation5-places-models - \since Qt Location 5.5 + \since QtLocation 5.5 \brief The ImageModel type provides a model of place images. diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativeplace_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativeplace_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativeplace_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativeplace_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -216,7 +216,7 @@ void cleanupDeletedCategories(); private: void synchronizeCategories(); - void synchronizeExtendedAttributes(); + void pullExtendedAttributes(); void synchronizeContacts(); void primarySignalsEmission(const QString &type = QString()); QString primaryValue(const QString &contactType) const; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativeplaceuser.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativeplaceuser.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativeplaceuser.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativeplaceuser.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -44,7 +44,7 @@ \inqmlmodule QtLocation \ingroup qml-QtLocation5-places \ingroup qml-QtLocation5-places-data - \since Qt Location 5.5 + \since QtLocation 5.5 \brief The User type identifies a user who contributed a particular \l Place content item. diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativeratings.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativeratings.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativeratings.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativeratings.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -44,7 +44,7 @@ \inqmlmodule QtLocation \ingroup qml-QtLocation5-places \ingroup qml-QtLocation5-places-data - \since Qt Location 5.5 + \since QtLocation 5.5 \brief The Ratings type holds place rating information. diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativereviewmodel.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativereviewmodel.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativereviewmodel.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativereviewmodel.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -48,7 +48,7 @@ \inqmlmodule QtLocation \ingroup qml-QtLocation5-places \ingroup qml-QtLocation5-places-models - \since Qt Location 5.5 + \since QtLocation 5.5 \brief Provides access to reviews of a \l Place. diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativesearchmodelbase.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativesearchmodelbase.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativesearchmodelbase.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativesearchmodelbase.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -45,6 +45,7 @@ #include #include #include +#include QT_BEGIN_NAMESPACE @@ -89,6 +90,8 @@ return QVariant::fromValue(QGeoRectangle(s)); else if (s.type() == QGeoShape::CircleType) return QVariant::fromValue(QGeoCircle(s)); + else if (s.type() == QGeoShape::PolygonType) + return QVariant::fromValue(QGeoPolygon(s)); else return QVariant::fromValue(s); } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativesearchresultmodel.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativesearchresultmodel.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativesearchresultmodel.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativesearchresultmodel.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -56,7 +56,7 @@ \inqmlmodule QtLocation \ingroup qml-QtLocation5-places \ingroup qml-QtLocation5-places-models - \since Qt Location 5.5 + \since QtLocation 5.5 \brief Provides access to place search results. @@ -801,7 +801,7 @@ } /*! - \qmlmethod void PlaceSearchModel::data(int index, string role) + \qmlmethod Variant PlaceSearchModel::data(int index, string role) Returns the data for a given \a role at the specified row \a index. */ diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativesearchsuggestionmodel.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativesearchsuggestionmodel.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativesearchsuggestionmodel.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativesearchsuggestionmodel.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -51,7 +51,7 @@ \inqmlmodule QtLocation \ingroup qml-QtLocation5-places \ingroup qml-QtLocation5-places-models - \since Qt Location 5.5 + \since QtLocation 5.5 \brief Provides access to search term suggestions. diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativesupplier.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativesupplier.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativesupplier.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativesupplier.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -46,7 +46,7 @@ \inqmlmodule QtLocation \ingroup qml-QtLocation5-places \ingroup qml-QtLocation5-places-data - \since Qt Location 5.5 + \since QtLocation 5.5 \brief Holds data regarding the supplier of a place, a place's image, review, or editorial. diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativesupportedcategoriesmodel.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativesupportedcategoriesmodel.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/declarativeplaces/qdeclarativesupportedcategoriesmodel.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/declarativeplaces/qdeclarativesupportedcategoriesmodel.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -53,7 +53,7 @@ \inqmlmodule QtLocation \ingroup qml-QtLocation5-places \ingroup qml-QtLocation5-places-models - \since Qt Location 5.5 + \since QtLocation 5.5 \brief The CategoryModel type provides a model of the categories supported by a \l Plugin. diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/doc/qtlocation.qdocconf qtlocation-opensource-src-5.11.1+dfsg/src/location/doc/qtlocation.qdocconf --- qtlocation-opensource-src-5.9.5+dfsg/src/location/doc/qtlocation.qdocconf 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/doc/qtlocation.qdocconf 2018-06-12 18:44:12.000000000 +0000 @@ -16,7 +16,7 @@ qhp.QtLocation.filterAttributes = qtlocation $QT_VERSION qtrefdoc qhp.QtLocation.customFilters.Qt.name = QtLocation $QT_VERSION -qhp.QtLocation.customFilters.Qt.filterAttributes = qtLocation $QT_VERSION +qhp.QtLocation.customFilters.Qt.filterAttributes = qtlocation $QT_VERSION qhp.QtLocation.subprojects = classes qml examples qhp.QtLocation.subprojects.classes.title = C++ Classes qhp.QtLocation.subprojects.classes.indexTitle = Qt Location C++ Classes @@ -32,17 +32,19 @@ tagfile = ../../../doc/qtlocation/qtlocation.tags -depends += qtcore qtdoc qtquick qtqml qtnetwork qtpositioning qtquickcontrols +depends += qtcore qtdoc qtgui qtquick qtqml qtnetwork qtpositioning qtquickcontrols qtlinguist -headerdirs += .. \ +headerdirs += .. \ ../../imports/location -sourcedirs += .. \ +sourcedirs += .. \ ../../imports/location \ ../../plugins/geoservices/nokia examplesinstallpath = location +manifestmeta.highlighted.names = "QtLocation/Map Viewer (QML)" + exampledirs += ../../../examples/location \ snippets/ diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/doc/src/plugins/esri.qdoc qtlocation-opensource-src-5.11.1+dfsg/src/location/doc/src/plugins/esri.qdoc --- qtlocation-opensource-src-5.9.5+dfsg/src/location/doc/src/plugins/esri.qdoc 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/doc/src/plugins/esri.qdoc 2018-06-12 18:44:12.000000000 +0000 @@ -3,9 +3,9 @@ ** Copyright (C) 2013-2016 Esri ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the QtLocation module of the Qt Toolkit. +** This file is part of the documentation of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL$ +** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the @@ -14,25 +14,13 @@ ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** +** GNU Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/doc/src/plugins/mapboxgl.qdoc qtlocation-opensource-src-5.11.1+dfsg/src/location/doc/src/plugins/mapboxgl.qdoc --- qtlocation-opensource-src-5.9.5+dfsg/src/location/doc/src/plugins/mapboxgl.qdoc 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/doc/src/plugins/mapboxgl.qdoc 2018-06-12 18:44:12.000000000 +0000 @@ -176,6 +176,8 @@ \li A style data \l {https://www.mapbox.com/mapbox-gl-js/style-spec/#sources}{source}. When using a source of \b sourceType \l {https://www.mapbox.com/mapbox-gl-js/style-spec/#sources-geojson}{geojson}, the \b data property can be both inlined or sourced from qrc. + \li Supported source types are: \b vector, \b raster, \b raster-dem and \b geojson. +'geojson'. \row \li layer \li Adds a new \l {https://www.mapbox.com/mapbox-gl-js/style-spec/#layers}{style layer} to the map. On a Mapbox GL map, diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/doc/src/plugins/mapbox.qdoc qtlocation-opensource-src-5.11.1+dfsg/src/location/doc/src/plugins/mapbox.qdoc --- qtlocation-opensource-src-5.9.5+dfsg/src/location/doc/src/plugins/mapbox.qdoc 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/doc/src/plugins/mapbox.qdoc 2018-06-12 18:44:12.000000000 +0000 @@ -66,6 +66,10 @@ \li Parameter \li Description \row + \li mapbox.enterprise + \li Boolean representing whether the access token comes from a + \l{https://www.mapbox.com/enterprise}{Mapbox Enterprise} account. +\row \li mapbox.mapping.map_id, mapbox.map_id (\b deprecated) \li \l{https://www.mapbox.com/help/define-map-id/}{ID} of the Mapbox map to show. An example ID is "examples.map-zr0njcqy". If this parameter is present, the specified map type will be used by default, unless another is selected. @@ -149,5 +153,19 @@ \tt{OneNeighbourLayer} only prefetches the one layer closest to the current zoom level. Finally, \tt{NoPrefetching} allows to disable the prefetching, so only tiles that are visible will be fetched. Note that, depending on the active map type, this hint might be ignored. +\row + \li mapbox.routing.use_mapbox_text_instructions + \li Whether to use the instruction text that came with the response from the server (true) or the + text generated by the plugin. The default value is true. + Note that if instructions in a language that is not directly supported by Mapbox are needed (see + \l{https://www.mapbox.com/api-documentation/#instructions-languages}{here} for the supported languages), + it is possible to use the \l{Qt Linguist} to translate QtLocation to the desired language, and set this parameter to + false in order to use the translated built-in instructions. \endtable + +\section1 Extra routing attributes + +When using this plugin, the RouteManeuver objects in the returned route may contain additional extended attributes (see \l RouteManeuver::extendedAttributes), +where available. +These attributes are described in detail in the official \l{https://www.mapbox.com/api-documentation/#stepmaneuver-object}{Mapbox direction API documentation}. */ diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/doc/src/plugins/osm.qdoc qtlocation-opensource-src-5.11.1+dfsg/src/location/doc/src/plugins/osm.qdoc --- qtlocation-opensource-src-5.9.5+dfsg/src/location/doc/src/plugins/osm.qdoc 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/doc/src/plugins/osm.qdoc 2018-06-12 18:44:12.000000000 +0000 @@ -61,77 +61,11 @@ \li Parameter \li Description \row - \li osm.useragent - \li User agent string set when making network requests. This parameter should be set to a - value that uniquely identifies the application. Note that providers might block applications not setting this - parameter, leaving it to the stock plugin user agent (e.g., \l {http://wiki.openstreetmap.org/wiki/Nominatim_usage_policy}{Nominatim} - for geocoding) -\row - \li osm.mapping.custom.host - \li Url string of a custom tile server. This parameter should be set to a valid server url offering the correct osm API. - To use this server, the \l{Map::activeMapType} parameter of the \l Map should be set to the supported map type - whose type is \l{MapType}.CustomMap. - This map type is only be available if this plugin parameter is set, in which case it is - always \l{Map::supportedMapTypes}[supportedMapTypes.length - 1]. - \note Setting the mapping.custom.host parameter to a new server renders the map tile cache useless for the old custommap style. -\row - \li osm.mapping.custom.mapcopyright - \li Custom map copryright string is used when setting the \l{Map::activeMapType} to \l{MapType}.CustomMap via urlprefix parameter. - This copyright will only be used when using the CustomMap from above. If empty no map copyright will be displayed for the custom map. -\row - \li osm.mapping.custom.datacopyright - \li Custom data copryright string is used when setting the \l{Map::activeMapType} to \l{MapType}.CustomMap via urlprefix parameter. - This copyright will only be used when using the CustomMap from above. If empty no data copyright will be displayed for the custom map. -\row - \li osm.mapping.providersrepository.address - \li The OpenStreetMap plugin retrieves the provider's information from a remote repository. This is done to prevent using hardcoded - servers by default, which may become unavailable. By default this information is fetched from \l {http://maps-redirect.qt.io} {maps-redirect.qt.io}. - Setting this parameter changes the provider repository address to a user-specified one, which must contain the files - \tt{street}, \tt{satellite}, \tt{cycle}, \tt{transit}, \tt{night-transit}, \tt{terrain} and \tt{hiking}, each of which must contain valid provider information. -\row - \li osm.mapping.providersrepository.disabled - \li By default, the OpenStreetMap plugin retrieves the provider's information from a remote repository to avoid a loss of service due to unavailability of hardcoded services. - The plugin, however, still contains fallback hardcoded provider data, in case the provider repository becomes unreachable. - Setting this parameter to \b true makes the plugin use the hardcoded urls only and therefore prevents the plugin from fetching provider data from the remote repository. -\row - \li osm.mapping.highdpi_tiles - \li Whether or not to request high dpi tiles. Valid values are \b true and \b false. The default value is \b false. - Please note that not all map types are available in high dpi. Setting this parameter to true might even have no effect if - no map type is available in high dpi at the moment. Provider information files for high dpi tiles are named - \tt{street-hires}, \tt{satellite-hires}, \tt{cycle-hires}, \tt{transit-hires}, \tt{night-transit-hires}, \tt{terrain-hires} and \tt{hiking-hires}. - These are fetched from the same location used for the low dpi counterparts. -\row - \li osm.mapping.prefetching_style - \li This parameter allows to provide a hint how tile prefetching is to be performed by the engine. The default value, - \tt{TwoNeighbourLayers}, makes the engine prefetch tiles for the layer above and the one below the current tile - layer, providing ready tiles when zooming in or out from the current zoom level. - \tt{OneNeighbourLayer} only prefetches the one layer closest to the current zoom level. - Finally, \tt{NoPrefetching} allows to disable the prefetching, so only tiles that are visible will be fetched. - Note that, depending on the active map type, this hint might be ignored. -\row - \li osm.routing.host - \li Url string set when making network requests to the routing server. This parameter should be set to a - valid server url with the correct osrm API. If not specified the default \l {http://router.project-osrm.org/route/v1/driving/}{url} will be used. - \note The API documentation and sources are available at \l {http://project-osrm.org/}{Project OSRM}. - -\row - \li osm.routing.apiversion - \li String defining the api version of the (custom) OSRM server. Valid values are \b{v4} and \b{v5}. The default is \b{v5}. - This parameter should be set only if \tt{osm.routing.host} is set, and is an OSRM v4 server. - -\row \li osm.geocoding.host \li Url string set when making network requests to the geocoding server. This parameter should be set to a valid server url with the correct osm API. If not specified the default \l {http://nominatim.openstreetmap.org/}{url} will be used. \note The API documentation is available at \l {https://wiki.openstreetmap.org/wiki/Nominatim}{Project OSM Nominatim}. \row - \li osm.places.host - \li Url string set when making network requests to the places server. - This parameter should be set to a valid server url with the correct osm API. - If not specified the default \l {http://nominatim.openstreetmap.org/search}{url} - will be used. - \note The API documentation is available at \l {https://wiki.openstreetmap.org/wiki/Nominatim}{Project OSM Nominatim}. -\row \li osm.mapping.cache.directory \li Absolute path to map tile cache directory used as network disk cache. @@ -139,13 +73,6 @@ QStandardPaths::writableLocation(), called with QStandardPaths::GenericCacheLocation as a parameter. On systems that have no concept of a shared cache, the application-specific \l{QStandardPaths::CacheLocation} is used instead. \row - \li osm.mapping.offline.directory - \li Absolute path to a directory containing map tiles used as an offline storage. If specified, it will work together with the network disk cache, but tiles won't get automatically - inserted, removed or updated. The format of the tiles is the same used by the network disk cache. - - There is no default value, and if this property is not set, no directory will be indexed and only the network disk cache will be used - to reduce network usage or to act as an offline storage for the currently cached tiles. -\row \li osm.mapping.cache.disk.cost_strategy \li The cost strategy to use to cache map tiles on disk. Valid values are \b bytesize and \b unitary. @@ -184,7 +111,87 @@ Note that the texture cache has a hard minimum size which depends on the size of the map viewport (it must contain enough data to display the tiles currently visible on the display). This value is the amount of cache to be used in addition to the bare minimum. +\row + \li osm.mapping.custom.datacopyright + \li Custom data copryright string is used when setting the \l{Map::activeMapType} to \l{MapType}.CustomMap via urlprefix parameter. + This copyright will only be used when using the CustomMap from above. If empty no data copyright will be displayed for the custom map. +\row + \li osm.mapping.custom.host + \li Url string of a custom tile server. This parameter should be set to a valid server url offering the correct osm API. + To use this server, the \l{Map::activeMapType} parameter of the \l Map should be set to the supported map type + whose type is \l{MapType}.CustomMap. + This map type is only be available if this plugin parameter is set, in which case it is + always \l{Map::supportedMapTypes}[supportedMapTypes.length - 1]. + \note Setting the mapping.custom.host parameter to a new server renders the map tile cache useless for the old custommap style. +\row + \li osm.mapping.custom.mapcopyright + \li Custom map copryright string is used when setting the \l{Map::activeMapType} to \l{MapType}.CustomMap via urlprefix parameter. + This copyright will only be used when using the CustomMap from above. If empty no map copyright will be displayed for the custom map. +\row + \li osm.mapping.highdpi_tiles + \li Whether or not to request high dpi tiles. Valid values are \b true and \b false. The default value is \b false. + Please note that not all map types are available in high dpi. Setting this parameter to true might even have no effect if + no map type is available in high dpi at the moment. Provider information files for high dpi tiles are named + \tt{street-hires}, \tt{satellite-hires}, \tt{cycle-hires}, \tt{transit-hires}, \tt{night-transit-hires}, \tt{terrain-hires} and \tt{hiking-hires}. + These are fetched from the same location used for the low dpi counterparts. +\row + \li osm.mapping.offline.directory + \li Absolute path to a directory containing map tiles used as an offline storage. If specified, it will work together with the network disk cache, but tiles won't get automatically + inserted, removed or updated. The format of the tiles is the same used by the network disk cache. + There is no default value, and if this property is not set, no directory will be indexed and only the network disk cache will be used + to reduce network usage or to act as an offline storage for the currently cached tiles. +\row + \li osm.mapping.prefetching_style + \li This parameter allows to provide a hint how tile prefetching is to be performed by the engine. The default value, + \tt{TwoNeighbourLayers}, makes the engine prefetch tiles for the layer above and the one below the current tile + layer, providing ready tiles when zooming in or out from the current zoom level. + \tt{OneNeighbourLayer} only prefetches the one layer closest to the current zoom level. + Finally, \tt{NoPrefetching} allows to disable the prefetching, so only tiles that are visible will be fetched. + Note that, depending on the active map type, this hint might be ignored. +\row + \li osm.mapping.providersrepository.address + \li The OpenStreetMap plugin retrieves the provider's information from a remote repository. This is done to prevent using hardcoded + servers by default, which may become unavailable. By default this information is fetched from \l {http://maps-redirect.qt.io} {maps-redirect.qt.io}. + Setting this parameter changes the provider repository address to a user-specified one, which must contain the files + \tt{street}, \tt{satellite}, \tt{cycle}, \tt{transit}, \tt{night-transit}, \tt{terrain} and \tt{hiking}, each of which must contain valid provider information. +\row + \li osm.mapping.providersrepository.disabled + \li By default, the OpenStreetMap plugin retrieves the provider's information from a remote repository to avoid a loss of service due to unavailability of hardcoded services. + The plugin, however, still contains fallback hardcoded provider data, in case the provider repository becomes unreachable. + Setting this parameter to \b true makes the plugin use the hardcoded urls only and therefore prevents the plugin from fetching provider data from the remote repository. + +\row + \li osm.places.debug_query + \li Set this parameter to true to have an extended attribute in each result named "requestUrl", and containing the + url used for the query. Default is \b false. +\row + \li osm.places.host + \li Url string set when making network requests to the places server. + This parameter should be set to a valid server url with the correct osm API. + If not specified the default \l {http://nominatim.openstreetmap.org/search}{url} + will be used. + \note The API documentation is available at \l {https://wiki.openstreetmap.org/wiki/Nominatim}{Project OSM Nominatim}. +\row + \li osm.places.page_size + \li The amount of results in a page. Note that this value might be clamped server side. The typical maximum in standard + nominatim instances is 50. + +\row + \li osm.routing.apiversion + \li String defining the api version of the (custom) OSRM server. Valid values are \b{v4} and \b{v5}. The default is \b{v5}. + This parameter should be set only if \tt{osm.routing.host} is set, and is an OSRM v4 server. +\row + \li osm.routing.host + \li Url string set when making network requests to the routing server. This parameter should be set to a + valid server url with the correct osrm API. If not specified the default \l {http://router.project-osrm.org/route/v1/driving/}{url} will be used. + \note The API documentation and sources are available at \l {http://project-osrm.org/}{Project OSRM}. +\row + \li osm.useragent + \li User agent string set when making network requests. This parameter should be set to a + value that uniquely identifies the application. Note that providers might block applications not setting this + parameter, leaving it to the stock plugin user agent (e.g., \l {http://wiki.openstreetmap.org/wiki/Nominatim_usage_policy}{Nominatim} + for geocoding) \endtable \section1 Parameter Usage Example diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/doc/src/plugins/places-backend.qdoc qtlocation-opensource-src-5.11.1+dfsg/src/location/doc/src/plugins/places-backend.qdoc --- qtlocation-opensource-src-5.9.5+dfsg/src/location/doc/src/plugins/places-backend.qdoc 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/doc/src/plugins/places-backend.qdoc 2018-06-12 18:44:12.000000000 +0000 @@ -66,7 +66,7 @@ The protected functions of QPlaceSearchReply::setResults() and QPlaceSearchReply::setRequest() are made publicly accessible so the plugin can assign results and requests. Because -these functions are not publically exported, accessibility is not so much of an issue. +these functions are not publicly exported, accessibility is not so much of an issue. An alternative would have been to declare a friend class in SearchReply. Typically the engine instance would be made the \c parent of the reply. If the developer diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/doc/src/qtlocation.qdoc qtlocation-opensource-src-5.11.1+dfsg/src/location/doc/src/qtlocation.qdoc --- qtlocation-opensource-src-5.9.5+dfsg/src/location/doc/src/qtlocation.qdoc 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/doc/src/qtlocation.qdoc 2018-06-12 18:44:12.000000000 +0000 @@ -84,8 +84,8 @@ To load the Qt Location module, add the following statement to your .qml files \code - import QtPositioning 5.5 - import QtLocation 5.6 + import QtPositioning 5.11 + import QtLocation 5.11 \endcode The QtLocation QML module depends on the QtPositioning QML module. diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/doc/src/qtlocation-qml.qdoc qtlocation-opensource-src-5.11.1+dfsg/src/location/doc/src/qtlocation-qml.qdoc --- qtlocation-opensource-src-5.9.5+dfsg/src/location/doc/src/qtlocation-qml.qdoc 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/doc/src/qtlocation-qml.qdoc 2018-06-12 18:44:12.000000000 +0000 @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \qmlmodule QtLocation 5.3 + \qmlmodule QtLocation 5.11 \title Qt Location QML Types \ingroup qmlmodules \brief Provides QML types for mapping and location information diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/labs.pri qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/labs.pri --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/labs.pri 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/labs.pri 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,4 @@ +INCLUDEPATH += labs + +PRIVATE_HEADERS += $$files($$PWD/*.h) $$files($$PWD/qsg/*.h) +SOURCES += $$files($$PWD/*.cpp) $$files($$PWD/qsg/*.cpp) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qdeclarativenavigator.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qdeclarativenavigator.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qdeclarativenavigator.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qdeclarativenavigator.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,391 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 or (at your option) any later version +** approved by the KDE Free Qt Foundation. The licenses are as published by +** the Free Software Foundation and appearing in the file LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qdeclarativenavigator_p.h" +#include "qdeclarativenavigator_p_p.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +/*! + \qmltype Navigator + \instantiates QDeclarativeNavigator + \inqmlmodule Qt.labs.location + \ingroup qml-QtLocation5-maps + + \brief The Navigator type offers functionalities to perform turn-by-turn navigation. + + The Navigator purpose is to use a plugin's turn-by-turn navigation implementation in a QML + application in a seamless manner. + This object may take control of the map position, orientation, tilting and zoom, as well as changing + the map style, elements on the map such as direction information. + In certain cases, it may also restrict user interaction with the Map and with the items on it. +*/ + +/*! + \qmlproperty Plugin Qt.labs.location::Navigator::plugin + + This property holds the plugin which provides the navigation functionality. + + This is a write-once property. Once the Navigator has a plugin associated with + it, any attempted modifications of the plugin property will be ignored. + + \sa Plugin +*/ + +/*! + \qmlproperty Map Qt.labs.location::Navigator::map + + This property holds the Map that the navigator is in charge of controlling. + + This is a write-once property. Once the Navigator has a Map associated with + it, any attempted modifications of the map property will be ignored. + + \sa Map +*/ + +/*! + \qmlproperty Route Qt.labs.location::Navigator::route + + This property holds the Route that the navigator is supposed to use + to perform the navigation. + + \note + This property is not necessarily the same as \l currentRoute. + currentRoute may differ, during routing, for various reasons. + It is reasonable to assume, however, that currentRoute's destination + will be the same as route's destination. + Setting this property while a navigation session is ongoing will + stop the navigation. + + \sa Route +*/ + +/*! + \qmlproperty PositionSource Qt.labs.location::Navigator::positionSource + + This property holds the PositionSource that the navigator will receive position + updates from to perform the navigation. + + This is a write-once property. Once the Navigator has a PositionSource associated with + it, any attempted modifications of the positionSource property will be ignored. + + \sa PositionSource +*/ + +/*! + \qmlproperty bool Qt.labs.location::Navigator::active + + This property tells whether the Navigator is navigating or not. + Set this property to \c true to start the navigation. + Set it to \c false to stop an active navigation session. +*/ + +/*! + \qmlproperty bool Qt.labs.location::Navigator::navigatorReady + + This read-only property tells whether the navigator is ready + to start the navigation or not. + A Navigator becomes ready once the plugin is attached and a navigation engine has been + instantiated, and the other required properties are set to valid values. +*/ + +/*! + \qmlproperty Route Qt.labs.location::Navigator::currentRoute + + This read-only property holds the current route the navigator following. + This can be the same as \l route, or can be different, if the navigator + cannot follow the user-specified route. + For example if the position coming from \l positionSource is considerably + off route, the navigation engine might recalculate and start following a + new route. + + \sa Route +*/ + +/*! + \qmlproperty int Qt.labs.location::Navigator::currentSegment + + This read-only property holds the index of the current RouteSegment in the \l currentRoute. + + \sa RouteSegment +*/ + +/*! + \qmlsignal Qt.labs.location::Navigator::waypointReached(Waypoint waypoint) + + This signal is emitted when the waypoint \e waypoint has been reached. + + \sa Waypoint +*/ + +/*! + \qmlsignal Qt.labs.location::Navigator::destinationReached() + + This signal is emitted when the last waypoint of the route, the destination, + has been reached. +*/ + +QDeclarativeNavigatorPrivate::QDeclarativeNavigatorPrivate(QParameterizableObject *q_) + : q(q_) +{ +} + + +QDeclarativeNavigator::QDeclarativeNavigator(QObject *parent) + : QParameterizableObject(parent), d_ptr(new QDeclarativeNavigatorPrivate(this)) +{ +} + +QDeclarativeNavigator::~QDeclarativeNavigator() +{ +} + +void QDeclarativeNavigator::classBegin() +{ +} + +void QDeclarativeNavigator::componentComplete() +{ + d_ptr->m_completed = true; + // Children have been completed + d_ptr->m_parameters = quickChildren(); + if (d_ptr->m_plugin && d_ptr->m_plugin->isAttached()) + pluginReady(); +} + +QDeclarativeGeoServiceProvider *QDeclarativeNavigator::plugin() const +{ + return d_ptr->m_plugin; +} + +void QDeclarativeNavigator::setMap(QDeclarativeGeoMap *map) +{ + if (d_ptr->m_map) // set once prop + return; + + d_ptr->m_map = map; + emit mapChanged(); + updateReadyState(); +} + +QDeclarativeGeoMap *QDeclarativeNavigator::map() const +{ + return d_ptr->m_map; +} + +void QDeclarativeNavigator::setRoute(QDeclarativeGeoRoute *route) +{ + if (d_ptr->m_route == route) // This isn't set-once + return; + + const bool isReady = d_ptr->m_navigationManager && d_ptr->m_navigationManager->ready(); + const bool isActive = active(); + if (isReady && isActive) + setActive(false); // Stop current session + + d_ptr->m_route = route; + emit routeChanged(); + updateReadyState(); +} + +QDeclarativeGeoRoute *QDeclarativeNavigator::route() const +{ + return d_ptr->m_route; +} + +void QDeclarativeNavigator::setPositionSource(QDeclarativePositionSource *positionSource) +{ + if (d_ptr->m_positionSource) // set once prop + return; + + d_ptr->m_positionSource = positionSource; + emit positionSourceChanged(); + updateReadyState(); +} + +QDeclarativePositionSource *QDeclarativeNavigator::positionSource() const +{ + return d_ptr->m_positionSource; +} + +QNavigationManager *QDeclarativeNavigator::navigationManager() const +{ + return d_ptr->m_navigationManager; +} + +bool QDeclarativeNavigator::navigatorReady() const +{ + if (d_ptr->m_navigationManager) + return d_ptr->m_navigationManager->ready(); + return d_ptr->m_ready; +} + +QDeclarativeGeoRoute *QDeclarativeNavigator::currentRoute() const +{ + if (!d_ptr->m_ready || !d_ptr->m_navigationManager->active()) + return d_ptr->m_route; + return d_ptr->m_currentRoute; +} + +int QDeclarativeNavigator::currentSegment() const +{ + if (!d_ptr->m_ready || !d_ptr->m_navigationManager->active()) + return 0; + return d_ptr->m_currentSegment; +} + +bool QDeclarativeNavigator::active() const +{ + return d_ptr->m_active; +} + +void QDeclarativeNavigator::setPlugin(QDeclarativeGeoServiceProvider *plugin) +{ + if (d_ptr->m_plugin) + return; // set once property. + + d_ptr->m_plugin = plugin; + emit pluginChanged(); + + if (d_ptr->m_plugin->isAttached()) { + pluginReady(); + } else { + connect(d_ptr->m_plugin, &QDeclarativeGeoServiceProvider::attached, + this, &QDeclarativeNavigator::pluginReady); + } +} + +void QDeclarativeNavigator::setActive(bool active) +{ + if (d_ptr->m_active == active) + return; + + d_ptr->m_active = active; + if (!d_ptr->m_plugin) + return; + + if (active) + start(); + else + stop(); +} + +void QDeclarativeNavigator::start() +{ + if (!d_ptr->m_ready) { + qmlWarning(this) << QStringLiteral("Navigation manager not ready."); + return; + } + + if (!d_ptr->m_navigationManager->active()) + d_ptr->m_active = d_ptr->m_navigationManager->start(); +} + +void QDeclarativeNavigator::stop() +{ + if (!ensureEngine()) { // If somebody re-set route to null or something, this may become !d_ptr->m_ready + qmlWarning(this) << QStringLiteral("Navigation manager not ready."); + return; + } + + if (d_ptr->m_navigationManager->active()) + d_ptr->m_active = d_ptr->m_navigationManager->stop(); +} + +void QDeclarativeNavigator::pluginReady() +{ + if (!d_ptr->m_completed) + return; + + ensureEngine(); + updateReadyState(); + if (d_ptr->m_active) + start(); +} + +bool QDeclarativeNavigator::ensureEngine() +{ + if (d_ptr->m_navigationManager) + return true; + if (!d_ptr->m_completed || !d_ptr->m_plugin->isAttached()) + return false; + + d_ptr->m_navigationManager = d_ptr->m_plugin->sharedGeoServiceProvider()->navigationManager(); + if (d_ptr->m_navigationManager) { + d_ptr->m_navigationManager->setNavigator(d_ptr.data()); + d_ptr->m_navigationManager->setParameters(d_ptr->m_parameters); + connect(d_ptr->m_navigationManager, &QNavigationManager::waypointReached, this, &QDeclarativeNavigator::waypointReached); + connect(d_ptr->m_navigationManager, &QNavigationManager::destinationReached, this, &QDeclarativeNavigator::destinationReached); + connect(d_ptr->m_navigationManager, &QNavigationManager::currentRouteChanged, this, &QDeclarativeNavigator::onCurrentRouteChanged); + connect(d_ptr->m_navigationManager, &QNavigationManager::currentSegmentChanged, this, &QDeclarativeNavigator::onCurrentSegmentChanged); + connect(d_ptr->m_navigationManager, &QNavigationManager::activeChanged, this, [this](bool active){ + d_ptr->m_active = active; + emit activeChanged(active); + }); + emit navigatorReadyChanged(true); + return true; + } + return false; +} + +void QDeclarativeNavigator::updateReadyState() { + const bool oldReady = d_ptr->m_ready; + if (!d_ptr->m_navigationManager) + d_ptr->m_ready = false; + else + d_ptr->m_ready = d_ptr->m_navigationManager->ready(); + + if (oldReady != d_ptr->m_ready) + emit navigatorReadyChanged(d_ptr->m_ready); +} + +void QDeclarativeNavigator::onCurrentRouteChanged(const QGeoRoute &route) +{ + if (d_ptr->m_currentRoute) + d_ptr->m_currentRoute->deleteLater(); + d_ptr->m_currentRoute = new QDeclarativeGeoRoute(route, this); + emit currentRouteChanged(); +} + +void QDeclarativeNavigator::onCurrentSegmentChanged(int segment) +{ + d_ptr->m_currentSegment = segment; + emit currentSegmentChanged(); +} + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qdeclarativenavigator_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qdeclarativenavigator_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qdeclarativenavigator_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qdeclarativenavigator_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,146 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QDECLARATIVENAVIGATOR_P_H +#define QDECLARATIVENAVIGATOR_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QDeclarativeGeoServiceProvider; +class QDeclarativeGeoMap; +class QNavigationManager; +class QDeclarativeGeoRoute; +class QDeclarativePositionSource; +class QDeclarativeGeoWaypoint; +class QGeoRoute; +class QGeoRouteSegment; +class QDeclarativeNavigatorPrivate; +class QDeclarativeGeoRouteSegment; + +class Q_LOCATION_PRIVATE_EXPORT QDeclarativeNavigator : public QParameterizableObject, public QQmlParserStatus +{ + Q_OBJECT + Q_PROPERTY(QDeclarativeGeoServiceProvider *plugin READ plugin WRITE setPlugin NOTIFY pluginChanged) + Q_PROPERTY(QDeclarativeGeoMap *map READ map WRITE setMap NOTIFY mapChanged) + Q_PROPERTY(QDeclarativeGeoRoute *route READ route WRITE setRoute NOTIFY routeChanged) + Q_PROPERTY(QDeclarativePositionSource *positionSource READ positionSource WRITE setPositionSource NOTIFY positionSourceChanged) + Q_PROPERTY(bool active READ active WRITE setActive NOTIFY activeChanged) + Q_PROPERTY(bool navigatorReady READ navigatorReady NOTIFY navigatorReadyChanged) + Q_PROPERTY(QDeclarativeGeoRoute *currentRoute READ currentRoute NOTIFY currentRouteChanged) + Q_PROPERTY(int currentSegment READ currentSegment NOTIFY currentSegmentChanged) + Q_INTERFACES(QQmlParserStatus) + +public: + explicit QDeclarativeNavigator(QObject *parent = nullptr); + ~QDeclarativeNavigator(); + + // QQmlParserStatus interface + void classBegin() override; + void componentComplete() override; + + // QDeclarativeNavigator + void start(); + void stop(); + + void setActive(bool active); + bool active() const; + + void setPlugin(QDeclarativeGeoServiceProvider * plugin); + QDeclarativeGeoServiceProvider *plugin() const; + + void setMap(QDeclarativeGeoMap *map); + QDeclarativeGeoMap * map() const; + + void setRoute(QDeclarativeGeoRoute *route); + QDeclarativeGeoRoute *route() const; + + void setPositionSource(QDeclarativePositionSource *positionSource); + QDeclarativePositionSource *positionSource() const; + + QNavigationManager *navigationManager() const; + bool navigatorReady() const; + + QDeclarativeGeoRoute *currentRoute() const; + int currentSegment() const; + +signals: + void navigatorReadyChanged(bool ready); + void activeChanged(bool active); + void waypointReached(const QDeclarativeGeoWaypoint *pos); + void destinationReached(); + + void pluginChanged(); + void mapChanged(); + void routeChanged(); + void positionSourceChanged(); + void currentRouteChanged(); + void currentSegmentChanged(); + +private: + void pluginReady(); + bool ensureEngine(); + void updateReadyState(); + +private slots: + void onCurrentRouteChanged(const QGeoRoute &route); + void onCurrentSegmentChanged(int segment); + +private: + QScopedPointer d_ptr; +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QDeclarativeNavigator) + + +#endif // QDECLARATIVENAVIGATOR_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qdeclarativenavigator_p_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qdeclarativenavigator_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qdeclarativenavigator_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qdeclarativenavigator_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,86 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QDECLARATIVENAVIGATOR_P_P_H +#define QDECLARATIVENAVIGATOR_P_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include + +QT_BEGIN_NAMESPACE + +class QDeclarativeGeoServiceProvider; +class QDeclarativeGeoMap; +class QNavigationManager; +class QDeclarativeGeoRoute; +class QDeclarativePositionSource; +class QGeoMapParameter; +class QDeclarativeGeoRouteSegment; +class QParameterizableObject; + +class Q_LOCATION_PRIVATE_EXPORT QDeclarativeNavigatorPrivate +{ +public: + QDeclarativeNavigatorPrivate(QParameterizableObject *q_); + + QParameterizableObject *q = nullptr; + QNavigationManager *m_navigationManager = nullptr; + QDeclarativeGeoServiceProvider *m_plugin = nullptr; + QDeclarativeGeoMap *m_map = nullptr; + QDeclarativeGeoRoute *m_route = nullptr; + QDeclarativePositionSource *m_positionSource = nullptr; + QDeclarativeGeoRoute *m_currentRoute = nullptr; + QList m_parameters; + int m_currentSegment = 0; + bool m_active = false; + bool m_completed = false; + bool m_ready = false; +}; + +QT_END_NAMESPACE + +#endif // QDECLARATIVENAVIGATOR_P_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qgeotiledmaplabs.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qgeotiledmaplabs.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qgeotiledmaplabs.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qgeotiledmaplabs.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,171 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qgeotiledmaplabs_p.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QGeoTiledMapLabsPrivate : public QGeoTiledMapPrivate +{ + Q_DECLARE_PUBLIC(QGeoTiledMapLabs) +public: + QGeoTiledMapLabsPrivate(QGeoTiledMappingManagerEngine *engine, QGeoTiledMapLabs *map); + virtual ~QGeoTiledMapLabsPrivate(); + + QGeoMapObjectPrivate *createMapObjectImplementation(QGeoMapObject *obj) override; + virtual QList mapObjects() const override; + void removeMapObject(QGeoMapObject *obj); + + void updateMapObjects(QSGNode *root, QQuickWindow *window); + void updateObjectsGeometry(); + +protected: + void changeViewportSize(const QSize &size) override; + void changeCameraData(const QGeoCameraData &oldCameraData) override; + void changeActiveMapType(const QGeoMapType mapType) override; + + QGeoMapObjectQSGSupport m_qsgSupport; +}; + +QGeoTiledMapLabsPrivate::QGeoTiledMapLabsPrivate(QGeoTiledMappingManagerEngine *engine, QGeoTiledMapLabs *map) + : QGeoTiledMapPrivate(engine) +{ + m_qsgSupport.m_map = map; +} + +QGeoTiledMapLabsPrivate::~QGeoTiledMapLabsPrivate() +{ + +} + +QGeoMapObjectPrivate *QGeoTiledMapLabsPrivate::createMapObjectImplementation(QGeoMapObject *obj) +{ + return m_qsgSupport.createMapObjectImplementationPrivate(obj); +} + +QList QGeoTiledMapLabsPrivate::mapObjects() const +{ + return m_qsgSupport.mapObjects(); +} + +void QGeoTiledMapLabsPrivate::removeMapObject(QGeoMapObject *obj) +{ + m_qsgSupport.removeMapObject(obj); +} + +void QGeoTiledMapLabsPrivate::updateMapObjects(QSGNode *root, QQuickWindow *window) +{ + m_qsgSupport.updateMapObjects(root, window); +} + +void QGeoTiledMapLabsPrivate::updateObjectsGeometry() +{ + m_qsgSupport.updateObjectsGeometry(); +} + +void QGeoTiledMapLabsPrivate::changeViewportSize(const QSize &size) +{ + updateObjectsGeometry(); + QGeoTiledMapPrivate::changeViewportSize(size); +} + +void QGeoTiledMapLabsPrivate::changeCameraData(const QGeoCameraData &oldCameraData) +{ + updateObjectsGeometry(); + QGeoTiledMapPrivate::changeCameraData(oldCameraData); +} + +void QGeoTiledMapLabsPrivate::changeActiveMapType(const QGeoMapType mapType) +{ + updateObjectsGeometry(); + QGeoTiledMapPrivate::changeActiveMapType(mapType); +} + + +/* + QGeoTiledMapLabs +*/ + + + +QGeoTiledMapLabs::QGeoTiledMapLabs(QGeoTiledMappingManagerEngine *engine, QObject *parent) + : QGeoTiledMap(*new QGeoTiledMapLabsPrivate(engine, this), engine, parent) +{ + +} + +QGeoTiledMapLabs::~QGeoTiledMapLabs() +{ + +} + +bool QGeoTiledMapLabs::createMapObjectImplementation(QGeoMapObject *obj) +{ + Q_D(QGeoTiledMapLabs); + return d->m_qsgSupport.createMapObjectImplementation(obj, d); +} + +QSGNode *QGeoTiledMapLabs::updateSceneGraph(QSGNode *node, QQuickWindow *window) +{ + Q_D(QGeoTiledMapLabs); + QSGNode *root = QGeoTiledMap::updateSceneGraph(node, window); + d->updateMapObjects(root, window); + return root; +} + +void QGeoTiledMapLabs::removeMapObject(QGeoMapObject *obj) +{ + Q_D(QGeoTiledMapLabs); + d->removeMapObject(obj); +} + +QGeoTiledMapLabs::QGeoTiledMapLabs(QGeoTiledMapLabsPrivate &dd, QGeoTiledMappingManagerEngine *engine, QObject *parent) + : QGeoTiledMap(dd, engine, parent) +{ + +} + +QT_END_NAMESPACE + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qgeotiledmaplabs_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qgeotiledmaplabs_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qgeotiledmaplabs_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qgeotiledmaplabs_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QGEOTILEDMAPLABS_P_H +#define QGEOTILEDMAPLABS_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QDeclarativeGeoServiceProvider; +class QDeclarativeGeoMap; +class QMapRouteObject; +class QNavigationManager; +class QGeoTiledMapLabsPrivate; +class Q_LOCATION_PRIVATE_EXPORT QGeoTiledMapLabs : public QGeoTiledMap +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QGeoTiledMapLabs) +public: + QGeoTiledMapLabs(QGeoTiledMappingManagerEngine *engine, QObject *parent); + virtual ~QGeoTiledMapLabs(); + + bool createMapObjectImplementation(QGeoMapObject *obj) override; + void removeMapObject(QGeoMapObject *obj) override; + +protected: + QSGNode *updateSceneGraph(QSGNode *node, QQuickWindow *window) override; + + QSGClipNode *m_clip = nullptr; + QSGSimpleRectNode *m_simpleRectNode = nullptr; + + // From QGeoTiledMap + QGeoTiledMapLabs(QGeoTiledMapLabsPrivate &dd, QGeoTiledMappingManagerEngine *engine, QObject *parent); +private: + Q_DISABLE_COPY(QGeoTiledMapLabs) +}; + +QT_END_NAMESPACE + +#endif // QGEOTILEDMAPLABS_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmapcircleobject.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmapcircleobject.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmapcircleobject.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmapcircleobject.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,288 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmapcircleobject_p.h" +#include "qmapcircleobject_p_p.h" +#include + +QT_BEGIN_NAMESPACE + +/*! + \qmltype MapCircleObject + \instantiates QMapCircleObject + \inqmlmodule Qt.labs.location + \ingroup qml-QtLocation5-maps + \inherits QGeoMapObject + + \brief The MapCircleObject displays a circle on a Map. + + The MapCircleObject displays a circle on a Map. + The MapIconObject type only makes sense when contained in a Map or in a \l MapObjectView. +*/ + +QMapCircleObjectPrivate::QMapCircleObjectPrivate(QGeoMapObject *q) : QGeoMapObjectPrivate(q) +{ + +} + +QMapCircleObjectPrivate::~QMapCircleObjectPrivate() +{ + +} + +QGeoMapObject::Type QMapCircleObjectPrivate::type() const +{ + return QGeoMapObject::CircleType; +} + + + +// +// QMapCircleObjectPrivate default implementation +// + +QMapCircleObjectPrivateDefault::QMapCircleObjectPrivateDefault(QGeoMapObject *q) : QMapCircleObjectPrivate(q) +{ + +} + +QMapCircleObjectPrivateDefault::QMapCircleObjectPrivateDefault(const QMapCircleObjectPrivate &other) : QMapCircleObjectPrivate(other.q) +{ + m_center = other.center(); + m_radius = other.radius(); + m_fillColor = other.color(); + m_borderColor = other.borderColor(); + m_borderWidth = other.borderWidth(); +} + +QMapCircleObjectPrivateDefault::~QMapCircleObjectPrivateDefault() +{ + +} + +QGeoCoordinate QMapCircleObjectPrivateDefault::center() const +{ + return m_center; +} + +void QMapCircleObjectPrivateDefault::setCenter(const QGeoCoordinate ¢er) +{ + m_center = center; +} + +qreal QMapCircleObjectPrivateDefault::radius() const +{ + return m_radius; +} + +void QMapCircleObjectPrivateDefault::setRadius(qreal radius) +{ + m_radius = radius; +} + +QColor QMapCircleObjectPrivateDefault::color() const +{ + return m_fillColor; +} + +void QMapCircleObjectPrivateDefault::setColor(const QColor &color) +{ + m_fillColor = color; +} + +QColor QMapCircleObjectPrivateDefault::borderColor() const +{ + return m_borderColor; +} + +void QMapCircleObjectPrivateDefault::setBorderColor(const QColor &color) +{ + m_borderColor = color; +} + +qreal QMapCircleObjectPrivateDefault::borderWidth() const +{ + return m_borderWidth; +} + +void QMapCircleObjectPrivateDefault::setBorderWidth(qreal width) +{ + m_borderWidth = width; +} + +bool QMapCircleObjectPrivate::equals(const QGeoMapObjectPrivate &other) const +{ + if (other.type() != type()) // This check might be unnecessary, depending on how equals gets used + return false; + + const QMapCircleObjectPrivate &o = static_cast(other); + return (QGeoMapObjectPrivate::equals(o) + && center() == o.center() + && radius() == o.radius() + && color() == o.color() + && borderColor() == o.borderColor() + && borderWidth() == o.borderWidth()); +} + +QGeoMapObjectPrivate *QMapCircleObjectPrivateDefault::clone() +{ + return new QMapCircleObjectPrivateDefault(static_cast(*this)); +} + + + +QMapCircleObject::QMapCircleObject(QObject *parent) + : QGeoMapObject(QExplicitlySharedDataPointer(new QMapCircleObjectPrivateDefault(this)), parent) + +{ + QMapCircleObjectPrivate *d = static_cast(d_ptr.data()); + d->setBorderColor(QColor(Qt::black)); // These are QDeclarativeMapLineProperties defaults + d->setBorderWidth(1.0); +} + +QMapCircleObject::~QMapCircleObject() +{ + +} + +/*! + \qmlproperty coordinate Qt.labs.location::MapCircleObject::center + + This property holds the central point about which the circle is defined. + + \sa radius +*/ +QGeoCoordinate QMapCircleObject::center() const +{ + return static_cast(d_ptr.data())->center(); +} + +/*! + \qmlproperty real Qt.labs.location::MapCircleObject::radius + + This property holds the radius of the circle, in meters on the ground. + + \sa center +*/ +qreal QMapCircleObject::radius() const +{ + return static_cast(d_ptr.data())->radius(); +} + +/*! + \qmlproperty color Qt.labs.location::MapCircleObject::color + + This property holds the fill color of the circle when drawn. For no fill, + use a transparent color. +*/ +QColor QMapCircleObject::color() const +{ + return static_cast(d_ptr.data())->color(); +} + +/*! + \qmlpropertygroup Qt.labs.location::MapCircleObject::border + \qmlproperty int MapCircleObject::border.width + \qmlproperty color MapCircleObject::border.color + + This property is part of the border group property. + The border property holds the width and color used to draw the border of the circle. + The width is in pixels and is independent of the zoom level of the map. + + The default values correspond to a black border with a width of 1 pixel. + For no line, use a width of 0 or a transparent color. +*/ +QDeclarativeMapLineProperties *QMapCircleObject::border() +{ + if (!m_border) { + m_border = new QDeclarativeMapLineProperties; + connect(m_border, &QDeclarativeMapLineProperties::colorChanged, this, [this](const QColor &color){ + static_cast(d_ptr.data())->setBorderColor(color); + }); + connect(m_border, &QDeclarativeMapLineProperties::widthChanged, this, [this](qreal width){ + static_cast(d_ptr.data())->setBorderWidth(width); + }); + } + return m_border; +} + +void QMapCircleObject::setCenter(const QGeoCoordinate ¢er) +{ + auto ptr = static_cast(d_ptr.data()); + if (ptr->center() == center) + return; + + ptr->setCenter(center); + emit centerChanged(); +} + +void QMapCircleObject::setRadius(qreal radius) +{ + auto d = static_cast(d_ptr.data()); + if (d->radius() == radius) + return; + + d->setRadius(radius); + emit radiusChanged(); +} + +void QMapCircleObject::setColor(const QColor &color) +{ + auto d = static_cast(d_ptr.data()); + if (d->color() == color) + return; + + d->setColor(color); + emit colorChanged(); +} + +void QMapCircleObject::setMap(QGeoMap *map) +{ + QMapCircleObjectPrivate *d = static_cast(d_ptr.data()); + if (d->m_map == map) + return; + + QGeoMapObject::setMap(map); // This is where the specialized pimpl gets created and injected + + if (!map) { + // Map was set, now it has ben re-set to NULL, but not inside d_ptr. + // so m_map inside d_ptr can still be used to remove itself, inside the destructor. + d_ptr = new QMapCircleObjectPrivateDefault(*d); + // Old pimpl deleted implicitly by QExplicitlySharedDataPointer + } +} + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmapcircleobject_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmapcircleobject_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmapcircleobject_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmapcircleobject_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,93 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMAPCIRCLEOBJECT_P_H +#define QMAPCIRCLEOBJECT_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Q_LOCATION_PRIVATE_EXPORT QMapCircleObject : public QGeoMapObject +{ + Q_OBJECT + Q_PROPERTY(QGeoCoordinate center READ center WRITE setCenter NOTIFY centerChanged) + Q_PROPERTY(qreal radius READ radius WRITE setRadius NOTIFY radiusChanged) + Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged) + Q_PROPERTY(QDeclarativeMapLineProperties *border READ border CONSTANT) + +public: + QMapCircleObject(QObject *parent = nullptr); + ~QMapCircleObject() override; + + QGeoCoordinate center() const; + qreal radius() const; + QColor color() const; + + void setCenter(const QGeoCoordinate ¢er); + void setRadius(qreal radius); + void setColor(const QColor &color); + + QDeclarativeMapLineProperties * border(); + void setMap(QGeoMap *map) override; + +signals: + void centerChanged(); + void radiusChanged(); + void colorChanged(); + +protected: + QDeclarativeMapLineProperties *m_border = nullptr; +}; + +QT_END_NAMESPACE + +#endif // QMAPCIRCLEOBJECT_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmapcircleobject_p_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmapcircleobject_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmapcircleobject_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmapcircleobject_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,117 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMAPCIRCLEOBJECT_P_P_H +#define QMAPCIRCLEOBJECT_P_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Q_LOCATION_PRIVATE_EXPORT QMapCircleObjectPrivate : public QGeoMapObjectPrivate +{ +public: + QMapCircleObjectPrivate(QGeoMapObject *q); + ~QMapCircleObjectPrivate() override; + + virtual QGeoMapObject::Type type() const override final; + + virtual QGeoCoordinate center() const = 0; + virtual void setCenter(const QGeoCoordinate ¢er) = 0; + virtual qreal radius() const = 0; + virtual void setRadius(qreal radius) = 0; + virtual QColor color() const = 0; + virtual void setColor(const QColor &color) = 0; + virtual QColor borderColor() const = 0; + virtual void setBorderColor(const QColor &color) = 0; + virtual qreal borderWidth() const = 0; + virtual void setBorderWidth(qreal width) = 0; + + // QGeoMapObjectPrivate interface + bool equals(const QGeoMapObjectPrivate &other) const override; +}; + + +class Q_LOCATION_PRIVATE_EXPORT QMapCircleObjectPrivateDefault : public QMapCircleObjectPrivate +{ +public: + QMapCircleObjectPrivateDefault(QGeoMapObject *q); + QMapCircleObjectPrivateDefault(const QMapCircleObjectPrivate &other); + ~QMapCircleObjectPrivateDefault() override; + + // QMapCircleObjectPrivate interface + QGeoCoordinate center() const override; + void setCenter(const QGeoCoordinate ¢er) override; + qreal radius() const override; + void setRadius(qreal radius) override; + QColor color() const override; + void setColor(const QColor &color) override; + QColor borderColor() const override; + void setBorderColor(const QColor &color) override; + qreal borderWidth() const override; + void setBorderWidth(qreal width) override; + + // QGeoMapObjectPrivate interface + QGeoMapObjectPrivate *clone() override; + +public: + QGeoCoordinate m_center; + qreal m_radius = 0; + QColor m_fillColor = Qt::transparent; + QColor m_borderColor; + qreal m_borderWidth = 1.0; + +private: + QMapCircleObjectPrivateDefault(const QMapCircleObjectPrivateDefault &other) = delete; +}; + +QT_END_NAMESPACE + +#endif // QMAPCIRCLEOBJECT_P_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmapiconobject.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmapiconobject.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmapiconobject.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmapiconobject.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,246 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmapiconobject_p.h" +#include "qmapiconobject_p_p.h" +#include + +QT_BEGIN_NAMESPACE + +/*! + \qmltype MapIconObject + \instantiates QMapIconObject + \inqmlmodule Qt.labs.location + \ingroup qml-QtLocation5-maps + \inherits QGeoMapObject + + \brief The MapIconObject displays an icon on a Map. + + The MapIconObject displays an icon on a Map. + The MapIconObject type only makes sense when contained in a Map or in a \l MapObjectView. +*/ + +QMapIconObjectPrivate::~QMapIconObjectPrivate() +{ + +} + +QMapIconObjectPrivate::QMapIconObjectPrivate(QGeoMapObject *q) : QGeoMapObjectPrivate(q) +{ + +} + +QGeoMapObject::Type QMapIconObjectPrivate::type() const +{ + return QGeoMapObject::IconType; +} + +bool QMapIconObjectPrivate::equals(const QGeoMapObjectPrivate &other) const +{ + if (other.type() != type()) // This check might be unnecessary, depending on how equals gets used + return false; + + const QMapIconObjectPrivate &o = static_cast(other); + return (QGeoMapObjectPrivate::equals(o) + && content() == o.content() + && coordinate() == o.coordinate()); +} + +// +// QGeoMapIconPrivate default implementation +// + +QMapIconObjectPrivateDefault::QMapIconObjectPrivateDefault(QGeoMapObject *q) : QMapIconObjectPrivate(q) +{ + +} +QMapIconObjectPrivateDefault::QMapIconObjectPrivateDefault(const QMapIconObjectPrivate &other) : QMapIconObjectPrivate(other.q) +{ + m_coordinate = other.coordinate(); + m_content = other.content(); + m_size = other.size(); +} + +QMapIconObjectPrivateDefault::~QMapIconObjectPrivateDefault() +{ + +} + +QGeoCoordinate QMapIconObjectPrivateDefault::coordinate() const +{ + return m_coordinate; +} + +void QMapIconObjectPrivateDefault::setCoordinate(const QGeoCoordinate ¢er) +{ + m_coordinate = center; +} + +QVariant QMapIconObjectPrivateDefault::content() const +{ + return m_content; +} + +void QMapIconObjectPrivateDefault::setContent(const QVariant &content) +{ + m_content = content; +} + +QSizeF QMapIconObjectPrivateDefault::size() const +{ + return m_size; +} + +void QMapIconObjectPrivateDefault::setSize(const QSizeF &size) +{ + m_size = size; +} + +QGeoMapObjectPrivate *QMapIconObjectPrivateDefault::clone() +{ + return new QMapIconObjectPrivateDefault(static_cast(*this)); +} + + +/* + + QGeoMapIconPrivate default implementation + +*/ + + +QMapIconObject::QMapIconObject(QObject *parent) + : QGeoMapObject(QExplicitlySharedDataPointer(new QMapIconObjectPrivateDefault(this)), parent) +{} + +QMapIconObject::~QMapIconObject() +{ + +} + +/*! + \qmlproperty Variant Qt.labs.location::MapIconObject::content + + This property holds the content to be used for the icon. The actual content of this property is somehow + backend-dependent. The implementation for the raster engine accepts local urls or paths. + Other implementations may accept additional content types. +*/ +QVariant QMapIconObject::content() const +{ + const QMapIconObjectPrivate *d = static_cast(d_ptr.data()); + return d->content(); +} + +/*! + \qmlproperty Variant Qt.labs.location::MapIconObject::coordinate + + The coordinate where the icon is going to be shown. + What pixel of the icon matches the coordinate is somehow backend-dependent. + For example, due to limitations, some backends might associate the center of the icon with the + coordinate, others one of the corners. + If there is a choice, backend developers should use the center of the icon as the default anchor + point. + + The behavior is also intended to be customizable with a \l DynamicParameter, when + using backends that support anchoring arbitrary points of the icon to the coordinate. + What kind of parameter to use and how to achieve this behavior is intended to be + documented per-backend. +*/ +QGeoCoordinate QMapIconObject::coordinate() const +{ + const QMapIconObjectPrivate *d = static_cast(d_ptr.data()); + return d->coordinate(); +} + +void QMapIconObject::setContent(QVariant content) +{ + QMapIconObjectPrivate *d = static_cast(d_ptr.data()); + if (d->content() == content) + return; + + d->setContent(content); + emit contentChanged(content); +} + +void QMapIconObject::setCoordinate(const QGeoCoordinate ¢er) +{ + QMapIconObjectPrivate *d = static_cast(d_ptr.data()); + if (d->coordinate() == center) + return; + + d->setCoordinate(center); + emit coordinateChanged(center); +} + +/*! + \qmlproperty Variant Qt.labs.location::MapIconObject::size + + The size of the icon as it will be shown on the map. +*/ +QSizeF QMapIconObject::size() const +{ + const QMapIconObjectPrivate *d = static_cast(d_ptr.data()); + return d->size(); +} + + +void QMapIconObject::setSize(const QSizeF &size) +{ + QMapIconObjectPrivate *d = static_cast(d_ptr.data()); + if (d->size() == size) + return; + + d->setSize(size); + emit sizeChanged(); +} + +void QMapIconObject::setMap(QGeoMap *map) +{ + QMapIconObjectPrivate *d = static_cast(d_ptr.data()); + if (d->m_map == map) + return; + + QGeoMapObject::setMap(map); // This is where the specialized pimpl gets created and injected + + if (!map) { + // Map was set, now it has ben re-set to NULL, but not inside d_ptr. + // so m_map inside d_ptr can still be used to remove itself, inside the destructor. + d_ptr = new QMapIconObjectPrivateDefault(*d); + // Old pimpl deleted implicitly by QExplicitlySharedDataPointer + } +} + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmapiconobject_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmapiconobject_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmapiconobject_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmapiconobject_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,88 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QGEOMAPICON_P_H +#define QGEOMAPICON_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Q_LOCATION_PRIVATE_EXPORT QMapIconObject : public QGeoMapObject +{ + Q_OBJECT + Q_PROPERTY(QGeoCoordinate coordinate READ coordinate WRITE setCoordinate NOTIFY coordinateChanged) + Q_PROPERTY(QVariant content READ content WRITE setContent NOTIFY contentChanged) + Q_PROPERTY(QSizeF size READ size WRITE setSize NOTIFY sizeChanged) + +public: + QMapIconObject(QObject *parent = nullptr); + ~QMapIconObject() override; + + QVariant content() const; + QGeoCoordinate coordinate() const; + QSizeF size() const; + + void setContent(QVariant content); + void setCoordinate(const QGeoCoordinate &coordinate); + void setSize(const QSizeF &size); + + void setMap(QGeoMap *map) override; + +signals: + void contentChanged(QVariant content); + void coordinateChanged(QGeoCoordinate coordinate); + void sizeChanged(); +}; + +QT_END_NAMESPACE + +#endif // QGEOMAPICON_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmapiconobject_p_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmapiconobject_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmapiconobject_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmapiconobject_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,105 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QGEOMAPICON_P_P_H +#define QGEOMAPICON_P_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Q_LOCATION_PRIVATE_EXPORT QMapIconObjectPrivate : public QGeoMapObjectPrivate +{ +public: + QMapIconObjectPrivate(QGeoMapObject *q); + ~QMapIconObjectPrivate() override; + + virtual QGeoMapObject::Type type() const override final; + + virtual QGeoCoordinate coordinate() const = 0; + virtual void setCoordinate(const QGeoCoordinate &coordinate) = 0; + virtual QVariant content() const = 0; + virtual void setContent(const QVariant &content) = 0; + virtual QSizeF size() const = 0; + virtual void setSize(const QSizeF &size) = 0; + + // QGeoMapObjectPrivate interface + bool equals(const QGeoMapObjectPrivate &other) const override; +}; + +class Q_LOCATION_PRIVATE_EXPORT QMapIconObjectPrivateDefault : public QMapIconObjectPrivate +{ +public: + QMapIconObjectPrivateDefault(QGeoMapObject *q); + QMapIconObjectPrivateDefault(const QMapIconObjectPrivate &other); + ~QMapIconObjectPrivateDefault() override; + + // QGeoMapIconPrivate interface + QGeoCoordinate coordinate() const override; + void setCoordinate(const QGeoCoordinate &coordinate) override; + QVariant content() const override; + void setContent(const QVariant &content) override; + virtual QSizeF size() const override; + virtual void setSize(const QSizeF &size) override; + + // QMapIconObjectPrivate interface + QGeoMapObjectPrivate *clone() override; + +public: + QVariant m_content; + QGeoCoordinate m_coordinate; + QSizeF m_size; + +private: + QMapIconObjectPrivateDefault(const QMapIconObjectPrivateDefault &other) = delete; +}; + +QT_END_NAMESPACE + +#endif // QGEOMAPICON_P_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmapobjectview.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmapobjectview.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmapobjectview.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmapobjectview.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,387 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmapobjectview_p.h" +#include "qmapobjectview_p_p.h" +#include +#include + +QT_BEGIN_NAMESPACE + +/*! + \qmltype MapObjectView + \instantiates QMapObjectView + \inqmlmodule Qt.labs.location + \ingroup qml-QtLocation5-maps + \inherits QGeoMapObject + + \brief The MapObjectView is used to populate Map with map objects from a model. + + The MapObjectView is used to populate Map with map objects, either from a model or via + \l addMapObject or \l removeMapObject. + + The MapObjectView type only makes sense when contained in a Map, meaning that it will not work when added inside + other QML elements. + This can also be intended as an object layer on top of a Map. +*/ + +/* + + QMapObjectViewPrivate + +*/ + +static const QQmlIncubator::IncubationMode incubationMode = QQmlIncubator::Asynchronous; + +QMapObjectViewPrivate::QMapObjectViewPrivate(QGeoMapObject *q) + : QGeoMapObjectPrivate(q) +{ +} + +QMapObjectViewPrivate::~QMapObjectViewPrivate() +{ + +} + +QGeoMapObject::Type QMapObjectViewPrivate::type() const +{ + return QGeoMapObject::ViewType; +} + + +/* + + QMapObjectViewPrivateDefault + +*/ + + +QMapObjectViewPrivateDefault::QMapObjectViewPrivateDefault(const QMapObjectViewPrivate &other) : QMapObjectViewPrivate(other.q) +{ +} + +QMapObjectViewPrivateDefault::~QMapObjectViewPrivateDefault() +{ + +} + +QMapObjectViewPrivateDefault::QMapObjectViewPrivateDefault(QGeoMapObject *q) : QMapObjectViewPrivate(q) +{ + +} + +QGeoMapObjectPrivate *QMapObjectViewPrivateDefault::clone() +{ + return new QMapObjectViewPrivateDefault(*this); +} + +/* + + QMapObjectView + +*/ + + +QMapObjectView::QMapObjectView(QObject *parent) + : QGeoMapObject(QExplicitlySharedDataPointer(new QMapObjectViewPrivateDefault(this)), parent) +{ + +} + +QMapObjectView::~QMapObjectView() +{ + flushDelegateModel(); + flushUserAddedMapObjects(); +} + +QList QMapObjectView::geoMapObjectChildren() const +{ + auto kids = QGeoMapObject::geoMapObjectChildren(); + auto size = m_instantiatedMapObjects.count(); + for (int i = 0; i < size; ++i) { + auto obj = qobject_cast(m_instantiatedMapObjects[i]); + if (obj) + kids << obj; + } + for (int i = 0; i < m_userAddedMapObjects.size(); ++i) { + auto obj = m_userAddedMapObjects.at(i); + if (obj) + kids << obj; + } + return kids; +} + +void QMapObjectView::classBegin() +{ + QQmlContext *ctx = qmlContext(this); + m_delegateModel = new QQmlDelegateModel(ctx, this); + m_delegateModel->classBegin(); + + QQmlInstanceModel *model = m_delegateModel; + connect(model, &QQmlInstanceModel::modelUpdated, this, &QMapObjectView::modelUpdated); + connect(model, &QQmlInstanceModel::createdItem, this, &QMapObjectView::createdItem); + connect(model, &QQmlInstanceModel::destroyingItem, this, &QMapObjectView::destroyingItem); + connect(model, &QQmlInstanceModel::initItem, this, &QMapObjectView::initItem); +} + +void QMapObjectView::componentComplete() +{ + QGeoMapObject::componentComplete(); + if (m_delegate) + m_delegateModel->setDelegate(m_delegate); + if (m_model.isValid()) + m_delegateModel->setModel(m_model); + m_delegateModel->componentComplete(); +} + +/*! + \qmlproperty Variant Qt.labs.location::MapObjectView::model + + This property holds the model that provides data used for creating the map items defined by the + delegate. Only QAbstractItemModel based models are supported. +*/ +QVariant QMapObjectView::model() const +{ + return m_model; +} + +/*! + \qmlproperty Component Qt.labs.location::MapObjectView::delegate + + This property holds the delegate which defines how each item in the + model should be displayed. The Component must contain exactly one + QGeoMapObject -derived object as the root object. +*/ +QQmlComponent *QMapObjectView::delegate() const +{ + return m_delegate; +} + +void QMapObjectView::setModel(QVariant model) +{ + if (m_model == model) + return; + m_model = model; + + if (d_ptr->m_componentCompleted) + m_delegateModel->setModel(model); + + emit modelChanged(model); +} + +void QMapObjectView::setDelegate(QQmlComponent *delegate) +{ + if (m_delegate == delegate) + return; + m_delegate = delegate; + + if (d_ptr->m_componentCompleted) + m_delegateModel->setDelegate(delegate); + + emit delegateChanged(delegate); +} + +/*! + \qmlmethod void Qt.labs.location::MapObjectView::addMapObject(MapObject object) + + Adds the given \a object to the MapObjectView (for example MapIconObject, MapRouteObject), and, + indirectly, to the underlying map. If the object already is on the MapObjectView, it will not be added again. + + \sa removeMapObject +*/ +void QMapObjectView::addMapObject(QGeoMapObject *object) +{ + if (m_userAddedMapObjects.indexOf(object) < 0) + m_userAddedMapObjects.append(object); + if (map() && object->map() != map()) + object->setMap(map()); +} + +/*! + \qmlmethod void Qt.labs.location::MapObjectView::removeMapObject(MapObject object) + + Removes the given \a object from the MapObjectView (for example MapIconObject, MapRouteObject), and, + indirectly, from the underlying map. + + \sa addMapObject +*/ +void QMapObjectView::removeMapObject(QGeoMapObject *object) +{ + int idx = m_userAddedMapObjects.indexOf(object); + if ( idx >= 0) { + object->setMap(nullptr); + m_userAddedMapObjects.remove(idx); + } +} + +void QMapObjectView::destroyingItem(QObject * /*object*/) +{ + +} + +void QMapObjectView::initItem(int /*index*/, QObject * /*object*/) +{ + +} + +void QMapObjectView::modelUpdated(const QQmlChangeSet &changeSet, bool reset) +{ + // move changes are expressed as one remove + one insert, with the same moveId. + // For simplicity, they will be treated as remove + insert. + // Changes will be also ignored, as they represent only data changes, not layout changes + if (reset) { // Assuming this means "remove everything already instantiated" + flushDelegateModel(); + } else { + // Remove map objects from the back to the front to retain the mapping to what is received from the changesets + const QVector &removes = changeSet.removes(); + std::map mapRemoves; + for (int i = 0; i < removes.size(); i++) + mapRemoves.insert(std::pair(removes.at(i).start(), i)); + + for (auto rit = mapRemoves.rbegin(); rit != mapRemoves.rend(); ++rit) { + const QQmlChangeSet::Change &c = removes.at(rit->second); + for (int idx = c.end() - 1; idx >= c.start(); --idx) + removeMapObjectFromMap(idx); + } + } + + for (const QQmlChangeSet::Change &c: changeSet.inserts()) { + for (int idx = c.start(); idx < c.end(); idx++) { + m_instantiatedMapObjects.insert(idx, nullptr); + QGeoMapObject *mo = qobject_cast(m_delegateModel->object(idx, incubationMode)); + if (mo) // if not, a createdItem signal will be emitted. + addMapObjectToMap(mo, idx); + } + } +} + +void QMapObjectView::addMapObjectToMap(QGeoMapObject *object, int index) +{ + if (!object) + return; + + m_instantiatedMapObjects[index] = object; + if (map()) + object->setMap(map()); + else + m_pendingMapObjects << object; + + // ToDo: + // Figure out the proper way to replace "mo->setVisible(visible());". Options: + // - simply leave it to the user to set up a property binding + // - set up a property binding automatically + // - add a viewVisibility member to QGeoMapObject that gets combined at all times, + // and a connection for it. +} + +void QMapObjectView::removeMapObjectFromMap(int index) +{ + if (index >= 0 && index < m_instantiatedMapObjects.size()) { + QGeoMapObject *mo = m_instantiatedMapObjects.takeAt(index); + if (!mo) { + m_delegateModel->cancel(index); + return; + } + mo->setMap(nullptr); + m_delegateModel->release(mo); + } +} + +// See QObject *QQmlDelegateModel::object(int index, QQmlIncubator::IncubationMode incubationMode) doc +// for explanation on when createdItem is emitted. +void QMapObjectView::createdItem(int index, QObject * /*object*/) +{ + if (m_instantiatedMapObjects.at(index)) + return; // The first call to object() apparently returned a valid item. Don't call it again. + + // If here, according to the documentation above, object() should be called again for index, + // or else, it will be destroyed exiting this scope + QGeoMapObject *mo = nullptr; + mo = qobject_cast(m_delegateModel->object(index, incubationMode)); + if (mo) + addMapObjectToMap(mo, index); +} + + +void QMapObjectView::flushDelegateModel() +{ + // Backward as removeItemFromMap modifies m_instantiatedItems + for (int i = m_instantiatedMapObjects.size() -1; i >= 0 ; i--) + removeMapObjectFromMap(i); +} + +void QMapObjectView::flushUserAddedMapObjects() +{ + for (int i = 0; i < m_userAddedMapObjects.size(); ++i) { + auto obj = m_userAddedMapObjects.at(i); + if (obj) + obj->setMap(nullptr); // obj parent might not be this. If so, it would not be destroyed by destroying this view. + } +} + +void QMapObjectView::setMap(QGeoMap *map) +{ + QMapObjectViewPrivate *d = static_cast(d_ptr.data()); + if (d->m_map == map) + return; + + QGeoMapObject::setMap(map); // This is where the specialized pimpl gets created and injected + + for (int i = 0; i < m_userAddedMapObjects.size(); ++i) { + auto obj = m_userAddedMapObjects.at(i); + if (obj && obj->map() != map) + obj->setMap(map); + } + + if (!map) { + // Map was set, now it has ben re-set to NULL + flushDelegateModel(); + flushUserAddedMapObjects(); + d_ptr = new QMapObjectViewPrivateDefault(*d); + } else if (d->m_componentCompleted) { + // Map was null, now it's set AND delegateModel is already complete. + // some delegates may have been incubated but not added to the map. + for (int i = 0; i < m_pendingMapObjects.size(); ++i) { + auto obj = m_pendingMapObjects.at(i); + if (obj && obj->map() != map) + obj->setMap(map); + } + m_pendingMapObjects.clear(); + } +} + +QT_END_NAMESPACE + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmapobjectview_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmapobjectview_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmapobjectview_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmapobjectview_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,116 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMAPOBJECTVIEW_P_H +#define QMAPOBJECTVIEW_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QQmlDelegateModel; +class QMapObjectViewPrivate; +class QQmlChangeSet; +class Q_LOCATION_PRIVATE_EXPORT QMapObjectView : public QGeoMapObject +{ + Q_OBJECT + Q_PROPERTY(QVariant model READ model WRITE setModel NOTIFY modelChanged) + Q_PROPERTY(QQmlComponent *delegate READ delegate WRITE setDelegate NOTIFY delegateChanged) + Q_INTERFACES(QQmlParserStatus) +public: + QMapObjectView(QObject *parent = nullptr); + ~QMapObjectView() override; + + // QGeoMapObject interface + QList geoMapObjectChildren() const override; + void setMap(QGeoMap *map) override; + + // QQmlParserStatus interface + void classBegin() override; + void componentComplete() override; + + QVariant model() const; + void setModel(QVariant model); + + QQmlComponent *delegate() const; + void setDelegate(QQmlComponent * delegate); + +public Q_SLOTS: + // The dynamic API that matches Map.add/remove MapItem + void addMapObject(QGeoMapObject *object); + void removeMapObject(QGeoMapObject *object); + +signals: + void modelChanged(QVariant model); + void delegateChanged(QQmlComponent * delegate); + +protected Q_SLOTS: + void destroyingItem(QObject *object); + void initItem(int index, QObject *object); + void createdItem(int index, QObject *object); + void modelUpdated(const QQmlChangeSet &changeSet, bool reset); + +protected: + void addMapObjectToMap(QGeoMapObject *object, int index); + void removeMapObjectFromMap(int index); + void flushDelegateModel(); + void flushUserAddedMapObjects(); + + QVariant m_model; + QQmlComponent *m_delegate = nullptr; + QQmlDelegateModel *m_delegateModel = nullptr; + QVector> m_instantiatedMapObjects; + QVector> m_pendingMapObjects; + QVector> m_userAddedMapObjects; // A third list containing the objects dynamically added through addMapObject +}; + +QT_END_NAMESPACE + +#endif // QMAPOBJECTVIEW_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmapobjectview_p_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmapobjectview_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmapobjectview_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmapobjectview_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,86 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMAPOBJECTVIEW_P_P_H +#define QMAPOBJECTVIEW_P_P_H + + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QQmlDelegateModel; +class QGeoMap; +class Q_LOCATION_PRIVATE_EXPORT QMapObjectViewPrivate : public QGeoMapObjectPrivate +{ +public: + QMapObjectViewPrivate(QGeoMapObject *q); + ~QMapObjectViewPrivate() override; + + virtual QGeoMapObject::Type type() const override final; +}; + +class Q_LOCATION_PRIVATE_EXPORT QMapObjectViewPrivateDefault : public QMapObjectViewPrivate +{ +public: + QMapObjectViewPrivateDefault(QGeoMapObject *q); + QMapObjectViewPrivateDefault(const QMapObjectViewPrivate &other); + ~QMapObjectViewPrivateDefault() override; + + + // QGeoMapObjectPrivate interface +public: + QGeoMapObjectPrivate *clone() override; +}; + +QT_END_NAMESPACE + +#endif // QMAPOBJECTVIEW_P_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmappolygonobject.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmappolygonobject.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmappolygonobject.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmappolygonobject.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,256 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmappolygonobject_p.h" +#include "qmappolygonobject_p_p.h" +#include + +QT_BEGIN_NAMESPACE + +/*! + \qmltype MapPolygonObject + \instantiates QMapPolygonObject + \inqmlmodule Qt.labs.location + \ingroup qml-QtLocation5-maps + \inherits QGeoMapObject + + \brief The MapPolygonObject displays a polygon on a Map. + + The MapPolygonObject displays a polygon on a Map. + The MapPolygonObject type only makes sense when contained in a Map or in a \l MapObjectView. +*/ + +QMapPolygonObjectPrivate::QMapPolygonObjectPrivate(QGeoMapObject *q) : QGeoMapObjectPrivate(q) +{ + +} + +QMapPolygonObjectPrivate::~QMapPolygonObjectPrivate() +{ + +} + +QMapPolygonObjectPrivateDefault::QMapPolygonObjectPrivateDefault(QGeoMapObject *q) : QMapPolygonObjectPrivate(q) +{ + +} + +QMapPolygonObjectPrivateDefault::QMapPolygonObjectPrivateDefault(const QMapPolygonObjectPrivate &other) : QMapPolygonObjectPrivate(other.q) +{ + m_path = other.path(); + m_borderColor = other.borderColor(); + m_fillColor = other.fillColor(); + m_borderWidth = other.borderWidth(); +} + +QMapPolygonObjectPrivateDefault::~QMapPolygonObjectPrivateDefault() +{ + +} + +QGeoMapObject::Type QMapPolygonObjectPrivate::type() const +{ + return QGeoMapObject::PolygonType; +} + +QList QMapPolygonObjectPrivateDefault::path() const +{ + return m_path; +} + +void QMapPolygonObjectPrivateDefault::setPath(const QList &path) +{ + m_path = path; +} + +QColor QMapPolygonObjectPrivateDefault::fillColor() const +{ + return m_fillColor; +} + +void QMapPolygonObjectPrivateDefault::setFillColor(const QColor &color) +{ + m_fillColor = color; +} + +QColor QMapPolygonObjectPrivateDefault::borderColor() const +{ + return m_borderColor; +} + +void QMapPolygonObjectPrivateDefault::setBorderColor(const QColor &color) +{ + m_borderColor = color; +} + +qreal QMapPolygonObjectPrivateDefault::borderWidth() const +{ + return m_borderWidth; +} + +void QMapPolygonObjectPrivateDefault::setBorderWidth(qreal width) +{ + m_borderWidth = width; +} + +QGeoMapObjectPrivate *QMapPolygonObjectPrivateDefault::clone() +{ + return new QMapPolygonObjectPrivateDefault(static_cast(*this)); +} + +bool QMapPolygonObjectPrivate::equals(const QGeoMapObjectPrivate &other) const +{ + if (other.type() != type()) // This check might be unnecessary, depending on how equals gets used + return false; + + const QMapPolygonObjectPrivate &o = static_cast(other); + return (QGeoMapObjectPrivate::equals(o) + && path() == o.path() + && borderColor() == o.borderColor() + && fillColor() == o.fillColor() + && borderWidth() == o.borderWidth()); +} + + + + +QMapPolygonObject::QMapPolygonObject(QObject *parent) + : QGeoMapObject(QExplicitlySharedDataPointer(new QMapPolygonObjectPrivateDefault(this)), parent) +{ + QMapPolygonObjectPrivate *d = static_cast(d_ptr.data()); + d->setBorderColor(QColor(Qt::black)); // These are QDeclarativeMapLineProperties defaults + d->setBorderWidth(1.0); +} + +QMapPolygonObject::~QMapPolygonObject() +{} + +/*! + \qmlproperty VariantList Qt.labs.location::MapPolygonObject::path + + This property holds the ordered list of coordinates which + define the polygon border. +*/ +QVariantList QMapPolygonObject::path() const +{ + QVariantList p; + for (const QGeoCoordinate &c: static_cast(d_ptr.data())->path()) + p << QVariant::fromValue(c); + return p; +} + +void QMapPolygonObject::setPath(const QVariantList &path) +{ + QList p; + bool ok = false; + for (const auto &c: path) { + const QGeoCoordinate coord = parseCoordinate(c, &ok); + if (ok) + p << coord; + } + auto pimpl = static_cast(d_ptr.data()); + if (p != pimpl->path()) { + pimpl->setPath(p); + emit pathChanged(); + } +} + +/*! + \qmlproperty color Qt.labs.location::MapPolygonObject::color + + This property holds the fill color of the polygon when drawn. For no fill, + use a transparent color. +*/ +QColor QMapPolygonObject::color() const +{ + return static_cast(d_ptr.data())->fillColor(); +} + +/*! + \qmlpropertygroup Qt.labs.location::MapPolygonObject::border + \qmlproperty int MapPolygonObject::border.width + \qmlproperty color MapPolygonObject::border.color + + This property is part of the border property group. The border + property group holds the width and color used to draw the border. + + The width is in pixels and is independent of the zoom level of the map. + The default values correspond to a black border with a width of 1 pixel. + + For no border, use a width of 0 or a transparent color. +*/ +QDeclarativeMapLineProperties *QMapPolygonObject::border() +{ + if (!m_border) { + m_border = new QDeclarativeMapLineProperties; + connect(m_border, &QDeclarativeMapLineProperties::colorChanged, this, [this](const QColor &color){ + static_cast(d_ptr.data())->setBorderColor(color); + }); + connect(m_border, &QDeclarativeMapLineProperties::widthChanged, this, [this](qreal width){ + static_cast(d_ptr.data())->setBorderWidth(width); + }); + } + return m_border; +} + +void QMapPolygonObject::setColor(const QColor &fillColor) +{ + auto ptr = static_cast(d_ptr.data()); + + if (ptr->fillColor() == fillColor) + return; + + ptr->setFillColor(fillColor); + emit colorChanged(); +} + +void QMapPolygonObject::setMap(QGeoMap *map) +{ + QMapPolygonObjectPrivate *d = static_cast(d_ptr.data()); + if (d->m_map == map) + return; + + QGeoMapObject::setMap(map); // This is where the specialized pimpl gets created and injected + + if (!map) { + // Map was set, now it has ben re-set to NULL, but not inside d_ptr. + // so m_map inside d_ptr can still be used to remove itself, inside the destructor. + d_ptr = new QMapPolygonObjectPrivateDefault(*d); + // Old pimpl deleted implicitly by QExplicitlySharedDataPointer + } +} + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmappolygonobject_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmappolygonobject_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmappolygonobject_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmappolygonobject_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMAPPOLYGONOBJECT_P_H +#define QMAPPOLYGONOBJECT_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +class Q_LOCATION_PRIVATE_EXPORT QMapPolygonObject : public QGeoMapObject +{ + Q_OBJECT + + Q_PROPERTY(QVariantList path READ path WRITE setPath NOTIFY pathChanged) + Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged) + Q_PROPERTY(QDeclarativeMapLineProperties *border READ border CONSTANT) + +public: + QMapPolygonObject(QObject *parent = nullptr); + ~QMapPolygonObject() override; + + QVariantList path() const; + void setPath(const QVariantList &path); + + QColor color() const; + void setColor(const QColor &color); + + QDeclarativeMapLineProperties *border(); + void setMap(QGeoMap *map) override; + +signals: + void pathChanged(); + void colorChanged(); + +protected: + QDeclarativeMapLineProperties *m_border; +}; + +QT_END_NAMESPACE + +#endif // QMAPPOLYGONOBJECT_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmappolygonobject_p_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmappolygonobject_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmappolygonobject_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmappolygonobject_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,112 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMAPPOLYGONOBJECT_P_P_H +#define QMAPPOLYGONOBJECT_P_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Q_LOCATION_PRIVATE_EXPORT QMapPolygonObjectPrivate : public QGeoMapObjectPrivate +{ +public: + QMapPolygonObjectPrivate(QGeoMapObject *q); + ~QMapPolygonObjectPrivate() override; + + virtual QGeoMapObject::Type type() const override final; + + virtual QList path() const = 0; + virtual void setPath(const QList &path) = 0; + virtual QColor fillColor() const = 0; + virtual void setFillColor(const QColor &color) = 0; + virtual QColor borderColor() const = 0; + virtual void setBorderColor(const QColor &color) = 0; + virtual qreal borderWidth() const = 0; + virtual void setBorderWidth(qreal width) = 0; + + // QGeoMapObjectPrivate interface + bool equals(const QGeoMapObjectPrivate &other) const override; +}; + +class Q_LOCATION_PRIVATE_EXPORT QMapPolygonObjectPrivateDefault : public QMapPolygonObjectPrivate +{ +public: + QMapPolygonObjectPrivateDefault(QGeoMapObject *q); + QMapPolygonObjectPrivateDefault(const QMapPolygonObjectPrivate &other); + ~QMapPolygonObjectPrivateDefault() override; + + // QMapPolygonObjectPrivate interface + QList path() const override; + void setPath(const QList &path) override; + QColor fillColor() const override; + void setFillColor(const QColor &color) override; + QColor borderColor() const override; + void setBorderColor(const QColor &color) override; + qreal borderWidth() const override; + void setBorderWidth(qreal width) override; + + // QGeoMapObjectPrivate interface + QGeoMapObjectPrivate *clone() override; + +public: + QList m_path; + QColor m_borderColor; + QColor m_fillColor = Qt::transparent; + qreal m_borderWidth = 0; + +private: + QMapPolygonObjectPrivateDefault(const QMapPolygonObjectPrivateDefault &other) = delete; +}; + +QT_END_NAMESPACE + + +#endif // QMAPPOLYGONOBJECT_P_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmappolylineobject.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmappolylineobject.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmappolylineobject.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmappolylineobject.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,219 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmappolylineobject_p.h" +#include "qmappolylineobject_p_p.h" +#include + +QT_BEGIN_NAMESPACE + +/*! + \qmltype MapPolylineObject + \instantiates QMapPolylineObject + \inqmlmodule Qt.labs.location + \ingroup qml-QtLocation5-maps + \inherits QGeoMapObject + + \brief The MapPolylineObject displays a polyline on a Map. + + The MapPolylineObject displays a polyline on a Map. + The MapPolylineObject type only makes sense when contained in a Map or in a \l MapObjectView. +*/ + +QMapPolylineObjectPrivate::QMapPolylineObjectPrivate(QGeoMapObject *q) : QGeoMapObjectPrivate(q) +{ + +} + +QMapPolylineObjectPrivate::~QMapPolylineObjectPrivate() +{ + +} + +QGeoMapObject::Type QMapPolylineObjectPrivate::type() const +{ + return QGeoMapObject::PolylineType; +} + +QMapPolylineObjectPrivateDefault::QMapPolylineObjectPrivateDefault(QGeoMapObject *q) : QMapPolylineObjectPrivate(q) +{ + +} + +QMapPolylineObjectPrivateDefault::QMapPolylineObjectPrivateDefault(const QMapPolylineObjectPrivate &other) : QMapPolylineObjectPrivate(other.q) +{ + m_path = other.path(); + m_color = other.color(); + m_width = other.width(); +} + +QMapPolylineObjectPrivateDefault::~QMapPolylineObjectPrivateDefault() +{ + +} + +QList QMapPolylineObjectPrivateDefault::path() const +{ + return m_path; +} + +void QMapPolylineObjectPrivateDefault::setPath(const QList &path) +{ + m_path = path; +} + +QColor QMapPolylineObjectPrivateDefault::color() const +{ + return m_color; +} + +void QMapPolylineObjectPrivateDefault::setColor(const QColor &color) +{ + m_color = color; +} + +qreal QMapPolylineObjectPrivateDefault::width() const +{ + return m_width; +} + +void QMapPolylineObjectPrivateDefault::setWidth(qreal width) +{ + m_width = width; +} + +bool QMapPolylineObjectPrivate::equals(const QGeoMapObjectPrivate &other) const +{ + if (other.type() != type()) // This check might be unnecessary, depending on how equals gets used + return false; + + const QMapPolylineObjectPrivate &o = static_cast(other); + return (QGeoMapObjectPrivate::equals(o) + && path() == o.path() + && color() == o.color() + && width() == o.width()); +} + +QGeoMapObjectPrivate *QMapPolylineObjectPrivateDefault::clone() +{ + return new QMapPolylineObjectPrivateDefault(static_cast(*this)); +} + +QMapPolylineObject::QMapPolylineObject(QObject *parent) + : QGeoMapObject(QExplicitlySharedDataPointer(new QMapPolylineObjectPrivateDefault(this)), parent) +{ + QMapPolylineObjectPrivate *d = static_cast(d_ptr.data()); + d->setColor(QColor(Qt::black)); // These are QDeclarativeMapLineProperties defaults + d->setWidth(1.0); +} + +QMapPolylineObject::~QMapPolylineObject() +{} + +/*! + \qmlproperty VariantList Qt.labs.location::MapPolylineObject::path + + This property holds the ordered list of coordinates which + define the polyline. +*/ +QVariantList QMapPolylineObject::path() const +{ + QVariantList p; + for (const QGeoCoordinate &c: static_cast(d_ptr.data())->path()) + p << QVariant::fromValue(c); + return p; +} + +/*! + \qmlpropertygroup Qt.labs.location::MapPolylineObject::line + \qmlproperty int MapPolylineObject::line.width + \qmlproperty color MapPolylineObject::line.color + + This property is part of the line property group. The line + property group holds the width and color used to draw the line. + + The width is in pixels and is independent of the zoom level of the map. + The default values correspond to a black border with a width of 1 pixel. + + For no line, use a width of 0 or a transparent color. +*/ +QDeclarativeMapLineProperties *QMapPolylineObject::border() +{ + if (!m_border) { + m_border = new QDeclarativeMapLineProperties; + connect(m_border, &QDeclarativeMapLineProperties::colorChanged, this, [this](const QColor &color){ + static_cast(d_ptr.data())->setColor(color); + }); + connect(m_border, &QDeclarativeMapLineProperties::widthChanged, this, [this](qreal width){ + static_cast(d_ptr.data())->setWidth(width); + }); + } + return m_border; +} + +void QMapPolylineObject::setPath(const QVariantList &path) +{ + QList p; + bool ok = false; + for (const auto &c: path) { + const QGeoCoordinate coord = parseCoordinate(c, &ok); + if (ok) + p << coord; + } + auto pimpl = static_cast(d_ptr.data()); + if (p != pimpl->path()) { + pimpl->setPath(p); + emit pathChanged(); + } +} + +void QMapPolylineObject::setMap(QGeoMap *map) +{ + QMapPolylineObjectPrivate *d = static_cast(d_ptr.data()); + if (d->m_map == map) + return; + + QGeoMapObject::setMap(map); // This is where the specialized pimpl gets created and injected + + if (!map) { + // Map was set, now it has ben re-set to NULL, but not inside d_ptr. + // so m_map inside d_ptr can still be used to remove itself, inside the destructor. + d_ptr = new QMapPolylineObjectPrivateDefault(*d); + // Old pimpl deleted implicitly by QExplicitlySharedDataPointer + } +} + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmappolylineobject_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmappolylineobject_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmappolylineobject_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmappolylineobject_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,85 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMAPPOLYLINEOBJECT_P_H +#define QMAPPOLYLINEOBJECT_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +class Q_LOCATION_PRIVATE_EXPORT QMapPolylineObject : public QGeoMapObject +{ + Q_OBJECT + + Q_PROPERTY(QVariantList path READ path WRITE setPath NOTIFY pathChanged) + Q_PROPERTY(QDeclarativeMapLineProperties *line READ border CONSTANT) + +public: + QMapPolylineObject(QObject *parent = nullptr); + ~QMapPolylineObject() override; + + QVariantList path() const; + void setPath(const QVariantList &path); + + QDeclarativeMapLineProperties *border(); + void setMap(QGeoMap *map) override; + +signals: + void pathChanged(); + +protected: + QDeclarativeMapLineProperties *m_border = nullptr; +}; + +QT_END_NAMESPACE + +#endif // QMAPPOLYLINEOBJECT_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmappolylineobject_p_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmappolylineobject_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmappolylineobject_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmappolylineobject_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,107 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMAPPOLYLINEOBJECT_P_P_H +#define QMAPPOLYLINEOBJECT_P_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Q_LOCATION_PRIVATE_EXPORT QMapPolylineObjectPrivate : public QGeoMapObjectPrivate +{ +public: + QMapPolylineObjectPrivate(QGeoMapObject *q); + ~QMapPolylineObjectPrivate() override; + + virtual QGeoMapObject::Type type() const override final; + + virtual QList path() const = 0; + virtual void setPath(const QList &path) = 0; + virtual QColor color() const = 0; + virtual void setColor(const QColor &color) = 0; + virtual qreal width() const = 0; + virtual void setWidth(qreal width) = 0; + + // QGeoMapObjectPrivate interface + bool equals(const QGeoMapObjectPrivate &other) const override; +}; + +class Q_LOCATION_PRIVATE_EXPORT QMapPolylineObjectPrivateDefault : public QMapPolylineObjectPrivate +{ +public: + QMapPolylineObjectPrivateDefault(QGeoMapObject *q); + QMapPolylineObjectPrivateDefault(const QMapPolylineObjectPrivate &other); + ~QMapPolylineObjectPrivateDefault() override; + + // QGeoMapPolylinePrivate interface + QList path() const override; + void setPath(const QList &path) override; + QColor color() const override; + void setColor(const QColor &color) override; + qreal width() const override; + void setWidth(qreal width) override; + + // QGeoMapObjectPrivate interface + QGeoMapObjectPrivate *clone() override; + +public: + QList m_path; + QColor m_color; + qreal m_width = 0; + +private: + QMapPolylineObjectPrivateDefault(const QMapPolylineObjectPrivateDefault &other) = delete; +}; + +QT_END_NAMESPACE + + +#endif // QMAPPOLYLINEOBJECT_P_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmaprouteobject.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmaprouteobject.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmaprouteobject.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmaprouteobject.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,180 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include "qmaprouteobject_p.h" +#include "qmaprouteobject_p_p.h" + +QT_BEGIN_NAMESPACE + +/*! + \qmltype MapRouteObject + \instantiates QMapRouteObject + \inqmlmodule Qt.labs.location + \ingroup qml-QtLocation5-maps + \inherits QGeoMapObject + + \brief The MapRouteObject displays a geographical route on a Map. + + The MapRouteObject type displays a Route obtained through a RouteModel or + other means, on the Map as a Polyline following the path of the Route. +*/ + +/* + + QGeoMapRoutePrivate + +*/ + +QMapRouteObjectPrivate::QMapRouteObjectPrivate(QGeoMapObject *q) : QGeoMapObjectPrivate(q) +{ + +} + +QMapRouteObjectPrivate::QMapRouteObjectPrivate(const QMapRouteObjectPrivate &other) : QGeoMapObjectPrivate(other) +{ + // QGeoMapRoutePrivate doesn't contain anything because QGeoRoute has already everything necessary. +} + +QMapRouteObjectPrivate::~QMapRouteObjectPrivate() +{ + +} + +QGeoMapObject::Type QMapRouteObjectPrivate::type() const +{ + return QGeoMapObject::RouteType; +} + +QDeclarativeGeoRoute *QMapRouteObjectPrivate::declarativeGeoRoute() const +{ + const QMapRouteObject *r = static_cast(q); + return r->m_route; +} + +/*! + \qmlproperty Route Qt.labs.location::MapRouteObject::route + + This property holds the route to be drawn. +*/ +QGeoRoute QMapRouteObjectPrivate::route() const +{ + const QDeclarativeGeoRoute *r = declarativeGeoRoute(); + if (r) + return r->route(); + return {}; +} + +void QMapRouteObjectPrivate::setRoute(const QDeclarativeGeoRoute *route) +{ + Q_UNUSED(route) +} + +bool QMapRouteObjectPrivate::equals(const QGeoMapObjectPrivate &other) const +{ + if (other.type() != type()) // This check might be unnecessary, depending on how equals gets used + return false; + + const QMapRouteObjectPrivate &o = static_cast(other); + return (QGeoMapObjectPrivate::equals(o) + && route() == o.route()); // Could also be done shallow, comparing declarativeGeoRoute() +} + +QGeoMapObjectPrivate *QMapRouteObjectPrivate::clone() +{ + return new QMapRouteObjectPrivate(*this); +} + + +/* + + QGeoMapRoute + +*/ + +QMapRouteObject::QMapRouteObject(QObject *parent) + : QGeoMapObject(QExplicitlySharedDataPointer(new QMapRouteObjectPrivate(this)), parent) +{ + +} + +QMapRouteObject::~QMapRouteObject() +{ + +} + +QDeclarativeGeoRoute *QMapRouteObject::route() const +{ + return m_route; +} + +QGeoRoute QMapRouteObject::geoRoute() const +{ + if (m_route) + return m_route->route(); + return {}; +} + +void QMapRouteObject::setRoute(QDeclarativeGeoRoute *route) +{ + if (route == m_route) + return; +// if ((!m_route && !route) || (m_route && route && m_route->route() == route->route())) +// return; + + m_route = route; + QMapRouteObjectPrivate *d = static_cast(d_ptr.data()); + d->setRoute(route); + emit routeChanged(route); +} + +void QMapRouteObject::setMap(QGeoMap *map) +{ + QMapRouteObjectPrivate *d = static_cast(d_ptr.data()); + if (d->m_map == map) + return; + + QGeoMapObject::setMap(map); // This is where the specialized pimpl gets created and injected + + if (!map) { + // Map was set, now it has ben re-set to NULL, but not inside d_ptr. + // so m_map inside d_ptr can still be used to remove itself, inside the destructor. + d_ptr = new QMapRouteObjectPrivate(*d); + // Old pimpl deleted implicitly by QExplicitlySharedDataPointer + } +} + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmaprouteobject_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmaprouteobject_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmaprouteobject_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmaprouteobject_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QDECLARATIVEMAPROUTEDELEGATE_P_H +#define QDECLARATIVEMAPROUTEDELEGATE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include + +#include +#include + +QT_BEGIN_NAMESPACE + +class QDeclarativeGeoRoute; +class QGeoRoute; +class QMapRouteObjectPrivate; +class Q_LOCATION_PRIVATE_EXPORT QMapRouteObject : public QGeoMapObject +{ + Q_OBJECT + Q_PROPERTY(QDeclarativeGeoRoute *route READ route WRITE setRoute NOTIFY routeChanged) + +public: + explicit QMapRouteObject(QObject *parent = nullptr); + ~QMapRouteObject() override; + + QDeclarativeGeoRoute *route() const; + QGeoRoute geoRoute() const; + + void setMap(QGeoMap *map) override; + void setRoute(QDeclarativeGeoRoute * route); + +signals: + void routeChanged(QDeclarativeGeoRoute * route); + +protected: + QDeclarativeGeoRoute *m_route = nullptr; + + friend class QMapRouteObjectPrivate; +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QMapRouteObject) + +#endif // QDECLARATIVEMAPROUTEDELEGATE_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmaprouteobject_p_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmaprouteobject_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qmaprouteobject_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qmaprouteobject_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,79 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QGEOMAPROUTE_P_P_H +#define QGEOMAPROUTE_P_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +QT_BEGIN_NAMESPACE + +class QGeoRoute; + +class Q_LOCATION_PRIVATE_EXPORT QMapRouteObjectPrivate : public QGeoMapObjectPrivate +{ +public: + QMapRouteObjectPrivate(QGeoMapObject *q); + QMapRouteObjectPrivate(const QMapRouteObjectPrivate &other); + ~QMapRouteObjectPrivate() override; + + virtual QGeoMapObject::Type type() const override final; + + QDeclarativeGeoRoute *declarativeGeoRoute() const; + + virtual QGeoRoute route() const; + virtual void setRoute(const QDeclarativeGeoRoute *route); + + // QGeoMapObjectPrivate interface + bool equals(const QGeoMapObjectPrivate &other) const override; + QGeoMapObjectPrivate *clone() override; +}; + +QT_END_NAMESPACE + +#endif // QGEOMAPROUTE_P_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qgeomapobjectqsgsupport.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qgeomapobjectqsgsupport.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qgeomapobjectqsgsupport.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qgeomapobjectqsgsupport.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,224 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qgeomapobjectqsgsupport_p.h" +#include + +QT_BEGIN_NAMESPACE + +static int findMapObject(QGeoMapObject *o, const QList &list) +{ + for (int i = 0; i < list.size(); ++i) + { + if (list.at(i).object.data() == o) + return i; + } + return -1; +} + +bool QGeoMapObjectQSGSupport::createMapObjectImplementation(QGeoMapObject *obj, QGeoMapPrivate *d) +{ + QExplicitlySharedDataPointer pimpl = + QExplicitlySharedDataPointer(d->createMapObjectImplementation(obj)); + if (pimpl.constData()) { + bool res = obj->setImplementation(pimpl); + if (res) + emit m_map->sgNodeChanged(); + return res; + } + return false; +} + +QGeoMapObjectPrivate *QGeoMapObjectQSGSupport::createMapObjectImplementationPrivate(QGeoMapObject *obj) +{ + QGeoMapObjectPrivate *res = nullptr; + + { + QQSGMapObject *sgo = nullptr; + switch (obj->type()) { + case QGeoMapObject::PolylineType: { + QMapPolylineObjectPrivate &oldImpl = static_cast(*obj->implementation()); + QMapPolylineObjectPrivateQSG *pimpl = + new QMapPolylineObjectPrivateQSG(oldImpl); + sgo = pimpl; + res = pimpl; + break; + } + case QGeoMapObject::PolygonType: { + QMapPolygonObjectPrivate &oldImpl = static_cast(*obj->implementation()); + QMapPolygonObjectPrivateQSG *pimpl = + new QMapPolygonObjectPrivateQSG(oldImpl); + sgo = pimpl; + res = pimpl; + break; + } + case QGeoMapObject::CircleType: { + QMapCircleObjectPrivate &oldImpl = static_cast(*obj->implementation()); + QMapCircleObjectPrivateQSG *pimpl = + new QMapCircleObjectPrivateQSG(oldImpl); + sgo = pimpl; + res = pimpl; + break; + } + case QGeoMapObject::RouteType: { + QMapRouteObjectPrivate &oldImpl = static_cast(*obj->implementation()); + QMapRouteObjectPrivateQSG *pimpl = + new QMapRouteObjectPrivateQSG(oldImpl); + sgo = pimpl; + res = pimpl; + break; + } + case QGeoMapObject::IconType: { + QMapIconObjectPrivate &oldImpl = static_cast(*obj->implementation()); + QMapIconObjectPrivateQSG *pimpl = + new QMapIconObjectPrivateQSG(oldImpl); + sgo = pimpl; + res = pimpl; + break; + } + default: + // Use the following warning only for debugging purposes. + // qWarning() << "QGeoMapObjectQSGSupport::createMapObjectImplementationPrivate: not instantiating pimpl for unsupported object type " << obj->type(); + break; + } + + if (res) { + QPointer p(obj); + MapObject mo(p, sgo); + m_pendingMapObjects << mo; + } + } + return res; +} + +QList QGeoMapObjectQSGSupport::mapObjects() const +{ + return QList(); +} + +void QGeoMapObjectQSGSupport::removeMapObject(QGeoMapObject *obj) +{ + int idx = findMapObject(obj, m_mapObjects); + if (idx >= 0) { + const MapObject &mo = m_mapObjects.takeAt(idx); + obj->disconnect(m_map); + m_removedMapObjects << mo; + emit m_map->sgNodeChanged(); + } else { + idx = findMapObject(obj, m_pendingMapObjects); + if (idx >= 0) { + m_pendingMapObjects.removeAt(idx); + obj->disconnect(m_map); + } else { + // obj not here. + } + } +} + +void QGeoMapObjectQSGSupport::updateMapObjects(QSGNode *root, QQuickWindow *window) +{ + for (int i = 0; i < m_removedMapObjects.size(); ++i) { + MapObject mo = m_removedMapObjects[i]; + if (mo.qsgNode) { + root->removeChildNode(mo.qsgNode); + delete mo.qsgNode; + mo.qsgNode = nullptr; + // mo.sgObject is now invalid as it is destroyed right after appending + // mo to m_removedMapObjects + } + } + m_removedMapObjects.clear(); + + for (int i = 0; i < m_mapObjects.size(); ++i) { + // already added as node + if (Q_UNLIKELY(!m_mapObjects.at(i).object)) { + qWarning() << "unexpected NULL pointer in m_mapObjects at "<updateMapObjectNode(oldNode, &mo.visibleNode, root, window); + if (Q_UNLIKELY(!mo.qsgNode)) { + qWarning() << "updateMapObjectNode for "<type() << " returned NULL"; + } else if (mo.visibleNode && (mo.visibleNode->visible() != mo.object->visible())) { + mo.visibleNode->setVisible(mo.object->visible()); + mo.qsgNode->markDirty(QSGNode::DirtySubtreeBlocked); + } + } + + QList toRemove; + for (int i = 0; i < m_pendingMapObjects.size(); ++i) { + // already added as node + MapObject &mo = m_pendingMapObjects[i]; + QQSGMapObject *sgo = mo.sgObject; + QSGNode *oldNode = mo.qsgNode; + sgo->updateGeometry(); // or subtree will be blocked + mo.qsgNode = sgo->updateMapObjectNode(oldNode, &mo.visibleNode, root, window); + if (mo.qsgNode) { + if (mo.visibleNode && (mo.visibleNode->visible() != mo.object->visible())) { + mo.visibleNode->setVisible(mo.object->visible()); + mo.qsgNode->markDirty(QSGNode::DirtySubtreeBlocked); + } + m_mapObjects << mo; + toRemove.push_front(i); + QObject::connect(mo.object, SIGNAL(visibleChanged()), m_map, SIGNAL(sgNodeChanged())); + } else { + // leave it to be processed, don't spit warnings + } + } + + for (int i: qAsConst(toRemove)) + m_pendingMapObjects.removeAt(i); +} + +void QGeoMapObjectQSGSupport::updateObjectsGeometry() +{ + for (int i = 0; i < m_mapObjects.size(); ++i) { + // already added as node + if (Q_UNLIKELY(!m_mapObjects.at(i).object)) { + qWarning() << "unexpected NULL pointer in m_mapObjects at "<updateGeometry(); + } + emit m_map->sgNodeChanged(); +} + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qgeomapobjectqsgsupport_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qgeomapobjectqsgsupport_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qgeomapobjectqsgsupport_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qgeomapobjectqsgsupport_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,92 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QGEOMAPOBJECTQSGSUPPORT_P_H +#define QGEOMAPOBJECTQSGSUPPORT_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +struct Q_LOCATION_PRIVATE_EXPORT MapObject { + MapObject(QPointer &o, QQSGMapObject *sgo) + : object(o), sgObject(sgo) {} + + QPointer object; + QQSGMapObject *sgObject = nullptr; // this is a QMap*ObjectPrivateQSG. it becomes invalid when the pimpl is destroyed + VisibleNode *visibleNode = nullptr; // This is a Map*Node (like a MapPolygonNode) that is a QSGNode. This doesn't disappear by itself + QSGNode *qsgNode = nullptr; +}; + +class Q_LOCATION_PRIVATE_EXPORT QGeoMapObjectQSGSupport +{ +public: + bool createMapObjectImplementation(QGeoMapObject *obj, QGeoMapPrivate *d); + QGeoMapObjectPrivate *createMapObjectImplementationPrivate(QGeoMapObject *obj); + QList mapObjects() const; + void removeMapObject(QGeoMapObject *obj); + void updateMapObjects(QSGNode *root, QQuickWindow *window); + void updateObjectsGeometry(); + + QList m_mapObjects; + QList m_pendingMapObjects; + QList m_removedMapObjects; + QGeoMap *m_map = nullptr; +}; + +QT_END_NAMESPACE + +#endif // QGEOMAPOBJECTQSGSUPPORT_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qmapcircleobjectqsg.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qmapcircleobjectqsg.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qmapcircleobjectqsg.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qmapcircleobjectqsg.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,224 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmapcircleobjectqsg_p_p.h" + +QT_BEGIN_NAMESPACE + +static const int CircleSamples = 128; + +QMapCircleObjectPrivateQSG::QMapCircleObjectPrivateQSG(QGeoMapObject *q) + : QMapCircleObjectPrivateDefault(q) +{ + +} + +QMapCircleObjectPrivateQSG::QMapCircleObjectPrivateQSG(const QMapCircleObjectPrivate &other) + : QMapCircleObjectPrivateDefault(other) +{ + // Data already cloned by the *Default copy constructor, but necessary + // update operations triggered by setters overrides + setCenter(center()); + setRadius(radius()); + setColor(color()); + setBorderColor(borderColor()); + setBorderWidth(borderWidth()); +} + +QMapCircleObjectPrivateQSG::~QMapCircleObjectPrivateQSG() +{ + if (m_map) + m_map->removeMapObject(q); +} + +void QMapCircleObjectPrivateQSG::updateCirclePath() +{ + const QGeoProjectionWebMercator &p = static_cast(m_map->geoProjection()); + QList path; + QDeclarativeCircleMapItem::calculatePeripheralPoints(path, center(), radius(), CircleSamples, m_leftBound); + m_circlePath.clear(); + for (const QGeoCoordinate &c : path) + m_circlePath << p.geoToMapProjection(c); +} + +void QMapCircleObjectPrivateQSG::updateGeometry() +{ + if (!m_map || m_map->geoProjection().projectionType() != QGeoProjection::ProjectionWebMercator + || !qIsFinite(m_radius) || !m_center.isValid()) + return; + + const QGeoProjectionWebMercator &p = static_cast(m_map->geoProjection()); + QScopedValueRollback rollback(m_updatingGeometry); + m_updatingGeometry = true; + + updateCirclePath(); + QList circlePath = m_circlePath; + + int pathCount = circlePath.size(); + bool preserve = QDeclarativeCircleMapItem::preserveCircleGeometry(circlePath, center(), radius(), p); + // using leftBound_ instead of the analytically calculated circle_.boundingGeoRectangle().topLeft()); + // to fix QTBUG-62154 + m_geometry.markSourceDirty(); + m_geometry.setPreserveGeometry(true, m_leftBound); // to set the geoLeftBound_ + m_geometry.setPreserveGeometry(preserve, m_leftBound); + + bool invertedCircle = false; + if (QDeclarativeCircleMapItem::crossEarthPole(center(), radius()) && circlePath.size() == pathCount) { + m_geometry.updateScreenPointsInvert(circlePath, *m_map); // invert fill area for really huge circles + invertedCircle = true; + } else { + m_geometry.updateSourcePoints(*m_map, circlePath); + m_geometry.updateScreenPoints(*m_map); + } + + m_borderGeometry.clear(); + + //if (borderColor() != Qt::transparent && borderWidth() > 0) + { + QList closedPath = circlePath; + closedPath << closedPath.first(); + + if (invertedCircle) { + closedPath = m_circlePath; + closedPath << closedPath.first(); + std::reverse(closedPath.begin(), closedPath.end()); + } + + m_borderGeometry.markSourceDirty(); + m_borderGeometry.setPreserveGeometry(true, m_leftBound); + m_borderGeometry.setPreserveGeometry(preserve, m_leftBound); + + // Use srcOrigin_ from fill geometry after clipping to ensure that translateToCommonOrigin won't fail. + const QGeoCoordinate &geometryOrigin = m_geometry.origin(); + + m_borderGeometry.clearSource(); + + QDoubleVector2D borderLeftBoundWrapped; + QList > clippedPaths = + m_borderGeometry.clipPath(*m_map, closedPath, borderLeftBoundWrapped); + if (clippedPaths.size()) { + borderLeftBoundWrapped = p.geoToWrappedMapProjection(geometryOrigin); + m_borderGeometry.pathToScreen(*m_map, clippedPaths, borderLeftBoundWrapped); + m_borderGeometry.updateScreenPoints(*m_map, borderWidth(), false); + } else { + m_borderGeometry.clear(); + } + } + + QPointF origin = m_map->geoProjection().coordinateToItemPosition(m_geometry.origin(), false).toPointF(); + m_geometry.translate(origin - m_geometry.firstPointOffset()); + m_borderGeometry.translate(origin - m_borderGeometry.firstPointOffset()); +} + +QGeoMapObjectPrivate *QMapCircleObjectPrivateQSG::clone() +{ + return new QMapCircleObjectPrivateQSG(static_cast(*this)); +} + +QSGNode *QMapCircleObjectPrivateQSG::updateMapObjectNode(QSGNode *oldNode, + VisibleNode **visibleNode, + QSGNode *root, + QQuickWindow * /*window*/) +{ +// Q_UNUSED(visibleNode) // coz of -Werror=unused-but-set-parameter + MapPolygonNode *node = static_cast(oldNode); + + bool created = false; + if (!node) { + node = new MapPolygonNode(); + *visibleNode = static_cast(node); + created = true; + } + + //TODO: update only material + if (m_geometry.isScreenDirty() || !m_borderGeometry.isScreenDirty() || !oldNode || created) { + //QMapPolygonObject *p = static_cast(q); + node->update(color(), borderColor(), &m_geometry, &m_borderGeometry); + m_geometry.setPreserveGeometry(false); + m_borderGeometry.setPreserveGeometry(false); + m_geometry.markClean(); + m_borderGeometry.markClean(); + } + + if (created) + root->appendChildNode(node); + + return node; +} + + +void QMapCircleObjectPrivateQSG::setCenter(const QGeoCoordinate ¢er) +{ + m_center = center; + updateGeometry(); + if (m_map) + emit m_map->sgNodeChanged(); +} + +void QMapCircleObjectPrivateQSG::setRadius(qreal radius) +{ + m_radius = radius; + updateGeometry(); + if (m_map) + emit m_map->sgNodeChanged(); +} + +void QMapCircleObjectPrivateQSG::setColor(const QColor &color) +{ + m_fillColor = color; + updateGeometry(); + if (m_map) + emit m_map->sgNodeChanged(); +} + +void QMapCircleObjectPrivateQSG::setBorderColor(const QColor &color) +{ + m_borderColor = color; + updateGeometry(); + if (m_map) + emit m_map->sgNodeChanged(); +} + +void QMapCircleObjectPrivateQSG::setBorderWidth(qreal width) +{ + m_borderWidth = width; + updateGeometry(); + if (m_map) + emit m_map->sgNodeChanged(); +} + + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qmapcircleobjectqsg_p_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qmapcircleobjectqsg_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qmapcircleobjectqsg_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qmapcircleobjectqsg_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,101 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMAPCIRCLEOBJECTQSG_P_H +#define QMAPCIRCLEOBJECTQSG_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Q_LOCATION_PRIVATE_EXPORT QMapCircleObjectPrivateQSG : public QMapCircleObjectPrivateDefault, public QQSGMapObject +{ +public: + QMapCircleObjectPrivateQSG(QGeoMapObject *q); + QMapCircleObjectPrivateQSG(const QMapCircleObjectPrivate &other); + ~QMapCircleObjectPrivateQSG() override; + + void updateCirclePath(); + + // QQSGMapObject + void updateGeometry() override; + QSGNode *updateMapObjectNode(QSGNode *oldNode, + VisibleNode **visibleNode, + QSGNode *root, + QQuickWindow *window) override; + + // QGeoMapCirclePrivate interface + void setCenter(const QGeoCoordinate ¢er) override; + void setRadius(qreal radius) override; + void setColor(const QColor &color) override; + void setBorderColor(const QColor &color) override; + void setBorderWidth(qreal width) override; + + // QGeoMapObjectPrivate + QGeoMapObjectPrivate *clone() override; + +public: + // Data Members + QList m_circlePath; + QGeoCoordinate m_leftBound; + QGeoMapCircleGeometry m_geometry; + QGeoMapPolylineGeometry m_borderGeometry; + bool m_updatingGeometry = false; +}; + +QT_END_NAMESPACE + +#endif // QMAPCIRCLEOBJECT_P_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qmapiconobjectqsg.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qmapiconobjectqsg.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qmapiconobjectqsg.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qmapiconobjectqsg.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,225 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmapiconobjectqsg_p_p.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class RootNode : public QSGTransformNode, public VisibleNode +{ +public: + RootNode() { } + + bool isSubtreeBlocked() const override + { + return subtreeBlocked(); + } +}; + +QMapIconObjectPrivateQSG::QMapIconObjectPrivateQSG(QGeoMapObject *q) + : QMapIconObjectPrivateDefault(q) +{ + +} + +QMapIconObjectPrivateQSG::QMapIconObjectPrivateQSG(const QMapIconObjectPrivate &other) + : QMapIconObjectPrivateDefault(other) +{ + setContent(content()); + setCoordinate(coordinate()); +} + +QMapIconObjectPrivateQSG::~QMapIconObjectPrivateQSG() +{ + if (m_map) + m_map->removeMapObject(q); +} + +void QMapIconObjectPrivateQSG::updateGeometry() +{ + if (!m_map) + return; + + m_geometryDirty = true; + const QGeoProjectionWebMercator &p = static_cast(m_map->geoProjection()); + + m_itemPosition = p.coordinateToItemPosition(coordinate()); + if (m_itemPosition.isFinite()) { + m_transformation.setToIdentity(); + m_transformation.translate(QVector3D(m_itemPosition.x(), m_itemPosition.y(), 0)); + } + + // TODO: support and test for zoomLevel +} + +QSGNode *QMapIconObjectPrivateQSG::updateMapObjectNode(QSGNode *oldNode, + VisibleNode **visibleNode, + QSGNode *root, + QQuickWindow *window) +{ + Q_UNUSED(visibleNode) + bool created = false; + RootNode *node = static_cast(oldNode); + if (!node) { + node = new RootNode(); + m_imageNode = window->createImageNode(); + m_imageNode->setOwnsTexture(true); + node->appendChildNode(m_imageNode); + *visibleNode = static_cast(node); + created = true; + } + + if (m_imageDirty) { + m_imageDirty = false; + m_imageNode->setTexture(window->createTextureFromImage(m_image)); + QRect rect = m_image.rect(); + m_imageNode->setSourceRect(rect); + m_imageNode->setRect(QRectF(QPointF(0,0), m_size)); + } + + if (m_geometryDirty) { + m_geometryDirty = false; + if (!m_itemPosition.isFinite()) { + node->setSubtreeBlocked(true); + } else { + node->setSubtreeBlocked(false); + node->setMatrix(m_transformation); + } + } + + if (created) + root->appendChildNode(node); + + return node; +} + +void QMapIconObjectPrivateQSG::setCoordinate(const QGeoCoordinate &coordinate) +{ + QMapIconObjectPrivateDefault::setCoordinate(coordinate); + updateGeometry(); +} + +template +static T *getContent(const QVariant &content) +{ + QObject *obj = qvariant_cast(content); + return qobject_cast(obj); +} + +static inline QString imageId(const QUrl &url) +{ + return url.toString(QUrl::RemoveScheme | QUrl::RemoveAuthority).mid(1); +} + +void QMapIconObjectPrivateQSG::clearContent() +{ + m_image = QImage(); +} + +void QMapIconObjectPrivateQSG::setContent(const QVariant &content) +{ + // First reset all local containers + clearContent(); + QQmlEngine *engine = qmlEngine(q); + + // Then pull the new content + QMapIconObjectPrivateDefault::setContent(content); + switch (content.type()) { + case QVariant::UserType: { + // TODO: Handle QObject subclasses -- first decide which ones + break; + } + case QVariant::String: + case QVariant::Url: { + // URL, including image/texture providers + // Supporting only image providers for now + const QUrl url = content.toUrl(); + if (!url.isValid()) { + m_image = QImage(content.toString()); + m_imageDirty = true; + updateGeometry(); + } else if (url.scheme().isEmpty() || url.scheme() == QLatin1String("file")) { + m_image = QImage(url.toString(QUrl::RemoveScheme)); + m_imageDirty = true; + updateGeometry(); + } else if (url.scheme() == QLatin1String("image")) { + QQuickImageProvider *provider = static_cast(engine->imageProvider(url.host())); + QSize outSize; + m_image = provider->requestImage(imageId(url), &outSize, QSize()); + if (outSize.isEmpty()) + break; + m_imageDirty = true; + updateGeometry(); + } else { // ToDo: Use QNAM + + } + + break; + } + case QVariant::ByteArray: { + // ToDo: Build the image from bytearray + break; + } + default: + qWarning() << "Unsupported parameter type: " << content.type(); + break; + } + + if (m_map && m_imageDirty) + emit m_map->sgNodeChanged(); +} + +void QMapIconObjectPrivateQSG::setSize(const QSizeF &size) +{ + QMapIconObjectPrivateDefault::setSize(size); + updateGeometry(); +} + +QGeoMapObjectPrivate *QMapIconObjectPrivateQSG::clone() +{ + return new QMapIconObjectPrivateQSG(static_cast(*this)); +} + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qmapiconobjectqsg_p_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qmapiconobjectqsg_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qmapiconobjectqsg_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qmapiconobjectqsg_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,97 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMAPICONOBJECTQSG_P_P_H +#define QMAPICONOBJECTQSG_P_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QSGImageNode; +class Q_LOCATION_PRIVATE_EXPORT QMapIconObjectPrivateQSG : public QMapIconObjectPrivateDefault, public QQSGMapObject +{ +public: + QMapIconObjectPrivateQSG(QGeoMapObject *q); + QMapIconObjectPrivateQSG(const QMapIconObjectPrivate &other); + ~QMapIconObjectPrivateQSG() override; + + void clearContent(); + + // QQSGMapObject + void updateGeometry() override; + QSGNode *updateMapObjectNode(QSGNode *oldNode, + VisibleNode **visibleNode, + QSGNode *root, + QQuickWindow *window) override; + + // QGeoMapIconPrivate interface + void setCoordinate(const QGeoCoordinate &coordinate) override; + void setContent(const QVariant &content) override; + void setSize(const QSizeF &size) override; + + // QGeoMapObjectPrivate + QGeoMapObjectPrivate *clone() override; + +public: + // Data Members + bool m_imageDirty = false; + bool m_geometryDirty = false; + QImage m_image; + QSGImageNode *m_imageNode = nullptr; + QDoubleVector2D m_itemPosition; + QMatrix4x4 m_transformation; +}; + +QT_END_NAMESPACE + +#endif // QMAPICONOBJECTQSG_P_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qmappolygonobjectqsg.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qmappolygonobjectqsg.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qmappolygonobjectqsg.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qmappolygonobjectqsg.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,220 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmappolygonobjectqsg_p_p.h" +#include +#include + +QT_BEGIN_NAMESPACE + +QMapPolygonObjectPrivateQSG::QMapPolygonObjectPrivateQSG(QGeoMapObject *q) + : QMapPolygonObjectPrivate(q) +{ + +} + +QMapPolygonObjectPrivateQSG::QMapPolygonObjectPrivateQSG(const QMapPolygonObjectPrivate &other) + : QMapPolygonObjectPrivate(other.q) +{ + setPath(other.path()); + setFillColor(other.fillColor()); + setBorderColor(other.borderColor()); + setBorderWidth(other.borderWidth()); +} + +QMapPolygonObjectPrivateQSG::~QMapPolygonObjectPrivateQSG() +{ + if (m_map) + m_map->removeMapObject(q); +} + +QList QMapPolygonObjectPrivateQSG::projectPath() +{ + QList geopathProjected_; + if (!m_map || m_map->geoProjection().projectionType() != QGeoProjection::ProjectionWebMercator) + return geopathProjected_; + + const QGeoProjectionWebMercator &p = + static_cast(m_map->geoProjection()); + geopathProjected_.reserve(m_geoPath.path().size()); + for (const QGeoCoordinate &c : m_geoPath.path()) + geopathProjected_ << p.geoToMapProjection(c); + return geopathProjected_; +} + +QSGNode *QMapPolygonObjectPrivateQSG::updateMapObjectNode(QSGNode *oldNode, + VisibleNode **visibleNode, + QSGNode *root, + QQuickWindow */*window*/) +{ + Q_UNUSED(visibleNode) + MapPolygonNode *node = static_cast(oldNode); + + bool created = false; + if (!node) { + if (!m_geometry.size() && !m_borderGeometry.size()) + return nullptr; + node = new MapPolygonNode(); + *visibleNode = static_cast(node); + created = true; + } + + //TODO: update only material + if (m_geometry.isScreenDirty() || !m_borderGeometry.isScreenDirty() || !oldNode || created) { + node->update(fillColor(), borderColor(), &m_geometry, &m_borderGeometry); + m_geometry.setPreserveGeometry(false); + m_borderGeometry.setPreserveGeometry(false); + m_geometry.markClean(); + m_borderGeometry.markClean(); + } + + if (created) + root->appendChildNode(node); + + return node; +} + +QList QMapPolygonObjectPrivateQSG::path() const +{ + return m_geoPath.path(); +} + +QColor QMapPolygonObjectPrivateQSG::fillColor() const +{ + return m_fillColor; +} + +QColor QMapPolygonObjectPrivateQSG::borderColor() const +{ + return m_borderColor; +} + +qreal QMapPolygonObjectPrivateQSG::borderWidth() const +{ + return m_borderWidth; +} + +void QMapPolygonObjectPrivateQSG::setPath(const QList &path) +{ + m_geoPath.setPath(path); + updateGeometry(); + + if (m_map) + emit m_map->sgNodeChanged(); +} + +void QMapPolygonObjectPrivateQSG::setFillColor(const QColor &color) +{ + m_fillColor = color; + updateGeometry(); + + if (m_map) + emit m_map->sgNodeChanged(); +} + +void QMapPolygonObjectPrivateQSG::setBorderColor(const QColor &color) +{ + m_borderColor = color; + updateGeometry(); + + if (m_map) + emit m_map->sgNodeChanged(); +} + +void QMapPolygonObjectPrivateQSG::setBorderWidth(qreal width) +{ + m_borderWidth = width; + updateGeometry(); + + if (m_map) + emit m_map->sgNodeChanged(); +} + +QGeoMapObjectPrivate *QMapPolygonObjectPrivateQSG::clone() +{ + return new QMapPolygonObjectPrivateQSG(static_cast(*this)); +} + +void QMapPolygonObjectPrivateQSG::updateGeometry() +{ + if (!m_map || m_geoPath.path().length() == 0 + || m_map->geoProjection().projectionType() != QGeoProjection::ProjectionWebMercator) + return; + + QScopedValueRollback rollback(m_updatingGeometry); + m_updatingGeometry = true; + + const QList &geopathProjected = projectPath(); + + m_geometry.markSourceDirty(); + m_geometry.setPreserveGeometry(true, m_geoPath.boundingGeoRectangle().topLeft()); + m_geometry.updateSourcePoints(*m_map, geopathProjected); + m_geometry.updateScreenPoints(*m_map); + + m_borderGeometry.clear(); + + //if (border_.color() != Qt::transparent && border_.width() > 0) + { + const QGeoProjectionWebMercator &p = static_cast(m_map->geoProjection()); + QList closedPath = geopathProjected; + closedPath << closedPath.first(); + + m_borderGeometry.markSourceDirty(); + m_borderGeometry.setPreserveGeometry(true, m_geoPath.boundingGeoRectangle().topLeft()); + + const QGeoCoordinate &geometryOrigin = m_geometry.origin(); + + m_borderGeometry.clearSource(); + + QDoubleVector2D borderLeftBoundWrapped; + QList > clippedPaths = + m_borderGeometry.clipPath(*m_map.data(), closedPath, borderLeftBoundWrapped); + + if (clippedPaths.size()) { + borderLeftBoundWrapped = p.geoToWrappedMapProjection(geometryOrigin); + m_borderGeometry.pathToScreen(*m_map.data(), clippedPaths, borderLeftBoundWrapped); + m_borderGeometry.updateScreenPoints(*m_map.data(), borderWidth(), false); + } else { + m_borderGeometry.clear(); + } + } + + QPointF origin = m_map->geoProjection().coordinateToItemPosition(m_geometry.origin(), false).toPointF(); + m_geometry.translate(origin - m_geometry.firstPointOffset()); + m_borderGeometry.translate(origin - m_borderGeometry.firstPointOffset()); +} + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qmappolygonobjectqsg_p_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qmappolygonobjectqsg_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qmappolygonobjectqsg_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qmappolygonobjectqsg_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,103 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMAPPOLYGONOBJECTQSG_P_P_H +#define QMAPPOLYGONOBJECTQSG_P_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Q_LOCATION_PRIVATE_EXPORT QMapPolygonObjectPrivateQSG : public QMapPolygonObjectPrivate, public QQSGMapObject +{ +public: + QMapPolygonObjectPrivateQSG(QGeoMapObject *q); + QMapPolygonObjectPrivateQSG(const QMapPolygonObjectPrivate &other); + ~QMapPolygonObjectPrivateQSG() override; + + QList projectPath(); + + // QQSGMapObject + void updateGeometry() override; + QSGNode *updateMapObjectNode(QSGNode *oldNode, + VisibleNode **visibleNode, + QSGNode *root, + QQuickWindow *window) override; + + // QGeoMapPolylinePrivate interface + QList path() const override; + QColor fillColor() const override; + QColor borderColor() const override; + qreal borderWidth() const override; + + void setPath(const QList &path) override; + void setFillColor(const QColor &color) override; + void setBorderColor(const QColor &color) override; + void setBorderWidth(qreal width) override; + + // QGeoMapObjectPrivate + QGeoMapObjectPrivate *clone() override; + + // Data Members + QGeoMapPolygonGeometry m_geometry; + QGeoMapPolylineGeometry m_borderGeometry; + QGeoPath m_geoPath; + + QColor m_fillColor; + QColor m_borderColor; + qreal m_borderWidth = 0; + bool m_updatingGeometry = false; +}; + +QT_END_NAMESPACE + +#endif // QMAPPOLYGONOBJECTQSG_P_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qmappolylineobjectqsg.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qmappolylineobjectqsg.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qmappolylineobjectqsg.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qmappolylineobjectqsg.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,168 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmappolylineobjectqsg_p_p.h" +#include +#include + +QT_BEGIN_NAMESPACE + +/* + Note: never use q, since this class is also used inside QMapRouteObjectPrivateQSG! +*/ + +QMapPolylineObjectPrivateQSG::QMapPolylineObjectPrivateQSG(QGeoMapObject *q) + : QMapPolylineObjectPrivate(q) +{ + +} + +QMapPolylineObjectPrivateQSG::QMapPolylineObjectPrivateQSG(const QMapPolylineObjectPrivate &other) + : QMapPolylineObjectPrivate(other.q) +{ + // do the appropriate internal update and trigger map repaint + setPath(other.path()); + setColor(other.color()); + setWidth(other.width()); +} + +QMapPolylineObjectPrivateQSG::~QMapPolylineObjectPrivateQSG() +{ + if (m_map) + m_map->removeMapObject(q); +} + +QList QMapPolylineObjectPrivateQSG::projectPath() +{ + QList geopathProjected_; + if (!m_map || m_map->geoProjection().projectionType() != QGeoProjection::ProjectionWebMercator) + return geopathProjected_; + + const QGeoProjectionWebMercator &p = + static_cast(m_map->geoProjection()); + geopathProjected_.reserve(m_geoPath.path().size()); + for (const QGeoCoordinate &c : m_geoPath.path()) + geopathProjected_ << p.geoToMapProjection(c); + return geopathProjected_; +} + +void QMapPolylineObjectPrivateQSG::updateGeometry() +{ + if (!m_map || m_geoPath.path().length() == 0 + || m_map->geoProjection().projectionType() != QGeoProjection::ProjectionWebMercator) + return; + + QScopedValueRollback rollback(m_updatingGeometry); + m_updatingGeometry = true; + m_geometry.markSourceDirty(); + const QList &geopathProjected = projectPath(); + m_geometry.setPreserveGeometry(true, m_geoPath.boundingGeoRectangle().topLeft()); + m_geometry.updateSourcePoints(*m_map.data(), geopathProjected, m_geoPath.boundingGeoRectangle().topLeft()); + m_geometry.updateScreenPoints(*m_map.data(), width(), false); + + QPointF origin = m_map->geoProjection().coordinateToItemPosition(m_geometry.origin(), false).toPointF(); + m_geometry.translate(origin - m_geometry.firstPointOffset()); +} + +QSGNode *QMapPolylineObjectPrivateQSG::updateMapObjectNode(QSGNode *oldNode, + VisibleNode **visibleNode, + QSGNode *root, + QQuickWindow */*window*/) +{ + Q_UNUSED(visibleNode) + MapPolylineNode *node = static_cast(oldNode); + + bool created = false; + if (!node) { + if (!m_geometry.size()) // condition to block the subtree + return nullptr; + node = new MapPolylineNode(); + *visibleNode = static_cast(node); + created = true; + } + + //TODO: update only material + if (m_geometry.isScreenDirty() || !oldNode || created) { + node->update(color(), &m_geometry); + m_geometry.setPreserveGeometry(false); + m_geometry.markClean(); + } + + if (created) + root->appendChildNode(node); + + return node; +} + +QList QMapPolylineObjectPrivateQSG::path() const { return m_geoPath.path(); } + +QColor QMapPolylineObjectPrivateQSG::color() const { return m_color; } + +qreal QMapPolylineObjectPrivateQSG::width() const { return m_width; } + +void QMapPolylineObjectPrivateQSG::setPath(const QList &path) +{ + m_geoPath.setPath(path); + updateGeometry(); + + if (m_map) + emit m_map->sgNodeChanged(); +} + +void QMapPolylineObjectPrivateQSG::setColor(const QColor &color) +{ + m_color = color; + updateGeometry(); + + if (m_map) + emit m_map->sgNodeChanged(); +} + +void QMapPolylineObjectPrivateQSG::setWidth(qreal width) +{ + m_width = width; + updateGeometry(); + + if (m_map) + emit m_map->sgNodeChanged(); +} + +QGeoMapObjectPrivate *QMapPolylineObjectPrivateQSG::clone() +{ + return new QMapPolylineObjectPrivateQSG(static_cast(*this)); +} + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qmappolylineobjectqsg_p_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qmappolylineobjectqsg_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qmappolylineobjectqsg_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qmappolylineobjectqsg_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,99 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMAPPOLYLINEOBJECTOBJECTSOVERLAY_H +#define QMAPPOLYLINEOBJECTOBJECTSOVERLAY_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Q_LOCATION_PRIVATE_EXPORT QMapPolylineObjectPrivateQSG : public QMapPolylineObjectPrivate, public QQSGMapObject +{ +public: + QMapPolylineObjectPrivateQSG(QGeoMapObject *q); + QMapPolylineObjectPrivateQSG(const QMapPolylineObjectPrivate &other); + ~QMapPolylineObjectPrivateQSG() override; + + QList projectPath(); + + // QQSGMapObject + void updateGeometry() override; + QSGNode *updateMapObjectNode(QSGNode *oldNode, + VisibleNode **visibleNode, + QSGNode *root, + QQuickWindow *window) override; + + // QGeoMapPolylinePrivate interface + QList path() const override; + QColor color() const override; + qreal width() const override; + + void setPath(const QList &path) override; + void setColor(const QColor &color) override; + void setWidth(qreal width) override; + + // QGeoMapObjectPrivate + QGeoMapObjectPrivate *clone() override; + + // Data Members + QGeoMapPolylineGeometry m_geometry; + QGeoPath m_geoPath; + + QColor m_color; + qreal m_width = 0; + bool m_updatingGeometry = false; +}; + +QT_END_NAMESPACE + +#endif // QMAPPOLYLINEOBJECTOBJECTSOVERLAY_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qmaprouteobjectqsg.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qmaprouteobjectqsg.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qmaprouteobjectqsg.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qmaprouteobjectqsg.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,103 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmaprouteobjectqsg_p_p.h" + +QT_BEGIN_NAMESPACE + +QMapRouteObjectPrivateQSG::QMapRouteObjectPrivateQSG(QGeoMapObject *q) + : QMapRouteObjectPrivate(q) +{ + QScopedPointer poly(new QMapPolylineObjectPrivateQSG(q)); + m_polyline.swap(poly); + m_polyline->m_componentCompleted = true; +} + +QMapRouteObjectPrivateQSG::QMapRouteObjectPrivateQSG(const QMapRouteObjectPrivate &other) + : QMapRouteObjectPrivate(other) +{ + QScopedPointer poly(new QMapPolylineObjectPrivateQSG(other.q)); + m_polyline.swap(poly); + m_polyline->m_componentCompleted = true; + setRoute(other.declarativeGeoRoute()); +} + +QMapRouteObjectPrivateQSG::~QMapRouteObjectPrivateQSG() +{ + if (m_map) + m_map->removeMapObject(q); +} + +void QMapRouteObjectPrivateQSG::updateGeometry() +{ + m_polyline->updateGeometry(); +} + +QSGNode *QMapRouteObjectPrivateQSG::updateMapObjectNode(QSGNode *oldNode, + VisibleNode **visibleNode, + QSGNode *root, + QQuickWindow *window) +{ + return m_polyline->updateMapObjectNode(oldNode, visibleNode, root, window); +} + +void QMapRouteObjectPrivateQSG::setRoute(const QDeclarativeGeoRoute *route) +{ + const QList &path = route->route().path(); + m_polyline->setColor(QColor("deepskyblue")); // ToDo: support MapParameters for this + m_polyline->setWidth(4); + m_polyline->setPath(path); // SGNodeChanged emitted by m_polyline +} + +QGeoMapObjectPrivate *QMapRouteObjectPrivateQSG::clone() +{ + return new QMapRouteObjectPrivateQSG(static_cast(*this)); +} + +void QMapRouteObjectPrivateQSG::setMap(QGeoMap *map) +{ + QGeoMapObjectPrivate::setMap(map); + m_polyline->setMap(map); +} + + +void QMapRouteObjectPrivateQSG::setVisible(bool visible) +{ + m_visible = visible; + m_polyline->setVisible(visible); +} + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qmaprouteobjectqsg_p_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qmaprouteobjectqsg_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qmaprouteobjectqsg_p_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qmaprouteobjectqsg_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMAPROUTEOBJECTQSG_P_P_H +#define QMAPROUTEOBJECTQSG_P_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Q_LOCATION_PRIVATE_EXPORT QMapRouteObjectPrivateQSG : public QMapRouteObjectPrivate, public QQSGMapObject +{ +public: + QMapRouteObjectPrivateQSG(QGeoMapObject *q); + QMapRouteObjectPrivateQSG(const QMapRouteObjectPrivate &other); + ~QMapRouteObjectPrivateQSG() override; + + // QQSGMapObject + void updateGeometry() override; + QSGNode *updateMapObjectNode(QSGNode *oldNode, + VisibleNode **visibleNode, + QSGNode *root, + QQuickWindow *window) override; + + // QMapRouteObjectPrivate interface + void setRoute(const QDeclarativeGeoRoute *route) override; + + // QGeoMapObjectPrivate interface + QGeoMapObjectPrivate *clone() override; + void setMap(QGeoMap *map) override; + void setVisible(bool visible) override; + + // Data Members + QScopedPointer m_polyline; +}; + +QT_END_NAMESPACE + +#endif // QMAPROUTEOBJECTQSG_P_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qqsgmapobject.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qqsgmapobject.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qqsgmapobject.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qqsgmapobject.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,68 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qqsgmapobject_p.h" +#include + +QT_BEGIN_NAMESPACE + +QQSGMapObject::QQSGMapObject() +{ + +} + +QQSGMapObject::~QQSGMapObject() +{ + +} + +QSGNode *QQSGMapObject::updateMapObjectNode(QSGNode *oldNode, + VisibleNode **/*visibleNode*/, + QSGNode * /*root*/, + QQuickWindow * /*window*/) +{ + delete oldNode; + return 0; +} + +void QQSGMapObject::updateGeometry() +{ + +} + +QT_END_NAMESPACE + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qqsgmapobject_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qqsgmapobject_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/labs/qsg/qqsgmapobject_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/labs/qsg/qqsgmapobject_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QQSGMAPOBJECT_H +#define QQSGMAPOBJECT_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QQuickWindow; +class Q_LOCATION_PRIVATE_EXPORT QQSGMapObject +{ +public: + QQSGMapObject(); + virtual ~QQSGMapObject(); + + virtual QSGNode *updateMapObjectNode(QSGNode *oldNode, + VisibleNode **visibleNode, + QSGNode *root, + QQuickWindow *window); + virtual void updateGeometry(); +}; + +QT_END_NAMESPACE + +#endif // QQSGMAPOBJECT_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/location.pro qtlocation-opensource-src-5.11.1+dfsg/src/location/location.pro --- qtlocation-opensource-src-5.9.5+dfsg/src/location/location.pro 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/location.pro 2018-06-12 18:44:12.000000000 +0000 @@ -6,6 +6,7 @@ } CONFIG += simd optimize_full +QT_FOR_CONFIG += location-private # 3rdparty headers produce warnings with MSVC msvc: CONFIG -= warning_clean @@ -22,11 +23,10 @@ geoservices QMAKE_DOCS = $$PWD/doc/qtlocation.qdocconf -OTHER_FILES += doc/src/*.qdoc # show .qdoc files in Qt Creator +OTHER_FILES += configure.json doc/src/*.qdoc # show .qdoc files in Qt Creator PUBLIC_HEADERS += \ qlocation.h \ - qlocationglobal_p.h \ qlocationglobal.h PRIVATE_HEADERS += \ @@ -39,6 +39,7 @@ include(places/places.pri) include(declarativemaps/declarativemaps.pri) include(declarativeplaces/declarativeplaces.pri) +qtConfig(location-labs-plugin):include(labs/labs.pri) HEADERS += $$PUBLIC_HEADERS $$PRIVATE_HEADERS diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/maps.pri qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/maps.pri --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/maps.pri 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/maps.pri 2018-06-12 18:44:12.000000000 +0000 @@ -60,6 +60,8 @@ maps/qgeorouteparserosrmv5_p.h \ maps/qgeorouteparserosrmv4_p.h \ maps/qgeoprojection_p.h \ + maps/qnavigationmanagerengine_p.h \ + maps/qnavigationmanager_p.h \ maps/qcache3q_p.h SOURCES += \ @@ -95,4 +97,6 @@ maps/qgeorouteparserosrmv5.cpp \ maps/qgeorouteparserosrmv4.cpp \ maps/qgeomapparameter.cpp \ + maps/qnavigationmanagerengine.cpp \ + maps/qnavigationmanager.cpp \ maps/qgeoprojection.cpp diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeocodereply.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeocodereply.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeocodereply.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeocodereply.h 2018-06-12 18:44:12.000000000 +0000 @@ -63,7 +63,7 @@ UnknownError }; - explicit QGeoCodeReply(Error error, const QString &errorString, QObject *parent = Q_NULLPTR); + explicit QGeoCodeReply(Error error, const QString &errorString, QObject *parent = nullptr); virtual ~QGeoCodeReply(); bool isFinished() const; @@ -84,7 +84,7 @@ void error(QGeoCodeReply::Error error, const QString &errorString = QString()); protected: - explicit QGeoCodeReply(QObject *parent = Q_NULLPTR); + explicit QGeoCodeReply(QObject *parent = nullptr); void setError(Error error, const QString &errorString); void setFinished(bool finished); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeocodingmanagerengine.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeocodingmanagerengine.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeocodingmanagerengine.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeocodingmanagerengine.h 2018-06-12 18:44:12.000000000 +0000 @@ -51,7 +51,7 @@ { Q_OBJECT public: - explicit QGeoCodingManagerEngine(const QVariantMap ¶meters, QObject *parent = Q_NULLPTR); + explicit QGeoCodingManagerEngine(const QVariantMap ¶meters, QObject *parent = nullptr); virtual ~QGeoCodingManagerEngine(); QString managerName() const; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeocodingmanager.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeocodingmanager.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeocodingmanager.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeocodingmanager.h 2018-06-12 18:44:12.000000000 +0000 @@ -78,7 +78,7 @@ void error(QGeoCodeReply *reply, QGeoCodeReply::Error error, QString errorString = QString()); private: - explicit QGeoCodingManager(QGeoCodingManagerEngine *engine, QObject *parent = Q_NULLPTR); + explicit QGeoCodingManager(QGeoCodingManagerEngine *engine, QObject *parent = nullptr); QGeoCodingManagerPrivate *d_ptr; Q_DISABLE_COPY(QGeoCodingManager) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeofiletilecache_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeofiletilecache_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeofiletilecache_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeofiletilecache_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -102,30 +102,30 @@ QGeoFileTileCache(const QString &directory = QString(), QObject *parent = 0); ~QGeoFileTileCache(); - void setMaxDiskUsage(int diskUsage) Q_DECL_OVERRIDE; - int maxDiskUsage() const Q_DECL_OVERRIDE; - int diskUsage() const Q_DECL_OVERRIDE; - - void setMaxMemoryUsage(int memoryUsage) Q_DECL_OVERRIDE; - int maxMemoryUsage() const Q_DECL_OVERRIDE; - int memoryUsage() const Q_DECL_OVERRIDE; - - void setMinTextureUsage(int textureUsage) Q_DECL_OVERRIDE; - void setExtraTextureUsage(int textureUsage) Q_DECL_OVERRIDE; - int maxTextureUsage() const Q_DECL_OVERRIDE; - int minTextureUsage() const Q_DECL_OVERRIDE; - int textureUsage() const Q_DECL_OVERRIDE; - void clearAll() Q_DECL_OVERRIDE; + void setMaxDiskUsage(int diskUsage) override; + int maxDiskUsage() const override; + int diskUsage() const override; + + void setMaxMemoryUsage(int memoryUsage) override; + int maxMemoryUsage() const override; + int memoryUsage() const override; + + void setMinTextureUsage(int textureUsage) override; + void setExtraTextureUsage(int textureUsage) override; + int maxTextureUsage() const override; + int minTextureUsage() const override; + int textureUsage() const override; + void clearAll() override; void clearMapId(const int mapId); - void setCostStrategyDisk(CostStrategy costStrategy) Q_DECL_OVERRIDE; - CostStrategy costStrategyDisk() const Q_DECL_OVERRIDE; - void setCostStrategyMemory(CostStrategy costStrategy) Q_DECL_OVERRIDE; - CostStrategy costStrategyMemory() const Q_DECL_OVERRIDE; - void setCostStrategyTexture(CostStrategy costStrategy) Q_DECL_OVERRIDE; - CostStrategy costStrategyTexture() const Q_DECL_OVERRIDE; + void setCostStrategyDisk(CostStrategy costStrategy) override; + CostStrategy costStrategyDisk() const override; + void setCostStrategyMemory(CostStrategy costStrategy) override; + CostStrategy costStrategyMemory() const override; + void setCostStrategyTexture(CostStrategy costStrategy) override; + CostStrategy costStrategyTexture() const override; - QSharedPointer get(const QGeoTileSpec &spec) Q_DECL_OVERRIDE; + QSharedPointer get(const QGeoTileSpec &spec) override; // can be called without a specific tileCache pointer static void evictFromDiskCache(QGeoCachedTileDisk *td); @@ -134,14 +134,14 @@ void insert(const QGeoTileSpec &spec, const QByteArray &bytes, const QString &format, - QAbstractGeoTileCache::CacheAreas areas = QAbstractGeoTileCache::AllCaches) Q_DECL_OVERRIDE; + QAbstractGeoTileCache::CacheAreas areas = QAbstractGeoTileCache::AllCaches) override; static QString tileSpecToFilenameDefault(const QGeoTileSpec &spec, const QString &format, const QString &directory); static QGeoTileSpec filenameToTileSpecDefault(const QString &filename); protected: - void init() Q_DECL_OVERRIDE; - void printStats() Q_DECL_OVERRIDE; + void init() override; + void printStats() override; void loadTiles(); QString directory() const; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomaneuver.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomaneuver.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomaneuver.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomaneuver.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -41,6 +41,12 @@ QT_BEGIN_NAMESPACE +template<> +QGeoManeuverPrivate *QSharedDataPointer::clone() +{ + return d->clone(); +} + /*! \class QGeoManeuver \inmodule QtLocation @@ -115,7 +121,7 @@ setWaypoint() is called. */ QGeoManeuver::QGeoManeuver() - : d_ptr(new QGeoManeuverPrivate()) {} + : d_ptr(new QGeoManeuverPrivateDefault()) {} /*! Constructs a maneuver object from the contents of \a other. @@ -146,7 +152,8 @@ */ bool QGeoManeuver::operator== (const QGeoManeuver &other) const { - return (*(d_ptr.constData()) == *(other.d_ptr.constData())); + return ( (d_ptr.constData() == other.d_ptr.constData()) + || (*(d_ptr.constData()) == *(other.d_ptr.constData())) ); } /*! @@ -165,7 +172,7 @@ */ bool QGeoManeuver::isValid() const { - return d_ptr->valid; + return d_ptr->valid(); } /*! @@ -174,8 +181,8 @@ */ void QGeoManeuver::setPosition(const QGeoCoordinate &position) { - d_ptr->valid = true; - d_ptr->position = position; + d_ptr->setValid(true); + d_ptr->setPosition(position); } /*! @@ -183,7 +190,7 @@ */ QGeoCoordinate QGeoManeuver::position() const { - return d_ptr->position; + return d_ptr->position(); } /*! @@ -191,8 +198,8 @@ */ void QGeoManeuver::setInstructionText(const QString &instructionText) { - d_ptr->valid = true; - d_ptr->text = instructionText; + d_ptr->setValid(true); + d_ptr->setText(instructionText); } /*! @@ -200,7 +207,7 @@ */ QString QGeoManeuver::instructionText() const { - return d_ptr->text; + return d_ptr->text(); } /*! @@ -209,8 +216,8 @@ */ void QGeoManeuver::setDirection(QGeoManeuver::InstructionDirection direction) { - d_ptr->valid = true; - d_ptr->direction = direction; + d_ptr->setValid(true); + d_ptr->setDirection(direction); } /*! @@ -218,7 +225,7 @@ */ QGeoManeuver::InstructionDirection QGeoManeuver::direction() const { - return d_ptr->direction; + return d_ptr->direction(); } /*! @@ -228,8 +235,8 @@ */ void QGeoManeuver::setTimeToNextInstruction(int secs) { - d_ptr->valid = true; - d_ptr->timeToNextInstruction = secs; + d_ptr->setValid(true); + d_ptr->setTimeToNextInstruction(secs); } /*! @@ -239,7 +246,7 @@ */ int QGeoManeuver::timeToNextInstruction() const { - return d_ptr->timeToNextInstruction; + return d_ptr->timeToNextInstruction(); } /*! @@ -249,8 +256,8 @@ */ void QGeoManeuver::setDistanceToNextInstruction(qreal distance) { - d_ptr->valid = true; - d_ptr->distanceToNextInstruction = distance; + d_ptr->setValid(true); + d_ptr->setDistanceToNextInstruction(distance); } /*! @@ -260,7 +267,7 @@ */ qreal QGeoManeuver::distanceToNextInstruction() const { - return d_ptr->distanceToNextInstruction; + return d_ptr->distanceToNextInstruction(); } /*! @@ -268,8 +275,8 @@ */ void QGeoManeuver::setWaypoint(const QGeoCoordinate &coordinate) { - d_ptr->valid = true; - d_ptr->waypoint = coordinate; + d_ptr->setValid(true); + d_ptr->setWaypoint(coordinate); } /*! @@ -280,39 +287,274 @@ */ QGeoCoordinate QGeoManeuver::waypoint() const { - return d_ptr->waypoint; + return d_ptr->waypoint(); +} + +QGeoManeuver::QGeoManeuver(const QSharedDataPointer &dd) + : d_ptr(dd) {} + +/*! + Sets the extended attributes \a extendedAttributes associated with this maneuver. + + \since QtLocation 5.11 +*/ +void QGeoManeuver::setExtendedAttributes(const QVariantMap &extendedAttributes) +{ + d_ptr->setValid(true); + d_ptr->setExtendedAttributes(extendedAttributes); +} + +/*! + Returns the extended attributes associated with this maneuver. + + \since QtLocation 5.11 +*/ +QVariantMap QGeoManeuver::extendedAttributes() const +{ + return d_ptr->extendedAttributes(); } /******************************************************************************* *******************************************************************************/ QGeoManeuverPrivate::QGeoManeuverPrivate() - : valid(false), - direction(QGeoManeuver::NoDirection), - timeToNextInstruction(0), - distanceToNextInstruction(0.0) {} +{ + +} QGeoManeuverPrivate::QGeoManeuverPrivate(const QGeoManeuverPrivate &other) - : QSharedData(other), - valid(other.valid), - position(other.position), - text(other.text), - direction(other.direction), - timeToNextInstruction(other.timeToNextInstruction), - distanceToNextInstruction(other.distanceToNextInstruction), - waypoint(other.waypoint) {} - -QGeoManeuverPrivate::~QGeoManeuverPrivate() {} - -bool QGeoManeuverPrivate::operator ==(const QGeoManeuverPrivate &other) const -{ - return ((valid == other.valid) - && (position == other.position) - && (text == other.text) - && (direction == other.direction) - && (timeToNextInstruction == other.timeToNextInstruction) - && (distanceToNextInstruction == other.distanceToNextInstruction) - && (waypoint == other.waypoint)); + : QSharedData(other) +{ + +} + +QGeoManeuverPrivate::~QGeoManeuverPrivate() +{ + +} + +bool QGeoManeuverPrivate::operator==(const QGeoManeuverPrivate &other) const +{ + return equals(other); +} + +bool QGeoManeuverPrivate::equals(const QGeoManeuverPrivate &other) const +{ + return ((valid() == other.valid()) + && (position() == other.position()) + && (text() == other.text()) + && (direction() == other.direction()) + && (timeToNextInstruction() == other.timeToNextInstruction()) + && (distanceToNextInstruction() == other.distanceToNextInstruction()) + && (waypoint() == other.waypoint())); +} + +bool QGeoManeuverPrivate::valid() const +{ + return false; +} + +void QGeoManeuverPrivate::setValid(bool valid) +{ + Q_UNUSED(valid) +} + +QString QGeoManeuverPrivate::id() const +{ + return QString(); +} + +void QGeoManeuverPrivate::setId(const QString id) +{ + Q_UNUSED(id) +} + +QGeoCoordinate QGeoManeuverPrivate::position() const +{ + return QGeoCoordinate(); +} + +void QGeoManeuverPrivate::setPosition(const QGeoCoordinate &position) +{ + Q_UNUSED(position) +} + +QString QGeoManeuverPrivate::text() const +{ + return QString(); +} + +void QGeoManeuverPrivate::setText(const QString &text) +{ + Q_UNUSED(text) +} + +QGeoManeuver::InstructionDirection QGeoManeuverPrivate::direction() const +{ + return QGeoManeuver::NoDirection; +} + +void QGeoManeuverPrivate::setDirection(QGeoManeuver::InstructionDirection direction) +{ + Q_UNUSED(direction) +} + +int QGeoManeuverPrivate::timeToNextInstruction() const +{ + return 0; +} + +void QGeoManeuverPrivate::setTimeToNextInstruction(int timeToNextInstruction) +{ + Q_UNUSED(timeToNextInstruction) +} + +qreal QGeoManeuverPrivate::distanceToNextInstruction() const +{ + return 0; +} + +void QGeoManeuverPrivate::setDistanceToNextInstruction(qreal distanceToNextInstruction) +{ + Q_UNUSED(distanceToNextInstruction) +} + +QGeoCoordinate QGeoManeuverPrivate::waypoint() const +{ + return QGeoCoordinate(); +} + +void QGeoManeuverPrivate::setWaypoint(const QGeoCoordinate &waypoint) +{ + Q_UNUSED(waypoint) +} + +QVariantMap QGeoManeuverPrivate::extendedAttributes() const +{ + return QVariantMap(); +} + +void QGeoManeuverPrivate::setExtendedAttributes(const QVariantMap &extendedAttributes) +{ + Q_UNUSED(extendedAttributes) +} + + + +/******************************************************************************* +*******************************************************************************/ + +QGeoManeuverPrivateDefault::QGeoManeuverPrivateDefault() + : m_valid(false), + m_direction(QGeoManeuver::NoDirection), + m_timeToNextInstruction(0), + m_distanceToNextInstruction(0.0) {} + +QGeoManeuverPrivateDefault::QGeoManeuverPrivateDefault(const QGeoManeuverPrivateDefault &other) + : QGeoManeuverPrivate(other), + m_valid(other.m_valid), + m_position(other.m_position), + m_text(other.m_text), + m_direction(other.m_direction), + m_timeToNextInstruction(other.m_timeToNextInstruction), + m_distanceToNextInstruction(other.m_distanceToNextInstruction), + m_waypoint(other.m_waypoint) {} + +QGeoManeuverPrivateDefault::~QGeoManeuverPrivateDefault() {} + +QGeoManeuverPrivate *QGeoManeuverPrivateDefault::clone() +{ + return new QGeoManeuverPrivateDefault(*this); +} + +bool QGeoManeuverPrivateDefault::valid() const +{ + return m_valid; +} + +void QGeoManeuverPrivateDefault::setValid(bool valid) +{ + m_valid = valid; +} + +QString QGeoManeuverPrivateDefault::id() const +{ + return m_id; +} + +void QGeoManeuverPrivateDefault::setId(const QString id) +{ + m_id = id; +} + +QGeoCoordinate QGeoManeuverPrivateDefault::position() const +{ + return m_position; +} + +void QGeoManeuverPrivateDefault::setPosition(const QGeoCoordinate &position) +{ + m_position = position; +} + +QString QGeoManeuverPrivateDefault::text() const +{ + return m_text; +} + +void QGeoManeuverPrivateDefault::setText(const QString &text) +{ + m_text = text; +} + +QGeoManeuver::InstructionDirection QGeoManeuverPrivateDefault::direction() const +{ + return m_direction; +} + +void QGeoManeuverPrivateDefault::setDirection(QGeoManeuver::InstructionDirection direction) +{ + m_direction = direction; +} + +int QGeoManeuverPrivateDefault::timeToNextInstruction() const +{ + return m_timeToNextInstruction; +} + +void QGeoManeuverPrivateDefault::setTimeToNextInstruction(int timeToNextInstruction) +{ + m_timeToNextInstruction = timeToNextInstruction; +} + +qreal QGeoManeuverPrivateDefault::distanceToNextInstruction() const +{ + return m_distanceToNextInstruction; +} + +void QGeoManeuverPrivateDefault::setDistanceToNextInstruction(qreal distanceToNextInstruction) +{ + m_distanceToNextInstruction = distanceToNextInstruction; +} + +QGeoCoordinate QGeoManeuverPrivateDefault::waypoint() const +{ + return m_waypoint; +} + +void QGeoManeuverPrivateDefault::setWaypoint(const QGeoCoordinate &waypoint) +{ + m_waypoint = waypoint; +} + +QVariantMap QGeoManeuverPrivateDefault::extendedAttributes() const +{ + return m_extendedAttributes; +} + +void QGeoManeuverPrivateDefault::setExtendedAttributes(const QVariantMap &extendedAttributes) +{ + m_extendedAttributes = extendedAttributes; } QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomaneuver.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomaneuver.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomaneuver.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomaneuver.h 2018-06-12 18:44:12.000000000 +0000 @@ -39,6 +39,7 @@ #include #include +#include QT_BEGIN_NAMESPACE @@ -95,6 +96,12 @@ void setWaypoint(const QGeoCoordinate &coordinate); QGeoCoordinate waypoint() const; + void setExtendedAttributes(const QVariantMap &extendedAttributes); + QVariantMap extendedAttributes() const; + +protected: + QGeoManeuver(const QSharedDataPointer &dd); + private: QSharedDataPointer d_ptr; }; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomaneuver_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomaneuver_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomaneuver_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomaneuver_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -48,31 +48,100 @@ // We mean it. // -#include "qgeomaneuver.h" -#include "qgeocoordinate.h" +#include +#include +#include #include #include QT_BEGIN_NAMESPACE -class QGeoManeuverPrivate : public QSharedData +class Q_LOCATION_PRIVATE_EXPORT QGeoManeuverPrivate : public QSharedData { public: QGeoManeuverPrivate(); QGeoManeuverPrivate(const QGeoManeuverPrivate &other); - ~QGeoManeuverPrivate(); + virtual ~QGeoManeuverPrivate(); + virtual QGeoManeuverPrivate *clone() = 0; bool operator== (const QGeoManeuverPrivate &other) const; - bool valid; - QString id; - QGeoCoordinate position; - QString text; - QGeoManeuver::InstructionDirection direction; - int timeToNextInstruction; - qreal distanceToNextInstruction; - QGeoCoordinate waypoint; + virtual bool valid() const; + virtual void setValid(bool valid); + + virtual QString id() const; + virtual void setId(const QString id); + + virtual QGeoCoordinate position() const; + virtual void setPosition(const QGeoCoordinate &position); + + virtual QString text() const; + virtual void setText(const QString &text); + + virtual QGeoManeuver::InstructionDirection direction() const; + virtual void setDirection(QGeoManeuver::InstructionDirection direction); + + virtual int timeToNextInstruction() const; + virtual void setTimeToNextInstruction(int timeToNextInstruction); + + virtual qreal distanceToNextInstruction() const; + virtual void setDistanceToNextInstruction(qreal distanceToNextInstruction); + + virtual QGeoCoordinate waypoint() const; + virtual void setWaypoint(const QGeoCoordinate &waypoint); + + virtual QVariantMap extendedAttributes() const; + virtual void setExtendedAttributes(const QVariantMap &extendedAttributes); + +protected: + virtual bool equals(const QGeoManeuverPrivate &other) const; +}; + +class Q_LOCATION_PRIVATE_EXPORT QGeoManeuverPrivateDefault : public QGeoManeuverPrivate +{ +public: + QGeoManeuverPrivateDefault(); + QGeoManeuverPrivateDefault(const QGeoManeuverPrivateDefault &other); + ~QGeoManeuverPrivateDefault(); + virtual QGeoManeuverPrivate *clone() override; + + virtual bool valid() const override; + virtual void setValid(bool valid) override; + + virtual QString id() const override; + virtual void setId(const QString id) override; + + virtual QGeoCoordinate position() const override; + virtual void setPosition(const QGeoCoordinate &position) override; + + virtual QString text() const override; + virtual void setText(const QString &text) override; + + virtual QGeoManeuver::InstructionDirection direction() const override; + virtual void setDirection(QGeoManeuver::InstructionDirection direction) override; + + virtual int timeToNextInstruction() const override; + virtual void setTimeToNextInstruction(int timeToNextInstruction) override; + + virtual qreal distanceToNextInstruction() const override; + virtual void setDistanceToNextInstruction(qreal distanceToNextInstruction) override; + + virtual QGeoCoordinate waypoint() const override; + virtual void setWaypoint(const QGeoCoordinate &waypoint) override; + + virtual QVariantMap extendedAttributes() const override; + virtual void setExtendedAttributes(const QVariantMap &extendedAttributes) override; + + bool m_valid; + QString m_id; + QGeoCoordinate m_position; + QString m_text; + QGeoManeuver::InstructionDirection m_direction; + int m_timeToNextInstruction; + qreal m_distanceToNextInstruction; + QGeoCoordinate m_waypoint; + QVariantMap m_extendedAttributes; }; QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomap.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomap.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomap.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomap.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -39,6 +39,8 @@ #include "qgeocameracapabilities_p.h" #include "qgeomappingmanagerengine_p.h" #include "qdeclarativegeomapitembase_p.h" +#include "qgeomapobject_p.h" +#include "qgeomapobject_p_p.h" #include QT_BEGIN_NAMESPACE @@ -50,7 +52,10 @@ QGeoMap::~QGeoMap() { + Q_D(QGeoMap); clearParameters(); + for (QGeoMapObject *p : d->mapObjects()) + p->setMap(nullptr); // forces replacing pimpls with the default ones. } void QGeoMap::setViewportSize(const QSize& size) @@ -87,7 +92,7 @@ if (cameraData == d->m_cameraData) return; d->m_cameraData = cameraData; - d->m_geoProjection->setCameraData(cameraData); + d->m_geoProjection->setCameraData(cameraData, false); d->changeCameraData(cameraData); emit cameraDataChanged(d->m_cameraData); } @@ -98,6 +103,48 @@ d->setCameraCapabilities(cameraCapabilities); } +bool QGeoMap::handleEvent(QEvent *event) +{ + Q_UNUSED(event) + return false; +} + +bool QGeoMap::setBearing(qreal bearing, const QGeoCoordinate &coordinate) +{ + Q_D(QGeoMap); + bool res = d->m_geoProjection->setBearing(bearing, coordinate); + if (!res) + return false; + + setCameraData(geoProjection().cameraData()); + return true; +} + +bool QGeoMap::anchorCoordinateToPoint(const QGeoCoordinate &coordinate, const QPointF &anchorPoint) +{ + Q_D(QGeoMap); + QGeoCoordinate newCenter = geoProjection().anchorCoordinateToPoint(coordinate, anchorPoint); + newCenter.setLatitude(qBound(-d->m_maximumViewportLatitude, newCenter.latitude(), d->m_maximumViewportLatitude)); + QGeoCameraData data = cameraData(); + if (data.center() != newCenter) { + data.setCenter(newCenter); + setCameraData(data); + return true; + } + return false; +} + +bool QGeoMap::fitViewportToGeoRectangle(const QGeoRectangle &rectangle) +{ + Q_UNUSED(rectangle) + return false; +} + +QGeoShape QGeoMap::visibleRegion() const +{ + return geoProjection().visibleRegion(); +} + QGeoCameraData QGeoMap::cameraData() const { Q_D(const QGeoMap); @@ -130,19 +177,19 @@ double QGeoMap::maximumCenterLatitudeAtZoom(const QGeoCameraData &cameraData) const { Q_D(const QGeoMap); - return d->m_geoProjection->maximumCenterLatitudeAtZoom(cameraData); + return d->maximumCenterLatitudeAtZoom(cameraData); } double QGeoMap::mapWidth() const { Q_D(const QGeoMap); - return d->m_geoProjection->mapWidth(); + return d->mapWidth(); } double QGeoMap::mapHeight() const { Q_D(const QGeoMap); - return d->m_geoProjection->mapHeight(); + return d->mapHeight(); } const QGeoProjection &QGeoMap::geoProjection() const @@ -157,6 +204,11 @@ return d->m_cameraCapabilities; } +QGeoMap::Capabilities QGeoMap::capabilities() const +{ + return Capabilities(QGeoMap::SupportsNothing); +} + void QGeoMap::prefetchData() { @@ -188,7 +240,7 @@ void QGeoMap::clearParameters() { Q_D(QGeoMap); - for (QGeoMapParameter *p : d->m_mapParameters) + for (QGeoMapParameter *p : qAsConst(d->m_mapParameters)) d->removeParameter(p); d->m_mapParameters.clear(); } @@ -225,11 +277,46 @@ d->m_mapItems.clear(); } +/*! + Fills obj with a backend-specific pimpl. +*/ +bool QGeoMap::createMapObjectImplementation(QGeoMapObject *obj) +{ + Q_D(QGeoMap); + QExplicitlySharedDataPointer pimpl = + QExplicitlySharedDataPointer(d->createMapObjectImplementation(obj)); + if (pimpl.constData()) + return obj->setImplementation(pimpl); + return false; +} + +/*! + To be called in ~QGeoMapObjectPrivate overrides, if needed +*/ +void QGeoMap::removeMapObject(QGeoMapObject * /*obj*/) +{ +} + +QList QGeoMap::mapObjects() const +{ + Q_D(const QGeoMap); + return d->mapObjects(); +} + QString QGeoMap::copyrightsStyleSheet() const { return QStringLiteral("#copyright-root { background: rgba(255, 255, 255, 128) }"); } +void QGeoMap::setAcceptedGestures(bool pan, bool flick, bool pinch, bool rotate, bool tilt) +{ + Q_UNUSED(pan) + Q_UNUSED(flick) + Q_UNUSED(pinch) + Q_UNUSED(rotate) + Q_UNUSED(tilt) +} + void QGeoMap::setCopyrightVisible(bool visible) { Q_D(QGeoMap); @@ -271,6 +358,11 @@ return m_cameraCapabilities; } +const QGeoMapPrivate *QGeoMapPrivate::get(const QGeoMap &map) +{ + return map.d_func(); +} + void QGeoMapPrivate::addParameter(QGeoMapParameter *param) { Q_UNUSED(param) @@ -296,6 +388,31 @@ Q_UNUSED(item) } +QGeoMapObjectPrivate *QGeoMapPrivate::createMapObjectImplementation(QGeoMapObject *obj) +{ + Q_UNUSED(obj) + return nullptr; +} + +QList QGeoMapPrivate::mapObjects() const +{ + return QList(); +} + +double QGeoMapPrivate::mapWidth() const +{ + if (m_geoProjection->projectionType() == QGeoProjection::ProjectionWebMercator) + return static_cast(m_geoProjection)->mapWidth(); + return 0; // override this for maps supporting other projections +} + +double QGeoMapPrivate::mapHeight() const +{ + if (m_geoProjection->projectionType() == QGeoProjection::ProjectionWebMercator) + return static_cast(m_geoProjection)->mapHeight(); + return 0; // override this for maps supporting other projections +} + void QGeoMapPrivate::setCopyrightVisible(bool visible) { m_copyrightVisible = visible; @@ -306,4 +423,10 @@ return m_copyrightVisible; } +double QGeoMapPrivate::maximumCenterLatitudeAtZoom(const QGeoCameraData &cameraData) const +{ + m_maximumViewportLatitude = m_geoProjection->maximumCenterLatitudeAtZoom(cameraData); + return m_maximumViewportLatitude; +} + QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomapparameter.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomapparameter.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomapparameter.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomapparameter.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -37,6 +37,8 @@ #include "qgeomapparameter_p.h" #include +#include +#include QT_BEGIN_NAMESPACE @@ -45,10 +47,25 @@ } +QGeoMapParameter::QGeoMapParameter(const QList > &properties, QObject *parent) : QObject(parent) +{ + for (const auto &p: properties) { + if (p.first == QLatin1String("type")) + setType(p.second.toString()); + else + updateProperty(p.first.data(), p.second); + } +} + QGeoMapParameter::~QGeoMapParameter() { } +bool QGeoMapParameter::operator==(const QGeoMapParameter &other) const +{ + return (other.toVariantMap() == toVariantMap()); +} + QString QGeoMapParameter::type() const { return m_type; @@ -70,5 +87,16 @@ emit propertyUpdated(this, propertyName); } +QVariantMap QGeoMapParameter::toVariantMap() const +{ + QVariantMap res; + const QMetaObject *metaObj = metaObject(); + for (int i = 2; i < metaObj->propertyCount(); ++i) { // 0 is objectName, 1 is type, we want to skip both of them here. + const char *propName = metaObj->property(i).name(); + res[QLatin1String(propName)] = property(propName); + } + return res; +} + QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomapparameter_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomapparameter_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomapparameter_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomapparameter_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -52,6 +52,7 @@ #include #include #include +#include QT_BEGIN_NAMESPACE @@ -62,13 +63,18 @@ Q_PROPERTY(QString type READ type WRITE setType) public: explicit QGeoMapParameter(QObject *parent = 0); + QGeoMapParameter(const QList> &properties, QObject *parent = 0); virtual ~QGeoMapParameter(); + bool operator==(const QGeoMapParameter &other) const; + virtual QString type() const; virtual void setType(const QString &type); void updateProperty(const char *propertyName, QVariant value); + QVariantMap toVariantMap() const; + Q_SIGNALS: void propertyUpdated(QGeoMapParameter *param, const char *propertyName); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomap_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomap_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomap_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomap_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -54,6 +54,7 @@ #include #include #include +#include QT_BEGIN_NAMESPACE @@ -65,12 +66,15 @@ class QQuickWindow; class QGeoMapParameter; class QDeclarativeGeoMapItemBase; +class QGeoMapObject; class Q_LOCATION_PRIVATE_EXPORT QGeoMap : public QObject { Q_OBJECT Q_DECLARE_PRIVATE(QGeoMap) + Q_ENUMS(Capability) + Q_FLAGS(Capabilities) public: enum ItemType { NoItem = 0x0000, @@ -84,6 +88,16 @@ Q_DECLARE_FLAGS(ItemTypes, ItemType) + enum Capability { + SupportsNothing = 0x0000, + SupportsVisibleRegion = 0x0001, + SupportsSetBearing = 0x0002, + SupportsAnchoringCoordinate = 0x0004, + SupportsFittingViewportToGeoRectangle = 0x0008 + }; + + Q_DECLARE_FLAGS(Capabilities, Capability) + virtual ~QGeoMap(); // Sets the display size @@ -95,6 +109,7 @@ QGeoCameraData cameraData() const; QGeoCameraCapabilities cameraCapabilities() const; + virtual Capabilities capabilities() const; void setActiveMapType(const QGeoMapType mapType); const QGeoMapType activeMapType() const; @@ -122,9 +137,21 @@ void removeMapItem(QDeclarativeGeoMapItemBase *item); void clearMapItems(); + virtual bool createMapObjectImplementation(QGeoMapObject *obj); + QList mapObjects() const; + + virtual QString copyrightsStyleSheet() const; + virtual void setAcceptedGestures(bool pan, bool flick, bool pinch, bool rotate, bool tilt); + virtual bool handleEvent(QEvent *event); + + virtual bool setBearing(qreal bearing, const QGeoCoordinate &coordinate); + virtual QGeoShape visibleRegion() const; + virtual bool anchorCoordinateToPoint(const QGeoCoordinate &coordinate, const QPointF &anchorPoint); + virtual bool fitViewportToGeoRectangle(const QGeoRectangle &rectangle); virtual void setCopyrightVisible(bool visible); + virtual void removeMapObject(QGeoMapObject *obj); protected: QGeoMap(QGeoMapPrivate &dd, QObject *parent = 0); @@ -144,6 +171,7 @@ private: Q_DISABLE_COPY(QGeoMap) friend class QDeclarativeGeoMap; //updateSceneGraph + friend class QGeoMapPrivate; }; Q_DECLARE_OPERATORS_FOR_FLAGS(QGeoMap::ItemTypes) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomappingmanagerengine.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomappingmanagerengine.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomappingmanagerengine.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomappingmanagerengine.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -154,7 +154,13 @@ { Q_UNUSED(mapId) Q_D(const QGeoMappingManagerEngine); - return d->capabilities_; + + if (mapId == 0) + return d->capabilities_; + int idx = mapId - 1; + if (idx >= supportedMapTypes().size()) + return d->capabilities_; + return supportedMapTypes().at(idx).cameraCapabilities(); } void QGeoMappingManagerEngine::setCameraCapabilities(const QGeoCameraCapabilities &capabilities) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomappingmanagerengine_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomappingmanagerengine_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomappingmanagerengine_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomappingmanagerengine_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -90,7 +90,7 @@ QList supportedMapTypes() const; // the class is private, so this can be virtual here for now. - virtual QGeoCameraCapabilities cameraCapabilities(int mapId = 0) const; + QGeoCameraCapabilities cameraCapabilities(int mapId = 0) const; void setLocale(const QLocale &locale); QLocale locale() const; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomap_p_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomap_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomap_p_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomap_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -66,6 +66,7 @@ class QGeoMapController; class QGeoMapParameter; class QDeclarativeGeoMapItemBase; +class QGeoMapObjectPrivate; class Q_LOCATION_PRIVATE_EXPORT QGeoMapPrivate : public QObjectPrivate { @@ -77,6 +78,10 @@ const QGeoProjection *geoProjection() const; void setCameraCapabilities(const QGeoCameraCapabilities &cameraCapabilities); const QGeoCameraCapabilities &cameraCapabilities() const; + + static const QGeoMapPrivate *get(const QGeoMap &map); + virtual QGeoMapObjectPrivate *createMapObjectImplementation(QGeoMapObject *obj); + protected: /* Hooks into the actual map implementations */ virtual void addParameter(QGeoMapParameter *param); @@ -86,12 +91,18 @@ virtual void addMapItem(QDeclarativeGeoMapItemBase *item); virtual void removeMapItem(QDeclarativeGeoMapItemBase *item); + virtual QList mapObjects() const; + virtual void changeViewportSize(const QSize &size) = 0; // called by QGeoMap::setSize() virtual void changeCameraData(const QGeoCameraData &oldCameraData) = 0; // called by QGeoMap::setCameraData() virtual void changeActiveMapType(const QGeoMapType mapType) = 0; // called by QGeoMap::setActiveMapType() + virtual double mapWidth() const; + virtual double mapHeight() const; + virtual void setCopyrightVisible(bool visible); virtual bool copyrightVisible() const; + virtual double maximumCenterLatitudeAtZoom(const QGeoCameraData &cameraData) const; protected: QSize m_viewportSize; @@ -103,6 +114,7 @@ QList m_mapItems; QGeoCameraCapabilities m_cameraCapabilities; bool m_copyrightVisible = true; + mutable double m_maximumViewportLatitude = 0; }; QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomaptype.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomaptype.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomaptype.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomaptype.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -46,8 +46,11 @@ : d_ptr(other.d_ptr) {} QGeoMapType::QGeoMapType(QGeoMapType::MapStyle style, const QString &name, - const QString &description, bool mobile, bool night, int mapId, QByteArray pluginName) -: d_ptr(new QGeoMapTypePrivate(style, name, description, mobile, night, mapId, pluginName)) + const QString &description, bool mobile, bool night, int mapId, + const QByteArray &pluginName, + const QGeoCameraCapabilities &cameraCapabilities, + const QVariantMap &metadata) +: d_ptr(new QGeoMapTypePrivate(style, name, description, mobile, night, mapId, pluginName, cameraCapabilities, metadata)) { } @@ -107,6 +110,16 @@ return d_ptr->pluginName_; } +QGeoCameraCapabilities QGeoMapType::cameraCapabilities() const +{ + return d_ptr->cameraCapabilities_; +} + +QVariantMap QGeoMapType::metadata() const +{ + return d_ptr->metadata_; +} + QGeoMapTypePrivate::QGeoMapTypePrivate() : style_(QGeoMapType::NoMap), mobile_(false), night_(false), mapId_(0) { @@ -114,15 +127,18 @@ QGeoMapTypePrivate::QGeoMapTypePrivate(const QGeoMapTypePrivate &other) : QSharedData(other), style_(other.style_), name_(other.name_), description_(other.description_), - mobile_(other.mobile_), night_(other.night_), mapId_(other.mapId_), pluginName_(other.pluginName_) + mobile_(other.mobile_), night_(other.night_), mapId_(other.mapId_), pluginName_(other.pluginName_), + cameraCapabilities_(other.cameraCapabilities_), metadata_(other.metadata_) { } QGeoMapTypePrivate::QGeoMapTypePrivate(QGeoMapType::MapStyle style, const QString &name, const QString &description, bool mobile, bool night, - int mapId, QByteArray pluginName) + int mapId, const QByteArray &pluginName, + const QGeoCameraCapabilities &cameraCapabilities, + const QVariantMap &metadata) : style_(style), name_(name), description_(description), mobile_(mobile), night_(night), - mapId_(mapId), pluginName_(pluginName) + mapId_(mapId), pluginName_(pluginName), cameraCapabilities_(cameraCapabilities), metadata_(metadata) { } @@ -134,7 +150,8 @@ { return pluginName_ == other.pluginName_ && style_ == other.style_ && name_ == other.name_ && description_ == other.description_ && mobile_ == other.mobile_ && night_ == other.night_ && - mapId_ == other.mapId_; + mapId_ == other.mapId_ && cameraCapabilities_ == other.cameraCapabilities_ && + metadata_ == other.metadata_; } QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomaptype_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomaptype_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomaptype_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomaptype_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -51,6 +51,8 @@ #include #include #include +#include +#include QT_BEGIN_NAMESPACE @@ -59,7 +61,7 @@ class Q_LOCATION_PRIVATE_EXPORT QGeoMapType { public: - enum MapStyle { + enum MapStyle { // ### Qt6: change this to be a QFlags instead, or remove. NoMap = 0, StreetMap, SatelliteMapDay, @@ -77,7 +79,9 @@ QGeoMapType(); QGeoMapType(const QGeoMapType &other); QGeoMapType(MapStyle style, const QString &name, const QString &description, bool mobile, - bool night, int mapId, QByteArray pluginName); + bool night, int mapId, const QByteArray &pluginName, + const QGeoCameraCapabilities &cameraCapabilities, + const QVariantMap &metadata = QVariantMap()); ~QGeoMapType(); QGeoMapType &operator = (const QGeoMapType &other); @@ -92,6 +96,8 @@ bool night() const; int mapId() const; QByteArray pluginName() const; + QGeoCameraCapabilities cameraCapabilities() const; + QVariantMap metadata() const; private: QSharedDataPointer d_ptr; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomaptype_p_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomaptype_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeomaptype_p_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeomaptype_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -50,9 +50,10 @@ #include #include +#include #include #include - +#include "qgeocameracapabilities_p.h" #include "qgeomaptype_p.h" QT_BEGIN_NAMESPACE @@ -62,7 +63,9 @@ public: QGeoMapTypePrivate(); QGeoMapTypePrivate(QGeoMapType::MapStyle style, const QString &name, const QString &description, bool mobile, - bool night, int mapId, QByteArray pluginName); + bool night, int mapId, const QByteArray &pluginName, + const QGeoCameraCapabilities &cameraCapabilities, + const QVariantMap &metadata); QGeoMapTypePrivate(const QGeoMapTypePrivate &other); ~QGeoMapTypePrivate(); @@ -77,6 +80,8 @@ bool night_; int mapId_; QByteArray pluginName_; + QGeoCameraCapabilities cameraCapabilities_; + QVariantMap metadata_; }; QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoprojection.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoprojection.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoprojection.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoprojection.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include @@ -73,10 +74,61 @@ } +QGeoCoordinate QGeoProjection::anchorCoordinateToPoint(const QGeoCoordinate &coordinate, const QPointF &anchorPoint) const +{ + Q_UNUSED(coordinate) + Q_UNUSED(anchorPoint) + return QGeoCoordinate(); +} + +QGeoShape QGeoProjection::visibleRegion() const +{ + return QGeoShape(); +} + +bool QGeoProjection::setBearing(qreal bearing, const QGeoCoordinate &coordinate) +{ + Q_UNUSED(bearing) + Q_UNUSED(coordinate) + return false; +} + + /* * QGeoProjectionWebMercator implementation */ +QGeoCoordinate QGeoProjectionWebMercator::anchorCoordinateToPoint(const QGeoCoordinate &coordinate, const QPointF &anchorPoint) const +{ + // Approach: find the displacement in (wrapped) mercator space, and apply that to the center + QDoubleVector2D centerProj = geoToWrappedMapProjection(cameraData().center()); + QDoubleVector2D coordProj = geoToWrappedMapProjection(coordinate); + + QDoubleVector2D anchorProj = itemPositionToWrappedMapProjection(QDoubleVector2D(anchorPoint)); + // Y-clamping done in mercatorToCoord + return wrappedMapProjectionToGeo(centerProj + coordProj - anchorProj); +} + +bool QGeoProjectionWebMercator::setBearing(qreal bearing, const QGeoCoordinate &coordinate) +{ + const QDoubleVector2D coordWrapped = geoToWrappedMapProjection(coordinate); + if (!isProjectable(coordWrapped)) + return false; + const QPointF rotationPoint = wrappedMapProjectionToItemPosition(coordWrapped).toPointF(); + + QGeoCameraData camera = cameraData(); + // first set bearing + camera.setBearing(bearing); + setCameraData(camera); + camera = cameraData(); + + // then reanchor + const QGeoCoordinate center = anchorCoordinateToPoint(coordinate, rotationPoint); + camera.setCenter(center); + setCameraData(camera); + return true; +} + QGeoProjectionWebMercator::QGeoProjectionWebMercator() : QGeoProjection(), m_mapEdgeSize(256), // at zl 0 @@ -143,6 +195,9 @@ void QGeoProjectionWebMercator::setViewportSize(const QSize &size) { + if (int(m_viewportWidth) == size.width() && int(m_viewportHeight) == size.height()) + return; + m_viewportWidth = size.width(); m_viewportHeight = size.height(); m_1_viewportWidth = 1.0 / m_viewportWidth; @@ -151,8 +206,11 @@ setupCamera(); } -void QGeoProjectionWebMercator::setCameraData(const QGeoCameraData &cameraData) +void QGeoProjectionWebMercator::setCameraData(const QGeoCameraData &cameraData, bool force) { + if (m_cameraData == cameraData && !force) + return; + m_cameraData = cameraData; m_mapEdgeSize = std::pow(2.0, cameraData.zoomLevel()) * defaultTileSize; setupCamera(); @@ -320,20 +378,48 @@ return true; } -QList QGeoProjectionWebMercator::visibleRegion() const +QList QGeoProjectionWebMercator::visibleGeometry() const { if (m_visibleRegionDirty) const_cast(this)->updateVisibleRegion(); return m_visibleRegion; } -QList QGeoProjectionWebMercator::projectableRegion() const +QList QGeoProjectionWebMercator::visibleGeometryExpanded() const +{ + if (m_visibleRegionDirty) + const_cast(this)->updateVisibleRegion(); + return m_visibleRegionExpanded; +} + +QList QGeoProjectionWebMercator::projectableGeometry() const { if (m_visibleRegionDirty) const_cast(this)->updateVisibleRegion(); return m_projectableRegion; } +QGeoShape QGeoProjectionWebMercator::visibleRegion() const +{ + const QList &visibleRegion = visibleGeometry(); + QGeoPolygon poly; + for (int i = 0; i < visibleRegion.size(); ++i) { + const QDoubleVector2D &c = visibleRegion.at(i); + // If a segment spans more than half of the map longitudinally, split in 2. + if (i && qAbs(visibleRegion.at(i-1).x() - c.x()) >= 0.5) { // This assumes a segment is never >= 1.0 (whole map span) + QDoubleVector2D extraPoint = (visibleRegion.at(i-1) + c) * 0.5; + poly.addCoordinate(wrappedMapProjectionToGeo(extraPoint)); + } + poly.addCoordinate(wrappedMapProjectionToGeo(c)); + } + if (visibleRegion.size() >= 2 && qAbs(visibleRegion.last().x() - visibleRegion.first().x()) >= 0.5) { + QDoubleVector2D extraPoint = (visibleRegion.last() + visibleRegion.first()) * 0.5; + poly.addCoordinate(wrappedMapProjectionToGeo(extraPoint)); + } + + return poly; +} + QDoubleVector2D QGeoProjectionWebMercator::viewportToWrappedMapProjection(const QDoubleVector2D &itemPosition) const { double s; @@ -358,6 +444,21 @@ return (xyPlane.lineIntersection(m_eye, ray, s) / m_sideLength).toVector2D(); } +QGeoProjection::ProjectionGroup QGeoProjectionWebMercator::projectionGroup() const +{ + return QGeoProjection::ProjectionCylindrical; +} + +QGeoProjection::Datum QGeoProjectionWebMercator::datum() const +{ + return QGeoProjection::DatumWGS84; +} + +QGeoProjection::ProjectionType QGeoProjectionWebMercator::projectionType() const +{ + return QGeoProjection::ProjectionWebMercator; +} + void QGeoProjectionWebMercator::setupCamera() { m_centerMercator = geoToMapProjection(m_cameraData.center()); @@ -574,6 +675,33 @@ else m_projectableRegion = viewportRect; } + + // Compute m_visibleRegionExpanded as a clipped expanded version of m_visibleRegion + QDoubleVector2D centroid; + for (const QDoubleVector2D &v: qAsConst(m_visibleRegion)) + centroid += v; + centroid /= m_visibleRegion.size(); + + m_visibleRegionExpanded.clear(); + for (const QDoubleVector2D &v: qAsConst(m_visibleRegion)) { + const QDoubleVector2D vc = v - centroid; + m_visibleRegionExpanded.push_back(centroid + vc * 1.2); // fixing expansion factor to 1.2 + } + + c2t::clip2tri clipperExpanded; + clipperExpanded.clearClipper(); + clipperExpanded.addSubjectPath(QClipperUtils::qListToPath(m_visibleRegionExpanded), true); + clipperExpanded.addClipPolygon(QClipperUtils::qListToPath(m_projectableRegion)); + Paths resVisibleExpanded = clipperExpanded.execute(c2t::clip2tri::Intersection); + if (resVisibleExpanded.size()) + m_visibleRegionExpanded = QClipperUtils::pathToQList(resVisibleExpanded[0]); // Intersection between two convex quadrilaterals should always be a single polygon + else + m_visibleRegionExpanded = m_visibleRegion; +} + +QGeoCameraData QGeoProjectionWebMercator::cameraData() const +{ + return m_cameraData; } /* diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoprojection_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoprojection_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoprojection_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoprojection_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -51,47 +51,60 @@ #include #include #include +#include QT_BEGIN_NAMESPACE class Q_LOCATION_PRIVATE_EXPORT QGeoProjection { public: + enum ProjectionGroup { + ProjectionOther, + ProjectionCylindrical, + ProjectionPseudocylindrical, + ProjectionAzimuthal, + ProjectionPseudoazimuthal, + ProjectionConic, + ProjectionPseudoconic + //Polyhedral + //Retroazimuthal + }; + + enum Datum { + DatumUnknown, + DatumWGS84, + DatumSphere + }; + + enum ProjectionType { + ProjectionUnknown, + ProjectionGeneralPerspective, + ProjectionWebMercator + }; + QGeoProjection(); virtual ~QGeoProjection(); virtual void setViewportSize(const QSize &size) = 0; - virtual void setCameraData(const QGeoCameraData &cameraData) = 0; + virtual void setCameraData(const QGeoCameraData &cameraData, bool force = true) = 0; + virtual QGeoCameraData cameraData() const = 0; // returns the minimum zoom at the current viewport size virtual double minimumZoom() const = 0; virtual double maximumCenterLatitudeAtZoom(const QGeoCameraData &cameraData) const = 0; - // returns the size of the underlying map, at the current zoom level. - virtual double mapWidth() const = 0; - virtual double mapHeight() const = 0; - - virtual bool isProjectable(const QDoubleVector2D &wrappedProjection) const = 0; - virtual QList visibleRegion() const = 0; - virtual QList projectableRegion() const = 0; - - // Conversion methods for QGeoCoordinate <-> screen. - // This currently assumes that the "MapProjection" space is [0, 1][0, 1] for every type of possibly supported map projection - virtual QDoubleVector2D geoToMapProjection(const QGeoCoordinate &coordinate) const = 0; - virtual QGeoCoordinate mapProjectionToGeo(const QDoubleVector2D &projection) const = 0; + virtual QGeoCoordinate itemPositionToCoordinate(const QDoubleVector2D &pos, bool clipToViewport = true) const = 0; + virtual QDoubleVector2D coordinateToItemPosition(const QGeoCoordinate &coordinate, bool clipToViewport = true) const = 0; - virtual QDoubleVector2D wrapMapProjection(const QDoubleVector2D &projection) const = 0; - virtual QDoubleVector2D unwrapMapProjection(const QDoubleVector2D &wrappedProjection) const = 0; + virtual ProjectionGroup projectionGroup() const = 0; + virtual Datum datum() const = 0; + virtual ProjectionType projectionType() const = 0; - virtual QDoubleVector2D wrappedMapProjectionToItemPosition(const QDoubleVector2D &wrappedProjection) const = 0; - virtual QDoubleVector2D itemPositionToWrappedMapProjection(const QDoubleVector2D &itemPosition) const = 0; + // Returns the new map center after anchoring coordinate to anchorPoint on the screen + virtual QGeoCoordinate anchorCoordinateToPoint(const QGeoCoordinate &coordinate, const QPointF &anchorPoint) const; - // Convenience methods to avoid the chain itemPositionToWrappedProjection(wrapProjection(geoToProjection())) - virtual QGeoCoordinate itemPositionToCoordinate(const QDoubleVector2D &pos, bool clipToViewport = true) const = 0; - virtual QDoubleVector2D coordinateToItemPosition(const QGeoCoordinate &coordinate, bool clipToViewport = true) const = 0; - virtual QDoubleVector2D geoToWrappedMapProjection(const QGeoCoordinate &coordinate) const = 0; - virtual QGeoCoordinate wrappedMapProjectionToGeo(const QDoubleVector2D &wrappedProjection) const = 0; - virtual QMatrix4x4 quickItemTransformation(const QGeoCoordinate &coordinate, const QPointF &anchorPoint, qreal zoomLevel) const = 0; + virtual QGeoShape visibleRegion() const; + virtual bool setBearing(qreal bearing, const QGeoCoordinate &coordinate); }; class Q_LOCATION_PRIVATE_EXPORT QGeoProjectionWebMercator : public QGeoProjection @@ -100,36 +113,51 @@ QGeoProjectionWebMercator(); ~QGeoProjectionWebMercator(); - double minimumZoom() const Q_DECL_OVERRIDE; - double maximumCenterLatitudeAtZoom(const QGeoCameraData &cameraData) const Q_DECL_OVERRIDE; + // From QGeoProjection + double minimumZoom() const override; + double maximumCenterLatitudeAtZoom(const QGeoCameraData &cameraData) const override; + + void setViewportSize(const QSize &size) override; + void setCameraData(const QGeoCameraData &cameraData, bool force = true) override; + QGeoCameraData cameraData() const override; + + QGeoCoordinate itemPositionToCoordinate(const QDoubleVector2D &pos, bool clipToViewport = true) const override; + QDoubleVector2D coordinateToItemPosition(const QGeoCoordinate &coordinate, bool clipToViewport = true) const override; + + QGeoProjection::ProjectionGroup projectionGroup() const override; + QGeoProjection::Datum datum() const override; + QGeoProjection::ProjectionType projectionType() const override; + + QGeoCoordinate anchorCoordinateToPoint(const QGeoCoordinate &coordinate, const QPointF &anchorPoint) const override; + bool setBearing(qreal bearing, const QGeoCoordinate &coordinate) override; + + QGeoShape visibleRegion() const override; + + // Specific to QGeoProjectionWebMercator + double mapWidth() const; // The size of the underlying map, at the current zoom level. + double mapHeight() const; + + QDoubleVector2D geoToMapProjection(const QGeoCoordinate &coordinate) const; + QGeoCoordinate mapProjectionToGeo(const QDoubleVector2D &projection) const; + + QDoubleVector2D wrapMapProjection(const QDoubleVector2D &projection) const; + QDoubleVector2D unwrapMapProjection(const QDoubleVector2D &wrappedProjection) const; + + QDoubleVector2D wrappedMapProjectionToItemPosition(const QDoubleVector2D &wrappedProjection) const; + QDoubleVector2D itemPositionToWrappedMapProjection(const QDoubleVector2D &itemPosition) const; + + QDoubleVector2D geoToWrappedMapProjection(const QGeoCoordinate &coordinate) const; + QGeoCoordinate wrappedMapProjectionToGeo(const QDoubleVector2D &wrappedProjection) const; + QMatrix4x4 quickItemTransformation(const QGeoCoordinate &coordinate, const QPointF &anchorPoint, qreal zoomLevel) const; + + bool isProjectable(const QDoubleVector2D &wrappedProjection) const; + QList visibleGeometry() const; + QList visibleGeometryExpanded() const; + QList projectableGeometry() const; - // The size of the underlying map, at the current zoom level. - double mapWidth() const Q_DECL_OVERRIDE; - double mapHeight() const Q_DECL_OVERRIDE; - - void setViewportSize(const QSize &size) Q_DECL_OVERRIDE; - void setCameraData(const QGeoCameraData &cameraData) Q_DECL_OVERRIDE; - - QDoubleVector2D geoToMapProjection(const QGeoCoordinate &coordinate) const Q_DECL_OVERRIDE; - QGeoCoordinate mapProjectionToGeo(const QDoubleVector2D &projection) const Q_DECL_OVERRIDE; - - QDoubleVector2D wrapMapProjection(const QDoubleVector2D &projection) const Q_DECL_OVERRIDE; - QDoubleVector2D unwrapMapProjection(const QDoubleVector2D &wrappedProjection) const Q_DECL_OVERRIDE; - - QDoubleVector2D wrappedMapProjectionToItemPosition(const QDoubleVector2D &wrappedProjection) const Q_DECL_OVERRIDE; - QDoubleVector2D itemPositionToWrappedMapProjection(const QDoubleVector2D &itemPosition) const Q_DECL_OVERRIDE; - - QGeoCoordinate itemPositionToCoordinate(const QDoubleVector2D &pos, bool clipToViewport = true) const Q_DECL_OVERRIDE; - QDoubleVector2D coordinateToItemPosition(const QGeoCoordinate &coordinate, bool clipToViewport = true) const Q_DECL_OVERRIDE; - QDoubleVector2D geoToWrappedMapProjection(const QGeoCoordinate &coordinate) const Q_DECL_OVERRIDE; - QGeoCoordinate wrappedMapProjectionToGeo(const QDoubleVector2D &wrappedProjection) const Q_DECL_OVERRIDE; - QMatrix4x4 quickItemTransformation(const QGeoCoordinate &coordinate, const QPointF &anchorPoint, qreal zoomLevel) const Q_DECL_OVERRIDE; - - bool isProjectable(const QDoubleVector2D &wrappedProjection) const Q_DECL_OVERRIDE; - QList visibleRegion() const Q_DECL_OVERRIDE; - QList projectableRegion() const Q_DECL_OVERRIDE; inline QDoubleVector2D viewportToWrappedMapProjection(const QDoubleVector2D &itemPosition) const; inline QDoubleVector2D viewportToWrappedMapProjection(const QDoubleVector2D &itemPosition, double &s) const; + private: void setupCamera(); void updateVisibleRegion(); @@ -203,6 +231,7 @@ Line2D m_nearPlaneMapIntersection; QList m_visibleRegion; + QList m_visibleRegionExpanded; QList m_projectableRegion; bool m_visibleRegionDirty; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoroute.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoroute.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoroute.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoroute.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -41,9 +41,16 @@ #include "qgeoroutesegment.h" #include +#include QT_BEGIN_NAMESPACE +template<> +QGeoRoutePrivate *QExplicitlySharedDataPointer::clone() +{ + return d->clone(); +} + /*! \class QGeoRoute \inmodule QtLocation @@ -71,7 +78,22 @@ Constructs a route object. */ QGeoRoute::QGeoRoute() - : d_ptr(new QGeoRoutePrivate()) {} + : d_ptr(new QGeoRoutePrivateDefault()) {} + +/*! + Constructs a route object using \a dd as private implementation. +*/ +QGeoRoute::QGeoRoute(const QExplicitlySharedDataPointer &dd): d_ptr(dd) +{ +} + +/*! + Returns the private implementation. +*/ +QExplicitlySharedDataPointer &QGeoRoute::d() +{ + return d_ptr; +} /*! Constructs a route object from the contents of \a other. @@ -104,7 +126,8 @@ */ bool QGeoRoute::operator ==(const QGeoRoute &other) const { - return (*d_ptr.constData() == *other.d_ptr.constData()); + return ( (d_ptr.constData() == other.d_ptr.constData()) + || (*d_ptr) == (*other.d_ptr)); } /*! @@ -112,7 +135,7 @@ */ bool QGeoRoute::operator !=(const QGeoRoute &other) const { - return !(*d_ptr.constData() == *other.d_ptr.constData()); + return !(operator==(other)); } /*! @@ -124,7 +147,7 @@ */ void QGeoRoute::setRouteId(const QString &id) { - d_ptr->id = id; + d_ptr->setId(id); } /*! @@ -136,7 +159,7 @@ */ QString QGeoRoute::routeId() const { - return d_ptr->id; + return d_ptr->id(); } /*! @@ -145,7 +168,7 @@ */ void QGeoRoute::setRequest(const QGeoRouteRequest &request) { - d_ptr->request = request; + d_ptr->setRequest(request); } /*! @@ -154,7 +177,7 @@ */ QGeoRouteRequest QGeoRoute::request() const { - return d_ptr->request; + return d_ptr->request(); } /*! @@ -162,7 +185,7 @@ */ void QGeoRoute::setBounds(const QGeoRectangle &bounds) { - d_ptr->bounds = bounds; + d_ptr->setBounds(bounds); } /*! @@ -170,7 +193,7 @@ */ QGeoRectangle QGeoRoute::bounds() const { - return d_ptr->bounds; + return d_ptr->bounds(); } /*! @@ -178,7 +201,7 @@ */ void QGeoRoute::setFirstRouteSegment(const QGeoRouteSegment &routeSegment) { - d_ptr->firstSegment = routeSegment; + d_ptr->setFirstSegment(routeSegment); } /*! @@ -192,7 +215,7 @@ */ QGeoRouteSegment QGeoRoute::firstRouteSegment() const { - return d_ptr->firstSegment; + return d_ptr->firstSegment(); } /*! @@ -201,7 +224,7 @@ */ void QGeoRoute::setTravelTime(int secs) { - d_ptr->travelTime = secs; + d_ptr->setTravelTime(secs); } /*! @@ -210,7 +233,7 @@ */ int QGeoRoute::travelTime() const { - return d_ptr->travelTime; + return d_ptr->travelTime(); } /*! @@ -218,7 +241,7 @@ */ void QGeoRoute::setDistance(qreal distance) { - d_ptr->distance = distance; + d_ptr->setDistance(distance); } /*! @@ -226,7 +249,7 @@ */ qreal QGeoRoute::distance() const { - return d_ptr->distance; + return d_ptr->distance(); } /*! @@ -236,7 +259,7 @@ */ void QGeoRoute::setTravelMode(QGeoRouteRequest::TravelMode mode) { - d_ptr->travelMode = mode; + d_ptr->setTravelMode(mode); } /*! @@ -246,7 +269,7 @@ */ QGeoRouteRequest::TravelMode QGeoRoute::travelMode() const { - return d_ptr->travelMode; + return d_ptr->travelMode(); } /*! @@ -257,7 +280,7 @@ */ void QGeoRoute::setPath(const QList &path) { - d_ptr->path = path; + d_ptr->setPath(path); } /*! @@ -268,34 +291,37 @@ */ QList QGeoRoute::path() const { - return d_ptr->path; + return d_ptr->path(); } /******************************************************************************* *******************************************************************************/ QGeoRoutePrivate::QGeoRoutePrivate() - : travelTime(0), - distance(0.0), - travelMode(QGeoRouteRequest::CarTravel) {} - -QGeoRoutePrivate::QGeoRoutePrivate(const QGeoRoutePrivate &other) - : QSharedData(other), - id(other.id), - request(other.request), - bounds(other.bounds), - travelTime(other.travelTime), - distance(other.distance), - travelMode(other.travelMode), - path(other.path), - firstSegment(other.firstSegment) {} +{ + +} + +QGeoRoutePrivate::QGeoRoutePrivate(const QGeoRoutePrivate &other) : QSharedData(other) +{ + +} QGeoRoutePrivate::~QGeoRoutePrivate() {} bool QGeoRoutePrivate::operator ==(const QGeoRoutePrivate &other) const { - QGeoRouteSegment s1 = firstSegment; - QGeoRouteSegment s2 = other.firstSegment; + return equals(other); +} + +bool QGeoRoutePrivate::equals(const QGeoRoutePrivate &other) const +{ + if (!other.engineName().isEmpty()) // only way to know if other comes from an engine without dynamic_cast + return false; + + // here both routes are of type QGeoRoutePrivateDefault + QGeoRouteSegment s1 = firstSegment(); + QGeoRouteSegment s2 = other.firstSegment(); while (true) { if (s1.isValid() != s2.isValid()) @@ -308,13 +334,235 @@ s2 = s2.nextRouteSegment(); } - return ((id == other.id) - && (request == other.request) - && (bounds == other.bounds) - && (travelTime == other.travelTime) - && (distance == other.distance) - && (travelMode == other.travelMode) - && (path == other.path)); + return ((id() == other.id()) + && (request() == other.request()) + && (bounds() == other.bounds()) + && (travelTime() == other.travelTime()) + && (distance() == other.distance()) + && (travelMode() == other.travelMode()) + && (path() == other.path())) + && (metadata() == other.metadata()); +} + +void QGeoRoutePrivate::setId(const QString &id) +{ + Q_UNUSED(id) +} + +QString QGeoRoutePrivate::id() const +{ + return QString(); +} + +void QGeoRoutePrivate::setRequest(const QGeoRouteRequest &request) +{ + Q_UNUSED(request) +} + +QGeoRouteRequest QGeoRoutePrivate::request() const +{ + return QGeoRouteRequest(); +} + +void QGeoRoutePrivate::setBounds(const QGeoRectangle &bounds) +{ + Q_UNUSED(bounds) +} + +QGeoRectangle QGeoRoutePrivate::bounds() const +{ + return QGeoRectangle(); +} + +void QGeoRoutePrivate::setTravelTime(int travelTime) +{ + Q_UNUSED(travelTime) +} + +int QGeoRoutePrivate::travelTime() const +{ + return 0; +} + +void QGeoRoutePrivate::setDistance(qreal distance) +{ + Q_UNUSED(distance) +} + +qreal QGeoRoutePrivate::distance() const +{ + return 0; +} + +void QGeoRoutePrivate::setTravelMode(QGeoRouteRequest::TravelMode mode) +{ + Q_UNUSED(mode) +} + +QGeoRouteRequest::TravelMode QGeoRoutePrivate::travelMode() const +{ + return QGeoRouteRequest::CarTravel; +} + +void QGeoRoutePrivate::setPath(const QList &path) +{ + Q_UNUSED(path) +} + +QList QGeoRoutePrivate::path() const +{ + return QList(); +} + +void QGeoRoutePrivate::setFirstSegment(const QGeoRouteSegment &firstSegment) +{ + Q_UNUSED(firstSegment) +} + +QGeoRouteSegment QGeoRoutePrivate::firstSegment() const +{ + return QGeoRouteSegment(); +} + +const QGeoRoutePrivate *QGeoRoutePrivate::routePrivateData(const QGeoRoute &route) +{ + return route.d_ptr.data(); +} + +QVariantMap QGeoRoutePrivate::metadata() const +{ + return QVariantMap(); +} + +/******************************************************************************* +*******************************************************************************/ + + +QGeoRoutePrivateDefault::QGeoRoutePrivateDefault() + : m_travelTime(0), + m_distance(0.0), + m_travelMode(QGeoRouteRequest::CarTravel), + m_numSegments(-1) {} + +QGeoRoutePrivateDefault::QGeoRoutePrivateDefault(const QGeoRoutePrivateDefault &other) + : QGeoRoutePrivate(other), + m_id(other.m_id), + m_request(other.m_request), + m_bounds(other.m_bounds), + m_routeSegments(other.m_routeSegments), + m_travelTime(other.m_travelTime), + m_distance(other.m_distance), + m_travelMode(other.m_travelMode), + m_path(other.m_path), + m_firstSegment(other.m_firstSegment), + m_numSegments(other.m_numSegments){} + + +QGeoRoutePrivateDefault::~QGeoRoutePrivateDefault() {} + +QGeoRoutePrivate *QGeoRoutePrivateDefault::clone() +{ + return new QGeoRoutePrivateDefault(*this); +} + +void QGeoRoutePrivateDefault::setId(const QString &id) +{ + m_id = id; +} + +QString QGeoRoutePrivateDefault::id() const +{ + return m_id; +} + +void QGeoRoutePrivateDefault::setRequest(const QGeoRouteRequest &request) +{ + m_request = request; +} + +QGeoRouteRequest QGeoRoutePrivateDefault::request() const +{ + return m_request; +} + +void QGeoRoutePrivateDefault::setBounds(const QGeoRectangle &bounds) +{ + m_bounds = bounds; +} + +QGeoRectangle QGeoRoutePrivateDefault::bounds() const +{ + return m_bounds; +} + +void QGeoRoutePrivateDefault::setTravelTime(int travelTime) +{ + m_travelTime = travelTime; +} + +int QGeoRoutePrivateDefault::travelTime() const +{ + return m_travelTime; +} + +void QGeoRoutePrivateDefault::setDistance(qreal distance) +{ + m_distance = distance; +} + +qreal QGeoRoutePrivateDefault::distance() const +{ + return m_distance; +} + +void QGeoRoutePrivateDefault::setTravelMode(QGeoRouteRequest::TravelMode mode) +{ + m_travelMode = mode; +} + +QGeoRouteRequest::TravelMode QGeoRoutePrivateDefault::travelMode() const +{ + return m_travelMode; +} + +void QGeoRoutePrivateDefault::setPath(const QList &path) +{ + m_path = path; +} + +QList QGeoRoutePrivateDefault::path() const +{ + return m_path; +} + +void QGeoRoutePrivateDefault::setFirstSegment(const QGeoRouteSegment &firstSegment) +{ + m_firstSegment = firstSegment; +} + +QGeoRouteSegment QGeoRoutePrivateDefault::firstSegment() const +{ + return m_firstSegment; +} + +QString QGeoRoutePrivateDefault::engineName() const +{ + return QString(); +} + +int QGeoRoutePrivateDefault::segmentsCount() const +{ + if (m_numSegments >= 0) + return m_numSegments; + + int count = 0; + QGeoRouteSegment segment = m_firstSegment; + while (segment.isValid()) { + ++count; + segment = segment.nextRouteSegment(); + } + m_numSegments = count; + return count; } QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoroute.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoroute.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoroute.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoroute.h 2018-06-12 18:44:12.000000000 +0000 @@ -87,8 +87,14 @@ void setPath(const QList &path); QList path() const; +protected: + QGeoRoute(const QExplicitlySharedDataPointer &dd); + QExplicitlySharedDataPointer &d(); + private: QExplicitlySharedDataPointer d_ptr; + friend class QDeclarativeGeoRoute; + friend class QGeoRoutePrivate; }; QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeorouteparserosrmv4.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeorouteparserosrmv4.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeorouteparserosrmv4.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeorouteparserosrmv4.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -310,8 +310,8 @@ QGeoRouteParserOsrmV4Private(); virtual ~QGeoRouteParserOsrmV4Private(); - QGeoRouteReply::Error parseReply(QList &routes, QString &errorString, const QByteArray &reply) const Q_DECL_OVERRIDE; - QUrl requestUrl(const QGeoRouteRequest &request, const QString &prefix) const Q_DECL_OVERRIDE; + QGeoRouteReply::Error parseReply(QList &routes, QString &errorString, const QByteArray &reply) const override; + QUrl requestUrl(const QGeoRouteRequest &request, const QString &prefix) const override; }; QGeoRouteParserOsrmV4Private::QGeoRouteParserOsrmV4Private() : QGeoRouteParserPrivate() diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeorouteparserosrmv4_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeorouteparserosrmv4_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeorouteparserosrmv4_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeorouteparserosrmv4_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -60,7 +60,7 @@ Q_DECLARE_PRIVATE(QGeoRouteParserOsrmV4) public: - QGeoRouteParserOsrmV4(QObject *parent = Q_NULLPTR); + QGeoRouteParserOsrmV4(QObject *parent = nullptr); virtual ~QGeoRouteParserOsrmV4(); private: diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeorouteparserosrmv5.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeorouteparserosrmv5.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeorouteparserosrmv5.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeorouteparserosrmv5.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -76,9 +76,9 @@ int diff = (value & 1) ? ~(value >> 1) : (value >> 1); if (parsingLatitude) { - coord.setLatitude(coord.latitude() + (double)diff/1e5); + coord.setLatitude(coord.latitude() + (double)diff/1e6); } else { - coord.setLongitude(coord.longitude() + (double)diff/1e5); + coord.setLongitude(coord.longitude() + (double)diff/1e6); path.append(coord); } @@ -114,7 +114,7 @@ static QList ordinals; if (!ordinals.size()) { - ordinals.append(QStringLiteral("")); + ordinals.append(QLatin1String("")); //: always used in " and take the %1 exit [onto ]" ordinals.append(QGeoRouteParserOsrmV5::tr("first", "roundabout exit")); ordinals.append(QGeoRouteParserOsrmV5::tr("second", "roundabout exit")); @@ -720,7 +720,7 @@ QString maneuverType; if (maneuver.value(QLatin1String("type")).isString()) maneuverType = maneuver.value(QLatin1String("type")).toString(); - QString wayName = QStringLiteral("unknown street"); + QString wayName = QLatin1String("unknown street"); if (step.value(QLatin1String("name")).isString()) wayName = step.value(QLatin1String("name")).toString(); @@ -782,7 +782,7 @@ else if (modifier == QLatin1String("slight right")) return QGeoManeuver::DirectionLightRight; else if (modifier == QLatin1String("uturn")) - return QGeoManeuver::DirectionUTurnRight; + return QGeoManeuver::DirectionUTurnLeft; // This should rather be country-specific. In UK, f.ex. one should rather UTurn Right else if (modifier == QLatin1String("left")) return QGeoManeuver::DirectionLeft; else if (modifier == QLatin1String("sharp left")) @@ -793,8 +793,38 @@ return QGeoManeuver::NoDirection; } -static QGeoRouteSegment parseStep(const QJsonObject &step) { - // OSRM Instructions documentation: https://github.com/Project-OSRM/osrm-text-instructions/blob/master/instructions.json +class QGeoRouteParserOsrmV5Private : public QGeoRouteParserPrivate +{ + Q_DECLARE_PUBLIC(QGeoRouteParserOsrmV5) +public: + QGeoRouteParserOsrmV5Private(); + virtual ~QGeoRouteParserOsrmV5Private(); + + QGeoRouteSegment parseStep(const QJsonObject &step, int legIndex, int stepIndex) const; + + // QGeoRouteParserPrivate + + QGeoRouteReply::Error parseReply(QList &routes, QString &errorString, const QByteArray &reply) const override; + QUrl requestUrl(const QGeoRouteRequest &request, const QString &prefix) const override; + + QVariantMap m_vendorParams; + const QGeoRouteParserOsrmV5Extension *m_extension = nullptr; +}; + +QGeoRouteParserOsrmV5Private::QGeoRouteParserOsrmV5Private() + : QGeoRouteParserPrivate() +{ +} + +QGeoRouteParserOsrmV5Private::~QGeoRouteParserOsrmV5Private() +{ + delete m_extension; +} + +QGeoRouteSegment QGeoRouteParserOsrmV5Private::parseStep(const QJsonObject &step, int legIndex, int stepIndex) const { + // OSRM Instructions documentation: https://github.com/Project-OSRM/osrm-text-instructions + // This goes on top of OSRM: https://github.com/Project-OSRM/osrm-backend/blob/master/docs/http.md + // Mapbox however, includes this in the reply, under "instruction". QGeoRouteSegment segment; if (!step.value(QLatin1String("maneuver")).isObject()) return segment; @@ -821,48 +851,54 @@ QString geometry = step.value(QLatin1String("geometry")).toString(); QList path = decodePolyline(geometry); + QGeoManeuver::InstructionDirection maneuverInstructionDirection = instructionDirection(maneuver); + + QString maneuverInstructionText = instructionText(step, maneuver, maneuverInstructionDirection); + QGeoManeuver geoManeuver; - geoManeuver.setDirection(instructionDirection(maneuver)); + geoManeuver.setDirection(maneuverInstructionDirection); geoManeuver.setDistanceToNextInstruction(distance); geoManeuver.setTimeToNextInstruction(time); - geoManeuver.setInstructionText(instructionText(step, maneuver, geoManeuver.direction())); + geoManeuver.setInstructionText(maneuverInstructionText); geoManeuver.setPosition(coord); geoManeuver.setWaypoint(coord); + QVariantMap extraAttributes; + static const QStringList extras { + QLatin1String("bearing_before"), + QLatin1String("bearing_after"), + QLatin1String("instruction"), + QLatin1String("type"), + QLatin1String("modifier") }; + for (const QString &e: extras) { + if (maneuver.find(e) != maneuver.end()) + extraAttributes.insert(e, maneuver.value(e).toVariant()); + } + // These should be removed as soon as route leg support is introduced. + // Ref: http://project-osrm.org/docs/v5.15.2/api/#routeleg-object + extraAttributes.insert(QLatin1String("leg_index"), legIndex); + extraAttributes.insert(QLatin1String("step_index"), stepIndex); + + geoManeuver.setExtendedAttributes(extraAttributes); + segment.setDistance(distance); segment.setPath(path); segment.setTravelTime(time); segment.setManeuver(geoManeuver); + if (m_extension) + m_extension->updateSegment(segment, step, maneuver); return segment; } -class QGeoRouteParserOsrmV5Private : public QGeoRouteParserPrivate -{ - Q_DECLARE_PUBLIC(QGeoRouteParserOsrmV5) -public: - QGeoRouteParserOsrmV5Private(); - virtual ~QGeoRouteParserOsrmV5Private(); - - QGeoRouteReply::Error parseReply(QList &routes, QString &errorString, const QByteArray &reply) const Q_DECL_OVERRIDE; - QUrl requestUrl(const QGeoRouteRequest &request, const QString &prefix) const Q_DECL_OVERRIDE; -}; - -QGeoRouteParserOsrmV5Private::QGeoRouteParserOsrmV5Private() : QGeoRouteParserPrivate() -{ -} - -QGeoRouteParserOsrmV5Private::~QGeoRouteParserOsrmV5Private() -{ -} - QGeoRouteReply::Error QGeoRouteParserOsrmV5Private::parseReply(QList &routes, QString &errorString, const QByteArray &reply) const { // OSRM v5 specs: https://github.com/Project-OSRM/osrm-backend/blob/master/docs/http.md + // Mapbox Directions API spec: https://www.mapbox.com/api-documentation/#directions QJsonDocument document = QJsonDocument::fromJson(reply); if (document.isObject()) { QJsonObject object = document.object(); - QString status = object.value(QStringLiteral("code")).toString(); + QString status = object.value(QLatin1String("code")).toString(); if (status != QLatin1String("Ok")) { errorString = status; return QGeoRouteReply::UnknownError; @@ -890,7 +926,8 @@ QList segments; QJsonArray legs = route.value(QLatin1String("legs")).toArray(); - foreach (const QJsonValue &l, legs) { + for (int legIndex = 0; legIndex < legs.size(); ++legIndex) { + const QJsonValue &l = legs.at(legIndex); if (!l.isObject()) { // invalid leg record error = true; break; @@ -901,12 +938,13 @@ break; } QJsonArray steps = leg.value(QLatin1String("steps")).toArray(); - foreach (const QJsonValue &s, steps) { + for (int stepIndex = 0; stepIndex < steps.size(); ++stepIndex) { + const QJsonValue &s = steps.at(stepIndex); if (!s.isObject()) { error = true; break; } - QGeoRouteSegment segment = parseStep(s.toObject()); + QGeoRouteSegment segment = parseStep(s.toObject(), legIndex, stepIndex); if (segment.isValid()) { segments.append(segment); } else { @@ -941,7 +979,7 @@ // setError(QGeoRouteReply::NoError, status); // can't do this, or NoError is emitted and does damages return QGeoRouteReply::NoError; } else { - errorString = QStringLiteral("Couldn't parse json."); + errorString = QLatin1String("Couldn't parse json."); return QGeoRouteReply::ParseError; } } @@ -950,24 +988,43 @@ { QString routingUrl = prefix; int notFirst = 0; - foreach (const QGeoCoordinate &c, request.waypoints()) { - if (notFirst) + QString bearings; + const QList metadata = request.waypointsMetadata(); + const QList waypoints = request.waypoints(); + for (int i = 0; i < waypoints.size(); i++) { + const QGeoCoordinate &c = waypoints.at(i); + if (notFirst) { routingUrl.append(QLatin1Char(';')); + bearings.append(QLatin1Char(';')); + } routingUrl.append(QString::number(c.longitude(), 'f', 7)).append(QLatin1Char(',')).append(QString::number(c.latitude(), 'f', 7)); + if (metadata.size() > i) { + const QVariantMap &meta = metadata.at(i); + if (meta.contains(QLatin1String("bearing"))) { + qreal bearing = meta.value(QLatin1String("bearing")).toDouble(); + bearings.append(QString::number(int(bearing))).append(QLatin1Char(',')).append(QLatin1String("90")); // 90 is the angle of maneuver allowed. + } else { + bearings.append(QLatin1String("0,180")); // 180 here means anywhere + } + } ++notFirst; } QUrl url(routingUrl); QUrlQuery query; - query.addQueryItem(QStringLiteral("overview"), QStringLiteral("full")); - query.addQueryItem(QStringLiteral("steps"), QStringLiteral("true")); - query.addQueryItem(QStringLiteral("geometries"), QStringLiteral("polyline")); - query.addQueryItem(QStringLiteral("alternatives"), QStringLiteral("true")); + query.addQueryItem(QLatin1String("overview"), QLatin1String("full")); + query.addQueryItem(QLatin1String("steps"), QLatin1String("true")); + query.addQueryItem(QLatin1String("geometries"), QLatin1String("polyline6")); + query.addQueryItem(QLatin1String("alternatives"), QLatin1String("true")); + query.addQueryItem(QLatin1String("bearings"), bearings); + if (m_extension) + m_extension->updateQuery(query); url.setQuery(query); return url; } -QGeoRouteParserOsrmV5::QGeoRouteParserOsrmV5(QObject *parent) : QGeoRouteParser(*new QGeoRouteParserOsrmV5Private(), parent) +QGeoRouteParserOsrmV5::QGeoRouteParserOsrmV5(QObject *parent) + : QGeoRouteParser(*new QGeoRouteParserOsrmV5Private(), parent) { } @@ -975,4 +1032,11 @@ { } +void QGeoRouteParserOsrmV5::setExtension(const QGeoRouteParserOsrmV5Extension *extension) +{ + Q_D(QGeoRouteParserOsrmV5); + if (extension) + d->m_extension = extension; +} + QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeorouteparserosrmv5_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeorouteparserosrmv5_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeorouteparserosrmv5_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeorouteparserosrmv5_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -54,15 +54,33 @@ QT_BEGIN_NAMESPACE class QGeoRouteParserOsrmV5Private; + +class Q_LOCATION_PRIVATE_EXPORT QGeoRouteParserOsrmV5Extension +{ +public: + QGeoRouteParserOsrmV5Extension() + { + } + + virtual ~QGeoRouteParserOsrmV5Extension() + { + } + + virtual void updateQuery(QUrlQuery &query) const = 0; + virtual void updateSegment(QGeoRouteSegment &segment, const QJsonObject &step, const QJsonObject &maneuver) const = 0; +}; + class Q_LOCATION_PRIVATE_EXPORT QGeoRouteParserOsrmV5 : public QGeoRouteParser { Q_OBJECT Q_DECLARE_PRIVATE(QGeoRouteParserOsrmV5) public: - QGeoRouteParserOsrmV5(QObject *parent = Q_NULLPTR); + QGeoRouteParserOsrmV5(QObject *parent = nullptr); virtual ~QGeoRouteParserOsrmV5(); + void setExtension(const QGeoRouteParserOsrmV5Extension *extension); + private: Q_DISABLE_COPY(QGeoRouteParserOsrmV5) }; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeorouteparser_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeorouteparser_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeorouteparser_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeorouteparser_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -68,7 +68,7 @@ QUrl requestUrl(const QGeoRouteRequest &request, const QString &prefix) const; protected: - QGeoRouteParser(QGeoRouteParserPrivate &dd, QObject *parent = Q_NULLPTR); + QGeoRouteParser(QGeoRouteParserPrivate &dd, QObject *parent = nullptr); private: Q_DISABLE_COPY(QGeoRouteParser) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoroute_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoroute_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoroute_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoroute_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -48,6 +48,7 @@ // We mean it. // +#include #include "qgeoroute.h" #include "qgeorouterequest.h" #include "qgeorectangle.h" @@ -59,29 +60,102 @@ class QGeoCoordinate; -class QGeoRoutePrivate : public QSharedData +class Q_LOCATION_PRIVATE_EXPORT QGeoRoutePrivate : public QSharedData { public: QGeoRoutePrivate(); QGeoRoutePrivate(const QGeoRoutePrivate &other); - ~QGeoRoutePrivate(); + virtual ~QGeoRoutePrivate(); + virtual QGeoRoutePrivate *clone() = 0; bool operator == (const QGeoRoutePrivate &other) const; - QString id; - QGeoRouteRequest request; + virtual void setId(const QString &id); + virtual QString id() const; - QGeoRectangle bounds; -// QList routeSegments; + virtual void setRequest(const QGeoRouteRequest &request); + virtual QGeoRouteRequest request() const; - int travelTime; - qreal distance; + virtual void setBounds(const QGeoRectangle &bounds); + virtual QGeoRectangle bounds() const; - QGeoRouteRequest::TravelMode travelMode; + virtual void setTravelTime(int travelTime); + virtual int travelTime() const; - QList path; + virtual void setDistance(qreal distance); + virtual qreal distance() const; - QGeoRouteSegment firstSegment; + virtual void setTravelMode(QGeoRouteRequest::TravelMode mode); + virtual QGeoRouteRequest::TravelMode travelMode() const; + + virtual void setPath(const QList &path); + virtual QList path() const; + + virtual void setFirstSegment(const QGeoRouteSegment &firstSegment); + virtual QGeoRouteSegment firstSegment() const; + + virtual QVariantMap metadata() const; + + virtual QString engineName() const = 0; + virtual int segmentsCount() const = 0; + + static const QGeoRoutePrivate *routePrivateData(const QGeoRoute &route); + +protected: + virtual bool equals(const QGeoRoutePrivate &other) const; +}; + +class Q_LOCATION_PRIVATE_EXPORT QGeoRoutePrivateDefault : public QGeoRoutePrivate +{ +public: + QGeoRoutePrivateDefault(); + QGeoRoutePrivateDefault(const QGeoRoutePrivateDefault &other); + ~QGeoRoutePrivateDefault(); + virtual QGeoRoutePrivate *clone() override; + + virtual void setId(const QString &id) override; + virtual QString id() const override; + + virtual void setRequest(const QGeoRouteRequest &request) override; + virtual QGeoRouteRequest request() const override; + + virtual void setBounds(const QGeoRectangle &bounds) override; + virtual QGeoRectangle bounds() const override; + + virtual void setTravelTime(int travelTime) override; + virtual int travelTime() const override; + + virtual void setDistance(qreal distance) override; + virtual qreal distance() const override; + + virtual void setTravelMode(QGeoRouteRequest::TravelMode mode) override; + virtual QGeoRouteRequest::TravelMode travelMode() const override; + + virtual void setPath(const QList &path) override; + virtual QList path() const override; + + virtual void setFirstSegment(const QGeoRouteSegment &firstSegment) override; + virtual QGeoRouteSegment firstSegment() const override; + + virtual QString engineName() const override; + virtual int segmentsCount() const override; + + + QString m_id; + QGeoRouteRequest m_request; + + QGeoRectangle m_bounds; + mutable QList m_routeSegments; + + int m_travelTime; + qreal m_distance; + + QGeoRouteRequest::TravelMode m_travelMode; + + QList m_path; + + QGeoRouteSegment m_firstSegment; + mutable int m_numSegments; }; QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoroutereply.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoroutereply.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoroutereply.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoroutereply.h 2018-06-12 18:44:12.000000000 +0000 @@ -60,7 +60,7 @@ UnknownError }; - explicit QGeoRouteReply(Error error, const QString &errorString, QObject *parent = Q_NULLPTR); + explicit QGeoRouteReply(Error error, const QString &errorString, QObject *parent = nullptr); virtual ~QGeoRouteReply(); bool isFinished() const; @@ -78,7 +78,7 @@ void error(QGeoRouteReply::Error error, const QString &errorString = QString()); protected: - explicit QGeoRouteReply(const QGeoRouteRequest &request, QObject *parent = Q_NULLPTR); + explicit QGeoRouteReply(const QGeoRouteRequest &request, QObject *parent = nullptr); void setError(Error error, const QString &errorString); void setFinished(bool finished); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeorouterequest.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeorouterequest.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeorouterequest.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeorouterequest.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -134,6 +134,8 @@ Consider parks when planning the route. \value MotorPoolLaneFeature Consider motor pool lanes when planning the route. + \value TrafficFeature + Consider the current traffic situation when planning the route. Since QtLocation 5.10 */ /*! @@ -294,6 +296,27 @@ } /*! + Sets \a waypointMetadata as the metadata for the waypoints set in this request. + The metadata are intended as one QVariantMap per waypoint, given in the same order as + the waypoints. + + The content of the QVariantMap is somehow backend-specific, but properties that can be specified using + \l Waypoint elements in QML can be assumed to be named and to work the same way across plugins, where supported. +*/ +void QGeoRouteRequest::setWaypointsMetadata(const QList &waypointMetadata) +{ + d_ptr->waypointMetadata = waypointMetadata; +} + +/*! + Returns the metadata for the waypoints in this request. +*/ +QList QGeoRouteRequest::waypointsMetadata() const +{ + return d_ptr->waypointMetadata; +} + +/*! Sets \a areas as excluded areas that the route must not cross. */ void QGeoRouteRequest::setExcludeAreas(const QList &areas) @@ -444,6 +467,27 @@ return d_ptr->maneuverDetail; } +/*! + Sets the extra parameters \a extraParameters for the route request. + The format of the extra parameters is plugin specific, and documented per plugin. + + \since 5.11 +*/ +void QGeoRouteRequest::setExtraParameters(const QVariantMap &extraParameters) +{ + d_ptr->extraParameters = extraParameters; +} + +/*! + Returns the extra parameters set for this route request. + + \since 5.11 +*/ +QVariantMap QGeoRouteRequest::extraParameters() const +{ + return d_ptr->extraParameters; +} + /******************************************************************************* *******************************************************************************/ @@ -458,26 +502,30 @@ QGeoRouteRequestPrivate::QGeoRouteRequestPrivate(const QGeoRouteRequestPrivate &other) : QSharedData(other), waypoints(other.waypoints), + waypointMetadata(other.waypointMetadata), excludeAreas(other.excludeAreas), numberAlternativeRoutes(other.numberAlternativeRoutes), travelModes(other.travelModes), featureWeights(other.featureWeights), routeOptimization(other.routeOptimization), segmentDetail(other.segmentDetail), - maneuverDetail(other.maneuverDetail) {} + maneuverDetail(other.maneuverDetail), + extraParameters(other.extraParameters) {} QGeoRouteRequestPrivate::~QGeoRouteRequestPrivate() {} bool QGeoRouteRequestPrivate::operator ==(const QGeoRouteRequestPrivate &other) const { return ((waypoints == other.waypoints) + && (waypointMetadata == other.waypointMetadata) && (excludeAreas == other.excludeAreas) && (numberAlternativeRoutes == other.numberAlternativeRoutes) && (travelModes == other.travelModes) && (featureWeights == other.featureWeights) && (routeOptimization == other.routeOptimization) && (segmentDetail == other.segmentDetail) - && (maneuverDetail == other.maneuverDetail)); + && (maneuverDetail == other.maneuverDetail) + && (extraParameters == other.extraParameters)); } QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeorouterequest.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeorouterequest.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeorouterequest.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeorouterequest.h 2018-06-12 18:44:12.000000000 +0000 @@ -70,7 +70,8 @@ TunnelFeature = 0x00000010, DirtRoadFeature = 0x00000020, ParksFeature = 0x00000040, - MotorPoolLaneFeature = 0x00000080 + MotorPoolLaneFeature = 0x00000080, + TrafficFeature = 0x00000100 }; Q_DECLARE_FLAGS(FeatureTypes, FeatureType) @@ -118,6 +119,9 @@ void setWaypoints(const QList &waypoints); QList waypoints() const; + void setWaypointsMetadata(const QList &waypointMetadata); + QList waypointsMetadata() const; + void setExcludeAreas(const QList &areas); QList excludeAreas() const; @@ -145,6 +149,9 @@ void setManeuverDetail(ManeuverDetail maneuverDetail); ManeuverDetail maneuverDetail() const; + void setExtraParameters(const QVariantMap &extraParameters); + QVariantMap extraParameters() const; + private: QExplicitlySharedDataPointer d_ptr; }; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeorouterequest_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeorouterequest_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeorouterequest_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeorouterequest_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -54,6 +54,7 @@ #include #include #include +#include QT_BEGIN_NAMESPACE @@ -67,6 +68,7 @@ bool operator ==(const QGeoRouteRequestPrivate &other) const; QList waypoints; + QList waypointMetadata; QList excludeAreas; int numberAlternativeRoutes; QGeoRouteRequest::TravelModes travelModes; @@ -75,6 +77,7 @@ QGeoRouteRequest::RouteOptimizations routeOptimization; QGeoRouteRequest::SegmentDetail segmentDetail; QGeoRouteRequest::ManeuverDetail maneuverDetail; + QVariantMap extraParameters; }; QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoroutesegment.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoroutesegment.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoroutesegment.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoroutesegment.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -42,6 +42,12 @@ QT_BEGIN_NAMESPACE +template<> +QGeoRouteSegmentPrivate *QExplicitlySharedDataPointer::clone() +{ + return d->clone(); +} + /*! \class QGeoRouteSegment \inmodule QtLocation @@ -67,7 +73,7 @@ setTravelTime(), setDistance(), setPath() or setManeuver() is called. */ QGeoRouteSegment::QGeoRouteSegment() - : d_ptr(new QGeoRouteSegmentPrivate()) {} + : d_ptr(new QGeoRouteSegmentPrivateDefault()) {} /*! Constructs a route segment object from the contents of \a other. @@ -78,8 +84,16 @@ /*! \internal */ -QGeoRouteSegment::QGeoRouteSegment(QExplicitlySharedDataPointer &d_ptr) - : d_ptr(d_ptr) {} +QGeoRouteSegment::QGeoRouteSegment(const QExplicitlySharedDataPointer &dd) + : d_ptr(dd) {} + +/*! + Returns the private implementation. +*/ +QExplicitlySharedDataPointer &QGeoRouteSegment::d() +{ + return d_ptr; +} /*! Destroys this route segment object. @@ -129,7 +143,7 @@ */ bool QGeoRouteSegment::isValid() const { - return d_ptr->valid; + return d_ptr->valid(); } /*! @@ -137,8 +151,8 @@ */ void QGeoRouteSegment::setNextRouteSegment(const QGeoRouteSegment &routeSegment) { - d_ptr->valid = true; - d_ptr->nextSegment = routeSegment.d_ptr; + d_ptr->setValid(true); + d_ptr->setNextRouteSegment(routeSegment.d_ptr); } /*! @@ -149,12 +163,10 @@ */ QGeoRouteSegment QGeoRouteSegment::nextRouteSegment() const { - if (d_ptr->valid && d_ptr->nextSegment) - return QGeoRouteSegment(d_ptr->nextSegment); + if (d_ptr->valid() && d_ptr->m_nextSegment) + return QGeoRouteSegment(d_ptr->m_nextSegment); - QGeoRouteSegment segment; - segment.d_ptr->valid = false; - return segment; + return QGeoRouteSegment(); } /*! @@ -163,8 +175,8 @@ */ void QGeoRouteSegment::setTravelTime(int secs) { - d_ptr->valid = true; - d_ptr->travelTime = secs; + d_ptr->setValid(true); + d_ptr->setTravelTime(secs); } /*! @@ -173,7 +185,7 @@ */ int QGeoRouteSegment::travelTime() const { - return d_ptr->travelTime; + return d_ptr->travelTime(); } /*! @@ -181,8 +193,8 @@ */ void QGeoRouteSegment::setDistance(qreal distance) { - d_ptr->valid = true; - d_ptr->distance = distance; + d_ptr->setValid(true); + d_ptr->setDistance(distance); } /*! @@ -190,7 +202,7 @@ */ qreal QGeoRouteSegment::distance() const { - return d_ptr->distance; + return d_ptr->distance(); } /*! @@ -201,8 +213,8 @@ */ void QGeoRouteSegment::setPath(const QList &path) { - d_ptr->valid = true; - d_ptr->path = path; + d_ptr->setValid(true); + d_ptr->setPath(path); } /*! @@ -214,7 +226,7 @@ QList QGeoRouteSegment::path() const { - return d_ptr->path; + return d_ptr->path(); } /*! @@ -222,8 +234,8 @@ */ void QGeoRouteSegment::setManeuver(const QGeoManeuver &maneuver) { - d_ptr->valid = true; - d_ptr->maneuver = maneuver; + d_ptr->setValid(true); + d_ptr->setManeuver(maneuver); } /*! @@ -234,42 +246,184 @@ */ QGeoManeuver QGeoRouteSegment::maneuver() const { - return d_ptr->maneuver; + return d_ptr->maneuver(); } /******************************************************************************* *******************************************************************************/ -QGeoRouteSegmentPrivate::QGeoRouteSegmentPrivate() - : valid(false), - travelTime(0), - distance(0.0) {} +QGeoRouteSegmentPrivate::QGeoRouteSegmentPrivate() {} QGeoRouteSegmentPrivate::QGeoRouteSegmentPrivate(const QGeoRouteSegmentPrivate &other) - : QSharedData(other), - valid(other.valid), - travelTime(other.travelTime), - distance(other.distance), - path(other.path), - maneuver(other.maneuver), - nextSegment(other.nextSegment) {} + : QSharedData(other), m_nextSegment(other.m_nextSegment) {} QGeoRouteSegmentPrivate::~QGeoRouteSegmentPrivate() { - nextSegment.reset(); + m_nextSegment.reset(); } bool QGeoRouteSegmentPrivate::operator ==(const QGeoRouteSegmentPrivate &other) const { - return ((valid == other.valid) - && (travelTime == other.travelTime) - && (distance == other.distance) - && (path == other.path) - && (maneuver == other.maneuver)); + return equals(other); +} + +bool QGeoRouteSegmentPrivate::equals(const QGeoRouteSegmentPrivate &other) const +{ + return ((valid() == other.valid()) + && (travelTime() == other.travelTime()) + && (distance() == other.distance()) + && (path() == other.path()) + && (maneuver() == other.maneuver())); +} + +bool QGeoRouteSegmentPrivate::valid() const +{ + return false; +} + +void QGeoRouteSegmentPrivate::setValid(bool valid) +{ + Q_UNUSED(valid) +} + +int QGeoRouteSegmentPrivate::travelTime() const +{ + return 0; +} + +void QGeoRouteSegmentPrivate::setTravelTime(int travelTime) +{ + Q_UNUSED(travelTime) +} + +qreal QGeoRouteSegmentPrivate::distance() const +{ + return 0; +} + +void QGeoRouteSegmentPrivate::setDistance(qreal distance) +{ + Q_UNUSED(distance) +} + +QList QGeoRouteSegmentPrivate::path() const +{ + return QList(); +} + +void QGeoRouteSegmentPrivate::setPath(const QList &path) +{ + Q_UNUSED(path) +} + +QGeoManeuver QGeoRouteSegmentPrivate::maneuver() const +{ + return QGeoManeuver(); +} + +void QGeoRouteSegmentPrivate::setManeuver(const QGeoManeuver &maneuver) +{ + Q_UNUSED(maneuver) +} + +QExplicitlySharedDataPointer QGeoRouteSegmentPrivate::nextRouteSegment() const +{ + return m_nextSegment; +} + +void QGeoRouteSegmentPrivate::setNextRouteSegment(const QExplicitlySharedDataPointer &next) +{ + m_nextSegment = next; } /******************************************************************************* *******************************************************************************/ -QT_END_NAMESPACE +QGeoRouteSegmentPrivateDefault::QGeoRouteSegmentPrivateDefault() + : m_valid(false), + m_travelTime(0), + m_distance(0.0) +{ +} + +QGeoRouteSegmentPrivateDefault::QGeoRouteSegmentPrivateDefault(const QGeoRouteSegmentPrivateDefault &other) + : QGeoRouteSegmentPrivate(other), + m_valid(other.m_valid), + m_travelTime(other.m_travelTime), + m_distance(other.m_distance), + m_path(other.m_path), + m_maneuver(other.m_maneuver) +{ + +} + +QGeoRouteSegmentPrivateDefault::~QGeoRouteSegmentPrivateDefault() +{ + +} + +QGeoRouteSegmentPrivate *QGeoRouteSegmentPrivateDefault::clone() +{ + return new QGeoRouteSegmentPrivateDefault(*this); +} + +bool QGeoRouteSegmentPrivateDefault::operator ==(const QGeoRouteSegmentPrivateDefault &other) const +{ + return QGeoRouteSegmentPrivate::operator ==(other); +} + +bool QGeoRouteSegmentPrivateDefault::valid() const +{ + return m_valid; +} + +void QGeoRouteSegmentPrivateDefault::setValid(bool valid) +{ + m_valid = valid; +} + +int QGeoRouteSegmentPrivateDefault::travelTime() const +{ + return m_travelTime; +} + +void QGeoRouteSegmentPrivateDefault::setTravelTime(int travelTime) +{ + m_travelTime = travelTime; +} + +qreal QGeoRouteSegmentPrivateDefault::distance() const +{ + return m_distance; +} + +void QGeoRouteSegmentPrivateDefault::setDistance(qreal distance) +{ + m_distance = distance; +} + +QList QGeoRouteSegmentPrivateDefault::path() const +{ + return m_path; +} + +void QGeoRouteSegmentPrivateDefault::setPath(const QList &path) +{ + m_path = path; +} + +QGeoManeuver QGeoRouteSegmentPrivateDefault::maneuver() const +{ + return m_maneuver; +} + +void QGeoRouteSegmentPrivateDefault::setManeuver(const QGeoManeuver &maneuver) +{ + m_maneuver = maneuver; +} + +/******************************************************************************* +*******************************************************************************/ + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoroutesegment.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoroutesegment.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoroutesegment.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoroutesegment.h 2018-06-12 18:44:12.000000000 +0000 @@ -78,7 +78,8 @@ QGeoManeuver maneuver() const; protected: - QGeoRouteSegment(QExplicitlySharedDataPointer &d_ptr); + QGeoRouteSegment(const QExplicitlySharedDataPointer &dd); + QExplicitlySharedDataPointer &d(); private: QExplicitlySharedDataPointer d_ptr; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoroutesegment_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoroutesegment_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoroutesegment_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoroutesegment_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -48,7 +48,10 @@ // We mean it. // -#include "qgeomaneuver.h" +#include +#include +#include + #include #include @@ -58,23 +61,73 @@ class QGeoCoordinate; -class QGeoRouteSegmentPrivate : public QSharedData +class Q_LOCATION_PRIVATE_EXPORT QGeoRouteSegmentPrivate : public QSharedData { public: QGeoRouteSegmentPrivate(); QGeoRouteSegmentPrivate(const QGeoRouteSegmentPrivate &other); - ~QGeoRouteSegmentPrivate(); + virtual ~QGeoRouteSegmentPrivate(); + virtual QGeoRouteSegmentPrivate *clone() = 0; bool operator ==(const QGeoRouteSegmentPrivate &other) const; - bool valid; + virtual bool valid() const; + virtual void setValid(bool valid); + + virtual int travelTime() const; + virtual void setTravelTime(int travelTime); + + virtual qreal distance() const; + virtual void setDistance(qreal distance); + + virtual QList path() const; + virtual void setPath(const QList &path); + + virtual QGeoManeuver maneuver() const; + virtual void setManeuver(const QGeoManeuver &maneuver); + + virtual QExplicitlySharedDataPointer nextRouteSegment() const; + virtual void setNextRouteSegment(const QExplicitlySharedDataPointer &next); + + QExplicitlySharedDataPointer m_nextSegment; + +protected: + virtual bool equals(const QGeoRouteSegmentPrivate &other) const; +}; + + + +class Q_LOCATION_PRIVATE_EXPORT QGeoRouteSegmentPrivateDefault : public QGeoRouteSegmentPrivate +{ +public: + QGeoRouteSegmentPrivateDefault(); + QGeoRouteSegmentPrivateDefault(const QGeoRouteSegmentPrivateDefault &other); + ~QGeoRouteSegmentPrivateDefault(); + virtual QGeoRouteSegmentPrivate *clone() override; + + bool operator ==(const QGeoRouteSegmentPrivateDefault &other) const; + + virtual bool valid() const override; + virtual void setValid(bool valid) override; + + virtual int travelTime() const override; + virtual void setTravelTime(int travelTime) override; + + virtual qreal distance() const override; + virtual void setDistance(qreal distance) override; + + virtual QList path() const override; + virtual void setPath(const QList &path) override; + + virtual QGeoManeuver maneuver() const override; + virtual void setManeuver(const QGeoManeuver &maneuver) override; - int travelTime; - qreal distance; - QList path; - QGeoManeuver maneuver; - QExplicitlySharedDataPointer nextSegment; + bool m_valid; + int m_travelTime; + qreal m_distance; + QList m_path; + QGeoManeuver m_maneuver; }; QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoroutingmanagerengine.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoroutingmanagerengine.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoroutingmanagerengine.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoroutingmanagerengine.h 2018-06-12 18:44:12.000000000 +0000 @@ -51,7 +51,7 @@ { Q_OBJECT public: - explicit QGeoRoutingManagerEngine(const QVariantMap ¶meters, QObject *parent = Q_NULLPTR); + explicit QGeoRoutingManagerEngine(const QVariantMap ¶meters, QObject *parent = nullptr); virtual ~QGeoRoutingManagerEngine(); QString managerName() const; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoroutingmanager.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoroutingmanager.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoroutingmanager.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoroutingmanager.h 2018-06-12 18:44:12.000000000 +0000 @@ -77,7 +77,7 @@ void error(QGeoRouteReply *reply, QGeoRouteReply::Error error, QString errorString = QString()); private: - explicit QGeoRoutingManager(QGeoRoutingManagerEngine *engine, QObject *parent = Q_NULLPTR); + explicit QGeoRoutingManager(QGeoRoutingManagerEngine *engine, QObject *parent = nullptr); QGeoRoutingManagerPrivate *d_ptr; Q_DISABLE_COPY(QGeoRoutingManager) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoserviceprovider.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoserviceprovider.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoserviceprovider.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoserviceprovider.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -42,11 +42,13 @@ #include "qgeomappingmanager_p.h" #include "qgeoroutingmanager.h" #include "qplacemanager.h" +#include "qnavigationmanager_p.h" #include "qgeocodingmanagerengine.h" #include "qgeomappingmanagerengine_p.h" #include "qgeoroutingmanagerengine.h" #include "qplacemanagerengine.h" #include "qplacemanagerengine_p.h" +#include "qnavigationmanagerengine_p.h" #include #include @@ -202,6 +204,18 @@ */ /*! + \enum QGeoServiceProvider::NavigationFeature + + Describes the navigation features supported by the geo service provider. + + \value NoNavigationFeatures No navigation features are supported. + \value OnlineNavigationFeature Online navigation is supported. + \value OfflineNavigationFeature Offline navigation is supported. + \value AnyNavigationFeatures Matches a geo service provider that provides any navigation + features. +*/ + +/*! Returns a list of names of the available service providers, for use with the QGeoServiceProvider constructors. */ @@ -310,6 +324,16 @@ return d_ptr->features("PlacesFeatures"); } +/*! + Returns the navigation features supported by the geo service provider. + + \since QtLocation 5.11 +*/ +QGeoServiceProvider::NavigationFeatures QGeoServiceProvider::navigationFeatures() const +{ + return d_ptr->features("NavigationFeatures"); +} + /* Sadly, these are necessary to figure out which of the factory->createX * methods we need to call. Ideally it would be nice to find a way to embed * these into the manager() template. */ @@ -334,6 +358,12 @@ { return d_ptr->factory->createPlaceManagerEngine(d_ptr->cleanedParameterMap, &(d_ptr->placeError), &(d_ptr->placeErrorString)); } +template <> QNavigationManagerEngine *createEngine(QGeoServiceProviderPrivate *d_ptr) +{ + if (!d_ptr->factoryV2) + return nullptr; + return d_ptr->factoryV2->createNavigationManagerEngine(d_ptr->cleanedParameterMap, &(d_ptr->placeError), &(d_ptr->placeErrorString)); +} /* Template for generating the code for each of the geocodingManager(), * mappingManager() etc methods */ @@ -493,7 +523,20 @@ { return d_ptr->manager( &(d_ptr->placeError), &(d_ptr->placeErrorString), - &(d_ptr->placeManager)); + &(d_ptr->placeManager)); +} + +/*! + Returns a new QNavigationManager made available by the service provider. + + After this function has been called, error() and errorString() will + report any errors which occurred during the construction of the QNavigationManagerEngine. +*/ +QNavigationManager *QGeoServiceProvider::navigationManager() const +{ + return d_ptr->manager( + &(d_ptr->navigationError), &(d_ptr->navigationErrorString), + &(d_ptr->navigationManager)); } /*! @@ -567,6 +610,8 @@ d_ptr->mappingManager->setLocale(locale); if (d_ptr->placeManager) d_ptr->placeManager->setLocale(locale); + if (d_ptr->navigationManager) + d_ptr->navigationManager->setLocale(locale); } /******************************************************************************* @@ -595,6 +640,7 @@ delete routingManager; delete mappingManager; delete placeManager; + delete navigationManager; } void QGeoServiceProviderPrivate::unload() @@ -611,7 +657,10 @@ delete placeManager; placeManager = 0; - factory = 0; + delete navigationManager; + navigationManager = nullptr; + + factory = factoryV2 = nullptr; error = QGeoServiceProvider::NoError; errorString = QLatin1String(""); metaData = QJsonObject(); @@ -641,7 +690,7 @@ void QGeoServiceProviderPrivate::loadMeta() { - factory = 0; + factory = factoryV2 = nullptr; metaData = QJsonObject(); metaData.insert(QStringLiteral("index"), -1); error = QGeoServiceProvider::NotSupportedError; @@ -682,7 +731,7 @@ if (int(metaData.value(QStringLiteral("index")).toDouble()) < 0) { error = QGeoServiceProvider::NotSupportedError; errorString = QString(QLatin1String("The geoservices provider is not supported.")); - factory = 0; + factory = factoryV2 = nullptr; return; } @@ -692,7 +741,12 @@ int idx = int(metaData.value(QStringLiteral("index")).toDouble()); // load the actual plugin - factory = qobject_cast(loader()->instance(idx)); + QObject *instance = loader()->instance(idx); + factoryV2 = qobject_cast(instance); + if (!factoryV2) + factory = qobject_cast(instance); + else + factory = factoryV2; } QHash QGeoServiceProviderPrivate::plugins(bool reload) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoserviceproviderfactory.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoserviceproviderfactory.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoserviceproviderfactory.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoserviceproviderfactory.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -43,6 +43,7 @@ \inmodule QtLocation \ingroup QtLocation-impl \since 5.6 + \deprecated \brief The QGeoServiceProviderFactory class is a factory class used as the plugin interface for services related to geographical information. @@ -52,6 +53,8 @@ The other functions should be overridden if the plugin supports the associated set of functionality. + + \sa QGeoServiceProviderFactoryV2 */ /*! @@ -155,6 +158,50 @@ { Q_UNUSED(parameters) Q_UNUSED(error) + Q_UNUSED(errorString) + + return 0; +} + +/*! + \class QGeoServiceProviderFactoryV2 + \inmodule QtLocation + \ingroup QtLocation-impl + \since 5.11 + + \brief The QGeoServiceProviderFactoryV2 class is a factory class used as the + plugin interface for services related to geographical information. + + Implementers must provide a unique combination of providerName() and + providerVersion() per plugin. + + The other functions should be overridden if the plugin supports the + associated set of functionality. +*/ + +/*! +\fn QGeoServiceProviderFactoryV2::~QGeoServiceProviderFactoryV2() + +Destroys this QGeoServiceProviderFactoryV2 instance. +*/ + +/*! + Returns a new QNavigationManagerEngine instance, initialized with \a + parameters, which implements navigation functionality. + + If \a error is not nullptr, it should be set to QGeoServiceProvider::NoError on + success or an appropriate QGeoServiceProvider::Error on failure. + + If \a errorString is not nullptr, it should be set to a string describing any + error which occurred. + + The default implementation returns nullptr, which causes a + QGeoServiceProvider::NotSupportedError in QGeoServiceProvider. +*/ +QNavigationManagerEngine *QGeoServiceProviderFactoryV2::createNavigationManagerEngine(const QVariantMap ¶meters, QGeoServiceProvider::Error *error, QString *errorString) const +{ + Q_UNUSED(parameters) + Q_UNUSED(error) Q_UNUSED(errorString) return 0; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoserviceproviderfactory.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoserviceproviderfactory.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoserviceproviderfactory.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoserviceproviderfactory.h 2018-06-12 18:44:12.000000000 +0000 @@ -67,6 +67,21 @@ Q_DECLARE_INTERFACE(QGeoServiceProviderFactory, "org.qt-project.qt.geoservice.serviceproviderfactory/5.0") +class Q_LOCATION_EXPORT QGeoServiceProviderFactoryV2 : public QGeoServiceProviderFactory +{ +public: + virtual ~QGeoServiceProviderFactoryV2() {} + + virtual QNavigationManagerEngine *createNavigationManagerEngine(const QVariantMap ¶meters, + QGeoServiceProvider::Error *error, + QString *errorString) const; +}; + +// Although not actually used for constructing a specialized loader, this is required for +// casting a QObject * into QGeoServiceProviderFactoryV2 * +Q_DECLARE_INTERFACE(QGeoServiceProviderFactoryV2, + "org.qt-project.qt.geoservice.serviceproviderfactoryV2/5.0") + QT_END_NAMESPACE #endif diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoserviceprovider.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoserviceprovider.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoserviceprovider.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoserviceprovider.h 2018-06-12 18:44:12.000000000 +0000 @@ -50,10 +50,12 @@ class QGeoMappingManager; class QGeoRoutingManager; class QPlaceManager; +class QNavigationManager; class QGeoCodingManagerEngine; class QGeoMappingManagerEngine; class QGeoRoutingManagerEngine; class QPlaceManagerEngine; +class QNavigationManagerEngine; class QGeoServiceProviderPrivate; class Q_LOCATION_EXPORT QGeoServiceProvider : public QObject @@ -113,6 +115,13 @@ AnyPlacesFeatures = ~(0) }; + enum NavigationFeature { + NoNavigationFeatures = 0, + OnlineNavigationFeature = (1<<0), + OfflineNavigationFeature = (1<<1), + AnyNavigationFeatures = ~(0) + }; + Q_DECLARE_FLAGS(RoutingFeatures, RoutingFeature) Q_FLAGS(RoutingFeatures) @@ -125,6 +134,9 @@ Q_DECLARE_FLAGS(PlacesFeatures, PlacesFeature) Q_FLAGS(PlacesFeatures) + Q_DECLARE_FLAGS(NavigationFeatures, NavigationFeature) + Q_FLAGS(NavigationFeatures) + static QStringList availableServiceProviders(); QGeoServiceProvider(const QString &providerName, const QVariantMap ¶meters = QVariantMap(), @@ -136,11 +148,13 @@ GeocodingFeatures geocodingFeatures() const; MappingFeatures mappingFeatures() const; PlacesFeatures placesFeatures() const; + NavigationFeatures navigationFeatures() const; QGeoCodingManager *geocodingManager() const; QGeoMappingManager *mappingManager() const; QGeoRoutingManager *routingManager() const; QPlaceManager *placeManager() const; + QNavigationManager *navigationManager() const; Error error() const; QString errorString() const; @@ -157,6 +171,7 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(QGeoServiceProvider::GeocodingFeatures) Q_DECLARE_OPERATORS_FOR_FLAGS(QGeoServiceProvider::MappingFeatures) Q_DECLARE_OPERATORS_FOR_FLAGS(QGeoServiceProvider::PlacesFeatures) +Q_DECLARE_OPERATORS_FOR_FLAGS(QGeoServiceProvider::NavigationFeatures) QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoserviceprovider_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoserviceprovider_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeoserviceprovider_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeoserviceprovider_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -62,6 +62,7 @@ class QGeoMappingManager; class QGeoServiceProviderFactory; +class QGeoServiceProviderFactoryV2; class QGeoServiceProviderPrivate { @@ -82,6 +83,7 @@ Flags features(const char *enumName); QGeoServiceProviderFactory *factory; + QGeoServiceProviderFactoryV2 *factoryV2 = nullptr; QJsonObject metaData; QVariantMap parameterMap; @@ -93,16 +95,19 @@ QGeoRoutingManager *routingManager; QGeoMappingManager *mappingManager; QPlaceManager *placeManager; + QNavigationManager *navigationManager = nullptr; QGeoServiceProvider::Error geocodeError; QGeoServiceProvider::Error routingError; QGeoServiceProvider::Error mappingError; QGeoServiceProvider::Error placeError; + QGeoServiceProvider::Error navigationError = QGeoServiceProvider::NoError; QString geocodeErrorString; QString routingErrorString; QString mappingErrorString; QString placeErrorString; + QString navigationErrorString; QGeoServiceProvider::Error error; QString errorString; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeotiledmap.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeotiledmap.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeotiledmap.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeotiledmap.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -141,6 +141,15 @@ Q_D(QGeoTiledMap); d->m_cache->clearAll(); d->m_mapScene->clearTexturedTiles(); + d->updateScene(); + sgNodeChanged(); +} + +QGeoMap::Capabilities QGeoTiledMap::capabilities() const +{ + return Capabilities(SupportsVisibleRegion + | SupportsSetBearing + | SupportsAnchoringCoordinate); } void QGeoTiledMap::setCopyrightVisible(bool visible) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeotiledmap_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeotiledmap_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeotiledmap_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeotiledmap_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -84,8 +84,9 @@ void updateTile(const QGeoTileSpec &spec); void setPrefetchStyle(PrefetchStyle style); - void prefetchData() Q_DECL_OVERRIDE; - void clearData() Q_DECL_OVERRIDE; + void prefetchData() override; + void clearData() override; + Capabilities capabilities() const override; void setCopyrightVisible(bool visible) override; @@ -93,7 +94,7 @@ virtual void clearScene(int mapId); protected: - QSGNode *updateSceneGraph(QSGNode *, QQuickWindow *window) Q_DECL_OVERRIDE; + QSGNode *updateSceneGraph(QSGNode *, QQuickWindow *window) override; virtual void evaluateCopyrights(const QSet &visibleTiles); QGeoTiledMap(QGeoTiledMapPrivate &dd, QGeoTiledMappingManagerEngine *engine, QObject *parent); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeotiledmappingmanagerengine_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeotiledmappingmanagerengine_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeotiledmappingmanagerengine_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeotiledmappingmanagerengine_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -76,25 +76,24 @@ QGeoTileFetcher *tileFetcher(); - QGeoMap *createMap() Q_DECL_OVERRIDE; + QGeoMap *createMap() override; void releaseMap(QGeoTiledMap *map); QSize tileSize() const; int tileVersion() const; - void updateTileRequests(QGeoTiledMap *map, + virtual void updateTileRequests(QGeoTiledMap *map, const QSet &tilesAdded, const QSet &tilesRemoved); QAbstractGeoTileCache *tileCache(); - QSharedPointer getTileTexture(const QGeoTileSpec &spec); - + virtual QSharedPointer getTileTexture(const QGeoTileSpec &spec); QAbstractGeoTileCache::CacheAreas cacheHint() const; -private Q_SLOTS: - void engineTileFinished(const QGeoTileSpec &spec, const QByteArray &bytes, const QString &format); - void engineTileError(const QGeoTileSpec &spec, const QString &errorString); +protected Q_SLOTS: + virtual void engineTileFinished(const QGeoTileSpec &spec, const QByteArray &bytes, const QString &format); + virtual void engineTileError(const QGeoTileSpec &spec, const QString &errorString); Q_SIGNALS: void tileError(const QGeoTileSpec &spec, const QString &errorString); @@ -108,7 +107,6 @@ void setTileCache(QAbstractGeoTileCache *cache); QGeoTiledMap::PrefetchStyle m_prefetchStyle; -private: QGeoTiledMappingManagerEnginePrivate *d_ptr; Q_DECLARE_PRIVATE(QGeoTiledMappingManagerEngine) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeotiledmap_p_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeotiledmap_p_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeotiledmap_p_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeotiledmap_p_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -83,9 +83,9 @@ void onCameraCapabilitiesChanged(const QGeoCameraCapabilities &oldCameraCapabilities); protected: - void changeViewportSize(const QSize& size) Q_DECL_OVERRIDE; - void changeCameraData(const QGeoCameraData &cameraData) Q_DECL_OVERRIDE; - void changeActiveMapType(const QGeoMapType mapType) Q_DECL_OVERRIDE; + void changeViewportSize(const QSize& size) override; + void changeCameraData(const QGeoCameraData &cameraData) override; + void changeActiveMapType(const QGeoMapType mapType) override; void changeTileVersion(int version); void clearScene(); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeotilefetcher.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeotilefetcher.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeotilefetcher.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeotilefetcher.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -52,9 +52,6 @@ d->enabled_ = true; d->engine_ = parent; - -// if (!d->queue_.isEmpty()) -// d->timer_.start(0, this); } QGeoTileFetcher::QGeoTileFetcher(QGeoTileFetcherPrivate &dd, QGeoMappingManagerEngine *parent) @@ -63,9 +60,6 @@ Q_D(QGeoTileFetcher); d->enabled_ = true; d->engine_ = parent; - -// if (!d->queue_.isEmpty()) -// d->timer_.start(0, this); } QGeoTileFetcher::~QGeoTileFetcher() @@ -92,6 +86,7 @@ Q_D(QGeoTileFetcher); typedef QSet::const_iterator tile_iter; + // No need to lock: called only in updateTileRequests tile_iter tile = tiles.constBegin(); tile_iter end = tiles.constEnd(); for (; tile != end; ++tile) { @@ -126,7 +121,7 @@ const QGeoCameraCapabilities & cameraCaps = d->engine_->cameraCapabilities(ts.mapId()); // the ZL in QGeoTileSpec is relative to the native tile size of the provider. // It gets denormalized in QGeoTiledMap. - if (ts.zoom() < cameraCaps.minimumZoomLevel() || ts.zoom() > cameraCaps.maximumZoomLevel()) + if (ts.zoom() < cameraCaps.minimumZoomLevel() || ts.zoom() > cameraCaps.maximumZoomLevel() || !fetchingEnabled()) return; QGeoTiledMapReply *reply = getTileImage(ts); @@ -176,10 +171,12 @@ return; } + QMutexLocker ml(&d->queueMutex_); if (d->queue_.isEmpty() || !initialized()) { d->timer_.stop(); return; } + ml.unlock(); requestNextTile(); } @@ -188,6 +185,11 @@ { return true; } + +bool QGeoTileFetcher::fetchingEnabled() const +{ + return true; +} void QGeoTileFetcher::handleReply(QGeoTiledMapReply *reply, const QGeoTileSpec &spec) { diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeotilefetcher_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeotilefetcher_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeotilefetcher_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeotilefetcher_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -89,6 +89,7 @@ void timerEvent(QTimerEvent *event); QAbstractGeoTileCache::CacheAreas cacheHint() const; virtual bool initialized() const; + virtual bool fetchingEnabled() const; private: diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeotilerequestmanager_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeotilerequestmanager_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qgeotilerequestmanager_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qgeotilerequestmanager_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -48,6 +48,7 @@ // #include +#include QT_BEGIN_NAMESPACE @@ -58,7 +59,7 @@ class QGeoTileRequestManagerPrivate; -class QGeoTileRequestManager +class Q_LOCATION_PRIVATE_EXPORT QGeoTileRequestManager { public: explicit QGeoTileRequestManager(QGeoTiledMap *map, QGeoTiledMappingManagerEngine *engine); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qnavigationmanager.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qnavigationmanager.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qnavigationmanager.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qnavigationmanager.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,157 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qnavigationmanager_p.h" +#include "qnavigationmanagerengine_p.h" + +QT_BEGIN_NAMESPACE + +class QNavigationManagerPrivate +{ +public: + QNavigationManagerPrivate(); + ~QNavigationManagerPrivate(); + + QNavigationManagerEngine *engine = nullptr; + QDeclarativeNavigatorPrivate *navigator = nullptr; + QList parameters; + +private: + Q_DISABLE_COPY(QNavigationManagerPrivate) +}; + +QNavigationManagerPrivate::QNavigationManagerPrivate() +{ + +} + +QNavigationManagerPrivate::~QNavigationManagerPrivate() +{ + delete engine; + engine = nullptr; +} + +QNavigationManager::~QNavigationManager() +{ + delete d_ptr; +} + +QString QNavigationManager::managerName() const +{ + return d_ptr->engine->managerName(); +} + +int QNavigationManager::managerVersion() const +{ + return d_ptr->engine->managerVersion(); +} + +QNavigationManagerEngine *QNavigationManager::engine() +{ + return d_ptr->engine; +} + +bool QNavigationManager::isInitialized() const +{ + return d_ptr->engine->isInitialized(); +} + +void QNavigationManager::setNavigator(QDeclarativeNavigatorPrivate *navigator) +{ + d_ptr->navigator = navigator; +} + +QDeclarativeNavigatorPrivate *QNavigationManager::declarativeNavigator() const +{ + return d_ptr->navigator; +} + +void QNavigationManager::setLocale(const QLocale &locale) +{ + d_ptr->engine->setLocale(locale); +} + +QLocale QNavigationManager::locale() const +{ + return d_ptr->engine->locale(); +} + +void QNavigationManager::setParameters(const QList ¶meters) +{ + d_ptr->parameters = parameters; +} + +QList QNavigationManager::parameters() const +{ + return d_ptr->parameters; +} + +bool QNavigationManager::ready() const +{ + return d_ptr->engine->ready(*d_ptr->navigator, d_ptr->parameters); +} + +bool QNavigationManager::start() +{ + return d_ptr->engine->start(*d_ptr->navigator, d_ptr->parameters); +} + +bool QNavigationManager::stop() +{ + return d_ptr->engine->stop(*d_ptr->navigator); +} + +bool QNavigationManager::active() const +{ + return d_ptr->engine->active(*d_ptr->navigator); +} + +QNavigationManager::QNavigationManager(QNavigationManagerEngine *engine, QObject *parent) : QObject(parent), + d_ptr(new QNavigationManagerPrivate) +{ + d_ptr->engine = engine; + if (!d_ptr->engine) { + qFatal("The navigation manager engine that was set for this mapping manager was NULL."); + } + + connect(d_ptr->engine, + SIGNAL(initialized()), + this, + SIGNAL(initialized()), + Qt::QueuedConnection); +} + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qnavigationmanagerengine.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qnavigationmanagerengine.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qnavigationmanagerengine.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qnavigationmanagerengine.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,126 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qgeoroute.h" +#include "qnavigationmanagerengine_p.h" + +QT_BEGIN_NAMESPACE + +class QNavigationManagerEnginePrivate +{ +public: + QString managerName; + int managerVersion; + QLocale locale; + QLocale::MeasurementSystem measurementSystem; + bool initialized = false; +}; + +QNavigationManagerEngine::QNavigationManagerEngine(const QVariantMap ¶meters, QObject *parent) + : QObject(parent) + , d_ptr(new QNavigationManagerEnginePrivate) +{ + Q_UNUSED(parameters) +} + +QNavigationManagerEngine::~QNavigationManagerEngine() +{ +} + +void QNavigationManagerEngine::setManagerName(const QString &name) +{ + d_ptr->managerName = name; +} + +QString QNavigationManagerEngine::managerName() const +{ + return d_ptr->managerName; +} + +void QNavigationManagerEngine::setManagerVersion(int version) +{ + d_ptr->managerVersion = version; +} + +int QNavigationManagerEngine::managerVersion() const +{ + return d_ptr->managerVersion; +} + +void QNavigationManagerEngine::setLocale(const QLocale &locale) +{ + d_ptr->locale = locale; +} + +QLocale QNavigationManagerEngine::locale() const +{ + return d_ptr->locale; +} + +void QNavigationManagerEngine::setMeasurementSystem(QLocale::MeasurementSystem system) +{ + d_ptr->measurementSystem = system; +} + +QLocale::MeasurementSystem QNavigationManagerEngine::measurementSystem() const +{ + return d_ptr->measurementSystem; +} + +bool QNavigationManagerEngine::isInitialized() const +{ + return d_ptr->initialized; +} + +// Subclasses are supposed to emit activeChanged from here. +bool QNavigationManagerEngine::start(QDeclarativeNavigatorPrivate & /*navigator*/, const QList & /*navigationParams*/) +{ + + return false; +} + +bool QNavigationManagerEngine::stop(QDeclarativeNavigatorPrivate & /*navigator*/) // navigator needed to find the right navi session to stop. +{ + return false; +} + +void QNavigationManagerEngine::engineInitialized() +{ + d_ptr->initialized = true; + emit initialized(); +} + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qnavigationmanagerengine_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qnavigationmanagerengine_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qnavigationmanagerengine_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qnavigationmanagerengine_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,104 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QNAVIGATIONMANAGERENGINE_H +#define QNAVIGATIONMANAGERENGINE_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QGeoMap; +class QGeoMapParameter; +class QMapRouteObject; +class QNavigationManagerEnginePrivate; +class QDeclarativeNavigatorPrivate; + +class Q_LOCATION_PRIVATE_EXPORT QNavigationManagerEngine : public QObject +{ + Q_OBJECT +public: + explicit QNavigationManagerEngine(const QVariantMap ¶meters, QObject *parent = nullptr); + virtual ~QNavigationManagerEngine(); + + void setManagerName(const QString &name); + QString managerName() const; + void setManagerVersion(int version); + int managerVersion() const; + + virtual void setLocale(const QLocale &locale); + virtual QLocale locale() const; + virtual void setMeasurementSystem(QLocale::MeasurementSystem system); + virtual QLocale::MeasurementSystem measurementSystem() const; + virtual bool isInitialized() const; + virtual bool ready(const QDeclarativeNavigatorPrivate &navigator, const QList &navigationParams) = 0; + virtual bool active(const QDeclarativeNavigatorPrivate &navigator) = 0; + +signals: + void initialized(); + +public slots: + virtual bool start(QDeclarativeNavigatorPrivate &navigator, const QList &navigationParams); + virtual bool stop(QDeclarativeNavigatorPrivate &navigator); + +protected: + /*! + Marks the engine as initialized. Subclasses of QGeoMappingManagerEngine are to + call this method after performing implementation-specific initialization within + the constructor. + */ + virtual void engineInitialized(); + + QScopedPointer d_ptr; +}; + +QT_END_NAMESPACE + +#endif // QNAVIGATIONMANAGERENGINE_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qnavigationmanager_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qnavigationmanager_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/maps/qnavigationmanager_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/maps/qnavigationmanager_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,116 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QNAVIGATIONMANAGER_P_H +#define QNAVIGATIONMANAGER_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QNavigationManagerEngine; +class QNavigationManagerPrivate; +class QDeclarativeNavigatorPrivate; +class QDeclarativeGeoWaypoint; +class QGeoRoute; +class QGeoRouteSegment; + +class Q_LOCATION_PRIVATE_EXPORT QNavigationManager : public QObject +{ + Q_OBJECT + +public: + ~QNavigationManager(); + + QString managerName() const; + int managerVersion() const; + QNavigationManagerEngine *engine(); + bool isInitialized() const; + + void setNavigator(QDeclarativeNavigatorPrivate *navigator); + QDeclarativeNavigatorPrivate *declarativeNavigator() const; + + void setLocale(const QLocale &locale); + QLocale locale() const; + + void setParameters(const QList ¶meters); + QList parameters() const; + + bool ready() const; + bool start(); + bool stop(); + bool active() const; + +Q_SIGNALS: + void initialized(); + + // These must be emitted by the engine + void activeChanged(bool active); + void waypointReached(const QDeclarativeGeoWaypoint *pos); + void destinationReached(); + void currentRouteChanged(const QGeoRoute &route); + void currentSegmentChanged(int segment); + +protected: + QNavigationManager(QNavigationManagerEngine *engine, QObject *parent = 0); + +private: + QNavigationManagerPrivate *d_ptr; + Q_DISABLE_COPY(QNavigationManager) + + friend class QGeoServiceProvider; + friend class QGeoServiceProviderPrivate; +}; + + +QT_END_NAMESPACE + +#endif // QNAVIGATIONMANAGER_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplacecontent.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplacecontent.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplacecontent.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplacecontent.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -115,13 +115,15 @@ Defines the type of content. \value NoType The content object is default constructed, any other content type may be assigned - to this content object. + to this content object \value ImageType - The content object is an image. + The content object is an image \value ReviewType - The content object is a review. + The content object is a review \value EditorialType The content object is an editorial + \value CustomType + The content object is of a custom type */ /*! diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplacecontent.h qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplacecontent.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplacecontent.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplacecontent.h 2018-06-12 18:44:12.000000000 +0000 @@ -64,7 +64,8 @@ NoType = 0, ImageType, ReviewType, - EditorialType + EditorialType, + CustomType = 0x0100 }; QPlaceContent(); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplacecontentreply.h qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplacecontentreply.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplacecontentreply.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplacecontentreply.h 2018-06-12 18:44:12.000000000 +0000 @@ -49,7 +49,7 @@ Q_OBJECT public: - explicit QPlaceContentReply(QObject *parent = Q_NULLPTR); + explicit QPlaceContentReply(QObject *parent = nullptr); virtual ~QPlaceContentReply(); QPlaceReply::Type type() const; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplace.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplace.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplace.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplace.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -45,6 +45,12 @@ QT_BEGIN_NAMESPACE +template<> +QPlacePrivate *QSharedDataPointer::clone() +{ + return d->clone(); +} + /*! \class QPlace \inmodule QtLocation @@ -116,11 +122,26 @@ Constructs an empty place object. */ QPlace::QPlace() - : d_ptr(new QPlacePrivate()) + : d_ptr(new QPlacePrivateDefault()) +{ +} + +/*! + Constructs an place object using \a dd as private implementation. +*/ +QPlace::QPlace(const QSharedDataPointer &dd): d_ptr(dd) { } /*! + Returns the d-pointer. +*/ +QSharedDataPointer &QPlace::d() +{ + return d_ptr; +} + +/*! Constructs a copy of \a other. */ QPlace::QPlace(const QPlace &other) @@ -164,8 +185,8 @@ */ bool QPlace::operator== (const QPlace &other) const { - Q_D(const QPlace); - return *d == *other.d_func(); + return ( (d_ptr.constData() == other.d_ptr.constData()) + || (*d_ptr) == (*other.d_ptr)); } /*! @@ -174,8 +195,7 @@ */ bool QPlace::operator!= (const QPlace &other) const { - Q_D(const QPlace); - return !(*d == *other.d_func()); + return !(operator==(other)); } /*! @@ -183,8 +203,7 @@ */ QList QPlace::categories() const { - Q_D(const QPlace); - return d->categories; + return d_ptr->categories(); } /*! @@ -192,9 +211,8 @@ */ void QPlace::setCategory(const QPlaceCategory &category) { - Q_D(QPlace); - d->categories.clear(); - d->categories.append(category); + d_ptr->setCategories(QList()); + d_ptr->setCategories(QList() << category); } /*! @@ -202,8 +220,7 @@ */ void QPlace::setCategories(const QList &categories) { - Q_D(QPlace); - d->categories = categories; + d_ptr->setCategories(categories); } /*! @@ -211,8 +228,7 @@ */ QGeoLocation QPlace::location() const { - Q_D(const QPlace); - return d->location; + return d_ptr->location(); } /*! @@ -220,8 +236,7 @@ */ void QPlace::setLocation(const QGeoLocation &location) { - Q_D(QPlace); - d->location = location; + d_ptr->setLocation(location); } /*! @@ -229,8 +244,7 @@ */ QPlaceRatings QPlace::ratings() const { - Q_D(const QPlace); - return d->ratings; + return d_ptr->ratings(); } /*! @@ -238,8 +252,7 @@ */ void QPlace::setRatings(const QPlaceRatings &rating) { - Q_D(QPlace); - d->ratings = rating; + d_ptr->setRatings(rating); } /*! @@ -247,8 +260,7 @@ */ QPlaceSupplier QPlace::supplier() const { - Q_D(const QPlace); - return d->supplier; + return d_ptr->supplier(); } /*! @@ -256,8 +268,7 @@ */ void QPlace::setSupplier(const QPlaceSupplier &supplier) { - Q_D(QPlace); - d->supplier = supplier; + d_ptr->setSupplier(supplier); } /*! @@ -269,8 +280,7 @@ */ QPlaceContent::Collection QPlace::content(QPlaceContent::Type type) const { - Q_D(const QPlace); - return d->contentCollections.value(type); + return d_ptr->m_contentCollections.value(type); } /*! @@ -278,8 +288,7 @@ */ void QPlace::setContent(QPlaceContent::Type type, const QPlaceContent::Collection &content) { - Q_D(QPlace); - d->contentCollections.insert(type, content); + d_ptr->m_contentCollections.insert(type, content); } /*! @@ -288,11 +297,10 @@ */ void QPlace::insertContent(QPlaceContent::Type type, const QPlaceContent::Collection &content) { - Q_D(QPlace); QMapIterator iter(content); while (iter.hasNext()) { iter.next(); - d->contentCollections[type].insert(iter.key(), iter.value()); + d_ptr->m_contentCollections[type].insert(iter.key(), iter.value()); } } @@ -306,8 +314,7 @@ */ int QPlace::totalContentCount(QPlaceContent::Type type) const { - Q_D(const QPlace); - return d->contentCounts.value(type, 0); + return d_ptr->m_contentCounts.value(type, 0); } /*! @@ -315,8 +322,7 @@ */ void QPlace::setTotalContentCount(QPlaceContent::Type type, int totalCount) { - Q_D(QPlace); - d->contentCounts.insert(type, totalCount); + d_ptr->m_contentCounts.insert(type, totalCount); } /*! @@ -324,8 +330,7 @@ */ QString QPlace::name() const { - Q_D(const QPlace); - return d->name; + return d_ptr->name(); } /*! @@ -333,8 +338,7 @@ */ void QPlace::setName(const QString &name) { - Q_D(QPlace); - d->name = name; + d_ptr->setName(name); } /*! @@ -344,8 +348,7 @@ */ QString QPlace::placeId() const { - Q_D(const QPlace); - return d->placeId; + return d_ptr->placeId(); } /*! @@ -353,8 +356,7 @@ */ void QPlace::setPlaceId(const QString &identifier) { - Q_D(QPlace); - d->placeId = identifier; + d_ptr->setPlaceId(identifier); } /*! @@ -363,8 +365,7 @@ */ QString QPlace::attribution() const { - Q_D(const QPlace); - return d->attribution; + return d_ptr->attribution(); } /*! @@ -372,8 +373,7 @@ */ void QPlace::setAttribution(const QString &attribution) { - Q_D(QPlace); - d->attribution = attribution; + d_ptr->setAttribution(attribution); } /*! @@ -381,8 +381,7 @@ */ QPlaceIcon QPlace::icon() const { - Q_D(const QPlace); - return d->icon; + return d_ptr->icon(); } /*! @@ -390,8 +389,7 @@ */ void QPlace::setIcon(const QPlaceIcon &icon) { - Q_D(QPlace); - d->icon = icon; + d_ptr->setIcon(icon); } /*! @@ -400,8 +398,7 @@ */ QString QPlace::primaryPhone() const { - Q_D(const QPlace); - QList phoneNumbers = d->contacts.value(QPlaceContactDetail::Phone); + QList phoneNumbers = d_ptr->contacts().value(QPlaceContactDetail::Phone); if (!phoneNumbers.isEmpty()) return phoneNumbers.at(0).value(); else @@ -414,8 +411,7 @@ */ QString QPlace::primaryFax() const { - Q_D(const QPlace); - QList faxNumbers = d->contacts.value(QPlaceContactDetail::Fax); + QList faxNumbers = d_ptr->contacts().value(QPlaceContactDetail::Fax); if (!faxNumbers.isEmpty()) return faxNumbers.at(0).value(); else @@ -429,8 +425,7 @@ */ QString QPlace::primaryEmail() const { - Q_D(const QPlace); - QList emailAddresses = d->contacts.value(QPlaceContactDetail::Email); + QList emailAddresses = d_ptr->contacts().value(QPlaceContactDetail::Email); if (!emailAddresses.isEmpty()) return emailAddresses.at(0).value(); else @@ -444,8 +439,7 @@ */ QUrl QPlace::primaryWebsite() const { - Q_D(const QPlace); - QList websites = d->contacts.value(QPlaceContactDetail::Website); + QList websites = d_ptr->contacts().value(QPlaceContactDetail::Website); if (!websites.isEmpty()) return QUrl(websites.at(0).value()); else @@ -458,8 +452,7 @@ */ bool QPlace::detailsFetched() const { - Q_D(const QPlace); - return d->detailsFetched; + return d_ptr->detailsFetched(); } /*! @@ -467,8 +460,7 @@ */ void QPlace::setDetailsFetched(bool fetched) { - Q_D(QPlace); - d->detailsFetched = fetched; + d_ptr->setDetailsFetched(fetched); } /*! @@ -476,8 +468,7 @@ */ QStringList QPlace::extendedAttributeTypes() const { - Q_D(const QPlace); - return d->extendedAttributes.keys(); + return d_ptr->extendedAttributes().keys(); } /*! @@ -487,8 +478,7 @@ */ QPlaceAttribute QPlace::extendedAttribute(const QString &attributeType) const { - Q_D(const QPlace); - return d->extendedAttributes.value(attributeType); + return d_ptr->extendedAttribute(attributeType); } /*! @@ -501,11 +491,10 @@ void QPlace::setExtendedAttribute(const QString &attributeType, const QPlaceAttribute &attribute) { - Q_D(QPlace); if (attribute == QPlaceAttribute()) - d->extendedAttributes.remove(attributeType); + d_ptr->extendedAttributes().remove(attributeType); else - d->extendedAttributes.insert(attributeType, attribute); + d_ptr->extendedAttributes().insert(attributeType, attribute); } /*! @@ -515,8 +504,7 @@ */ void QPlace::removeExtendedAttribute(const QString &attributeType) { - Q_D(QPlace); - d->extendedAttributes.remove(attributeType); + setExtendedAttribute(attributeType, QPlaceAttribute()); } /*! @@ -526,8 +514,7 @@ */ QStringList QPlace::contactTypes() const { - Q_D(const QPlace); - return d->contacts.keys(); + return d_ptr->contacts().keys(); } /*! @@ -537,8 +524,7 @@ */ QList QPlace::contactDetails(const QString &contactType) const { - Q_D(const QPlace); - return d->contacts.value(contactType); + return d_ptr->contacts().value(contactType); } /*! @@ -551,11 +537,10 @@ */ void QPlace::setContactDetails(const QString &contactType, QList details) { - Q_D(QPlace); if (details.isEmpty()) - d->contacts.remove(contactType); + d_ptr->contacts().remove(contactType); else - d->contacts.insert(contactType, details); + d_ptr->contacts().insert(contactType, details); } /*! @@ -565,10 +550,9 @@ */ void QPlace::appendContactDetail(const QString &contactType, const QPlaceContactDetail &detail) { - Q_D(QPlace); - QList details = d->contacts.value(contactType); + QList details = d_ptr->contacts().value(contactType); details.append(detail); - d->contacts.insert(contactType, details); + d_ptr->contacts().insert(contactType, details); } /*! @@ -578,8 +562,7 @@ */ void QPlace::removeContactDetails(const QString &contactType) { - Q_D(QPlace); - d->contacts.remove(contactType); + d_ptr->contacts().remove(contactType); } /*! @@ -587,8 +570,7 @@ */ void QPlace::setVisibility(QLocation::Visibility visibility) { - Q_D(QPlace); - d->visibility = visibility; + d_ptr->setVisibility(visibility); } /*! @@ -600,8 +582,7 @@ */ QLocation::Visibility QPlace::visibility() const { - Q_D(const QPlace); - return d->visibility; + return d_ptr->visibility(); } /*! @@ -609,113 +590,225 @@ */ bool QPlace::isEmpty() const { - Q_D(const QPlace); - return d->isEmpty(); + return d_ptr->isEmpty(); } /******************************************************************************* *******************************************************************************/ QPlacePrivate::QPlacePrivate() -: QSharedData(), visibility(QLocation::UnspecifiedVisibility), detailsFetched(false) +: QSharedData() { } QPlacePrivate::QPlacePrivate(const QPlacePrivate &other) : QSharedData(other), - categories(other.categories), - location(other.location), - ratings(other.ratings), - supplier(other.supplier), - name(other.name), - placeId(other.placeId), - attribution(other.attribution), - contentCollections(other.contentCollections), - contentCounts(other.contentCounts), - extendedAttributes(other.extendedAttributes), - contacts(other.contacts), - visibility(other.visibility), - icon(other.icon), - detailsFetched(other.detailsFetched) + m_contentCollections(other.m_contentCollections), + m_contentCounts(other.m_contentCounts) { } QPlacePrivate::~QPlacePrivate() {} -QPlacePrivate &QPlacePrivate::operator= (const QPlacePrivate & other) +bool QPlacePrivate::operator== (const QPlacePrivate &other) const { - if (this == &other) - return *this; + return (categories() == other.categories() + && location() == other.location() + && ratings() == other.ratings() + && supplier() == other.supplier() + && m_contentCollections == other.m_contentCollections + && m_contentCounts == other.m_contentCounts + && name() == other.name() + && placeId() == other.placeId() + && attribution() == other.attribution() + && contacts() == other.contacts() + && extendedAttributes() == other.extendedAttributes() + && visibility() == other.visibility() + && icon() == other.icon() + ); +} - categories = other.categories; - location = other.location; - ratings = other.ratings; - supplier = other.supplier; - name = other.name; - placeId = other.placeId; - attribution = other.attribution; - contentCollections = other.contentCollections; - contentCounts = other.contentCounts; - contacts = other.contacts; - extendedAttributes = other.extendedAttributes; - visibility = other.visibility; - detailsFetched = other.detailsFetched; - icon = other.icon; - return *this; +bool QPlacePrivate::isEmpty() const +{ + return (categories().isEmpty() + && location().isEmpty() + && ratings().isEmpty() + && supplier().isEmpty() + && m_contentCollections.isEmpty() + && m_contentCounts.isEmpty() + && name().isEmpty() + && placeId().isEmpty() + && attribution().isEmpty() + && contacts().isEmpty() + && extendedAttributes().isEmpty() + && QLocation::UnspecifiedVisibility == visibility() + && icon().isEmpty() + ); } -bool QPlacePrivate::operator== (const QPlacePrivate &other) const +QPlaceAttribute QPlacePrivate::extendedAttribute(const QString &attributeType) const { -#ifdef QPLACE_DEBUG - qDebug() << "categories: " << (categories == other.categories); - qDebug() << "location:" << (location == other.location); - qDebug() << "ratings" << (ratings == other.ratings); - qDebug() << "supplier" << (supplier == other.supplier); - qDebug() << "contentCollections " << (contentCollections == other.contentCollections); - qDebug() << "contentCounts " << (contentCounts == other.contentCounts); - qDebug() << "name " << (name == other.name); - qDebug() << "placeId" << (placeId == other.placeId); - qDebug() << "attribution" << (attribution == other.attribution); - qDebug() << "contacts" << (contacts == other.contacts); - qDebug() << "extendedAttributes" << (extendedAttributes == other.extendedAttributes); - qDebug() << "visibility" << (visibility == other.visibility); - qDebug() << "icon" << (icon == other.icon); -#endif - - return (categories == other.categories - && location == other.location - && ratings == other.ratings - && supplier == other.supplier - && contentCollections == other.contentCollections - && contentCounts == other.contentCounts - && name == other.name - && placeId == other.placeId - && attribution == other.attribution - && contacts == other.contacts - && extendedAttributes == other.extendedAttributes - && visibility == other.visibility - && icon == other.icon - ); + return extendedAttributes().value(attributeType); } -bool QPlacePrivate::isEmpty() const + +// +// Default implementation +// + +QPlacePrivateDefault::QPlacePrivateDefault() + : QPlacePrivate(), m_visibility(QLocation::UnspecifiedVisibility), m_detailsFetched(false) { - return (categories.isEmpty() - && location.isEmpty() - && ratings.isEmpty() - && supplier.isEmpty() - && contentCollections.isEmpty() - && contentCounts.isEmpty() - && name.isEmpty() - && placeId.isEmpty() - && attribution.isEmpty() - && contacts.isEmpty() - && extendedAttributes.isEmpty() - && QLocation::UnspecifiedVisibility == visibility - && icon.isEmpty() - ); } +QPlacePrivateDefault::QPlacePrivateDefault(const QPlacePrivateDefault &other) + : QPlacePrivate(other), + m_categories(other.m_categories), + m_location(other.m_location), + m_ratings(other.m_ratings), + m_supplier(other.m_supplier), + m_name(other.m_name), + m_placeId(other.m_placeId), + m_attribution(other.m_attribution), + m_extendedAttributes(other.m_extendedAttributes), + m_contacts(other.m_contacts), + m_visibility(other.m_visibility), + m_icon(other.m_icon), + m_detailsFetched(other.m_detailsFetched) +{ +} + +QPlacePrivateDefault::~QPlacePrivateDefault() +{ +} + +QPlacePrivate *QPlacePrivateDefault::clone() +{ + return new QPlacePrivateDefault(*this); +} + +QList QPlacePrivateDefault::categories() const +{ + return m_categories; +} + +void QPlacePrivateDefault::setCategories(const QList &categories) +{ + m_categories = categories; +} + +QGeoLocation QPlacePrivateDefault::location() const +{ + return m_location; +} + +void QPlacePrivateDefault::setLocation(const QGeoLocation &location) +{ + m_location = location; +} + +QPlaceRatings QPlacePrivateDefault::ratings() const +{ + return m_ratings; +} + +void QPlacePrivateDefault::setRatings(const QPlaceRatings &ratings) +{ + m_ratings = ratings; +} + +QPlaceSupplier QPlacePrivateDefault::supplier() const +{ + return m_supplier; +} + +void QPlacePrivateDefault::setSupplier(const QPlaceSupplier &supplier) +{ + m_supplier = supplier; +} + +QString QPlacePrivateDefault::name() const +{ + return m_name; +} + +void QPlacePrivateDefault::setName(const QString &name) +{ + m_name = name; +} + +QString QPlacePrivateDefault::placeId() const +{ + return m_placeId; +} + +void QPlacePrivateDefault::setPlaceId(const QString &placeIdentifier) +{ + m_placeId = placeIdentifier; +} + +QString QPlacePrivateDefault::attribution() const +{ + return m_attribution; +} + +void QPlacePrivateDefault::setAttribution(const QString &attribution) +{ + m_attribution = attribution; +} + +QLocation::Visibility QPlacePrivateDefault::visibility() const +{ + return m_visibility; +} + +void QPlacePrivateDefault::setVisibility(QLocation::Visibility visibility) +{ + m_visibility = visibility; +} + +QPlaceIcon QPlacePrivateDefault::icon() const +{ + return m_icon; +} + +void QPlacePrivateDefault::setIcon(const QPlaceIcon &icon) +{ + m_icon = icon; +} + +bool QPlacePrivateDefault::detailsFetched() const +{ + return m_detailsFetched; +} + +void QPlacePrivateDefault::setDetailsFetched(bool fetched) +{ + m_detailsFetched = fetched; +} + +QMap QPlacePrivateDefault::extendedAttributes() const +{ + return m_extendedAttributes; +} + +QMap &QPlacePrivateDefault::extendedAttributes() +{ + return m_extendedAttributes; +} + +QMap > QPlacePrivateDefault::contacts() const +{ + return m_contacts; +} + +QMap > &QPlacePrivateDefault::contacts() +{ + return m_contacts; +} + + + QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplacedetailsreply.h qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplacedetailsreply.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplacedetailsreply.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplacedetailsreply.h 2018-06-12 18:44:12.000000000 +0000 @@ -47,7 +47,7 @@ { Q_OBJECT public: - explicit QPlaceDetailsReply(QObject *parent = Q_NULLPTR); + explicit QPlaceDetailsReply(QObject *parent = nullptr); virtual ~QPlaceDetailsReply(); QPlaceReply::Type type() const; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplace.h qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplace.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplace.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplace.h 2018-06-12 18:44:12.000000000 +0000 @@ -119,11 +119,16 @@ bool isEmpty() const; +protected: + QPlace(const QSharedDataPointer &dd); + QSharedDataPointer &d(); + private: QSharedDataPointer d_ptr; inline QPlacePrivate *d_func(); inline const QPlacePrivate *d_func() const; + friend class QDeclarativePlace; }; Q_DECLARE_TYPEINFO(QPlace, Q_MOVABLE_TYPE); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplaceidreply.h qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplaceidreply.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplaceidreply.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplaceidreply.h 2018-06-12 18:44:12.000000000 +0000 @@ -55,7 +55,7 @@ RemoveCategory }; - explicit QPlaceIdReply(OperationType operationType, QObject *parent = Q_NULLPTR); + explicit QPlaceIdReply(OperationType operationType, QObject *parent = nullptr); virtual ~QPlaceIdReply(); QPlaceReply::Type type() const; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplacemanagerengine.h qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplacemanagerengine.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplacemanagerengine.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplacemanagerengine.h 2018-06-12 18:44:12.000000000 +0000 @@ -53,7 +53,7 @@ Q_OBJECT public: - explicit QPlaceManagerEngine(const QVariantMap ¶meters, QObject *parent = Q_NULLPTR); + explicit QPlaceManagerEngine(const QVariantMap ¶meters, QObject *parent = nullptr); virtual ~QPlaceManagerEngine(); QString managerName() const; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplacemanager.h qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplacemanager.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplacemanager.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplacemanager.h 2018-06-12 18:44:12.000000000 +0000 @@ -112,7 +112,7 @@ void dataChanged(); private: - explicit QPlaceManager(QPlaceManagerEngine *engine, QObject *parent = Q_NULLPTR); + explicit QPlaceManager(QPlaceManagerEngine *engine, QObject *parent = nullptr); Q_DISABLE_COPY(QPlaceManager) QPlaceManagerEngine *d; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplacematchreply.h qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplacematchreply.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplacematchreply.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplacematchreply.h 2018-06-12 18:44:12.000000000 +0000 @@ -47,7 +47,7 @@ { Q_OBJECT public: - explicit QPlaceMatchReply(QObject *parent = Q_NULLPTR); + explicit QPlaceMatchReply(QObject *parent = nullptr); ~QPlaceMatchReply(); QPlaceReply::Type type() const; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplace_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplace_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplace_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplace_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -51,45 +51,117 @@ #include #include -#include "qplace.h" -#include "qgeoaddress.h" -#include "qgeorectangle.h" -#include "qgeocoordinate.h" -#include "qplacesupplier.h" +#include +#include +#include +#include +#include +#include #include QT_BEGIN_NAMESPACE -class QPlacePrivate : public QSharedData +class Q_LOCATION_PRIVATE_EXPORT QPlacePrivate : public QSharedData { public: QPlacePrivate(); QPlacePrivate(const QPlacePrivate &other); - ~QPlacePrivate(); - - QPlacePrivate &operator= (const QPlacePrivate &other); + virtual ~QPlacePrivate(); + virtual QPlacePrivate *clone() = 0; bool operator==(const QPlacePrivate &other) const; - bool isEmpty() const; + virtual bool isEmpty() const; + virtual QList categories() const = 0; + virtual void setCategories(const QList &categories) = 0; + virtual QGeoLocation location() const = 0; + virtual void setLocation(const QGeoLocation &location) = 0; + virtual QPlaceRatings ratings() const = 0; + virtual void setRatings(const QPlaceRatings &ratings) = 0; + virtual QPlaceSupplier supplier() const = 0; + virtual void setSupplier(const QPlaceSupplier &supplier) = 0; + virtual QString name() const = 0; + virtual void setName(const QString &name) = 0; + virtual QString placeId() const = 0; + virtual void setPlaceId(const QString &placeIdentifier) = 0; + virtual QString attribution() const = 0; + virtual void setAttribution(const QString &attribution) = 0; + virtual QLocation::Visibility visibility() const = 0; + virtual void setVisibility(QLocation::Visibility visibility) = 0; + virtual QPlaceIcon icon() const = 0; + virtual void setIcon(const QPlaceIcon &icon) = 0; + virtual bool detailsFetched() const = 0; + virtual void setDetailsFetched(bool fetched) = 0; + + virtual QMap extendedAttributes() const = 0; + virtual QMap &extendedAttributes() = 0; + virtual QMap > contacts() const = 0; + virtual QMap > &contacts() = 0; + virtual QPlaceAttribute extendedAttribute(const QString &attributeType) const; + + + // The place content, that has to be manually retrieved from the place manager and manually added to the place. + // Currently, place content types can be: + // ImageType, + // ReviewType, + // EditorialType, + // CustomType = 0x0100 + QMap m_contentCollections; + QMap m_contentCounts; +}; + - QList categories; - QGeoLocation location; - QPlaceRatings ratings; - QPlaceSupplier supplier; - QString name; - QString placeId; - QString attribution; - - QMap contentCollections; - QMap contentCounts; - - QMap extendedAttributes; - QMap > contacts; - - QLocation::Visibility visibility; - QPlaceIcon icon; - bool detailsFetched; +class Q_LOCATION_PRIVATE_EXPORT QPlacePrivateDefault : public QPlacePrivate +{ +public: + QPlacePrivateDefault(); + QPlacePrivateDefault(const QPlacePrivateDefault &other); + virtual ~QPlacePrivateDefault(); + virtual QPlacePrivate *clone() override; + + virtual QList categories() const override; + virtual void setCategories(const QList &categories) override; + virtual QGeoLocation location() const override; + virtual void setLocation(const QGeoLocation &location) override; + virtual QPlaceRatings ratings() const override; + virtual void setRatings(const QPlaceRatings &ratings) override; + virtual QPlaceSupplier supplier() const override; + virtual void setSupplier(const QPlaceSupplier &supplier) override; + virtual QString name() const override; + virtual void setName(const QString &name) override; + virtual QString placeId() const override; + virtual void setPlaceId(const QString &placeIdentifier) override; + virtual QString attribution() const override; + virtual void setAttribution(const QString &attribution) override; + virtual QLocation::Visibility visibility() const override; + virtual void setVisibility(QLocation::Visibility visibility) override; + virtual QPlaceIcon icon() const override; + virtual void setIcon(const QPlaceIcon &icon) override; + virtual bool detailsFetched() const override; + virtual void setDetailsFetched(bool fetched) override; + + virtual QMap extendedAttributes() const override; + virtual QMap &extendedAttributes() override; + virtual QMap > contacts() const override; + virtual QMap > &contacts() override; + + + // data members + + QList m_categories; + QGeoLocation m_location; + QPlaceRatings m_ratings; + QPlaceSupplier m_supplier; + QString m_name; + QString m_placeId; + QString m_attribution; + + QMap m_extendedAttributes; + QMap > m_contacts; + + QLocation::Visibility m_visibility; + QPlaceIcon m_icon; + bool m_detailsFetched; }; QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplaceproposedsearchresult.cpp qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplaceproposedsearchresult.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplaceproposedsearchresult.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplaceproposedsearchresult.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -63,7 +63,7 @@ \inmodule QtLocation \ingroup QtLocation-places \ingroup QtLocation-places-data - \since Qt Location 5.2 + \since QtLocation 5.2 \brief The QPlaceProposedSearchResult class represents a search result containing a proposed search. diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplaceproposedsearchresult_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplaceproposedsearchresult_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplaceproposedsearchresult_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplaceproposedsearchresult_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -60,7 +60,7 @@ ~QPlaceProposedSearchResultPrivate(); - bool compare(const QPlaceSearchResultPrivate *other) const Q_DECL_OVERRIDE; + bool compare(const QPlaceSearchResultPrivate *other) const override; Q_DEFINE_SEARCHRESULT_PRIVATE_HELPER(QPlaceProposedSearchResult, QPlaceSearchResult::ProposedSearchResult) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplacereply.h qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplacereply.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplacereply.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplacereply.h 2018-06-12 18:44:12.000000000 +0000 @@ -71,7 +71,7 @@ MatchReply }; - explicit QPlaceReply(QObject *parent = Q_NULLPTR); + explicit QPlaceReply(QObject *parent = nullptr); ~QPlaceReply(); bool isFinished() const; @@ -90,7 +90,7 @@ void error(QPlaceReply::Error error, const QString &errorString = QString()); protected: - explicit QPlaceReply(QPlaceReplyPrivate *, QObject *parent = Q_NULLPTR); + explicit QPlaceReply(QPlaceReplyPrivate *, QObject *parent = nullptr); void setFinished(bool finished); void setError(QPlaceReply::Error error, const QString &errorString); QPlaceReplyPrivate *d_ptr; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplaceresult_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplaceresult_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplaceresult_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplaceresult_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -60,7 +60,7 @@ ~QPlaceResultPrivate(); - bool compare(const QPlaceSearchResultPrivate *other) const Q_DECL_OVERRIDE; + bool compare(const QPlaceSearchResultPrivate *other) const override; Q_DEFINE_SEARCHRESULT_PRIVATE_HELPER(QPlaceResult, QPlaceSearchResult::PlaceResult) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplacesearchreply.h qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplacesearchreply.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplacesearchreply.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplacesearchreply.h 2018-06-12 18:44:12.000000000 +0000 @@ -49,7 +49,7 @@ { Q_OBJECT public: - explicit QPlaceSearchReply(QObject *parent = Q_NULLPTR); + explicit QPlaceSearchReply(QObject *parent = nullptr); ~QPlaceSearchReply(); QPlaceReply::Type type() const; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplacesearchresult_p.h qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplacesearchresult_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplacesearchresult_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplacesearchresult_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -65,8 +65,8 @@ Class::Class(const QPlaceSearchResult &other) : QPlaceSearchResult() { Class##Private::copyIfPossible(d_ptr, other); } #define Q_DEFINE_SEARCHRESULT_PRIVATE_HELPER(Class, ResultType) \ - virtual QPlaceSearchResultPrivate *clone() const Q_DECL_OVERRIDE { return new Class##Private(*this); } \ - virtual QPlaceSearchResult::SearchResultType type() const Q_DECL_OVERRIDE {return ResultType;} \ + virtual QPlaceSearchResultPrivate *clone() const override { return new Class##Private(*this); } \ + virtual QPlaceSearchResult::SearchResultType type() const override {return ResultType;} \ static void copyIfPossible(QSharedDataPointer &d_ptr, const QPlaceSearchResult &other) \ { \ if (other.type() == ResultType) \ diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplacesearchsuggestionreply.h qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplacesearchsuggestionreply.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/places/qplacesearchsuggestionreply.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/places/qplacesearchsuggestionreply.h 2018-06-12 18:44:12.000000000 +0000 @@ -49,7 +49,7 @@ { Q_OBJECT public: - explicit QPlaceSearchSuggestionReply(QObject *parent = Q_NULLPTR); + explicit QPlaceSearchSuggestionReply(QObject *parent = nullptr); ~QPlaceSearchSuggestionReply(); QStringList suggestions() const; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/location/qlocationglobal.h qtlocation-opensource-src-5.11.1+dfsg/src/location/qlocationglobal.h --- qtlocation-opensource-src-5.9.5+dfsg/src/location/qlocationglobal.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/location/qlocationglobal.h 2018-06-12 18:44:12.000000000 +0000 @@ -50,6 +50,10 @@ # define Q_LOCATION_EXPORT #endif +#ifdef Q_CLANG_QDOC +#include "QtLocation/qlocation.h" +#endif + QT_END_NAMESPACE #endif // QLOCATIONGLOBAL_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/locationlabs/qlocationlabsglobal_p.h qtlocation-opensource-src-5.11.1+dfsg/src/locationlabs/qlocationlabsglobal_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/locationlabs/qlocationlabsglobal_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/locationlabs/qlocationlabsglobal_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,69 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#ifndef QLOCATIONLABSGLOBAL_P_H +#define QLOCATIONLABSGLOBAL_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include + +QT_BEGIN_NAMESPACE + +#ifndef QT_STATIC +# if defined(QT_BUILD_LOCATIONLABS_LIB) +# define Q_LOCATIONLABS_EXPORT Q_DECL_EXPORT +# else +# define Q_LOCATIONLABS_EXPORT Q_DECL_IMPORT +# endif +#else +# define Q_LOCATIONLABS_EXPORT +#endif + +#define Q_LOCATIONLABS_PRIVATE_EXPORT Q_LOCATIONLABS_EXPORT + +QT_END_NAMESPACE + +#endif // QLOCATIONLABSGLOBAL_P_H + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/esri.pro qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/esri.pro --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/esri.pro 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/esri.pro 2018-06-12 18:44:12.000000000 +0000 @@ -2,6 +2,9 @@ QT += location-private positioning-private network +QT_FOR_CONFIG += location-private +qtConfig(location-labs-plugin): DEFINES += LOCATIONLABS + HEADERS += \ geocodereply_esri.h \ geocodingmanagerengine_esri.h \ diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geocodereply_esri.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geocodereply_esri.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geocodereply_esri.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geocodereply_esri.h 2018-06-12 18:44:12.000000000 +0000 @@ -57,7 +57,7 @@ }; public: - GeoCodeReplyEsri(QNetworkReply *reply, OperationType operationType, QObject *parent = Q_NULLPTR); + GeoCodeReplyEsri(QNetworkReply *reply, OperationType operationType, QObject *parent = nullptr); ~GeoCodeReplyEsri(); inline OperationType operationType() const; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geocodingmanagerengine_esri.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geocodingmanagerengine_esri.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geocodingmanagerengine_esri.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geocodingmanagerengine_esri.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -118,8 +118,8 @@ query.addQueryItem(QStringLiteral("f"), QStringLiteral("json")); query.addQueryItem(QStringLiteral("outFields"), "*"); - if (bounds.type() == QGeoShape::RectangleType) - query.addQueryItem(QStringLiteral("searchExtent"), boundingBoxToLtrb(bounds)); + if (bounds.type() != QGeoShape::UnknownType) + query.addQueryItem(QStringLiteral("searchExtent"), boundingBoxToLtrb(bounds.boundingGeoRectangle())); if (limit != -1) query.addQueryItem(QStringLiteral("maxLocations"), QString::number(limit)); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geocodingmanagerengine_esri.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geocodingmanagerengine_esri.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geocodingmanagerengine_esri.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geocodingmanagerengine_esri.h 2018-06-12 18:44:12.000000000 +0000 @@ -57,11 +57,11 @@ QString *errorString); virtual ~GeoCodingManagerEngineEsri(); - QGeoCodeReply *geocode(const QGeoAddress &address, const QGeoShape &bounds) Q_DECL_OVERRIDE; + QGeoCodeReply *geocode(const QGeoAddress &address, const QGeoShape &bounds) override; QGeoCodeReply *geocode(const QString &address, int limit, int offset, - const QGeoShape &bounds) Q_DECL_OVERRIDE; + const QGeoShape &bounds) override; QGeoCodeReply *reverseGeocode(const QGeoCoordinate &coordinate, - const QGeoShape &bounds) Q_DECL_OVERRIDE; + const QGeoShape &bounds) override; private Q_SLOTS: void replyFinished(); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geomapsource.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geomapsource.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geomapsource.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geomapsource.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -67,8 +67,8 @@ GeoMapSource::GeoMapSource(QGeoMapType::MapStyle style, const QString &name, const QString &description, bool mobile, bool night, int mapId, - const QString &url, const QString ©right) : - QGeoMapType(style, name, description, mobile, night, mapId, "esri"), + const QString &url, const QString ©right, const QGeoCameraCapabilities &cameraCapabilities) : + QGeoMapType(style, name, description, mobile, night, mapId, "esri", cameraCapabilities), m_url(url), m_copyright(copyright) { } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geomapsource.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geomapsource.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geomapsource.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geomapsource.h 2018-06-12 18:44:12.000000000 +0000 @@ -41,6 +41,7 @@ #define GEOMAPSOURCE_H #include +#include QT_BEGIN_NAMESPACE @@ -49,7 +50,7 @@ public: GeoMapSource(QGeoMapType::MapStyle style, const QString &name, const QString &description, bool mobile, bool night, int mapId, - const QString &url, const QString ©right); + const QString &url, const QString ©right, const QGeoCameraCapabilities &cameraCapabilities); inline const QString &url() const; inline const QString ©right() const; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/georoutereply_esri.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/georoutereply_esri.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/georoutereply_esri.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/georoutereply_esri.h 2018-06-12 18:44:12.000000000 +0000 @@ -50,7 +50,7 @@ Q_OBJECT public: - GeoRouteReplyEsri(QNetworkReply *reply, const QGeoRouteRequest &request, QObject *parent = Q_NULLPTR); + GeoRouteReplyEsri(QNetworkReply *reply, const QGeoRouteRequest &request, QObject *parent = nullptr); ~GeoRouteReplyEsri(); private Q_SLOTS: diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/georoutingmanagerengine_esri.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/georoutingmanagerengine_esri.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/georoutingmanagerengine_esri.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/georoutingmanagerengine_esri.h 2018-06-12 18:44:12.000000000 +0000 @@ -56,7 +56,7 @@ QString *errorString); virtual ~GeoRoutingManagerEngineEsri(); - QGeoRouteReply *calculateRoute(const QGeoRouteRequest &request) Q_DECL_OVERRIDE; + QGeoRouteReply *calculateRoute(const QGeoRouteRequest &request) override; private Q_SLOTS: void replyFinished(); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geoserviceproviderfactory_esri.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geoserviceproviderfactory_esri.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geoserviceproviderfactory_esri.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geoserviceproviderfactory_esri.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -80,7 +80,7 @@ Q_UNUSED(error) Q_UNUSED(errorString) - return Q_NULLPTR; + return nullptr; } QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geoserviceproviderfactory_esri.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geoserviceproviderfactory_esri.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geoserviceproviderfactory_esri.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geoserviceproviderfactory_esri.h 2018-06-12 18:44:12.000000000 +0000 @@ -55,16 +55,16 @@ public: QGeoCodingManagerEngine *createGeocodingManagerEngine(const QVariantMap ¶meters, QGeoServiceProvider::Error *error, - QString *errorString) const Q_DECL_OVERRIDE; + QString *errorString) const override; QGeoMappingManagerEngine *createMappingManagerEngine(const QVariantMap ¶meters, QGeoServiceProvider::Error *error, - QString *errorString) const Q_DECL_OVERRIDE; + QString *errorString) const override; QGeoRoutingManagerEngine *createRoutingManagerEngine(const QVariantMap ¶meters, QGeoServiceProvider::Error *error, - QString *errorString) const Q_DECL_OVERRIDE; + QString *errorString) const override; QPlaceManagerEngine *createPlaceManagerEngine(const QVariantMap ¶meters, QGeoServiceProvider::Error *error, - QString *errorString) const Q_DECL_OVERRIDE; + QString *errorString) const override; }; QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geotiledmap_esri.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geotiledmap_esri.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geotiledmap_esri.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geotiledmap_esri.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -45,7 +45,7 @@ QT_BEGIN_NAMESPACE GeoTiledMapEsri::GeoTiledMapEsri(GeoTiledMappingManagerEngineEsri *engine, QObject *parent) : - QGeoTiledMap(engine, parent), m_engine(engine), m_mapId(-1) + Map(engine, parent), m_engine(engine), m_mapId(-1) { } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geotiledmap_esri.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geotiledmap_esri.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geotiledmap_esri.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geotiledmap_esri.h 2018-06-12 18:44:12.000000000 +0000 @@ -41,21 +41,27 @@ #define GEOTILEDMAPESRI_H #include +#ifdef LOCATIONLABS +#include +typedef QGeoTiledMapLabs Map; +#else +typedef QGeoTiledMap Map; +#endif QT_BEGIN_NAMESPACE class GeoTiledMappingManagerEngineEsri; -class GeoTiledMapEsri: public QGeoTiledMap +class GeoTiledMapEsri: public Map { Q_OBJECT public: - explicit GeoTiledMapEsri(GeoTiledMappingManagerEngineEsri *engine, QObject *parent = Q_NULLPTR); + explicit GeoTiledMapEsri(GeoTiledMappingManagerEngineEsri *engine, QObject *parent = nullptr); virtual ~GeoTiledMapEsri(); protected: - void evaluateCopyrights(const QSet &visibleTiles) Q_DECL_OVERRIDE; + void evaluateCopyrights(const QSet &visibleTiles) override; inline GeoTiledMappingManagerEngineEsri *engine() const; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geotiledmappingmanagerengine_esri.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geotiledmappingmanagerengine_esri.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geotiledmappingmanagerengine_esri.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geotiledmappingmanagerengine_esri.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -106,7 +106,7 @@ setTileSize(QSize(256, 256)); - if (!initializeMapSources(error, errorString)) + if (!initializeMapSources(error, errorString, cameraCaps)) return; QList mapTypes; @@ -119,7 +119,8 @@ mapSource->mobile(), mapSource->night(), mapSource->mapId(), - "esri"); + "esri", + cameraCaps); } setSupportedMapTypes(mapTypes); @@ -237,7 +238,8 @@ // template = 'http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{{z}}/{{y}}/{{x}}.png' bool GeoTiledMappingManagerEngineEsri::initializeMapSources(QGeoServiceProvider::Error *error, - QString *errorString) + QString *errorString, + const QGeoCameraCapabilities &cameraCaps) { initResources(); QFile mapsFile(":/esri/maps.json"); @@ -271,9 +273,7 @@ foreach (QVariant mapSourceElement, mapSources) { QVariantMap mapSource = mapSourceElement.toMap(); - int mapId = mapSource[kPropMapId].toInt(); - if (mapId <= 0) - mapId = m_mapSources.count() + 1; + int mapId = m_mapSources.count() + 1; m_mapSources << new GeoMapSource( GeoMapSource::mapStyle(mapSource[kPropStyle].toString()), @@ -283,7 +283,8 @@ mapSource[kPropMapId].toBool(), mapId, GeoMapSource::toFormat(mapSource[kPropUrl].toString()), - mapSource[kPropCopyright].toString() + mapSource[kPropCopyright].toString(), + cameraCaps ); } @@ -297,7 +298,7 @@ return mapSource; } - return Q_NULLPTR; + return nullptr; } QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geotiledmappingmanagerengine_esri.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geotiledmappingmanagerengine_esri.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geotiledmappingmanagerengine_esri.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geotiledmappingmanagerengine_esri.h 2018-06-12 18:44:12.000000000 +0000 @@ -57,13 +57,13 @@ QGeoServiceProvider::Error *error, QString *errorString); virtual ~GeoTiledMappingManagerEngineEsri(); - QGeoMap *createMap() Q_DECL_OVERRIDE; + QGeoMap *createMap() override; inline const QList& mapSources() const; GeoMapSource *mapSource(int mapId) const; private: - bool initializeMapSources(QGeoServiceProvider::Error *error, QString *errorString); + bool initializeMapSources(QGeoServiceProvider::Error *error, QString *errorString, const QGeoCameraCapabilities &cameraCaps); QList m_mapSources; }; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geotiledmapreply_esri.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geotiledmapreply_esri.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geotiledmapreply_esri.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geotiledmapreply_esri.h 2018-06-12 18:44:12.000000000 +0000 @@ -51,7 +51,7 @@ Q_OBJECT public: - GeoTiledMapReplyEsri(QNetworkReply *reply, const QGeoTileSpec &spec, QObject *parent = Q_NULLPTR); + GeoTiledMapReplyEsri(QNetworkReply *reply, const QGeoTileSpec &spec, QObject *parent = nullptr); ~GeoTiledMapReplyEsri(); private Q_SLOTS: diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geotilefetcher_esri.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geotilefetcher_esri.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/esri/geotilefetcher_esri.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/esri/geotilefetcher_esri.h 2018-06-12 18:44:12.000000000 +0000 @@ -61,7 +61,7 @@ inline void setToken(const QString &token); private: - QGeoTiledMapReply *getTileImage(const QGeoTileSpec &spec) Q_DECL_OVERRIDE; + QGeoTiledMapReply *getTileImage(const QGeoTileSpec &spec) override; QNetworkAccessManager *m_networkManager; QByteArray m_userAgent; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/itemsoverlay/itemsoverlay.pro qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/itemsoverlay/itemsoverlay.pro --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/itemsoverlay/itemsoverlay.pro 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/itemsoverlay/itemsoverlay.pro 2018-06-12 18:44:12.000000000 +0000 @@ -2,6 +2,9 @@ QT += location-private positioning-private +QT_FOR_CONFIG += location-private +qtConfig(location-labs-plugin): DEFINES += LOCATIONLABS + HEADERS += \ qgeomapitemsoverlay.h \ qgeomappingmanagerengineitemsoverlay.h \ diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/itemsoverlay/qgeomapitemsoverlay.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/itemsoverlay/qgeomapitemsoverlay.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/itemsoverlay/qgeomapitemsoverlay.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/itemsoverlay/qgeomapitemsoverlay.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -38,25 +38,46 @@ #include "qgeomappingmanagerengineitemsoverlay.h" #include #include +#include +#include + +#ifdef LOCATIONLABS +#include +#include +#include +#include +#include +#include +#include +#endif QT_BEGIN_NAMESPACE class QGeoMapItemsOverlayPrivate : public QGeoMapPrivate { - Q_DECLARE_PUBLIC(QGeoMap) + Q_DECLARE_PUBLIC(QGeoMapItemsOverlay) public: - QGeoMapItemsOverlayPrivate(QGeoMappingManagerEngineItemsOverlay *engine); - + QGeoMapItemsOverlayPrivate(QGeoMappingManagerEngineItemsOverlay *engine, QGeoMapItemsOverlay *map); virtual ~QGeoMapItemsOverlayPrivate(); +#ifdef LOCATIONLABS + QGeoMapObjectPrivate *createMapObjectImplementation(QGeoMapObject *obj) override; + virtual QList mapObjects() const override; + void removeMapObject(QGeoMapObject *obj); + void updateMapObjects(QSGNode *root, QQuickWindow *window); + + QGeoMapObjectQSGSupport m_qsgSupport; +#endif + + void updateObjectsGeometry(); protected: - void changeViewportSize(const QSize &size) Q_DECL_OVERRIDE; - void changeCameraData(const QGeoCameraData &oldCameraData) Q_DECL_OVERRIDE; - void changeActiveMapType(const QGeoMapType mapType) Q_DECL_OVERRIDE; + void changeViewportSize(const QSize &size) override; + void changeCameraData(const QGeoCameraData &oldCameraData) override; + void changeActiveMapType(const QGeoMapType mapType) override; }; QGeoMapItemsOverlay::QGeoMapItemsOverlay(QGeoMappingManagerEngineItemsOverlay *engine, QObject *parent) - : QGeoMap(*(new QGeoMapItemsOverlayPrivate(engine)), parent) + : QGeoMap(*(new QGeoMapItemsOverlayPrivate(engine, this)), parent) { } @@ -65,34 +86,103 @@ { } +QGeoMap::Capabilities QGeoMapItemsOverlay::capabilities() const +{ + return Capabilities(SupportsVisibleRegion + | SupportsSetBearing + | SupportsAnchoringCoordinate); +} + +bool QGeoMapItemsOverlay::createMapObjectImplementation(QGeoMapObject *obj) +{ +#ifndef LOCATIONLABS + return false; +#else + Q_D(QGeoMapItemsOverlay); + return d->m_qsgSupport.createMapObjectImplementation(obj, d); +#endif +} + QSGNode *QGeoMapItemsOverlay::updateSceneGraph(QSGNode *node, QQuickWindow *window) { +#ifndef LOCATIONLABS Q_UNUSED(window) return node; +#else + Q_D(QGeoMapItemsOverlay); + + QSGRectangleNode *mapRoot = static_cast(node); + if (!mapRoot) + mapRoot = window->createRectangleNode(); + + mapRoot->setRect(QRect(0, 0, viewportWidth(), viewportHeight())); + mapRoot->setColor(QColor(0,0,0,0)); + + d->updateMapObjects(mapRoot, window); + return mapRoot; +#endif +} + +void QGeoMapItemsOverlay::removeMapObject(QGeoMapObject *obj) +{ +#ifdef LOCATIONLABS + Q_D(QGeoMapItemsOverlay); + d->removeMapObject(obj); +#endif } -QGeoMapItemsOverlayPrivate::QGeoMapItemsOverlayPrivate(QGeoMappingManagerEngineItemsOverlay *engine) +QGeoMapItemsOverlayPrivate::QGeoMapItemsOverlayPrivate(QGeoMappingManagerEngineItemsOverlay *engine, QGeoMapItemsOverlay *map) : QGeoMapPrivate(engine, new QGeoProjectionWebMercator) { + m_qsgSupport.m_map = map; } QGeoMapItemsOverlayPrivate::~QGeoMapItemsOverlayPrivate() { } -void QGeoMapItemsOverlayPrivate::changeViewportSize(const QSize &size) +#ifdef LOCATIONLABS +QGeoMapObjectPrivate *QGeoMapItemsOverlayPrivate::createMapObjectImplementation(QGeoMapObject *obj) +{ + return m_qsgSupport.createMapObjectImplementationPrivate(obj); +} + +QList QGeoMapItemsOverlayPrivate::mapObjects() const +{ + return m_qsgSupport.mapObjects(); +} + +void QGeoMapItemsOverlayPrivate::removeMapObject(QGeoMapObject *obj) +{ + m_qsgSupport.removeMapObject(obj); +} + +void QGeoMapItemsOverlayPrivate::updateMapObjects(QSGNode *root, QQuickWindow *window) +{ + m_qsgSupport.updateMapObjects(root, window); +} +#endif + +void QGeoMapItemsOverlayPrivate::updateObjectsGeometry() +{ +#ifdef LOCATIONLABS + m_qsgSupport.updateObjectsGeometry(); +#endif +} + +void QGeoMapItemsOverlayPrivate::changeViewportSize(const QSize &/*size*/) { - Q_UNUSED(size) + updateObjectsGeometry(); } -void QGeoMapItemsOverlayPrivate::changeCameraData(const QGeoCameraData &oldCameraData) +void QGeoMapItemsOverlayPrivate::changeCameraData(const QGeoCameraData &/*oldCameraData*/) { - Q_UNUSED(oldCameraData) + updateObjectsGeometry(); } -void QGeoMapItemsOverlayPrivate::changeActiveMapType(const QGeoMapType mapType) +void QGeoMapItemsOverlayPrivate::changeActiveMapType(const QGeoMapType /*mapType*/) { - Q_UNUSED(mapType) + updateObjectsGeometry(); } QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/itemsoverlay/qgeomapitemsoverlay.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/itemsoverlay/qgeomapitemsoverlay.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/itemsoverlay/qgeomapitemsoverlay.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/itemsoverlay/qgeomapitemsoverlay.h 2018-06-12 18:44:12.000000000 +0000 @@ -51,10 +51,14 @@ Q_DECLARE_PRIVATE(QGeoMapItemsOverlay) public: QGeoMapItemsOverlay(QGeoMappingManagerEngineItemsOverlay *engine, QObject *parent); - virtual ~QGeoMapItemsOverlay(); + + QGeoMap::Capabilities capabilities() const override; + bool createMapObjectImplementation(QGeoMapObject *obj) override; + void removeMapObject(QGeoMapObject *obj) override; + protected: - QSGNode *updateSceneGraph(QSGNode *node, QQuickWindow *window) Q_DECL_OVERRIDE; + QSGNode *updateSceneGraph(QSGNode *node, QQuickWindow *window) override; private: Q_DISABLE_COPY(QGeoMapItemsOverlay) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/itemsoverlay/qgeomappingmanagerengineitemsoverlay.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/itemsoverlay/qgeomappingmanagerengineitemsoverlay.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/itemsoverlay/qgeomappingmanagerengineitemsoverlay.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/itemsoverlay/qgeomappingmanagerengineitemsoverlay.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -62,7 +62,7 @@ setCameraCapabilities(cameraCaps); QList mapTypes; - mapTypes << QGeoMapType(QGeoMapType::NoMap, tr("Empty Map"), tr("Empty Map"), false, false, 1, "itemsoverlay"); + mapTypes << QGeoMapType(QGeoMapType::NoMap, tr("Empty Map"), tr("Empty Map"), false, false, 1, "itemsoverlay", cameraCaps); setSupportedMapTypes(mapTypes); engineInitialized(); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/itemsoverlay/qgeomappingmanagerengineitemsoverlay.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/itemsoverlay/qgeomappingmanagerengineitemsoverlay.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/itemsoverlay/qgeomappingmanagerengineitemsoverlay.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/itemsoverlay/qgeomappingmanagerengineitemsoverlay.h 2018-06-12 18:44:12.000000000 +0000 @@ -51,7 +51,7 @@ QGeoServiceProvider::Error *error, QString *errorString); ~QGeoMappingManagerEngineItemsOverlay(); - QGeoMap *createMap() Q_DECL_OVERRIDE; + QGeoMap *createMap() override; }; QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/aerialway.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/aerialway.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/aerialway.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/aerialway.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,10 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/airfield.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/airfield.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/airfield.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/airfield.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,11 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/airport.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/airport.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/airport.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/airport.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,11 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/alcohol-shop.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/alcohol-shop.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/alcohol-shop.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/alcohol-shop.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,12 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/america-football.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/america-football.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/america-football.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/america-football.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,10 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/amusement-park.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/amusement-park.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/amusement-park.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/amusement-park.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,20 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/aquarium.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/aquarium.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/aquarium.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/aquarium.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,12 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/art-gallery.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/art-gallery.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/art-gallery.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/art-gallery.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,10 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/attraction.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/attraction.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/attraction.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/attraction.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,13 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bakery.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bakery.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bakery.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bakery.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,15 @@ + + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bank.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bank.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bank.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bank.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,19 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/barrier.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/barrier.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/barrier.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/barrier.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,4 @@ + + barrier-15 + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bar.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bar.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bar.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bar.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,11 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/baseball.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/baseball.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/baseball.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/baseball.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,12 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/basketball.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/basketball.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/basketball.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/basketball.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,13 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bbq.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bbq.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bbq.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bbq.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,17 @@ + + grill-15 + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/beer.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/beer.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/beer.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/beer.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,11 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bicycle-share.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bicycle-share.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bicycle-share.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bicycle-share.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,20 @@ + + + + + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bicycle.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bicycle.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bicycle.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bicycle.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,21 @@ + + + + + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/blood-bank.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/blood-bank.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/blood-bank.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/blood-bank.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,8 @@ + + + +blood-bank-15 + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/buddhism.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/buddhism.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/buddhism.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/buddhism.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,24 @@ + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/building-alt1.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/building-alt1.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/building-alt1.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/building-alt1.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,7 @@ + + + +buildings + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/building.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/building.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/building.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/building.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,7 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bus.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bus.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bus.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/bus.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,13 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/cafe.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/cafe.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/cafe.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/cafe.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,9 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/campsite.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/campsite.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/campsite.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/campsite.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,11 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/car.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/car.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/car.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/car.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,10 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/castle.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/castle.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/castle.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/castle.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,11 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/cemetery.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/cemetery.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/cemetery.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/cemetery.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,9 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/cinema.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/cinema.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/cinema.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/cinema.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,11 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/circle-stroked.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/circle-stroked.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/circle-stroked.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/circle-stroked.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,11 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/circle.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/circle.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/circle.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/circle.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,7 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/city.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/city.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/city.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/city.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,14 @@ + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/clothing-store.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/clothing-store.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/clothing-store.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/clothing-store.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,10 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/college.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/college.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/college.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/college.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,5 @@ + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/commercial.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/commercial.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/commercial.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/commercial.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,7 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/cricket.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/cricket.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/cricket.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/cricket.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,14 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/cross.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/cross.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/cross.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/cross.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,11 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/dam.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/dam.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/dam.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/dam.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,20 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/danger.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/danger.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/danger.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/danger.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,18 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/defibrillator.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/defibrillator.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/defibrillator.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/defibrillator.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,4 @@ + + defibrillator-15 + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/dentist.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/dentist.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/dentist.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/dentist.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,9 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/doctor.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/doctor.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/doctor.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/doctor.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,13 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/dog-park.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/dog-park.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/dog-park.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/dog-park.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,49 @@ + + + +image/svg+xml diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/drinking-water.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/drinking-water.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/drinking-water.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/drinking-water.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,5 @@ + + drinking-water-15 + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/embassy.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/embassy.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/embassy.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/embassy.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,12 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/emergency-phone.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/emergency-phone.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/emergency-phone.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/emergency-phone.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,4 @@ + + emergency-phone-15 + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/entrance-alt1.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/entrance-alt1.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/entrance-alt1.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/entrance-alt1.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,4 @@ + + entrance-alt1-15 + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/entrance.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/entrance.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/entrance.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/entrance.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,11 @@ + + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/farm.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/farm.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/farm.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/farm.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,4 @@ + + farm-15 + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/fast-food.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/fast-food.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/fast-food.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/fast-food.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,12 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/fence.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/fence.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/fence.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/fence.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,4 @@ + + fence-15 + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/ferry.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/ferry.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/ferry.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/ferry.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,19 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/fire-station.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/fire-station.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/fire-station.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/fire-station.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,12 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/florist.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/florist.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/florist.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/florist.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,4 @@ + + florist-15 + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/fuel.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/fuel.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/fuel.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/fuel.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,12 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/gaming.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/gaming.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/gaming.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/gaming.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,11 @@ + + + +gaming + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/garden-center.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/garden-center.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/garden-center.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/garden-center.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/garden.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/garden.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/garden.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/garden.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,10 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/gift.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/gift.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/gift.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/gift.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,13 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/golf.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/golf.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/golf.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/golf.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,13 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/grocery.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/grocery.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/grocery.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/grocery.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,48 @@ + + + +image/svg+xml diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/hairdresser.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/hairdresser.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/hairdresser.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/hairdresser.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,13 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/harbor.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/harbor.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/harbor.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/harbor.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,14 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/heart.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/heart.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/heart.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/heart.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,8 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/heliport.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/heliport.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/heliport.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/heliport.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,13 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/home.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/home.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/home.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/home.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,8 @@ + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/horse-riding.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/horse-riding.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/horse-riding.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/horse-riding.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,4 @@ + + horse-riding-15 + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/hospital.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/hospital.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/hospital.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/hospital.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,10 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/ice-cream.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/ice-cream.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/ice-cream.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/ice-cream.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,11 @@ + + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/industry.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/industry.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/industry.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/industry.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,9 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/information.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/information.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/information.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/information.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,11 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/karaoke.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/karaoke.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/karaoke.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/karaoke.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,7 @@ + + karaoke + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/landmark.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/landmark.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/landmark.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/landmark.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,9 @@ + + + + +landmark + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/landuse.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/landuse.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/landuse.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/landuse.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,4 @@ + + landuse-15 + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/laundry.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/laundry.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/laundry.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/laundry.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,11 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/library.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/library.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/library.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/library.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,15 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/LICENSE.txt qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/LICENSE.txt --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/LICENSE.txt 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/LICENSE.txt 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,116 @@ +CC0 1.0 Universal + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator and +subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for the +purpose of contributing to a commons of creative, cultural and scientific +works ("Commons") that the public can reliably and without fear of later +claims of infringement build upon, modify, incorporate in other works, reuse +and redistribute as freely as possible in any form whatsoever and for any +purposes, including without limitation commercial purposes. These owners may +contribute to the Commons to promote the ideal of a free culture and the +further production of creative, cultural and scientific works, or to gain +reputation or greater distribution for their Work in part through the use and +efforts of others. + +For these and/or other purposes and motivations, and without any expectation +of additional consideration or compensation, the person associating CC0 with a +Work (the "Affirmer"), to the extent that he or she is an owner of Copyright +and Related Rights in the Work, voluntarily elects to apply CC0 to the Work +and publicly distribute the Work under its terms, with knowledge of his or her +Copyright and Related Rights in the Work and the meaning and intended legal +effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not limited +to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, communicate, + and translate a Work; + + ii. moral rights retained by the original author(s) and/or performer(s); + + iii. publicity and privacy rights pertaining to a person's image or likeness + depicted in a Work; + + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + + v. rights protecting the extraction, dissemination, use and reuse of data in + a Work; + + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation thereof, + including any amended or successor version of such directive); and + + vii. other similar, equivalent or corresponding rights throughout the world + based on applicable law or treaty, and any national implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention of, +applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and +unconditionally waives, abandons, and surrenders all of Affirmer's Copyright +and Related Rights and associated claims and causes of action, whether now +known or unknown (including existing as well as future claims and causes of +action), in the Work (i) in all territories worldwide, (ii) for the maximum +duration provided by applicable law or treaty (including future time +extensions), (iii) in any current or future medium and for any number of +copies, and (iv) for any purpose whatsoever, including without limitation +commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes +the Waiver for the benefit of each member of the public at large and to the +detriment of Affirmer's heirs and successors, fully intending that such Waiver +shall not be subject to revocation, rescission, cancellation, termination, or +any other legal or equitable action to disrupt the quiet enjoyment of the Work +by the public as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason be +judged legally invalid or ineffective under applicable law, then the Waiver +shall be preserved to the maximum extent permitted taking into account +Affirmer's express Statement of Purpose. In addition, to the extent the Waiver +is so judged Affirmer hereby grants to each affected person a royalty-free, +non transferable, non sublicensable, non exclusive, irrevocable and +unconditional license to exercise Affirmer's Copyright and Related Rights in +the Work (i) in all territories worldwide, (ii) for the maximum duration +provided by applicable law or treaty (including future time extensions), (iii) +in any current or future medium and for any number of copies, and (iv) for any +purpose whatsoever, including without limitation commercial, advertising or +promotional purposes (the "License"). The License shall be deemed effective as +of the date CC0 was applied by Affirmer to the Work. Should any part of the +License for any reason be judged legally invalid or ineffective under +applicable law, such partial invalidity or ineffectiveness shall not +invalidate the remainder of the License, and in such case Affirmer hereby +affirms that he or she will not (i) exercise any of his or her remaining +Copyright and Related Rights in the Work or (ii) assert any associated claims +and causes of action with respect to the Work, in either case contrary to +Affirmer's express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + + b. Affirmer offers the Work as-is and makes no representations or warranties + of any kind concerning the Work, express, implied, statutory or otherwise, + including without limitation warranties of title, merchantability, fitness + for a particular purpose, non infringement, or the absence of latent or + other defects, accuracy, or the present or absence of errors, whether or not + discoverable, all to the greatest extent permissible under applicable law. + + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without limitation + any person's Copyright and Related Rights in the Work. Further, Affirmer + disclaims responsibility for obtaining any necessary consents, permissions + or other rights required for any use of the Work. + + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to this + CC0 or use of the Work. + +For more information, please see + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/lighthouse.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/lighthouse.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/lighthouse.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/lighthouse.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,9 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/lodging.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/lodging.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/lodging.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/lodging.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,12 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/logging.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/logging.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/logging.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/logging.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,4 @@ + + logging-15 + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/marker-stroked.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/marker-stroked.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/marker-stroked.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/marker-stroked.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,4 @@ + + marker-stroked-15 + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/marker.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/marker.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/marker.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/marker.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,10 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/mobile-phone.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/mobile-phone.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/mobile-phone.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/mobile-phone.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,4 @@ + + mobile-phone-15 + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/monument.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/monument.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/monument.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/monument.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,10 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/mountain.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/mountain.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/mountain.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/mountain.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,11 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/museum.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/museum.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/museum.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/museum.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,14 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/music.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/music.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/music.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/music.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,9 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/natural.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/natural.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/natural.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/natural.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,4 @@ + + natural-15 + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/park-alt1.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/park-alt1.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/park-alt1.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/park-alt1.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,4 @@ + + park-alt1-15 + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/parking-garage.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/parking-garage.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/parking-garage.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/parking-garage.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,12 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/parking.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/parking.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/parking.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/parking.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,10 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/park.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/park.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/park.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/park.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,15 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/pharmacy.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/pharmacy.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/pharmacy.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/pharmacy.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,9 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/picnic-site.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/picnic-site.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/picnic-site.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/picnic-site.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,13 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/pitch.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/pitch.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/pitch.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/pitch.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,9 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/place-of-worship.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/place-of-worship.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/place-of-worship.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/place-of-worship.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,11 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/playground.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/playground.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/playground.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/playground.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,16 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/police.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/police.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/police.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/police.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,12 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/post.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/post.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/post.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/post.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,10 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/prison.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/prison.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/prison.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/prison.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,11 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/rail-light.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/rail-light.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/rail-light.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/rail-light.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,12 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/rail-metro.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/rail-metro.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/rail-metro.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/rail-metro.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,13 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/rail.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/rail.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/rail.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/rail.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,49 @@ + + + +image/svg+xml diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/ranger-station.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/ranger-station.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/ranger-station.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/ranger-station.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,10 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/recycling.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/recycling.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/recycling.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/recycling.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,10 @@ + + recycling-15 + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/religious-christian.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/religious-christian.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/religious-christian.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/religious-christian.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,10 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/religious-jewish.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/religious-jewish.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/religious-jewish.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/religious-jewish.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,7 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/religious-muslim.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/religious-muslim.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/religious-muslim.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/religious-muslim.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,12 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/residential-community.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/residential-community.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/residential-community.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/residential-community.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,8 @@ + + + +buildings + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/restaurant.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/restaurant.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/restaurant.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/restaurant.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,12 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/roadblock.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/roadblock.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/roadblock.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/roadblock.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,7 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/rocket.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/rocket.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/rocket.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/rocket.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,13 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/school.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/school.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/school.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/school.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,7 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/scooter.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/scooter.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/scooter.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/scooter.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,4 @@ + + scooter-15 + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/shelter.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/shelter.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/shelter.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/shelter.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,7 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/shop.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/shop.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/shop.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/shop.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,12 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/skiing.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/skiing.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/skiing.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/skiing.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,11 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/slaughterhouse.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/slaughterhouse.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/slaughterhouse.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/slaughterhouse.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,4 @@ + + slaughterhouse-15-01 + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/snowmobile.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/snowmobile.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/snowmobile.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/snowmobile.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,4 @@ + + snowmobile-15 + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/soccer.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/soccer.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/soccer.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/soccer.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,12 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/square-stroked.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/square-stroked.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/square-stroked.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/square-stroked.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,8 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/square.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/square.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/square.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/square.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,7 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/stadium.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/stadium.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/stadium.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/stadium.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,13 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/star-stroked.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/star-stroked.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/star-stroked.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/star-stroked.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,9 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/star.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/star.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/star.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/star.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,10 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/suitcase.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/suitcase.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/suitcase.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/suitcase.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,10 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/sushi.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/sushi.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/sushi.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/sushi.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,19 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/swimming.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/swimming.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/swimming.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/swimming.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,13 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/teahouse.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/teahouse.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/teahouse.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/teahouse.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,8 @@ + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/telephone.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/telephone.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/telephone.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/telephone.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,4 @@ + + telephone-15 + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/tennis.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/tennis.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/tennis.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/tennis.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,16 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/theatre.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/theatre.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/theatre.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/theatre.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,13 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/toilet.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/toilet.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/toilet.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/toilet.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,16 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/town-hall.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/town-hall.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/town-hall.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/town-hall.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,10 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/town.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/town.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/town.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/town.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,4 @@ + + town-15 + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/triangle-stroked.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/triangle-stroked.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/triangle-stroked.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/triangle-stroked.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,12 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/triangle.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/triangle.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/triangle.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/triangle.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,11 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/veterinary.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/veterinary.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/veterinary.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/veterinary.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,18 @@ + + + + + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/village.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/village.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/village.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/village.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,4 @@ + + village-15 + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/volcano.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/volcano.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/volcano.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/volcano.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,16 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/warehouse.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/warehouse.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/warehouse.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/warehouse.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,9 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/waste-basket.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/waste-basket.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/waste-basket.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/waste-basket.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,10 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/water.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/water.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/water.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/water.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,7 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/wetland.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/wetland.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/wetland.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/wetland.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,21 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/wheelchair.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/wheelchair.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/wheelchair.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/wheelchair.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,17 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/zoo.svg qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/zoo.svg --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/zoo.svg 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/maki-4.0.0/zoo.svg 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,15 @@ + + + + + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/mapbox_plugin.json qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/mapbox_plugin.json --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/mapbox_plugin.json 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/mapbox_plugin.json 2018-06-12 18:44:12.000000000 +0000 @@ -5,6 +5,13 @@ "Experimental": false, "Features": [ "OnlineMappingFeature", - "OnlineRoutingFeature" + "OnlineRoutingFeature", + "OnlinePlacesFeature", + "PlaceRecommendationsFeature", + "SearchSuggestionsFeature", + "LocalizedPlacesFeature", + "OnlineGeocodingFeature", + "ReverseGeocodingFeature", + "LocalizedGeocodingFeature" ] } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/mapbox.pro qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/mapbox.pro --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/mapbox.pro 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/mapbox.pro 2018-06-12 18:44:12.000000000 +0000 @@ -2,6 +2,9 @@ QT += location-private positioning-private network +QT_FOR_CONFIG += location-private +qtConfig(location-labs-plugin): DEFINES += LOCATIONLABS + HEADERS += \ qgeoserviceproviderpluginmapbox.h \ qgeotiledmappingmanagerenginemapbox.h \ @@ -9,7 +12,14 @@ qgeomapreplymapbox.h \ qgeofiletilecachemapbox.h \ qgeoroutingmanagerenginemapbox.h \ - qgeoroutereplymapbox.h + qgeoroutereplymapbox.h \ + qplacecategoriesreplymapbox.h \ + qplacemanagerenginemapbox.h \ + qplacesearchsuggestionreplymapbox.h \ + qplacesearchreplymapbox.h \ + qgeocodingmanagerenginemapbox.h \ + qgeocodereplymapbox.h \ + qmapboxcommon.h SOURCES += \ qgeoserviceproviderpluginmapbox.cpp \ @@ -18,7 +28,16 @@ qgeomapreplymapbox.cpp \ qgeofiletilecachemapbox.cpp \ qgeoroutingmanagerenginemapbox.cpp \ - qgeoroutereplymapbox.cpp + qgeoroutereplymapbox.cpp \ + qplacecategoriesreplymapbox.cpp \ + qplacemanagerenginemapbox.cpp \ + qplacesearchsuggestionreplymapbox.cpp \ + qplacesearchreplymapbox.cpp \ + qgeocodingmanagerenginemapbox.cpp \ + qgeocodereplymapbox.cpp \ + qmapboxcommon.cpp + +RESOURCES += mapbox.qrc OTHER_FILES += \ mapbox_plugin.json diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/mapbox.qrc qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/mapbox.qrc --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/mapbox.qrc 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/mapbox.qrc 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,150 @@ + + + maki-4.0.0/aerialway.svg + maki-4.0.0/airfield.svg + maki-4.0.0/airport.svg + maki-4.0.0/alcohol-shop.svg + maki-4.0.0/america-football.svg + maki-4.0.0/amusement-park.svg + maki-4.0.0/aquarium.svg + maki-4.0.0/art-gallery.svg + maki-4.0.0/attraction.svg + maki-4.0.0/bakery.svg + maki-4.0.0/bank.svg + maki-4.0.0/barrier.svg + maki-4.0.0/bar.svg + maki-4.0.0/baseball.svg + maki-4.0.0/basketball.svg + maki-4.0.0/bbq.svg + maki-4.0.0/beer.svg + maki-4.0.0/bicycle-share.svg + maki-4.0.0/bicycle.svg + maki-4.0.0/blood-bank.svg + maki-4.0.0/buddhism.svg + maki-4.0.0/building-alt1.svg + maki-4.0.0/building.svg + maki-4.0.0/bus.svg + maki-4.0.0/cafe.svg + maki-4.0.0/campsite.svg + maki-4.0.0/car.svg + maki-4.0.0/castle.svg + maki-4.0.0/cemetery.svg + maki-4.0.0/cinema.svg + maki-4.0.0/circle-stroked.svg + maki-4.0.0/circle.svg + maki-4.0.0/city.svg + maki-4.0.0/clothing-store.svg + maki-4.0.0/college.svg + maki-4.0.0/commercial.svg + maki-4.0.0/cricket.svg + maki-4.0.0/cross.svg + maki-4.0.0/dam.svg + maki-4.0.0/danger.svg + maki-4.0.0/defibrillator.svg + maki-4.0.0/dentist.svg + maki-4.0.0/doctor.svg + maki-4.0.0/dog-park.svg + maki-4.0.0/drinking-water.svg + maki-4.0.0/embassy.svg + maki-4.0.0/emergency-phone.svg + maki-4.0.0/entrance-alt1.svg + maki-4.0.0/entrance.svg + maki-4.0.0/farm.svg + maki-4.0.0/fast-food.svg + maki-4.0.0/fence.svg + maki-4.0.0/ferry.svg + maki-4.0.0/fire-station.svg + maki-4.0.0/florist.svg + maki-4.0.0/fuel.svg + maki-4.0.0/gaming.svg + maki-4.0.0/garden-center.svg + maki-4.0.0/garden.svg + maki-4.0.0/gift.svg + maki-4.0.0/golf.svg + maki-4.0.0/grocery.svg + maki-4.0.0/hairdresser.svg + maki-4.0.0/harbor.svg + maki-4.0.0/heart.svg + maki-4.0.0/heliport.svg + maki-4.0.0/home.svg + maki-4.0.0/horse-riding.svg + maki-4.0.0/hospital.svg + maki-4.0.0/ice-cream.svg + maki-4.0.0/industry.svg + maki-4.0.0/information.svg + maki-4.0.0/karaoke.svg + maki-4.0.0/landmark.svg + maki-4.0.0/landuse.svg + maki-4.0.0/laundry.svg + maki-4.0.0/library.svg + maki-4.0.0/lighthouse.svg + maki-4.0.0/lodging.svg + maki-4.0.0/logging.svg + maki-4.0.0/marker-stroked.svg + maki-4.0.0/marker.svg + maki-4.0.0/mobile-phone.svg + maki-4.0.0/monument.svg + maki-4.0.0/mountain.svg + maki-4.0.0/museum.svg + maki-4.0.0/music.svg + maki-4.0.0/natural.svg + maki-4.0.0/park-alt1.svg + maki-4.0.0/parking-garage.svg + maki-4.0.0/parking.svg + maki-4.0.0/park.svg + maki-4.0.0/pharmacy.svg + maki-4.0.0/picnic-site.svg + maki-4.0.0/pitch.svg + maki-4.0.0/place-of-worship.svg + maki-4.0.0/playground.svg + maki-4.0.0/police.svg + maki-4.0.0/post.svg + maki-4.0.0/prison.svg + maki-4.0.0/rail-light.svg + maki-4.0.0/rail-metro.svg + maki-4.0.0/rail.svg + maki-4.0.0/ranger-station.svg + maki-4.0.0/recycling.svg + maki-4.0.0/religious-christian.svg + maki-4.0.0/religious-jewish.svg + maki-4.0.0/religious-muslim.svg + maki-4.0.0/residential-community.svg + maki-4.0.0/restaurant.svg + maki-4.0.0/roadblock.svg + maki-4.0.0/rocket.svg + maki-4.0.0/school.svg + maki-4.0.0/scooter.svg + maki-4.0.0/shelter.svg + maki-4.0.0/shop.svg + maki-4.0.0/skiing.svg + maki-4.0.0/slaughterhouse.svg + maki-4.0.0/snowmobile.svg + maki-4.0.0/soccer.svg + maki-4.0.0/square-stroked.svg + maki-4.0.0/square.svg + maki-4.0.0/stadium.svg + maki-4.0.0/star-stroked.svg + maki-4.0.0/star.svg + maki-4.0.0/suitcase.svg + maki-4.0.0/sushi.svg + maki-4.0.0/swimming.svg + maki-4.0.0/teahouse.svg + maki-4.0.0/telephone.svg + maki-4.0.0/tennis.svg + maki-4.0.0/theatre.svg + maki-4.0.0/toilet.svg + maki-4.0.0/town-hall.svg + maki-4.0.0/town.svg + maki-4.0.0/triangle-stroked.svg + maki-4.0.0/triangle.svg + maki-4.0.0/veterinary.svg + maki-4.0.0/village.svg + maki-4.0.0/volcano.svg + maki-4.0.0/warehouse.svg + maki-4.0.0/waste-basket.svg + maki-4.0.0/water.svg + maki-4.0.0/wetland.svg + maki-4.0.0/wheelchair.svg + maki-4.0.0/zoo.svg + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qgeocodereplymapbox.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qgeocodereplymapbox.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qgeocodereplymapbox.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qgeocodereplymapbox.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,106 @@ +/**************************************************************************** +** +** Copyright (C) 2017 Mapbox, Inc. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qgeocodereplymapbox.h" +#include "qmapboxcommon.h" + +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +QGeoCodeReplyMapbox::QGeoCodeReplyMapbox(QNetworkReply *reply, QObject *parent) +: QGeoCodeReply(parent) +{ + Q_ASSERT(parent); + if (!reply) { + setError(UnknownError, QStringLiteral("Null reply")); + return; + } + + connect(reply, &QNetworkReply::finished, this, &QGeoCodeReplyMapbox::onNetworkReplyFinished); + connect(reply, QOverload::of(&QNetworkReply::error), + this, &QGeoCodeReplyMapbox::onNetworkReplyError); + + connect(this, &QGeoCodeReply::aborted, reply, &QNetworkReply::abort); + connect(this, &QObject::destroyed, reply, &QObject::deleteLater); +} + +QGeoCodeReplyMapbox::~QGeoCodeReplyMapbox() +{ +} + +void QGeoCodeReplyMapbox::onNetworkReplyFinished() +{ + QNetworkReply *reply = static_cast(sender()); + reply->deleteLater(); + + if (reply->error() != QNetworkReply::NoError) + return; + + QList locations; + QJsonDocument document = QJsonDocument::fromJson(reply->readAll()); + if (!document.isObject()) { + setError(ParseError, tr("Response parse error")); + return; + } + + const QJsonArray features = document.object().value(QStringLiteral("features")).toArray(); + for (const QJsonValue &value : features) + locations.append(QMapboxCommon::parseGeoLocation(value.toObject())); + + setLocations(locations); + + setFinished(true); +} + +void QGeoCodeReplyMapbox::onNetworkReplyError(QNetworkReply::NetworkError error) +{ + Q_UNUSED(error) + QNetworkReply *reply = static_cast(sender()); + reply->deleteLater(); + setError(QGeoCodeReply::CommunicationError, reply->errorString()); +} + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qgeocodereplymapbox.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qgeocodereplymapbox.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qgeocodereplymapbox.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qgeocodereplymapbox.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,63 @@ +/**************************************************************************** +** +** Copyright (C) 2017 Mapbox, Inc. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QGEOCODEREPLYMAPBOX_H +#define QGEOCODEREPLYMAPBOX_H + +#include +#include + +QT_BEGIN_NAMESPACE + +class QGeoCodeReplyMapbox : public QGeoCodeReply +{ + Q_OBJECT + +public: + explicit QGeoCodeReplyMapbox(QNetworkReply *reply, QObject *parent = 0); + ~QGeoCodeReplyMapbox(); + +private Q_SLOTS: + void onNetworkReplyFinished(); + void onNetworkReplyError(QNetworkReply::NetworkError error); +}; + +QT_END_NAMESPACE + +#endif // QGEOCODEREPLYMAPBOX_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qgeocodingmanagerenginemapbox.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qgeocodingmanagerenginemapbox.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qgeocodingmanagerenginemapbox.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qgeocodingmanagerenginemapbox.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,205 @@ +/**************************************************************************** +** +** Copyright (C) 2017 Mapbox, Inc. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qgeocodingmanagerenginemapbox.h" +#include "qgeocodereplymapbox.h" +#include "qmapboxcommon.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +namespace { + static const QString allAddressTypes = QStringLiteral("address,district,locality,neighborhood,place,postcode,region,country"); +} + +QGeoCodingManagerEngineMapbox::QGeoCodingManagerEngineMapbox(const QVariantMap ¶meters, + QGeoServiceProvider::Error *error, + QString *errorString) +: QGeoCodingManagerEngine(parameters), m_networkManager(new QNetworkAccessManager(this)) +{ + if (parameters.contains(QStringLiteral("mapbox.useragent"))) + m_userAgent = parameters.value(QStringLiteral("mapbox.useragent")).toString().toLatin1(); + else + m_userAgent = QByteArrayLiteral("Qt Location based application"); + + m_accessToken = parameters.value(QStringLiteral("mapbox.access_token")).toString(); + + m_isEnterprise = parameters.value(QStringLiteral("mapbox.enterprise")).toBool(); + m_urlPrefix = m_isEnterprise ? mapboxGeocodingEnterpriseApiPath : mapboxGeocodingApiPath; + + *error = QGeoServiceProvider::NoError; + errorString->clear(); +} + +QGeoCodingManagerEngineMapbox::~QGeoCodingManagerEngineMapbox() +{ +} + +QGeoCodeReply *QGeoCodingManagerEngineMapbox::geocode(const QGeoAddress &address, const QGeoShape &bounds) +{ + QUrlQuery queryItems; + + // If address text() is not generated: a manual setText() has been made. + if (!address.isTextGenerated()) { + queryItems.addQueryItem(QStringLiteral("type"), allAddressTypes); + return doSearch(address.text().simplified(), queryItems, bounds); + } + + QStringList addressString; + QStringList typeString; + + if (!address.street().isEmpty()) { + addressString.append(address.street()); + typeString.append(QStringLiteral("address")); + } + + if (!address.district().isEmpty()) { + addressString.append(address.district()); + typeString.append(QStringLiteral("district")); + typeString.append(QStringLiteral("locality")); + typeString.append(QStringLiteral("neighborhood")); + } + + if (!address.city().isEmpty()) { + addressString.append(address.city()); + typeString.append(QStringLiteral("place")); + } + + if (!address.postalCode().isEmpty()) { + addressString.append(address.postalCode()); + typeString.append(QStringLiteral("postcode")); + } + + if (!address.state().isEmpty()) { + addressString.append(address.state()); + typeString.append(QStringLiteral("region")); + } + + if (!address.country().isEmpty()) { + addressString.append(address.country()); + typeString.append(QStringLiteral("country")); + } + + queryItems.addQueryItem(QStringLiteral("type"), typeString.join(QLatin1Char(','))); + queryItems.addQueryItem(QStringLiteral("limit"), QString::number(1)); + + return doSearch(addressString.join(QStringLiteral(", ")), queryItems, bounds); +} + +QGeoCodeReply *QGeoCodingManagerEngineMapbox::geocode(const QString &address, int limit, int offset, const QGeoShape &bounds) +{ + Q_UNUSED(offset) + + QUrlQuery queryItems; + queryItems.addQueryItem(QStringLiteral("type"), allAddressTypes); + queryItems.addQueryItem(QStringLiteral("limit"), QString::number(limit)); + + return doSearch(address, queryItems, bounds); +} + +QGeoCodeReply *QGeoCodingManagerEngineMapbox::reverseGeocode(const QGeoCoordinate &coordinate, const QGeoShape &bounds) +{ + const QString coordinateString = QString::number(coordinate.longitude()) + QLatin1Char(',') + QString::number(coordinate.latitude()); + + QUrlQuery queryItems; + queryItems.addQueryItem(QStringLiteral("limit"), QString::number(1)); + + return doSearch(coordinateString, queryItems, bounds); +} + +QGeoCodeReply *QGeoCodingManagerEngineMapbox::doSearch(const QString &request, QUrlQuery &queryItems, const QGeoShape &bounds) +{ + queryItems.addQueryItem(QStringLiteral("access_token"), m_accessToken); + + const QString &languageCode = QLocale::system().name().section(QLatin1Char('_'), 0, 0); + queryItems.addQueryItem(QStringLiteral("language"), languageCode); + + QGeoRectangle boundingBox = bounds.boundingGeoRectangle(); + if (!boundingBox.isEmpty()) { + queryItems.addQueryItem(QStringLiteral("bbox"), + QString::number(boundingBox.topLeft().longitude()) + QLatin1Char(',') + + QString::number(boundingBox.bottomRight().latitude()) + QLatin1Char(',') + + QString::number(boundingBox.bottomRight().longitude()) + QLatin1Char(',') + + QString::number(boundingBox.topLeft().latitude())); + } + + QUrl requestUrl(m_urlPrefix + request + QStringLiteral(".json")); + requestUrl.setQuery(queryItems); + + QNetworkRequest networkRequest(requestUrl); + networkRequest.setHeader(QNetworkRequest::UserAgentHeader, m_userAgent); + + QNetworkReply *networkReply = m_networkManager->get(networkRequest); + QGeoCodeReplyMapbox *reply = new QGeoCodeReplyMapbox(networkReply, this); + + connect(reply, &QGeoCodeReplyMapbox::finished, this, &QGeoCodingManagerEngineMapbox::onReplyFinished); + connect(reply, QOverload::of(&QGeoCodeReply::error), + this, &QGeoCodingManagerEngineMapbox::onReplyError); + + return reply; +} + +void QGeoCodingManagerEngineMapbox::onReplyFinished() +{ + QGeoCodeReply *reply = qobject_cast(sender()); + if (reply) + emit finished(reply); +} + +void QGeoCodingManagerEngineMapbox::onReplyError(QGeoCodeReply::Error errorCode, const QString &errorString) +{ + QGeoCodeReply *reply = qobject_cast(sender()); + if (reply) + emit error(reply, errorCode, errorString); +} + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qgeocodingmanagerenginemapbox.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qgeocodingmanagerenginemapbox.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qgeocodingmanagerenginemapbox.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qgeocodingmanagerenginemapbox.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,83 @@ +/**************************************************************************** +** +** Copyright (C) 2017 Mapbox, Inc. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QGEOCODINGMANAGERENGINEMAPBOX_H +#define QGEOCODINGMANAGERENGINEMAPBOX_H + +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QNetworkAccessManager; + +class QGeoCodingManagerEngineMapbox : public QGeoCodingManagerEngine +{ + Q_OBJECT + +public: + QGeoCodingManagerEngineMapbox(const QVariantMap ¶meters, QGeoServiceProvider::Error *error, + QString *errorString); + ~QGeoCodingManagerEngineMapbox(); + + QGeoCodeReply *geocode(const QGeoAddress &address, const QGeoShape &bounds) override; + QGeoCodeReply *geocode(const QString &address, int limit, int offset, + const QGeoShape &bounds) override; + QGeoCodeReply *reverseGeocode(const QGeoCoordinate &coordinate, + const QGeoShape &bounds) override; + +private slots: + void onReplyFinished(); + void onReplyError(QGeoCodeReply::Error errorCode, const QString &errorString); + +private: + QGeoCodeReply *doSearch(const QString &, QUrlQuery &, const QGeoShape &bounds); + + QNetworkAccessManager *m_networkManager; + QByteArray m_userAgent; + QString m_accessToken; + QString m_urlPrefix; + bool m_isEnterprise; +}; + +QT_END_NAMESPACE + +#endif // QGEOCODINGMANAGERENGINEMAPBOX_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qgeofiletilecachemapbox.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qgeofiletilecachemapbox.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qgeofiletilecachemapbox.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qgeofiletilecachemapbox.h 2018-06-12 18:44:12.000000000 +0000 @@ -50,8 +50,8 @@ ~QGeoFileTileCacheMapbox(); protected: - QString tileSpecToFilename(const QGeoTileSpec &spec, const QString &format, const QString &directory) const Q_DECL_OVERRIDE; - QGeoTileSpec filenameToTileSpec(const QString &filename) const Q_DECL_OVERRIDE; + QString tileSpecToFilename(const QGeoTileSpec &spec, const QString &format, const QString &directory) const override; + QGeoTileSpec filenameToTileSpec(const QString &filename) const override; QList m_mapTypes; QMap m_mapNameToId; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qgeoroutereplymapbox.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qgeoroutereplymapbox.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qgeoroutereplymapbox.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qgeoroutereplymapbox.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -39,49 +39,59 @@ ****************************************************************************/ #include "qgeoroutereplymapbox.h" - +#include "qgeoroutingmanagerenginemapbox.h" +#include +#include #include #include #include #include #include -QT_BEGIN_NAMESPACE +namespace { -static QList parsePolyline(const QString &line) +class QGeoRouteMapbox : public QGeoRoute { - QList path; - QByteArray data(line.toLocal8Bit()); +public: + QGeoRouteMapbox(const QGeoRoute &other, const QVariantMap &metadata); +}; - int mode = 0, shift = 0, value = 0, coord[2] = {0, 0}; - for (int i = 0; i < data.length(); ++i) { - int c = data.at(i) - 63; - value |= (c & 0x1f) << shift; - shift += 5; - if (c & 0x20) continue; - coord[mode] += (value & 1) ? ~(value >> 1) : (value >> 1); - if (mode) path.append(QGeoCoordinate((double)coord[0]/1e5, (double)coord[1]/1e5)); - mode = 1 - mode; - value = shift = 0; - } - return path; +class QGeoRoutePrivateMapbox : public QGeoRoutePrivateDefault +{ +public: + QGeoRoutePrivateMapbox(const QGeoRoutePrivateDefault &other, const QVariantMap &metadata); + + virtual QString engineName() const override; + virtual QVariantMap metadata() const override; + + QVariantMap m_metadata; +}; + +QGeoRouteMapbox::QGeoRouteMapbox(const QGeoRoute &other, const QVariantMap &metadata) + : QGeoRoute(QExplicitlySharedDataPointer(new QGeoRoutePrivateMapbox(*static_cast(QGeoRoutePrivate::routePrivateData(other)), metadata))) +{ } -static QList parseGeometry(const QJsonValue &geometry) +QGeoRoutePrivateMapbox::QGeoRoutePrivateMapbox(const QGeoRoutePrivateDefault &other, const QVariantMap &metadata) + : QGeoRoutePrivateDefault(other) + , m_metadata(metadata) { - QList path; - if (geometry.isString()) path = parsePolyline(geometry.toString()); - if (geometry.isObject()) { - QJsonArray coords = geometry.toObject().value(QStringLiteral("coordinates")).toArray(); - for (int i = 0; i < coords.count(); i++) { - QJsonArray coord = coords.at(i).toArray(); - if (coord.count() != 2) continue; - path.append(QGeoCoordinate(coord.at(1).toDouble(), coord.at(0).toDouble())); - } - } - return path; } +QString QGeoRoutePrivateMapbox::engineName() const +{ + return QStringLiteral("mapbox"); +} + +QVariantMap QGeoRoutePrivateMapbox::metadata() const +{ + return m_metadata; +} + +} // namespace + +QT_BEGIN_NAMESPACE + QGeoRouteReplyMapbox::QGeoRouteReplyMapbox(QNetworkReply *reply, const QGeoRouteRequest &request, QObject *parent) : QGeoRouteReply(request, parent) @@ -101,73 +111,6 @@ { } -static QGeoRoute constructRoute(const QJsonObject &obj) -{ - QGeoRoute route; - route.setDistance(obj.value(QStringLiteral("distance")).toDouble()); - route.setTravelTime(obj.value(QStringLiteral("duration")).toDouble()); - - QList path = parseGeometry(obj.value(QStringLiteral("geometry"))); - route.setPath(path); - - QGeoRouteSegment firstSegment, lastSegment; - QJsonArray legs = obj.value(QStringLiteral("legs")).toArray(); - - for (int i = 0; i < legs.count(); i++) { - QJsonObject leg = legs.at(i).toObject(); - QJsonArray steps = leg.value("steps").toArray(); - - for (int j = 0; j < steps.count(); j++) { - QJsonObject step = steps.at(j).toObject(); - QJsonObject stepManeuver = step.value("maneuver").toObject(); - - QGeoRouteSegment segment; - segment.setDistance(step.value("distance").toDouble()); - segment.setTravelTime(step.value(QStringLiteral("duration")).toDouble()); - - QGeoManeuver maneuver; - maneuver.setDistanceToNextInstruction(step.value("distance").toDouble()); - maneuver.setInstructionText(stepManeuver.value("instruction").toString()); - maneuver.setTimeToNextInstruction(step.value(QStringLiteral("duration")).toDouble()); - QJsonArray location = stepManeuver.value(QStringLiteral("location")).toArray(); - if (location.count() > 1) - maneuver.setPosition(QGeoCoordinate(location.at(0).toDouble(), location.at(1).toDouble())); - - QString modifier = stepManeuver.value("modifier").toString(); - int bearing1 = stepManeuver.value("bearing_before").toInt(); - int bearing2 = stepManeuver.value("bearing_after").toInt(); - - if (modifier == "straight") - maneuver.setDirection(QGeoManeuver::DirectionForward); - else if (modifier == "slight right") - maneuver.setDirection(QGeoManeuver::DirectionLightRight); - else if (modifier == "right") - maneuver.setDirection(QGeoManeuver::DirectionRight); - else if (modifier == "sharp right") - maneuver.setDirection(QGeoManeuver::DirectionHardRight); - else if (modifier == "uturn") - maneuver.setDirection(bearing2 - bearing1 > 180 ? QGeoManeuver::DirectionUTurnLeft : QGeoManeuver::DirectionUTurnRight); - else if (modifier == "sharp left") - maneuver.setDirection(QGeoManeuver::DirectionHardLeft); - else if (modifier == "left") - maneuver.setDirection(QGeoManeuver::DirectionLeft); - else if (modifier == "slight left") - maneuver.setDirection(QGeoManeuver::DirectionLightLeft); - else - maneuver.setDirection(QGeoManeuver::NoDirection); - - segment.setManeuver(maneuver); - segment.setPath(parseGeometry(step.value(QStringLiteral("geometry")))); - - if (!firstSegment.isValid()) firstSegment = segment; - if (lastSegment.isValid()) lastSegment.setNextRouteSegment(segment); - lastSegment = segment; - } - } - route.setFirstRouteSegment(firstSegment); - return route; -} - void QGeoRouteReplyMapbox::networkReplyFinished() { QNetworkReply *reply = static_cast(sender()); @@ -176,26 +119,30 @@ if (reply->error() != QNetworkReply::NoError) return; - QJsonDocument document = QJsonDocument::fromJson(reply->readAll()); - if (document.isObject()) { - QJsonObject object = document.object(); - - QString status = object.value(QStringLiteral("code")).toString(); - if (status != QStringLiteral("Ok")) { - setError(QGeoRouteReply::UnknownError, object.value(QStringLiteral("message")).toString()); - return; - } - - QList list; - QJsonArray routes = object.value(QStringLiteral("routes")).toArray(); - for (int i = 0; i < qMin(routes.count(), request().numberAlternativeRoutes() + 1); i++) { - QGeoRoute route = constructRoute(routes.at(i).toObject()); - list.append(route); - } - setRoutes(list); + QGeoRoutingManagerEngineMapbox *engine = qobject_cast(parent()); + const QGeoRouteParser *parser = engine->routeParser(); + + QList routes; + QString errorString; + + QByteArray routeReply = reply->readAll(); + QGeoRouteReply::Error error = parser->parseReply(routes, errorString, routeReply); + + QVariantMap metadata; + metadata["osrm.reply-json"] = routeReply; + + QList mapboxRoutes; + for (const QGeoRoute &route : routes.mid(0, request().numberAlternativeRoutes() + 1)) { + QGeoRouteMapbox mapboxRoute(route, metadata); + mapboxRoutes.append(mapboxRoute); + } + + if (error == QGeoRouteReply::NoError) { + setRoutes(mapboxRoutes); + // setError(QGeoRouteReply::NoError, status); // can't do this, or NoError is emitted and does damages setFinished(true); } else { - setError(QGeoRouteReply::ParseError, QStringLiteral("Couldn't parse json.")); + setError(error, errorString); } } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qgeoroutingmanagerenginemapbox.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qgeoroutingmanagerenginemapbox.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qgeoroutingmanagerenginemapbox.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qgeoroutingmanagerenginemapbox.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -40,18 +40,188 @@ #include "qgeoroutingmanagerenginemapbox.h" #include "qgeoroutereplymapbox.h" - +#include "qmapboxcommon.h" +#include +#include +#include + +#include +#include +#include #include #include QT_BEGIN_NAMESPACE +class QGeoRouteParserOsrmV5ExtensionMapbox: public QGeoRouteParserOsrmV5Extension +{ +public: + QGeoRouteParserOsrmV5ExtensionMapbox(const QString &accessToken, bool useMapboxTextInstructions); + void updateQuery(QUrlQuery &query) const override; + void updateSegment(QGeoRouteSegment &segment, const QJsonObject &step, const QJsonObject &maneuver) const override; + + QString m_accessToken; + bool m_useMapboxTextInstructions = false; +}; + +QGeoRouteParserOsrmV5ExtensionMapbox::QGeoRouteParserOsrmV5ExtensionMapbox(const QString &accessToken, bool useMapboxTextInstructions) + : QGeoRouteParserOsrmV5Extension(), m_accessToken(accessToken), m_useMapboxTextInstructions(useMapboxTextInstructions) +{ + +} + +void QGeoRouteParserOsrmV5ExtensionMapbox::updateQuery(QUrlQuery &query) const +{ + if (!m_accessToken.isEmpty()) + query.addQueryItem(QLatin1String("access_token"), m_accessToken); + + query.addQueryItem(QLatin1String("annotations"), QLatin1String("duration,distance,speed,congestion")); + + query.addQueryItem(QLatin1String("voice_instructions"), QLatin1String("true")); + query.addQueryItem(QLatin1String("banner_instructions"), QLatin1String("true")); + query.addQueryItem(QLatin1String("roundabout_exits"), QLatin1String("true")); + + QLocale::MeasurementSystem unit = QLocale::system().measurementSystem(); + query.addQueryItem(QLatin1String("voice_units"), unit == QLocale::MetricSystem ? QLatin1String("metric") : QLatin1String("imperial")); +} + +static QVariantMap parseMapboxVoiceInstruction(const QJsonObject &voiceInstruction) +{ + QVariantMap map; + + if (voiceInstruction.value(QLatin1String("distanceAlongGeometry")).isDouble()) + map.insert(QLatin1String("distance_along_geometry"), voiceInstruction.value(QLatin1String("distanceAlongGeometry")).toDouble()); + + if (voiceInstruction.value(QLatin1String("announcement")).isString()) + map.insert(QLatin1String("announcement"), voiceInstruction.value(QLatin1String("announcement")).toString()); + + if (voiceInstruction.value(QLatin1String("ssmlAnnouncement")).isString()) + map.insert(QLatin1String("ssml_announcement"), voiceInstruction.value(QLatin1String("ssmlAnnouncement")).toString()); + + return map; +} + +static QVariantList parseMapboxVoiceInstructions(const QJsonArray &voiceInstructions) +{ + QVariantList list; + for (const QJsonValue &voiceInstructionValue : voiceInstructions) { + if (voiceInstructionValue.isObject()) + list << parseMapboxVoiceInstruction(voiceInstructionValue.toObject()); + } + return list; +} + +static QVariantMap parseMapboxBannerComponent(const QJsonObject &bannerComponent) +{ + QVariantMap map; + + if (bannerComponent.value(QLatin1String("type")).isString()) + map.insert(QLatin1String("type"), bannerComponent.value(QLatin1String("type")).toString()); + + if (bannerComponent.value(QLatin1String("text")).isString()) + map.insert(QLatin1String("text"), bannerComponent.value(QLatin1String("text")).toString()); + + if (bannerComponent.value(QLatin1String("abbr")).isString()) + map.insert(QLatin1String("abbr"), bannerComponent.value(QLatin1String("abbr")).toString()); + + if (bannerComponent.value(QLatin1String("abbr_priority")).isDouble()) + map.insert(QLatin1String("abbr_priority"), bannerComponent.value(QLatin1String("abbr_priority")).toInt()); + + return map; +} + +static QVariantList parseMapboxBannerComponents(const QJsonArray &bannerComponents) +{ + QVariantList list; + for (const QJsonValue &bannerComponentValue : bannerComponents) { + if (bannerComponentValue.isObject()) + list << parseMapboxBannerComponent(bannerComponentValue.toObject()); + } + return list; +} + +static QVariantMap parseMapboxBanner(const QJsonObject &banner) +{ + QVariantMap map; + + if (banner.value(QLatin1String("text")).isString()) + map.insert(QLatin1String("text"), banner.value(QLatin1String("text")).toString()); + + if (banner.value(QLatin1String("components")).isArray()) + map.insert(QLatin1String("components"), parseMapboxBannerComponents(banner.value(QLatin1String("components")).toArray())); + + if (banner.value(QLatin1String("type")).isString()) + map.insert(QLatin1String("type"), banner.value(QLatin1String("type")).toString()); + + if (banner.value(QLatin1String("modifier")).isString()) + map.insert(QLatin1String("modifier"), banner.value(QLatin1String("modifier")).toString()); + + if (banner.value(QLatin1String("degrees")).isDouble()) + map.insert(QLatin1String("degrees"), banner.value(QLatin1String("degrees")).toDouble()); + + if (banner.value(QLatin1String("driving_side")).isString()) + map.insert(QLatin1String("driving_side"), banner.value(QLatin1String("driving_side")).toString()); + + return map; +} + +static QVariantMap parseMapboxBannerInstruction(const QJsonObject &bannerInstruction) +{ + QVariantMap map; + + if (bannerInstruction.value(QLatin1String("distanceAlongGeometry")).isDouble()) + map.insert(QLatin1String("distance_along_geometry"), bannerInstruction.value(QLatin1String("distanceAlongGeometry")).toDouble()); + + if (bannerInstruction.value(QLatin1String("primary")).isObject()) + map.insert(QLatin1String("primary"), parseMapboxBanner(bannerInstruction.value(QLatin1String("primary")).toObject())); + + if (bannerInstruction.value(QLatin1String("secondary")).isObject()) + map.insert(QLatin1String("secondary"), parseMapboxBanner(bannerInstruction.value(QLatin1String("secondary")).toObject())); + + if (bannerInstruction.value(QLatin1String("then")).isObject()) + map.insert(QLatin1String("then"), parseMapboxBanner(bannerInstruction.value(QLatin1String("then")).toObject())); + + return map; +} + +static QVariantList parseMapboxBannerInstructions(const QJsonArray &bannerInstructions) +{ + QVariantList list; + for (const QJsonValue &bannerInstructionValue : bannerInstructions) { + if (bannerInstructionValue.isObject()) + list << parseMapboxBannerInstruction(bannerInstructionValue.toObject()); + } + return list; +} + +void QGeoRouteParserOsrmV5ExtensionMapbox::updateSegment(QGeoRouteSegment &segment, const QJsonObject &step, const QJsonObject &maneuver) const +{ + QGeoManeuver m = segment.maneuver(); + QVariantMap extendedAttributes = m.extendedAttributes(); + if (m_useMapboxTextInstructions && maneuver.value(QLatin1String("instruction")).isString()) { + QString maneuverInstructionText = maneuver.value(QLatin1String("instruction")).toString(); + if (!maneuverInstructionText.isEmpty()) + m.setInstructionText(maneuverInstructionText); + } + + if (step.value(QLatin1String("voiceInstructions")).isArray()) + extendedAttributes.insert(QLatin1String("mapbox.voice_instructions"), + parseMapboxVoiceInstructions(step.value(QLatin1String("voiceInstructions")).toArray())); + if (step.value(QLatin1String("bannerInstructions")).isArray()) + extendedAttributes.insert(QLatin1String("mapbox.banner_instructions"), + parseMapboxBannerInstructions(step.value(QLatin1String("bannerInstructions")).toArray())); + + m.setExtendedAttributes(extendedAttributes); + segment.setManeuver(m); +} + + QGeoRoutingManagerEngineMapbox::QGeoRoutingManagerEngineMapbox(const QVariantMap ¶meters, QGeoServiceProvider::Error *error, QString *errorString) : QGeoRoutingManagerEngine(parameters), m_networkManager(new QNetworkAccessManager(this)), - m_userAgent("Qt Location based application") + m_userAgent(mapboxDefaultUserAgent) { if (parameters.contains(QStringLiteral("mapbox.useragent"))) { m_userAgent = parameters.value(QStringLiteral("mapbox.useragent")).toString().toLatin1(); @@ -61,6 +231,16 @@ m_accessToken = parameters.value(QStringLiteral("mapbox.access_token")).toString(); } + bool use_mapbox_text_instructions = true; + if (parameters.contains(QStringLiteral("mapbox.routing.use_mapbox_text_instructions"))) { + use_mapbox_text_instructions = parameters.value(QStringLiteral("mapbox.use_mapbox_text_instructions")).toBool(); + } + + QGeoRouteParserOsrmV5 *parser = new QGeoRouteParserOsrmV5(this); + parser->setExtension(new QGeoRouteParserOsrmV5ExtensionMapbox(m_accessToken, use_mapbox_text_instructions)); + + m_routeParser = parser; + *error = QGeoServiceProvider::NoError; errorString->clear(); } @@ -72,38 +252,31 @@ QGeoRouteReply* QGeoRoutingManagerEngineMapbox::calculateRoute(const QGeoRouteRequest &request) { QNetworkRequest networkRequest; - networkRequest.setRawHeader("User-Agent", m_userAgent); + networkRequest.setHeader(QNetworkRequest::UserAgentHeader, m_userAgent); - QString url("https://api.mapbox.com/directions/v5/mapbox/"); + QString url = mapboxDirectionsApiPath; QGeoRouteRequest::TravelModes travelModes = request.travelModes(); - if (travelModes.testFlag(QGeoRouteRequest::PedestrianTravel)) - url += "walking/"; - else - if (travelModes.testFlag(QGeoRouteRequest::BicycleTravel)) - url += "cycling/"; - else - if (travelModes.testFlag(QGeoRouteRequest::CarTravel)) - url += "driving/"; - - foreach (const QGeoCoordinate &c, request.waypoints()) { - url += QString("%1,%2;").arg(c.longitude()).arg(c.latitude()); - } - if (url.right(1) == ";") - url.chop(1); - - QUrlQuery query; - query.addQueryItem(QStringLiteral("steps"), QStringLiteral("true")); - query.addQueryItem(QStringLiteral("alternatives"), QStringLiteral("true")); - query.addQueryItem(QStringLiteral("overview"), QStringLiteral("full")); - query.addQueryItem(QStringLiteral("geometries"), QStringLiteral("geojson")); - query.addQueryItem(QStringLiteral("access_token"), m_accessToken); - - QUrl u(url); - u.setQuery(query); - networkRequest.setUrl(u); + if (travelModes.testFlag(QGeoRouteRequest::PedestrianTravel)) { + url += QStringLiteral("walking/"); + } else if (travelModes.testFlag(QGeoRouteRequest::BicycleTravel)) { + url += QStringLiteral("cycling/"); + } else if (travelModes.testFlag(QGeoRouteRequest::CarTravel)) { + const QList &featureTypes = request.featureTypes(); + int trafficFeatureIdx = featureTypes.indexOf(QGeoRouteRequest::TrafficFeature); + QGeoRouteRequest::FeatureWeight trafficWeight = request.featureWeight(QGeoRouteRequest::TrafficFeature); + if (trafficFeatureIdx >= 0 && + (trafficWeight == QGeoRouteRequest::AvoidFeatureWeight || trafficWeight == QGeoRouteRequest::DisallowFeatureWeight)) { + url += QStringLiteral("driving-traffic/"); + } else { + url += QStringLiteral("driving/"); + } + } + + networkRequest.setUrl(m_routeParser->requestUrl(request, url)); QNetworkReply *reply = m_networkManager->get(networkRequest); + QGeoRouteReplyMapbox *routeReply = new QGeoRouteReplyMapbox(reply, request, this); connect(routeReply, SIGNAL(finished()), this, SLOT(replyFinished())); @@ -113,6 +286,11 @@ return routeReply; } +const QGeoRouteParser *QGeoRoutingManagerEngineMapbox::routeParser() const +{ + return m_routeParser; +} + void QGeoRoutingManagerEngineMapbox::replyFinished() { QGeoRouteReply *reply = qobject_cast(sender()); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qgeoroutingmanagerenginemapbox.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qgeoroutingmanagerenginemapbox.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qgeoroutingmanagerenginemapbox.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qgeoroutingmanagerenginemapbox.h 2018-06-12 18:44:12.000000000 +0000 @@ -47,6 +47,7 @@ QT_BEGIN_NAMESPACE class QNetworkAccessManager; +class QGeoRouteParser; class QGeoRoutingManagerEngineMapbox : public QGeoRoutingManagerEngine { @@ -59,6 +60,7 @@ ~QGeoRoutingManagerEngineMapbox(); QGeoRouteReply *calculateRoute(const QGeoRouteRequest &request); + const QGeoRouteParser *routeParser() const; private Q_SLOTS: void replyFinished(); @@ -68,6 +70,8 @@ QNetworkAccessManager *m_networkManager; QByteArray m_userAgent; QString m_accessToken; + bool m_useMapboxText = false; + QGeoRouteParser *m_routeParser = nullptr; }; QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qgeoserviceproviderpluginmapbox.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qgeoserviceproviderpluginmapbox.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qgeoserviceproviderpluginmapbox.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qgeoserviceproviderpluginmapbox.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -35,29 +35,35 @@ ****************************************************************************/ #include "qgeoserviceproviderpluginmapbox.h" +#include "qgeocodingmanagerenginemapbox.h" #include "qgeotiledmappingmanagerenginemapbox.h" #include "qgeoroutingmanagerenginemapbox.h" +#include "qplacemanagerenginemapbox.h" #include QT_BEGIN_NAMESPACE -QGeoCodingManagerEngine *QGeoServiceProviderFactoryMapbox::createGeocodingManagerEngine( - const QVariantMap ¶meters, QGeoServiceProvider::Error *error, QString *errorString) const -{ - Q_UNUSED(parameters) - Q_UNUSED(error) - Q_UNUSED(errorString) - - return 0; -} - static inline QString msgAccessTokenParameter() { return QGeoServiceProviderFactoryMapbox::tr("Mapbox plugin requires a 'mapbox.access_token' parameter.\n" "Please visit https://www.mapbox.com"); } +QGeoCodingManagerEngine *QGeoServiceProviderFactoryMapbox::createGeocodingManagerEngine( + const QVariantMap ¶meters, QGeoServiceProvider::Error *error, QString *errorString) const +{ + const QString accessToken = parameters.value(QStringLiteral("mapbox.access_token")).toString(); + + if (!accessToken.isEmpty()) { + return new QGeoCodingManagerEngineMapbox(parameters, error, errorString); + } else { + *error = QGeoServiceProvider::MissingRequiredParameterError; + *errorString = msgAccessTokenParameter(); + return 0; + } +} + QGeoMappingManagerEngine *QGeoServiceProviderFactoryMapbox::createMappingManagerEngine( const QVariantMap ¶meters, QGeoServiceProvider::Error *error, QString *errorString) const { @@ -89,11 +95,15 @@ QPlaceManagerEngine *QGeoServiceProviderFactoryMapbox::createPlaceManagerEngine( const QVariantMap ¶meters, QGeoServiceProvider::Error *error, QString *errorString) const { - Q_UNUSED(parameters) - Q_UNUSED(error) - Q_UNUSED(errorString) + const QString accessToken = parameters.value(QStringLiteral("mapbox.access_token")).toString(); - return 0; + if (!accessToken.isEmpty()) { + return new QPlaceManagerEngineMapbox(parameters, error, errorString); + } else { + *error = QGeoServiceProvider::MissingRequiredParameterError; + *errorString = msgAccessTokenParameter(); + return 0; + } } QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qgeotiledmappingmanagerenginemapbox.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qgeotiledmappingmanagerenginemapbox.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qgeotiledmappingmanagerenginemapbox.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qgeotiledmappingmanagerenginemapbox.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -41,6 +41,12 @@ #include #include #include "qgeofiletilecachemapbox.h" +#ifdef LOCATIONLABS +#include +typedef QGeoTiledMapLabs Map; +#else +typedef QGeoTiledMap Map; +#endif QT_BEGIN_NAMESPACE @@ -66,41 +72,41 @@ // as index 0 to retain compatibility with the current API, that expects the passed map_id to be on by default. if (parameters.contains(QStringLiteral("mapbox.mapping.map_id"))) { const QString name = parameters.value(QStringLiteral("mapbox.mapping.map_id")).toString(); - mapTypes << QGeoMapType(QGeoMapType::CustomMap, name, name, false, false, mapTypes.size() + 1, pluginName); + mapTypes << QGeoMapType(QGeoMapType::CustomMap, name, name, false, false, mapTypes.size() + 1, pluginName, cameraCaps); } else if (parameters.contains(QStringLiteral("mapbox.map_id"))) { //deprecated const QString name = parameters.value(QStringLiteral("mapbox.map_id")).toString(); - mapTypes << QGeoMapType(QGeoMapType::CustomMap, name, name, false, false, mapTypes.size() + 1, pluginName); + mapTypes << QGeoMapType(QGeoMapType::CustomMap, name, name, false, false, mapTypes.size() + 1, pluginName, cameraCaps); } // As of 2016.06.15, valid mapbox map_ids are documented at https://www.mapbox.com/api-documentation/#maps //: Noun describing map type 'Street map' - mapTypes << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("mapbox.streets"), tr("Street"), false, false, mapTypes.size() + 1, pluginName); + mapTypes << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("mapbox.streets"), tr("Street"), false, false, mapTypes.size() + 1, pluginName, cameraCaps); //: Noun describing type of a map using light colors (weak contrast) - mapTypes << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("mapbox.light"), tr("Light"), false, false, mapTypes.size() + 1, pluginName); + mapTypes << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("mapbox.light"), tr("Light"), false, false, mapTypes.size() + 1, pluginName, cameraCaps); //: Noun describing type of a map using dark colors - mapTypes << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("mapbox.dark"), tr("Dark"), false, true, mapTypes.size() + 1, pluginName); + mapTypes << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("mapbox.dark"), tr("Dark"), false, true, mapTypes.size() + 1, pluginName, cameraCaps); //: Noun describing type of a map created by satellite - mapTypes << QGeoMapType(QGeoMapType::SatelliteMapDay, QStringLiteral("mapbox.satellite"), tr("Satellite"), false, false, mapTypes.size() + 1, pluginName); + mapTypes << QGeoMapType(QGeoMapType::SatelliteMapDay, QStringLiteral("mapbox.satellite"), tr("Satellite"), false, false, mapTypes.size() + 1, pluginName, cameraCaps); //: Noun describing type of a street map created by satellite - mapTypes << QGeoMapType(QGeoMapType::HybridMap, QStringLiteral("mapbox.streets-satellite"), tr("Streets Satellite"), false, false, mapTypes.size() + 1, pluginName); + mapTypes << QGeoMapType(QGeoMapType::HybridMap, QStringLiteral("mapbox.streets-satellite"), tr("Streets Satellite"), false, false, mapTypes.size() + 1, pluginName, cameraCaps); //: Noun describing type of a map using wheat paste colors - mapTypes << QGeoMapType(QGeoMapType::CustomMap, QStringLiteral("mapbox.wheatpaste"), tr("Wheatpaste"), false, false, mapTypes.size() + 1, pluginName); + mapTypes << QGeoMapType(QGeoMapType::CustomMap, QStringLiteral("mapbox.wheatpaste"), tr("Wheatpaste"), false, false, mapTypes.size() + 1, pluginName, cameraCaps); //: Noun describing type of a basic street map - mapTypes << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("mapbox.streets-basic"), tr("Streets Basic"), false, false, mapTypes.size() + 1, pluginName); + mapTypes << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("mapbox.streets-basic"), tr("Streets Basic"), false, false, mapTypes.size() + 1, pluginName, cameraCaps); //: Noun describing type of a map using cartoon-style fonts - mapTypes << QGeoMapType(QGeoMapType::CustomMap, QStringLiteral("mapbox.comic"), tr("Comic"), false, false, mapTypes.size() + 1, pluginName); + mapTypes << QGeoMapType(QGeoMapType::CustomMap, QStringLiteral("mapbox.comic"), tr("Comic"), false, false, mapTypes.size() + 1, pluginName, cameraCaps); //: Noun describing type of a map for outdoor activities - mapTypes << QGeoMapType(QGeoMapType::PedestrianMap, QStringLiteral("mapbox.outdoors"), tr("Outdoors"), false, false, mapTypes.size() + 1, pluginName); + mapTypes << QGeoMapType(QGeoMapType::PedestrianMap, QStringLiteral("mapbox.outdoors"), tr("Outdoors"), false, false, mapTypes.size() + 1, pluginName, cameraCaps); //: Noun describing type of a map for sports - mapTypes << QGeoMapType(QGeoMapType::CycleMap, QStringLiteral("mapbox.run-bike-hike"), tr("Run Bike Hike"), false, false, mapTypes.size() + 1, pluginName); + mapTypes << QGeoMapType(QGeoMapType::CycleMap, QStringLiteral("mapbox.run-bike-hike"), tr("Run Bike Hike"), false, false, mapTypes.size() + 1, pluginName, cameraCaps); //: Noun describing type of a map drawn by pencil - mapTypes << QGeoMapType(QGeoMapType::CustomMap, QStringLiteral("mapbox.pencil"), tr("Pencil"), false, false, mapTypes.size() + 1, pluginName); + mapTypes << QGeoMapType(QGeoMapType::CustomMap, QStringLiteral("mapbox.pencil"), tr("Pencil"), false, false, mapTypes.size() + 1, pluginName, cameraCaps); //: Noun describing type of a treasure map with pirate boat watermark - mapTypes << QGeoMapType(QGeoMapType::CustomMap, QStringLiteral("mapbox.pirates"), tr("Pirates"), false, false, mapTypes.size() + 1, pluginName); + mapTypes << QGeoMapType(QGeoMapType::CustomMap, QStringLiteral("mapbox.pirates"), tr("Pirates"), false, false, mapTypes.size() + 1, pluginName, cameraCaps); //: Noun describing type of a map using emerald colors - mapTypes << QGeoMapType(QGeoMapType::CustomMap, QStringLiteral("mapbox.emerald"), tr("Emerald"), false, false, mapTypes.size() + 1, pluginName); + mapTypes << QGeoMapType(QGeoMapType::CustomMap, QStringLiteral("mapbox.emerald"), tr("Emerald"), false, false, mapTypes.size() + 1, pluginName, cameraCaps); //: Noun describing type of a map with high contrast - mapTypes << QGeoMapType(QGeoMapType::CustomMap, QStringLiteral("mapbox.high-contrast"), tr("High Contrast"), false, false, mapTypes.size() + 1, pluginName); + mapTypes << QGeoMapType(QGeoMapType::CustomMap, QStringLiteral("mapbox.high-contrast"), tr("High Contrast"), false, false, mapTypes.size() + 1, pluginName, cameraCaps); // New way to specify multiple customized map_ids via additional_map_ids if (parameters.contains(QStringLiteral("mapbox.mapping.additional_map_ids"))) { @@ -109,7 +115,7 @@ for (const QString &name: idList) { if (!name.isEmpty()) - mapTypes << QGeoMapType(QGeoMapType::CustomMap, name, name, false, false, mapTypes.size() + 1, pluginName); + mapTypes << QGeoMapType(QGeoMapType::CustomMap, name, name, false, false, mapTypes.size() + 1, pluginName, cameraCaps); } } @@ -246,7 +252,7 @@ QGeoMap *QGeoTiledMappingManagerEngineMapbox::createMap() { - QGeoTiledMap *map = new QGeoTiledMap(this, 0); + QGeoTiledMap *map = new Map(this, 0); map->setPrefetchStyle(m_prefetchStyle); return map; } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qgeotilefetchermapbox.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qgeotilefetchermapbox.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qgeotilefetchermapbox.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qgeotilefetchermapbox.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -36,6 +36,7 @@ #include "qgeotilefetchermapbox.h" #include "qgeomapreplymapbox.h" +#include "qmapboxcommon.h" #include #include @@ -46,7 +47,7 @@ QGeoTileFetcherMapbox::QGeoTileFetcherMapbox(int scaleFactor, QGeoTiledMappingManagerEngine *parent) : QGeoTileFetcher(parent), m_networkManager(new QNetworkAccessManager(this)), - m_userAgent("Qt Location based application"), + m_userAgent(mapboxDefaultUserAgent), m_format("png"), m_replyFormat("png"), m_accessToken("") @@ -86,7 +87,7 @@ QNetworkRequest request; request.setRawHeader("User-Agent", m_userAgent); - request.setUrl(QUrl(QStringLiteral("http://api.tiles.mapbox.com/v4/") + + request.setUrl(QUrl(mapboxTilesApiPath + ((spec.mapId() >= m_mapIds.size()) ? QStringLiteral("mapbox.streets") : m_mapIds[spec.mapId() - 1]) + QLatin1Char('/') + QString::number(spec.zoom()) + QLatin1Char('/') + QString::number(spec.x()) + QLatin1Char('/') + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qmapboxcommon.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qmapboxcommon.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qmapboxcommon.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qmapboxcommon.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,140 @@ +/**************************************************************************** +** +** Copyright (C) 2017 Mapbox, Inc. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmapboxcommon.h" + +#include +#include +#include +#include + +QString QMapboxCommon::mapboxNameForCategory(const QString &category) +{ + if (category.isEmpty()) + return category; + + QString categoryName = category; + categoryName[0] = categoryName[0].toUpper(); + return categoryName; +} + +// https://www.mapbox.com/api-documentation/#response-object +QGeoLocation QMapboxCommon::parseGeoLocation(const QJsonObject &response) +{ + QGeoLocation location; + + QGeoAddress address; + + QString streetAddress = response.value(QStringLiteral("address")).toString(); + + // If place type is 'address', the street address is a combo of 'text' and + // 'address'. The former provides the street name, and the latter provides + // the street number in that case. + if (response.value(QStringLiteral("place_type")).isArray()) { + foreach (const QJsonValue &value, response.value(QStringLiteral("place_type")).toArray()) { + if (!value.isString()) + continue; + if (value.toString() == QStringLiteral("address")) { + streetAddress.prepend(response.value(QStringLiteral("text")).toString() + QLatin1Char(' ')); + break; + } + } + } + + if (response.value(QStringLiteral("properties")).isObject()) { + const QJsonObject properties = response.value(QStringLiteral("properties")).toObject(); + + // Prefer properties.address over address. + const QString addressString = properties.value(QStringLiteral("address")).toString(); + if (!addressString.isEmpty()) + streetAddress = addressString; + } + + address.setStreet(streetAddress); + + if (response.value(QStringLiteral("context")).isArray()) { + foreach (const QJsonValue &value, response.value(QStringLiteral("context")).toArray()) { + if (!value.isObject()) + continue; + + const QJsonObject object = value.toObject(); + const QString valueId = object.value(QStringLiteral("id")).toString(); + const QString valueText = object.value(QStringLiteral("text")).toString(); + + if (valueId.isEmpty() || valueText.isEmpty()) + continue; + + // XXX: locality, neighborhood, address, poi, poi.landmark + if (valueId.startsWith(QStringLiteral("country"))) { + address.setCountry(valueText); + const QString countryCode = object.value(QStringLiteral("short_code")).toString(); + if (!countryCode.isEmpty()) + address.setCountryCode(countryCode); + } else if (valueId.startsWith(QStringLiteral("region"))) { + address.setState(valueText); + } else if (valueId.startsWith(QStringLiteral("postcode"))) { + address.setPostalCode(valueText); + } else if (valueId.startsWith(QStringLiteral("district"))) { + address.setDistrict(valueText); + } else if (valueId.startsWith(QStringLiteral("place"))) { + address.setCity(valueText); + } + } + } else { + // Fallback to using information from place_name. + const QString placeName = response.value(QStringLiteral("place_name")).toString(); + + // Remove actual place name. + address.setText(placeName.mid(placeName.indexOf(QLatin1Char(',')) + 1)); + } + + location.setAddress(address); + + QJsonArray bbox = response.value(QStringLiteral("bbox")).toArray(); + double top = bbox.at(3).toDouble(); + double left = bbox.at(0).toDouble(); + double bottom = bbox.at(1).toDouble(); + double right = bbox.at(2).toDouble(); + location.setBoundingBox(QGeoRectangle(QGeoCoordinate(top, left), QGeoCoordinate(bottom, right))); + + QJsonArray center = response.value(QStringLiteral("center")).toArray(); + location.setCoordinate(QGeoCoordinate(center.at(1).toDouble(), center.at(0).toDouble())); + + return location; +} diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qmapboxcommon.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qmapboxcommon.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qmapboxcommon.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qmapboxcommon.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** Copyright (C) 2017 Mapbox, Inc. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMAPBOXAPICOMMON_H +#define QMAPBOXAPICOMMON_H + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +static const QString mapboxTilesApiPath = QStringLiteral("http://api.tiles.mapbox.com/v4/"); + +// https://www.mapbox.com/api-documentation/#geocoding +static const QString mapboxGeocodingApiPath = QStringLiteral("https://api.mapbox.com/geocoding/v5/mapbox.places/"); +static const QString mapboxGeocodingEnterpriseApiPath = QStringLiteral("https://api.mapbox.com/geocoding/v5/mapbox.places-permanent/"); + +// https://www.mapbox.com/api-documentation/#directions +static const QString mapboxDirectionsApiPath = QStringLiteral("https://api.mapbox.com/directions/v5/mapbox/"); + +static const QByteArray mapboxDefaultUserAgent = QByteArrayLiteral("Qt Location based application"); + +static const qreal mapboxDefaultRadius = 50000; + +class QMapboxCommon +{ +public: + static QString mapboxNameForCategory(const QString &category); + static QGeoLocation parseGeoLocation(const QJsonObject &response); +}; + +QT_END_NAMESPACE + +#endif // QMAPBOXAPICOMMON_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qplacecategoriesreplymapbox.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qplacecategoriesreplymapbox.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qplacecategoriesreplymapbox.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qplacecategoriesreplymapbox.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,66 @@ +/**************************************************************************** +** +** Copyright (C) 2017 Mapbox, Inc. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qplacecategoriesreplymapbox.h" + +QT_BEGIN_NAMESPACE + +QPlaceCategoriesReplyMapbox::QPlaceCategoriesReplyMapbox(QObject *parent) +: QPlaceReply(parent) +{ +} + +QPlaceCategoriesReplyMapbox::~QPlaceCategoriesReplyMapbox() +{ +} + +void QPlaceCategoriesReplyMapbox::finish() +{ + setFinished(true); + emit finished(); +} + +void QPlaceCategoriesReplyMapbox::setError(QPlaceReply::Error errorCode, const QString &errorString) +{ + QPlaceReply::setError(errorCode, errorString); + emit error(errorCode, errorString); + finish(); +} + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qplacecategoriesreplymapbox.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qplacecategoriesreplymapbox.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qplacecategoriesreplymapbox.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qplacecategoriesreplymapbox.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2017 Mapbox, Inc. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QPLACECATEGORIESREPLYMAPBOX_H +#define QPLACECATEGORIESREPLYMAPBOX_H + +#include + +QT_BEGIN_NAMESPACE + +class QPlaceCategoriesReplyMapbox : public QPlaceReply +{ + Q_OBJECT + +public: + explicit QPlaceCategoriesReplyMapbox(QObject *parent = 0); + ~QPlaceCategoriesReplyMapbox(); + +public slots: + void finish(); + void setError(QPlaceReply::Error errorCode, const QString &errorString); +}; + +QT_END_NAMESPACE + +#endif // QPLACECATEGORIESREPLYMAPBOX_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qplacemanagerenginemapbox.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qplacemanagerenginemapbox.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qplacemanagerenginemapbox.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qplacemanagerenginemapbox.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,318 @@ +/**************************************************************************** +** +** Copyright (C) 2017 Mapbox, Inc. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtFoo module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qplacemanagerenginemapbox.h" +#include "qplacesearchreplymapbox.h" +#include "qplacesearchsuggestionreplymapbox.h" +#include "qplacecategoriesreplymapbox.h" +#include "qmapboxcommon.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +namespace { + +// https://www.mapbox.com/api-documentation/#poi-categories +static const QStringList categories = QStringList() + << QStringLiteral("bakery") + << QStringLiteral("bank") + << QStringLiteral("bar") + << QStringLiteral("cafe") + << QStringLiteral("church") + << QStringLiteral("cinema") + << QStringLiteral("coffee") + << QStringLiteral("concert") + << QStringLiteral("fast food") + << QStringLiteral("finance") + << QStringLiteral("gallery") + << QStringLiteral("historic") + << QStringLiteral("hotel") + << QStringLiteral("landmark") + << QStringLiteral("museum") + << QStringLiteral("music") + << QStringLiteral("park") + << QStringLiteral("pizza") + << QStringLiteral("restaurant") + << QStringLiteral("retail") + << QStringLiteral("school") + << QStringLiteral("shop") + << QStringLiteral("tea") + << QStringLiteral("theater") + << QStringLiteral("university"); + +} // namespace + +// Mapbox API does not provide support for paginated place queries. This +// implementation is a wrapper around its Geocoding service: +// https://www.mapbox.com/api-documentation/#geocoding +QPlaceManagerEngineMapbox::QPlaceManagerEngineMapbox(const QVariantMap ¶meters, QGeoServiceProvider::Error *error, QString *errorString) + : QPlaceManagerEngine(parameters), m_networkManager(new QNetworkAccessManager(this)) +{ + if (parameters.contains(QStringLiteral("mapbox.useragent"))) + m_userAgent = parameters.value(QStringLiteral("mapbox.useragent")).toString().toLatin1(); + else + m_userAgent = mapboxDefaultUserAgent; + + m_accessToken = parameters.value(QStringLiteral("mapbox.access_token")).toString(); + + m_isEnterprise = parameters.value(QStringLiteral("mapbox.enterprise")).toBool(); + m_urlPrefix = m_isEnterprise ? mapboxGeocodingEnterpriseApiPath : mapboxGeocodingApiPath; + + *error = QGeoServiceProvider::NoError; + errorString->clear(); +} + +QPlaceManagerEngineMapbox::~QPlaceManagerEngineMapbox() +{ +} + +QPlaceSearchReply *QPlaceManagerEngineMapbox::search(const QPlaceSearchRequest &request) +{ + return qobject_cast(doSearch(request, PlaceSearchType::CompleteSearch)); +} + +QPlaceSearchSuggestionReply *QPlaceManagerEngineMapbox::searchSuggestions(const QPlaceSearchRequest &request) +{ + return qobject_cast(doSearch(request, PlaceSearchType::SuggestionSearch)); +} + +QPlaceReply *QPlaceManagerEngineMapbox::doSearch(const QPlaceSearchRequest &request, PlaceSearchType searchType) +{ + const QGeoShape searchArea = request.searchArea(); + const QString searchTerm = request.searchTerm(); + const QString recommendationId = request.recommendationId(); + const QList placeCategories = request.categories(); + + bool invalidRequest = false; + + // QLocation::DeviceVisibility is not allowed for non-enterprise accounts. + if (!m_isEnterprise) + invalidRequest |= request.visibilityScope().testFlag(QLocation::DeviceVisibility); + + // Must provide either a search term, categories or recommendation. + invalidRequest |= searchTerm.isEmpty() && placeCategories.isEmpty() && recommendationId.isEmpty(); + + // Category search must not provide recommendation, and vice-versa. + invalidRequest |= searchTerm.isEmpty() && !placeCategories.isEmpty() && !recommendationId.isEmpty(); + + if (invalidRequest) { + QPlaceReply *reply; + if (searchType == PlaceSearchType::CompleteSearch) + reply = new QPlaceSearchReplyMapbox(request, 0, this); + else + reply = new QPlaceSearchSuggestionReplyMapbox(0, this); + + connect(reply, &QPlaceReply::finished, this, &QPlaceManagerEngineMapbox::onReplyFinished); + connect(reply, QOverload::of(&QPlaceReply::error), + this, &QPlaceManagerEngineMapbox::onReplyError); + + QMetaObject::invokeMethod(reply, "setError", Qt::QueuedConnection, + Q_ARG(QPlaceReply::Error, QPlaceReply::BadArgumentError), + Q_ARG(QString, "Invalid request.")); + + return reply; + } + + QString queryString; + if (!searchTerm.isEmpty()) { + queryString = searchTerm; + } else if (!recommendationId.isEmpty()) { + queryString = recommendationId; + } else { + QStringList similarIds; + for (const QPlaceCategory &placeCategory : placeCategories) + similarIds.append(placeCategory.categoryId()); + queryString = similarIds.join(QLatin1Char(',')); + } + queryString.append(QStringLiteral(".json")); + + // https://www.mapbox.com/api-documentation/#request-format + QUrl requestUrl(m_urlPrefix + queryString); + + QUrlQuery queryItems; + queryItems.addQueryItem(QStringLiteral("access_token"), m_accessToken); + + // XXX: Investigate situations where we need to filter by 'country'. + + QStringList languageCodes; + for (const QLocale& locale: qAsConst(m_locales)) { + // Returns the language and country of this locale as a string of the + // form "language_country", where language is a lowercase, two-letter + // ISO 639 language code, and country is an uppercase, two- or + // three-letter ISO 3166 country code. + + if (locale.language() == QLocale::C) + continue; + + const QString languageCode = locale.name().section(QLatin1Char('_'), 0, 0); + if (!languageCodes.contains(languageCode)) + languageCodes.append(languageCode); + } + + if (!languageCodes.isEmpty()) + queryItems.addQueryItem(QStringLiteral("language"), languageCodes.join(QLatin1Char(','))); + + if (searchArea.type() != QGeoShape::UnknownType) { + const QGeoCoordinate center = searchArea.center(); + queryItems.addQueryItem(QStringLiteral("proximity"), + QString::number(center.longitude()) + QLatin1Char(',') + QString::number(center.latitude())); + } + + queryItems.addQueryItem(QStringLiteral("type"), QStringLiteral("poi")); + + // XXX: Investigate situations where 'autocomplete' should be disabled. + + QGeoRectangle boundingBox = searchArea.boundingGeoRectangle(); + if (!boundingBox.isEmpty()) { + queryItems.addQueryItem(QStringLiteral("bbox"), + QString::number(boundingBox.topLeft().longitude()) + QLatin1Char(',') + + QString::number(boundingBox.bottomRight().latitude()) + QLatin1Char(',') + + QString::number(boundingBox.bottomRight().longitude()) + QLatin1Char(',') + + QString::number(boundingBox.topLeft().latitude())); + } + + if (request.limit() > 0) + queryItems.addQueryItem(QStringLiteral("limit"), QString::number(request.limit())); + + // XXX: Investigate searchContext() use cases. + + requestUrl.setQuery(queryItems); + + QNetworkRequest networkRequest(requestUrl); + networkRequest.setHeader(QNetworkRequest::UserAgentHeader, m_userAgent); + + QNetworkReply *networkReply = m_networkManager->get(networkRequest); + QPlaceReply *reply; + if (searchType == PlaceSearchType::CompleteSearch) + reply = new QPlaceSearchReplyMapbox(request, networkReply, this); + else + reply = new QPlaceSearchSuggestionReplyMapbox(networkReply, this); + + connect(reply, &QPlaceReply::finished, this, &QPlaceManagerEngineMapbox::onReplyFinished); + connect(reply, QOverload::of(&QPlaceReply::error), + this, &QPlaceManagerEngineMapbox::onReplyError); + + return reply; +} + +QPlaceReply *QPlaceManagerEngineMapbox::initializeCategories() +{ + if (m_categories.isEmpty()) { + for (const QString &categoryId : categories) { + QPlaceCategory category; + category.setName(QMapboxCommon::mapboxNameForCategory(categoryId)); + category.setCategoryId(categoryId); + category.setVisibility(QLocation::PublicVisibility); + m_categories[categoryId] = category; + } + } + + QPlaceCategoriesReplyMapbox *reply = new QPlaceCategoriesReplyMapbox(this); + connect(reply, &QPlaceReply::finished, this, &QPlaceManagerEngineMapbox::onReplyFinished); + connect(reply, QOverload::of(&QPlaceReply::error), + this, &QPlaceManagerEngineMapbox::onReplyError); + + // Queue a future finished() emission from the reply. + QMetaObject::invokeMethod(reply, "finish", Qt::QueuedConnection); + + return reply; +} + +QString QPlaceManagerEngineMapbox::parentCategoryId(const QString &categoryId) const +{ + Q_UNUSED(categoryId) + + // Only a single category level. + return QString(); +} + +QStringList QPlaceManagerEngineMapbox::childCategoryIds(const QString &categoryId) const +{ + // Only a single category level. + if (categoryId.isEmpty()) + return m_categories.keys(); + + return QStringList(); +} + +QPlaceCategory QPlaceManagerEngineMapbox::category(const QString &categoryId) const +{ + return m_categories.value(categoryId); +} + +QList QPlaceManagerEngineMapbox::childCategories(const QString &parentId) const +{ + // Only a single category level. + if (parentId.isEmpty()) + return m_categories.values(); + + return QList(); +} + +QList QPlaceManagerEngineMapbox::locales() const +{ + return m_locales; +} + +void QPlaceManagerEngineMapbox::setLocales(const QList &locales) +{ + m_locales = locales; +} + +void QPlaceManagerEngineMapbox::onReplyFinished() +{ + QPlaceReply *reply = qobject_cast(sender()); + if (reply) + emit finished(reply); +} + +void QPlaceManagerEngineMapbox::onReplyError(QPlaceReply::Error errorCode, const QString &errorString) +{ + QPlaceReply *reply = qobject_cast(sender()); + if (reply) + emit error(reply, errorCode, errorString); +} diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qplacemanagerenginemapbox.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qplacemanagerenginemapbox.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qplacemanagerenginemapbox.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qplacemanagerenginemapbox.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,102 @@ +/**************************************************************************** +** +** Copyright (C) 2017 Mapbox, Inc. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtFoo module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QPLACEMANAGERENGINEMAPBOX_H +#define QPLACEMANAGERENGINEMAPBOX_H + +#include +#include + +QT_BEGIN_NAMESPACE + +class QNetworkAccessManager; + +class QPlaceManagerEngineMapbox : public QPlaceManagerEngine +{ + Q_OBJECT + +public: + QPlaceManagerEngineMapbox(const QVariantMap ¶meters, QGeoServiceProvider::Error *, + QString *errorString); + ~QPlaceManagerEngineMapbox(); + + QPlaceSearchReply *search(const QPlaceSearchRequest &) override; + + QPlaceSearchSuggestionReply *searchSuggestions(const QPlaceSearchRequest &) override; + + QPlaceReply *initializeCategories() override; + QString parentCategoryId(const QString &categoryId) const override; + QStringList childCategoryIds(const QString &categoryId) const override; + QPlaceCategory category(const QString &categoryId) const override; + QList childCategories(const QString &parentId) const override; + + QList locales() const override; + void setLocales(const QList &locales) override; + + // TODO: icon + //QPlaceIcon icon(const QString &remotePath, + // const QList &categories = QList()) const; + + //QUrl constructIconUrl(const QPlaceIcon &icon, const QSize &size) const override; + +private slots: + void onReplyFinished(); + void onReplyError(QPlaceReply::Error, const QString &errorString); + +private: + enum PlaceSearchType { + CompleteSearch = 0, + SuggestionSearch + }; + + QPlaceReply *doSearch(const QPlaceSearchRequest&, PlaceSearchType); + + QNetworkAccessManager *m_networkManager; + QByteArray m_userAgent; + QString m_accessToken; + QString m_urlPrefix; + bool m_isEnterprise; + + QList m_locales; + QHash m_categories; +}; + +QT_END_NAMESPACE + +#endif // QPLACEMANAGERENGINEMAPBOX_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qplacesearchreplymapbox.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qplacesearchreplymapbox.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qplacesearchreplymapbox.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qplacesearchreplymapbox.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,232 @@ +/**************************************************************************** +** +** Copyright (C) 2017 Mapbox, Inc. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtFoo module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qplacesearchreplymapbox.h" +#include "qplacemanagerenginemapbox.h" +#include "qmapboxcommon.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +namespace { + +// https://www.mapbox.com/api-documentation/#response-object +QPlaceResult parsePlaceResult(const QJsonObject &response, const QString &attribution) +{ + QPlace place; + + place.setAttribution(attribution); + place.setPlaceId(response.value(QStringLiteral("id")).toString()); + place.setVisibility(QLocation::PublicVisibility); + + QString placeName = response.value(QStringLiteral("text")).toString(); + if (placeName.isEmpty()) + placeName = response.value(QStringLiteral("place_name")).toString(); + + place.setName(placeName); + place.setDetailsFetched(true); + + // Unused data: type, place_type, relevance, properties.short_code, + // properties.landmark, properties.wikidata + + // The property object is unstable and only Carmen GeoJSON properties are + // guaranteed. This implementation should check for the presence of these + // values in a response before it attempts to use them. + if (response.value(QStringLiteral("properties")).isObject()) { + const QJsonObject properties = response.value(QStringLiteral("properties")).toObject(); + + const QString makiString = properties.value(QStringLiteral("maki")).toString(); + if (!makiString.isEmpty()) { + QVariantMap iconParameters; + iconParameters.insert(QPlaceIcon::SingleUrl, + QUrl::fromLocalFile(QStringLiteral(":/mapbox/") + makiString + QStringLiteral(".svg"))); + + QPlaceIcon icon; + icon.setParameters(iconParameters); + place.setIcon(icon); + } + + const QString phoneString = properties.value(QStringLiteral("tel")).toString(); + if (!phoneString.isEmpty()) { + QPlaceContactDetail phoneDetail; + phoneDetail.setLabel(QPlaceContactDetail::Phone); + phoneDetail.setValue(phoneString); + place.setContactDetails(QPlaceContactDetail::Phone, QList() << phoneDetail); + } + + const QString categoryString = properties.value(QStringLiteral("category")).toString(); + if (!categoryString.isEmpty()) { + QList categories; + for (const QString &categoryId : categoryString.split(QStringLiteral(", "), QString::SkipEmptyParts)) { + QPlaceCategory category; + category.setName(QMapboxCommon::mapboxNameForCategory(categoryId)); + category.setCategoryId(categoryId); + categories.append(category); + } + place.setCategories(categories); + } + } + + // XXX: matching_text, matching_place_name + // XXX: text_{language}, place_name_{language} + // XXX: language, language_{language} + + place.setLocation(QMapboxCommon::parseGeoLocation(response)); + + // XXX: geometry, geometry.type, geometry.coordinates, geometry.interpolated + + QPlaceResult result; + result.setPlace(place); + result.setTitle(place.name()); + + return result; +} + +} // namespace + +QPlaceSearchReplyMapbox::QPlaceSearchReplyMapbox(const QPlaceSearchRequest &request, QNetworkReply *reply, QPlaceManagerEngineMapbox *parent) +: QPlaceSearchReply(parent) +{ + Q_ASSERT(parent); + if (!reply) { + setError(UnknownError, QStringLiteral("Null reply")); + return; + } + setRequest(request); + + connect(reply, &QNetworkReply::finished, this, &QPlaceSearchReplyMapbox::onReplyFinished); + connect(reply, QOverload::of(&QNetworkReply::error), + this, &QPlaceSearchReplyMapbox::onNetworkError); + + connect(this, &QPlaceReply::aborted, reply, &QNetworkReply::abort); + connect(this, &QObject::destroyed, reply, &QObject::deleteLater); +} + +QPlaceSearchReplyMapbox::~QPlaceSearchReplyMapbox() +{ +} + +void QPlaceSearchReplyMapbox::setError(QPlaceReply::Error errorCode, const QString &errorString) +{ + QPlaceReply::setError(errorCode, errorString); + emit error(errorCode, errorString); + + setFinished(true); + emit finished(); +} + +void QPlaceSearchReplyMapbox::onReplyFinished() +{ + QNetworkReply *reply = static_cast(sender()); + reply->deleteLater(); + + if (reply->error() != QNetworkReply::NoError) + return; + + const QJsonDocument document = QJsonDocument::fromJson(reply->readAll()); + if (!document.isObject()) { + setError(ParseError, tr("Response parse error")); + return; + } + + const QJsonArray features = document.object().value(QStringLiteral("features")).toArray(); + const QString attribution = document.object().value(QStringLiteral("attribution")).toString(); + + const QGeoCoordinate searchCenter = request().searchArea().center(); + const QList categories = request().categories(); + + QList results; + for (const QJsonValue &feature : features) { + QPlaceResult placeResult = parsePlaceResult(feature.toObject(), attribution); + + if (!categories.isEmpty()) { + const QList placeCategories = placeResult.place().categories(); + if (!placeCategories.isEmpty()) { + bool categoryMatch = false; + for (const QPlaceCategory &placeCategory : placeCategories) { + if (categories.contains(placeCategory)) { + categoryMatch = true; + break; + } + } + if (!categoryMatch) + continue; + } + } + + placeResult.setDistance(searchCenter.distanceTo(placeResult.place().location().coordinate())); + results.append(placeResult); + } + + if (request().relevanceHint() == QPlaceSearchRequest::DistanceHint) { + std::sort(results.begin(), results.end(), [](const QPlaceResult &a, const QPlaceResult &b) -> bool { + return a.distance() < b.distance(); + }); + } else if (request().relevanceHint() == QPlaceSearchRequest::LexicalPlaceNameHint) { + std::sort(results.begin(), results.end(), [](const QPlaceResult &a, const QPlaceResult &b) -> bool { + return a.place().name() < b.place().name(); + }); + } + + setResults(results); + + setFinished(true); + emit finished(); +} + +void QPlaceSearchReplyMapbox::onNetworkError(QNetworkReply::NetworkError error) +{ + Q_UNUSED(error) + QNetworkReply *reply = static_cast(sender()); + reply->deleteLater(); + setError(CommunicationError, reply->errorString()); +} + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qplacesearchreplymapbox.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qplacesearchreplymapbox.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qplacesearchreplymapbox.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qplacesearchreplymapbox.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** Copyright (C) 2017 Mapbox, Inc. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtFoo module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QPLACESEARCHREPLYMAPBOX_H +#define QPLACESEARCHREPLYMAPBOX_H + +#include +#include + +QT_BEGIN_NAMESPACE + +class QNetworkReply; +class QPlaceManagerEngineMapbox; +class QPlaceResult; + +class QPlaceSearchReplyMapbox : public QPlaceSearchReply +{ + Q_OBJECT + +public: + QPlaceSearchReplyMapbox(const QPlaceSearchRequest &request, QNetworkReply *reply, + QPlaceManagerEngineMapbox *parent); + ~QPlaceSearchReplyMapbox(); + +public slots: + void setError(QPlaceReply::Error errorCode, const QString &errorString); + +private slots: + void onReplyFinished(); + void onNetworkError(QNetworkReply::NetworkError error); +}; + +QT_END_NAMESPACE + +#endif // QPLACESEARCHREPLYMAPBOX_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qplacesearchsuggestionreplymapbox.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qplacesearchsuggestionreplymapbox.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qplacesearchsuggestionreplymapbox.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qplacesearchsuggestionreplymapbox.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,120 @@ +/**************************************************************************** +** +** Copyright (C) 2017 Mapbox, Inc. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtFoo module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qplacesearchsuggestionreplymapbox.h" +#include "qplacemanagerenginemapbox.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +QPlaceSearchSuggestionReplyMapbox::QPlaceSearchSuggestionReplyMapbox(QNetworkReply *reply, QPlaceManagerEngineMapbox *parent) +: QPlaceSearchSuggestionReply(parent) +{ + Q_ASSERT(parent); + if (!reply) { + setError(UnknownError, QStringLiteral("Null reply")); + return; + } + + connect(reply, &QNetworkReply::finished, this, &QPlaceSearchSuggestionReplyMapbox::onReplyFinished); + connect(reply, QOverload::of(&QNetworkReply::error), + this, &QPlaceSearchSuggestionReplyMapbox::onNetworkError); + + connect(this, &QPlaceReply::aborted, reply, &QNetworkReply::abort); + connect(this, &QObject::destroyed, reply, &QObject::deleteLater); +} + +QPlaceSearchSuggestionReplyMapbox::~QPlaceSearchSuggestionReplyMapbox() +{ +} + +void QPlaceSearchSuggestionReplyMapbox::setError(QPlaceReply::Error errorCode, const QString &errorString) +{ + QPlaceReply::setError(errorCode, errorString); + emit error(errorCode, errorString); + + setFinished(true); + emit finished(); +} + +void QPlaceSearchSuggestionReplyMapbox::onReplyFinished() +{ + QNetworkReply *reply = static_cast(sender()); + reply->deleteLater(); + + if (reply->error() != QNetworkReply::NoError) + return; + + QJsonDocument document = QJsonDocument::fromJson(reply->readAll()); + if (!document.isObject()) { + setError(ParseError, tr("Response parse error")); + return; + } + + const QJsonArray features = document.object().value(QStringLiteral("features")).toArray(); + + QStringList suggestions; + for (const QJsonValue &feature : features) { + if (feature.isObject()) + suggestions.append(feature.toObject().value(QStringLiteral("text")).toString()); + } + + setSuggestions(suggestions); + + setFinished(true); + emit finished(); +} + +void QPlaceSearchSuggestionReplyMapbox::onNetworkError(QNetworkReply::NetworkError error) +{ + Q_UNUSED(error) + QNetworkReply *reply = static_cast(sender()); + reply->deleteLater(); + setError(CommunicationError, reply->errorString()); +} + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qplacesearchsuggestionreplymapbox.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qplacesearchsuggestionreplymapbox.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapbox/qplacesearchsuggestionreplymapbox.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapbox/qplacesearchsuggestionreplymapbox.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2017 Mapbox, Inc. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtFoo module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QPLACESEARCHSUGGESTIONREPLYMAPBOX_H +#define QPLACESEARCHSUGGESTIONREPLYMAPBOX_H + +#include +#include + +QT_BEGIN_NAMESPACE + +class QNetworkReply; +class QPlaceManagerEngineMapbox; +class QPlaceResult; + +class QPlaceSearchSuggestionReplyMapbox : public QPlaceSearchSuggestionReply +{ + Q_OBJECT + +public: + QPlaceSearchSuggestionReplyMapbox(QNetworkReply *reply, QPlaceManagerEngineMapbox *parent); + ~QPlaceSearchSuggestionReplyMapbox(); + +public slots: + void setError(QPlaceReply::Error errorCode, const QString &errorString); + +private slots: + void onReplyFinished(); + void onNetworkError(QNetworkReply::NetworkError error); +}; + +QT_END_NAMESPACE + +#endif // QPLACESEARCHSUGGESTIONREPLYMAPBOX_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapboxgl/mapboxgl.pro qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapboxgl/mapboxgl.pro --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapboxgl/mapboxgl.pro 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapboxgl/mapboxgl.pro 2018-06-12 18:44:12.000000000 +0000 @@ -22,6 +22,11 @@ qmapboxglstylechange.cpp \ qsgmapboxglnode.cpp +# Mapbox GL Native is always a static +# library linked to this plugin +QMAKE_CXXFLAGS += \ + -DQT_MAPBOXGL_STATIC + RESOURCES += mapboxgl.qrc OTHER_FILES += \ diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapboxgl/qgeomapmapboxgl.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapboxgl/qgeomapmapboxgl.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapboxgl/qgeomapmapboxgl.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapboxgl/qgeomapmapboxgl.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -138,7 +138,7 @@ if (m_useFBO) { static_cast(node)->resize(m_viewportSize, window->devicePixelRatio()); } else { - map->resize(m_viewportSize, m_viewportSize * window->devicePixelRatio()); + map->resize(m_viewportSize); } } @@ -372,6 +372,13 @@ d->m_mapItemsBefore = before; } +QGeoMap::Capabilities QGeoMapMapboxGL::capabilities() const +{ + return Capabilities(SupportsVisibleRegion + | SupportsSetBearing + | SupportsAnchoringCoordinate); +} + QSGNode *QGeoMapMapboxGL::updateSceneGraph(QSGNode *oldNode, QQuickWindow *window) { Q_D(QGeoMapMapboxGL); @@ -450,7 +457,7 @@ if (d->m_developmentMode) { copyrightsHtmlFinal.prepend("" - + tr("Development access token, do not use in production!") + " - "); + + tr("Development access token, do not use in production.") + " - "); } if (d->m_activeMapType.name().startsWith("mapbox://")) { diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapboxgl/qgeomapmapboxgl.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapboxgl/qgeomapmapboxgl.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapboxgl/qgeomapmapboxgl.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapboxgl/qgeomapmapboxgl.h 2018-06-12 18:44:12.000000000 +0000 @@ -53,10 +53,11 @@ QGeoMapMapboxGL(QGeoMappingManagerEngineMapboxGL *engine, QObject *parent); virtual ~QGeoMapMapboxGL(); - QString copyrightsStyleSheet() const Q_DECL_OVERRIDE; + QString copyrightsStyleSheet() const override; void setMapboxGLSettings(const QMapboxGLSettings &); void setUseFBO(bool); void setMapItemsBefore(const QString &); + Capabilities capabilities() const override; private Q_SLOTS: // QMapboxGL @@ -75,7 +76,7 @@ void copyrightsChanged(const QString ©rightsHtml); private: - QSGNode *updateSceneGraph(QSGNode *oldNode, QQuickWindow *window) Q_DECL_OVERRIDE; + QSGNode *updateSceneGraph(QSGNode *oldNode, QQuickWindow *window) override; QGeoMappingManagerEngineMapboxGL *m_engine; }; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapboxgl/qgeomapmapboxgl_p.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapboxgl/qgeomapmapboxgl_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapboxgl/qgeomapmapboxgl_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapboxgl/qgeomapmapboxgl_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -60,12 +60,12 @@ QSGNode *updateSceneGraph(QSGNode *oldNode, QQuickWindow *window); - void addParameter(QGeoMapParameter *param) Q_DECL_OVERRIDE; - void removeParameter(QGeoMapParameter *param) Q_DECL_OVERRIDE; + void addParameter(QGeoMapParameter *param) override; + void removeParameter(QGeoMapParameter *param) override; - QGeoMap::ItemTypes supportedMapItemTypes() const Q_DECL_OVERRIDE; - void addMapItem(QDeclarativeGeoMapItemBase *item) Q_DECL_OVERRIDE; - void removeMapItem(QDeclarativeGeoMapItemBase *item) Q_DECL_OVERRIDE; + QGeoMap::ItemTypes supportedMapItemTypes() const override; + void addMapItem(QDeclarativeGeoMapItemBase *item) override; + void removeMapItem(QDeclarativeGeoMapItemBase *item) override; /* Data members */ enum SyncState : int { @@ -92,9 +92,9 @@ QList> m_styleChanges; protected: - void changeViewportSize(const QSize &size) Q_DECL_OVERRIDE; - void changeCameraData(const QGeoCameraData &oldCameraData) Q_DECL_OVERRIDE; - void changeActiveMapType(const QGeoMapType mapType) Q_DECL_OVERRIDE; + void changeViewportSize(const QSize &size) override; + void changeCameraData(const QGeoCameraData &oldCameraData) override; + void changeActiveMapType(const QGeoMapType mapType) override; private: Q_DISABLE_COPY(QGeoMapMapboxGLPrivate); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -70,25 +70,29 @@ const QByteArray pluginName = "mapboxgl"; mapTypes << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("mapbox://styles/mapbox/streets-v10"), - tr("Streets"), false, false, ++mapId, pluginName); + tr("Streets"), false, false, ++mapId, pluginName, cameraCaps); mapTypes << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("mapbox://styles/mapbox/basic-v9"), - tr("Basic"), false, false, ++mapId, pluginName); + tr("Basic"), false, false, ++mapId, pluginName, cameraCaps); mapTypes << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("mapbox://styles/mapbox/bright-v9"), - tr("Bright"), false, false, ++mapId, pluginName); + tr("Bright"), false, false, ++mapId, pluginName, cameraCaps); mapTypes << QGeoMapType(QGeoMapType::TerrainMap, QStringLiteral("mapbox://styles/mapbox/outdoors-v10"), - tr("Outdoors"), false, false, ++mapId, pluginName); + tr("Outdoors"), false, false, ++mapId, pluginName, cameraCaps); mapTypes << QGeoMapType(QGeoMapType::SatelliteMapDay, QStringLiteral("mapbox://styles/mapbox/satellite-v9"), - tr("Satellite"), false, false, ++mapId, pluginName); + tr("Satellite"), false, false, ++mapId, pluginName, cameraCaps); mapTypes << QGeoMapType(QGeoMapType::HybridMap, QStringLiteral("mapbox://styles/mapbox/satellite-streets-v10"), - tr("Satellite Streets"), false, false, ++mapId, pluginName); + tr("Satellite Streets"), false, false, ++mapId, pluginName, cameraCaps); mapTypes << QGeoMapType(QGeoMapType::GrayStreetMap, QStringLiteral("mapbox://styles/mapbox/light-v9"), - tr("Light"), false, false, ++mapId, pluginName); + tr("Light"), false, false, ++mapId, pluginName, cameraCaps); mapTypes << QGeoMapType(QGeoMapType::GrayStreetMap, QStringLiteral("mapbox://styles/mapbox/dark-v9"), - tr("Dark"), false, false, ++mapId, pluginName); - mapTypes << QGeoMapType(QGeoMapType::TransitMap, QStringLiteral("mapbox://styles/mapbox/traffic-day-v1"), - tr("Streets Traffic Day"), false, false, ++mapId, pluginName); - mapTypes << QGeoMapType(QGeoMapType::TransitMap, QStringLiteral("mapbox://styles/mapbox/traffic-night-v1"), - tr("Streets Traffic Night"), false, true, ++mapId, pluginName); + tr("Dark"), false, false, ++mapId, pluginName, cameraCaps); + mapTypes << QGeoMapType(QGeoMapType::TransitMap, QStringLiteral("mapbox://styles/mapbox/navigation-preview-day-v2"), + tr("Navigation Preview Day"), false, false, ++mapId, pluginName, cameraCaps); + mapTypes << QGeoMapType(QGeoMapType::TransitMap, QStringLiteral("mapbox://styles/mapbox/navigation-preview-night-v2"), + tr("Navigation Preview Night"), false, true, ++mapId, pluginName, cameraCaps); + mapTypes << QGeoMapType(QGeoMapType::CarNavigationMap, QStringLiteral("mapbox://styles/mapbox/navigation-guidance-day-v2"), + tr("Navigation Guidance Day"), false, false, ++mapId, pluginName, cameraCaps); + mapTypes << QGeoMapType(QGeoMapType::CarNavigationMap, QStringLiteral("mapbox://styles/mapbox/navigation-guidance-night-v2"), + tr("Navigation Guidance Night"), false, true, ++mapId, pluginName, cameraCaps); if (parameters.contains(QStringLiteral("mapboxgl.mapping.additional_style_urls"))) { const QString ids = parameters.value(QStringLiteral("mapboxgl.mapping.additional_style_urls")).toString(); @@ -99,7 +103,7 @@ continue; mapTypes.prepend(QGeoMapType(QGeoMapType::CustomMap, *it, - tr("User provided style"), false, false, ++mapId, pluginName)); + tr("User provided style"), false, false, ++mapId, pluginName, cameraCaps)); } } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.h 2018-06-12 18:44:12.000000000 +0000 @@ -54,7 +54,7 @@ QGeoServiceProvider::Error *error, QString *errorString); ~QGeoMappingManagerEngineMapboxGL(); - QGeoMap *createMap() Q_DECL_OVERRIDE; + QGeoMap *createMap() override; private: QMapboxGLSettings m_settings; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapboxgl/qmapboxglstylechange.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapboxgl/qmapboxglstylechange.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapboxgl/qmapboxglstylechange.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapboxgl/qmapboxglstylechange.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -45,14 +45,14 @@ namespace { -QString formatPropertyName(QString *name) +QByteArray formatPropertyName(const QByteArray &name) { + QString nameAsString = QString::fromLatin1(name); static const QRegularExpression camelCaseRegex(QStringLiteral("([a-z0-9])([A-Z])")); - - return name->replace(camelCaseRegex, QStringLiteral("\\1-\\2")).toLower(); + return nameAsString.replace(camelCaseRegex, QStringLiteral("\\1-\\2")).toLower().toLatin1(); } -bool isImmutableProperty(const QString &name) +bool isImmutableProperty(const QByteArray &name) { return name == QStringLiteral("type") || name == QStringLiteral("layer"); } @@ -89,18 +89,18 @@ QMapbox::Feature featureFromMapCircle(QDeclarativeCircleMapItem *mapItem) { static const int circleSamples = 128; - + const QGeoProjectionWebMercator &p = static_cast(mapItem->map()->geoProjection()); QList path; QGeoCoordinate leftBound; QDeclarativeCircleMapItem::calculatePeripheralPoints(path, mapItem->center(), mapItem->radius(), circleSamples, leftBound); QList pathProjected; for (const QGeoCoordinate &c : qAsConst(path)) - pathProjected << mapItem->map()->geoProjection().geoToMapProjection(c); + pathProjected << p.geoToMapProjection(c); if (QDeclarativeCircleMapItem::crossEarthPole(mapItem->center(), mapItem->radius())) - mapItem->preserveCircleGeometry(pathProjected, mapItem->center(), mapItem->radius()); + mapItem->preserveCircleGeometry(pathProjected, mapItem->center(), mapItem->radius(), p); path.clear(); for (const QDoubleVector2D &c : qAsConst(pathProjected)) - path << mapItem->map()->geoProjection().mapProjectionToGeo(c); + path << p.mapProjectionToGeo(c); QMapbox::Coordinates coordinates; @@ -167,6 +167,16 @@ } } +QList getAllPropertyNamesList(QObject *object) +{ + const QMetaObject *metaObject = object->metaObject(); + QList propertyNames(object->dynamicPropertyNames()); + for (int i = metaObject->propertyOffset(); i < metaObject->propertyCount(); ++i) { + propertyNames.append(metaObject->property(i).name()); + } + return propertyNames; +} + } // namespace @@ -176,7 +186,8 @@ { static const QStringList acceptedParameterTypes = QStringList() << QStringLiteral("paint") << QStringLiteral("layout") << QStringLiteral("filter") - << QStringLiteral("layer") << QStringLiteral("source") << QStringLiteral("image"); + << QStringLiteral("layer") << QStringLiteral("source") << QStringLiteral("image") + << QStringLiteral("margins"); QList> changes; @@ -202,6 +213,9 @@ case 5: // image changes << QMapboxGLStyleAddImage::fromMapParameter(param); break; + case 6: // margins + changes << QMapboxGLMapMargins::fromMapParameter(param); + break; } return changes; @@ -257,22 +271,20 @@ QList> changes; - // Offset objectName and type properties. - for (int i = 2; i < param->metaObject()->propertyCount(); ++i) { - QString name = param->metaObject()->property(i).name(); - - if (isImmutableProperty(name)) + QList propertyNames = getAllPropertyNamesList(param); + for (const QByteArray &propertyName : propertyNames) { + if (isImmutableProperty(propertyName)) continue; auto layout = new QMapboxGLStyleSetLayoutProperty(); - layout->m_value = param->property(name.toLatin1()); + layout->m_value = param->property(propertyName); if (layout->m_value.canConvert()) { layout->m_value = layout->m_value.value().toVariant(); } layout->m_layer = param->property("layer").toString(); - layout->m_property = formatPropertyName(&name); + layout->m_property = formatPropertyName(propertyName); changes << QSharedPointer(layout); } @@ -336,22 +348,20 @@ QList> changes; - // Offset objectName and type properties. - for (int i = 2; i < param->metaObject()->propertyCount(); ++i) { - QString name = param->metaObject()->property(i).name(); - - if (isImmutableProperty(name)) + QList propertyNames = getAllPropertyNamesList(param); + for (const QByteArray &propertyName : propertyNames) { + if (isImmutableProperty(propertyName)) continue; auto paint = new QMapboxGLStyleSetPaintProperty(); - paint->m_value = param->property(name.toLatin1()); + paint->m_value = param->property(propertyName); if (paint->m_value.canConvert()) { paint->m_value = paint->m_value.value().toVariant(); } paint->m_layer = param->property("layer").toString(); - paint->m_property = formatPropertyName(&name); + paint->m_property = formatPropertyName(propertyName); changes << QSharedPointer(paint); } @@ -460,14 +470,16 @@ static const QStringList layerProperties = QStringList() << QStringLiteral("name") << QStringLiteral("layerType") << QStringLiteral("before"); - // Offset objectName and type properties. - for (int i = 2; i < param->metaObject()->propertyCount(); ++i) { - QString name = param->metaObject()->property(i).name(); - QVariant value = param->property(name.toLatin1()); + QList propertyNames = getAllPropertyNamesList(param); + for (const QByteArray &propertyName : propertyNames) { + if (isImmutableProperty(propertyName)) + continue; + + const QVariant value = param->property(propertyName); - switch (layerProperties.indexOf(name)) { + switch (layerProperties.indexOf(propertyName)) { case -1: - layer->m_params[formatPropertyName(&name)] = value; + layer->m_params[formatPropertyName(propertyName)] = value; break; case 0: // name layer->m_params[QStringLiteral("id")] = value; @@ -532,7 +544,7 @@ Q_ASSERT(param->type() == "source"); static const QStringList acceptedSourceTypes = QStringList() - << QStringLiteral("vector") << QStringLiteral("raster") << QStringLiteral("geojson"); + << QStringLiteral("vector") << QStringLiteral("raster") << QStringLiteral("raster-dem") << QStringLiteral("geojson"); QString sourceType = param->property("sourceType").toString(); @@ -546,9 +558,10 @@ break; case 0: // vector case 1: // raster + case 2: // raster-dem source->m_params[QStringLiteral("url")] = param->property("url"); break; - case 2: { // geojson + case 3: { // geojson auto data = param->property("data").toString(); if (data.startsWith(':')) { QFile geojson(data); @@ -628,3 +641,38 @@ return QSharedPointer(image); } + +// QMapboxGLMapMargins + +void QMapboxGLMapMargins::apply(QMapboxGL *map) +{ + // FIXME: Qt projection handlers are not yet aware of these margins, + // thus map items placement, {to,from}Coordinate, mouse area, etc. + // will require manual fixups. + map->setMargins(m_margins); +} + +QSharedPointer QMapboxGLMapMargins::fromMapParameter(QGeoMapParameter *param) +{ + Q_ASSERT(param->type() == "margins"); + + auto mapMargins = new QMapboxGLMapMargins(); + + QVariant leftMargin = param->property("left"); + if (leftMargin.isValid()) + mapMargins->m_margins.setLeft(leftMargin.toInt()); + + QVariant topMargin = param->property("top"); + if (topMargin.isValid()) + mapMargins->m_margins.setTop(topMargin.toInt()); + + QVariant rightMargin = param->property("right"); + if (rightMargin.isValid()) + mapMargins->m_margins.setRight(rightMargin.toInt()); + + QVariant bottomMargin = param->property("bottom"); + if (bottomMargin.isValid()) + mapMargins->m_margins.setBottom(bottomMargin.toInt()); + + return QSharedPointer(mapMargins); +} diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapboxgl/qmapboxglstylechange_p.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapboxgl/qmapboxglstylechange_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapboxgl/qmapboxglstylechange_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapboxgl/qmapboxglstylechange_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -70,7 +70,7 @@ static QList> fromMapParameter(QGeoMapParameter *); static QList> fromMapItem(QDeclarativeGeoMapItemBase *); - void apply(QMapboxGL *map) Q_DECL_OVERRIDE; + void apply(QMapboxGL *map) override; private: static QList> fromMapItem(QDeclarativePolylineMapItem *); @@ -89,7 +89,7 @@ static QList> fromMapParameter(QGeoMapParameter *); static QList> fromMapItem(QDeclarativeGeoMapItemBase *); - void apply(QMapboxGL *map) Q_DECL_OVERRIDE; + void apply(QMapboxGL *map) override; private: static QList> fromMapItem(QDeclarativeRectangleMapItem *); @@ -111,7 +111,7 @@ static QSharedPointer fromMapParameter(QGeoMapParameter *); static QSharedPointer fromFeature(const QMapbox::Feature &feature, const QString &before); - void apply(QMapboxGL *map) Q_DECL_OVERRIDE; + void apply(QMapboxGL *map) override; private: QMapboxGLStyleAddLayer() = default; @@ -125,7 +125,7 @@ public: explicit QMapboxGLStyleRemoveLayer(const QString &id); - void apply(QMapboxGL *map) Q_DECL_OVERRIDE; + void apply(QMapboxGL *map) override; private: QMapboxGLStyleRemoveLayer() = default; @@ -140,7 +140,7 @@ static QSharedPointer fromFeature(const QMapbox::Feature &feature); static QSharedPointer fromMapItem(QDeclarativeGeoMapItemBase *); - void apply(QMapboxGL *map) Q_DECL_OVERRIDE; + void apply(QMapboxGL *map) override; private: QMapboxGLStyleAddSource() = default; @@ -154,7 +154,7 @@ public: explicit QMapboxGLStyleRemoveSource(const QString &id); - void apply(QMapboxGL *map) Q_DECL_OVERRIDE; + void apply(QMapboxGL *map) override; private: QMapboxGLStyleRemoveSource() = default; @@ -167,7 +167,7 @@ public: static QSharedPointer fromMapParameter(QGeoMapParameter *); - void apply(QMapboxGL *map) Q_DECL_OVERRIDE; + void apply(QMapboxGL *map) override; private: QMapboxGLStyleSetFilter() = default; @@ -181,7 +181,7 @@ public: static QSharedPointer fromMapParameter(QGeoMapParameter *); - void apply(QMapboxGL *map) Q_DECL_OVERRIDE; + void apply(QMapboxGL *map) override; private: QMapboxGLStyleAddImage() = default; @@ -190,4 +190,17 @@ QImage m_sprite; }; +class QMapboxGLMapMargins : public QMapboxGLStyleChange +{ +public: + static QSharedPointer fromMapParameter(QGeoMapParameter *); + + void apply(QMapboxGL *map) override; + +private: + QMapboxGLMapMargins() = default; + + QMargins m_margins; +}; + #endif // QQMAPBOXGLSTYLECHANGE_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapboxgl/qsgmapboxglnode.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapboxgl/qsgmapboxglnode.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapboxgl/qsgmapboxglnode.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapboxgl/qsgmapboxglnode.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -62,10 +62,10 @@ { const QSize& minSize = size.expandedTo(minTextureSize); const QSize fbSize = minSize * pixelRatio; - m_map->resize(minSize, fbSize); + m_map->resize(minSize); m_fbo.reset(new QOpenGLFramebufferObject(fbSize, QOpenGLFramebufferObject::CombinedDepthStencil)); - m_map->setFramebufferObject(m_fbo->handle()); + m_map->setFramebufferObject(m_fbo->handle(), fbSize); QSGPlainTexture *fboTexture = static_cast(texture()); if (!fboTexture) { diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapboxgl/qsgmapboxglnode.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapboxgl/qsgmapboxglnode.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/mapboxgl/qsgmapboxglnode.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/mapboxgl/qsgmapboxglnode.h 2018-06-12 18:44:12.000000000 +0000 @@ -71,8 +71,8 @@ QMapboxGL* map() const; // QSGRenderNode - void render(const RenderState *state) Q_DECL_OVERRIDE; - StateFlags changedStates() const Q_DECL_OVERRIDE; + void render(const RenderState *state) override; + StateFlags changedStates() const override; private: QScopedPointer m_map; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/nokia/nokia.pro qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/nokia/nokia.pro --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/nokia/nokia.pro 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/nokia/nokia.pro 2018-06-12 18:44:12.000000000 +0000 @@ -2,6 +2,9 @@ QT += location-private positioning-private network +QT_FOR_CONFIG += location-private +qtConfig(location-labs-plugin): DEFINES += LOCATIONLABS + HEADERS += \ qgeocodereply_nokia.h \ qgeocodejsonparser.h \ diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/nokia/placesv2/jsonparserhelpers.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/nokia/placesv2/jsonparserhelpers.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/nokia/placesv2/jsonparserhelpers.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/nokia/placesv2/jsonparserhelpers.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -233,6 +233,7 @@ collection->insert(offset + i, parseEditorial(itemObject, engine)); break; case QPlaceContent::NoType: + default: break; } } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/nokia/qgeocodingmanagerengine_nokia.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/nokia/qgeocodingmanagerengine_nokia.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/nokia/qgeocodingmanagerengine_nokia.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/nokia/qgeocodingmanagerengine_nokia.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -111,18 +111,8 @@ requestString += languageToMarc(locale().language()); bool manualBoundsRequired = false; - if (bounds.type() == QGeoShape::RectangleType) { - QGeoRectangle rect(bounds); - if (rect.isValid()) { - requestString += "&bbox="; - requestString += trimDouble(rect.topLeft().latitude()); - requestString += ","; - requestString += trimDouble(rect.topLeft().longitude()); - requestString += ";"; - requestString += trimDouble(rect.bottomRight().latitude()); - requestString += ","; - requestString += trimDouble(rect.bottomRight().longitude()); - } + if (bounds.type() == QGeoShape::UnknownType) { + manualBoundsRequired = true; } else if (bounds.type() == QGeoShape::CircleType) { QGeoCircle circ(bounds); if (circ.isValid()) { @@ -134,7 +124,17 @@ requestString += trimDouble(circ.radius()); } } else { - manualBoundsRequired = true; + QGeoRectangle rect = bounds.boundingGeoRectangle(); + if (rect.isValid()) { + requestString += "&bbox="; + requestString += trimDouble(rect.topLeft().latitude()); + requestString += ","; + requestString += trimDouble(rect.topLeft().longitude()); + requestString += ";"; + requestString += trimDouble(rect.bottomRight().latitude()); + requestString += ","; + requestString += trimDouble(rect.bottomRight().longitude()); + } } if (address.country().isEmpty()) { diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/nokia/qgeofiletilecachenokia.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/nokia/qgeofiletilecachenokia.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/nokia/qgeofiletilecachenokia.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/nokia/qgeofiletilecachenokia.h 2018-06-12 18:44:12.000000000 +0000 @@ -49,8 +49,8 @@ ~QGeoFileTileCacheNokia(); protected: - virtual QString tileSpecToFilename(const QGeoTileSpec &spec, const QString &format, const QString &directory) const Q_DECL_OVERRIDE; - virtual QGeoTileSpec filenameToTileSpec(const QString &filename) const Q_DECL_OVERRIDE; + virtual QString tileSpecToFilename(const QGeoTileSpec &spec, const QString &format, const QString &directory) const override; + virtual QGeoTileSpec filenameToTileSpec(const QString &filename) const override; QString m_ppi; }; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/nokia/qgeoroutingmanagerengine_nokia.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/nokia/qgeoroutingmanagerengine_nokia.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/nokia/qgeoroutingmanagerengine_nokia.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/nokia/qgeoroutingmanagerengine_nokia.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -233,17 +233,28 @@ baseRequest += m_token; } - int numWaypoints = request.waypoints().size(); + const QList metadata = request.waypointsMetadata(); + const QList waypoints = request.waypoints(); + int numWaypoints = waypoints.size(); if (numWaypoints < 2) return QStringList(); - + // Details: https://developer.here.com/documentation/routing/topics/resource-param-type-waypoint.html for (int i = 0;i < numWaypoints;++i) { + const QGeoCoordinate &c = waypoints.at(i); baseRequest += QStringLiteral("&waypoint"); baseRequest += QString::number(i); baseRequest += QStringLiteral("=geo!"); - baseRequest += trimDouble(request.waypoints().at(i).latitude()); + baseRequest += trimDouble(c.latitude()); baseRequest += ','; - baseRequest += trimDouble(request.waypoints().at(i).longitude()); + baseRequest += trimDouble(c.longitude()); + baseRequest += QStringLiteral(";;"); // ;; + if (metadata.size() > i) { + const QVariantMap &meta = metadata.at(i); + if (meta.contains(QStringLiteral("bearing"))) { + qreal bearing = meta.value(QStringLiteral("bearing")).toDouble(); + baseRequest += ';' + QString::number(int(bearing)); + } + } } QGeoRouteRequest::RouteOptimizations optimization = request.routeOptimization(); @@ -360,6 +371,7 @@ case QGeoRouteRequest::PublicTransitFeature: case QGeoRouteRequest::ParksFeature: case QGeoRouteRequest::MotorPoolLaneFeature: + case QGeoRouteRequest::TrafficFeature: case QGeoRouteRequest::NoFeature: break; } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/nokia/qgeotiledmap_nokia.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/nokia/qgeotiledmap_nokia.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/nokia/qgeotiledmap_nokia.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/nokia/qgeotiledmap_nokia.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -49,12 +49,12 @@ QT_BEGIN_NAMESPACE -/*! +/* Constructs a new tiled map data object, which stores the map data required by \a geoMap and makes use of the functionality provided by \a engine. */ QGeoTiledMapNokia::QGeoTiledMapNokia(QGeoTiledMappingManagerEngineNokia *engine, QObject *parent /*= 0*/) : - QGeoTiledMap(engine, parent), + Map(engine, parent), m_logo(":/nokia/logo.png"), // HERE logo image m_engine(engine) {} diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/nokia/qgeotiledmap_nokia.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/nokia/qgeotiledmap_nokia.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/nokia/qgeotiledmap_nokia.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/nokia/qgeotiledmap_nokia.h 2018-06-12 18:44:12.000000000 +0000 @@ -40,12 +40,18 @@ #include "qgeotiledmap_p.h" #include #include +#ifdef LOCATIONLABS +#include +typedef QGeoTiledMapLabs Map; +#else +typedef QGeoTiledMap Map; +#endif QT_BEGIN_NAMESPACE class QGeoTiledMappingManagerEngineNokia; -class QGeoTiledMapNokia: public QGeoTiledMap +class QGeoTiledMapNokia: public Map { Q_OBJECT public: diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/nokia/qgeotiledmappingmanagerengine_nokia.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/nokia/qgeotiledmappingmanagerengine_nokia.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/nokia/qgeotiledmappingmanagerengine_nokia.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/nokia/qgeotiledmappingmanagerengine_nokia.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -90,29 +90,30 @@ setTileSize(QSize(256, 256)); + int mapId = 0; const QByteArray pluginName = "here"; QList types; - types << QGeoMapType(QGeoMapType::StreetMap, tr("Street Map"), tr("Normal map view in daylight mode"), false, false, 1, pluginName); - types << QGeoMapType(QGeoMapType::SatelliteMapDay, tr("Satellite Map"), tr("Satellite map view in daylight mode"), false, false, 2, pluginName); - types << QGeoMapType(QGeoMapType::TerrainMap, tr("Terrain Map"), tr("Terrain map view in daylight mode"), false, false, 3, pluginName); - types << QGeoMapType(QGeoMapType::HybridMap, tr("Hybrid Map"), tr("Satellite map view with streets in daylight mode"), false, false, 4, pluginName); - types << QGeoMapType(QGeoMapType::TransitMap, tr("Transit Map"), tr("Color-reduced map view with public transport scheme in daylight mode"), false, false, 5, pluginName); - types << QGeoMapType(QGeoMapType::GrayStreetMap, tr("Gray Street Map"), tr("Color-reduced map view in daylight mode"), false, false, 6, pluginName); - types << QGeoMapType(QGeoMapType::StreetMap, tr("Mobile Street Map"), tr("Mobile normal map view in daylight mode"), true, false, 7, pluginName); - types << QGeoMapType(QGeoMapType::TerrainMap, tr("Mobile Terrain Map"), tr("Mobile terrain map view in daylight mode"), true, false, 8, pluginName); - types << QGeoMapType(QGeoMapType::HybridMap, tr("Mobile Hybrid Map"), tr("Mobile satellite map view with streets in daylight mode"), true, false, 9, pluginName); - types << QGeoMapType(QGeoMapType::TransitMap, tr("Mobile Transit Map"), tr("Mobile color-reduced map view with public transport scheme in daylight mode"), true, false, 10, pluginName); - types << QGeoMapType(QGeoMapType::GrayStreetMap, tr("Mobile Gray Street Map"), tr("Mobile color-reduced map view in daylight mode"), true, false, 11, pluginName); - types << QGeoMapType(QGeoMapType::StreetMap, tr("Custom Street Map"), tr("Normal map view in daylight mode"), false, false, 12, pluginName); - types << QGeoMapType(QGeoMapType::StreetMap, tr("Night Street Map"), tr("Normal map view in night mode"), false, true, 13, pluginName); - types << QGeoMapType(QGeoMapType::StreetMap, tr("Mobile Night Street Map"), tr("Mobile normal map view in night mode"), true, true, 14, pluginName); - types << QGeoMapType(QGeoMapType::GrayStreetMap, tr("Gray Night Street Map"), tr("Color-reduced map view in night mode (especially used for background maps)"), false, true, 15, pluginName); - types << QGeoMapType(QGeoMapType::GrayStreetMap, tr("Mobile Gray Night Street Map"), tr("Mobile color-reduced map view in night mode (especially used for background maps)"), true, true, 16, pluginName); - types << QGeoMapType(QGeoMapType::PedestrianMap, tr("Pedestrian Street Map"), tr("Pedestrian map view in daylight mode"), false, false, 17, pluginName); - types << QGeoMapType(QGeoMapType::PedestrianMap, tr("Mobile Pedestrian Street Map"), tr("Mobile pedestrian map view in daylight mode for mobile usage"), true, false, 18, pluginName); - types << QGeoMapType(QGeoMapType::PedestrianMap, tr("Pedestrian Night Street Map"), tr("Pedestrian map view in night mode"), false, true, 19, pluginName); - types << QGeoMapType(QGeoMapType::PedestrianMap, tr("Mobile Pedestrian Night Street Map"), tr("Mobile pedestrian map view in night mode for mobile usage"), true, true, 20, pluginName); - types << QGeoMapType(QGeoMapType::CarNavigationMap, tr("Car Navigation Map"), tr("Normal map view in daylight mode for car navigation"), false, false, 21, pluginName); + types << QGeoMapType(QGeoMapType::StreetMap, tr("Street Map"), tr("Normal map view in daylight mode"), false, false, ++mapId, pluginName, capabilities); + types << QGeoMapType(QGeoMapType::SatelliteMapDay, tr("Satellite Map"), tr("Satellite map view in daylight mode"), false, false, ++mapId, pluginName, capabilities); + types << QGeoMapType(QGeoMapType::TerrainMap, tr("Terrain Map"), tr("Terrain map view in daylight mode"), false, false, ++mapId, pluginName, capabilities); + types << QGeoMapType(QGeoMapType::HybridMap, tr("Hybrid Map"), tr("Satellite map view with streets in daylight mode"), false, false, ++mapId, pluginName, capabilities); + types << QGeoMapType(QGeoMapType::TransitMap, tr("Transit Map"), tr("Color-reduced map view with public transport scheme in daylight mode"), false, false, ++mapId, pluginName, capabilities); + types << QGeoMapType(QGeoMapType::GrayStreetMap, tr("Gray Street Map"), tr("Color-reduced map view in daylight mode"), false, false, ++mapId, pluginName, capabilities); + types << QGeoMapType(QGeoMapType::StreetMap, tr("Mobile Street Map"), tr("Mobile normal map view in daylight mode"), true, false, ++mapId, pluginName, capabilities); + types << QGeoMapType(QGeoMapType::TerrainMap, tr("Mobile Terrain Map"), tr("Mobile terrain map view in daylight mode"), true, false, ++mapId, pluginName, capabilities); + types << QGeoMapType(QGeoMapType::HybridMap, tr("Mobile Hybrid Map"), tr("Mobile satellite map view with streets in daylight mode"), true, false, ++mapId, pluginName, capabilities); + types << QGeoMapType(QGeoMapType::TransitMap, tr("Mobile Transit Map"), tr("Mobile color-reduced map view with public transport scheme in daylight mode"), true, false, ++mapId, pluginName, capabilities); + types << QGeoMapType(QGeoMapType::GrayStreetMap, tr("Mobile Gray Street Map"), tr("Mobile color-reduced map view in daylight mode"), true, false, ++mapId, pluginName, capabilities); + types << QGeoMapType(QGeoMapType::StreetMap, tr("Custom Street Map"), tr("Normal map view in daylight mode"), false, false, ++mapId, pluginName, capabilities); + types << QGeoMapType(QGeoMapType::StreetMap, tr("Night Street Map"), tr("Normal map view in night mode"), false, true, ++mapId, pluginName, capabilities); + types << QGeoMapType(QGeoMapType::StreetMap, tr("Mobile Night Street Map"), tr("Mobile normal map view in night mode"), true, true, ++mapId, pluginName, capabilities); + types << QGeoMapType(QGeoMapType::GrayStreetMap, tr("Gray Night Street Map"), tr("Color-reduced map view in night mode (especially used for background maps)"), false, true, ++mapId, pluginName, capabilities); + types << QGeoMapType(QGeoMapType::GrayStreetMap, tr("Mobile Gray Night Street Map"), tr("Mobile color-reduced map view in night mode (especially used for background maps)"), true, true, ++mapId, pluginName, capabilities); + types << QGeoMapType(QGeoMapType::PedestrianMap, tr("Pedestrian Street Map"), tr("Pedestrian map view in daylight mode"), false, false, ++mapId, pluginName, capabilities); + types << QGeoMapType(QGeoMapType::PedestrianMap, tr("Mobile Pedestrian Street Map"), tr("Mobile pedestrian map view in daylight mode for mobile usage"), true, false, ++mapId, pluginName, capabilities); + types << QGeoMapType(QGeoMapType::PedestrianMap, tr("Pedestrian Night Street Map"), tr("Pedestrian map view in night mode"), false, true, ++mapId, pluginName, capabilities); + types << QGeoMapType(QGeoMapType::PedestrianMap, tr("Mobile Pedestrian Night Street Map"), tr("Mobile pedestrian map view in night mode for mobile usage"), true, true, ++mapId, pluginName, capabilities); + types << QGeoMapType(QGeoMapType::CarNavigationMap, tr("Car Navigation Map"), tr("Normal map view in daylight mode for car navigation"), false, false, ++mapId, pluginName, capabilities); setSupportedMapTypes(types); QGeoTileFetcherNokia *fetcher = new QGeoTileFetcherNokia(parameters, networkManager, this, tileSize(), ppi); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/nokia/qgeouriprovider.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/nokia/qgeouriprovider.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/nokia/qgeouriprovider.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/nokia/qgeouriprovider.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -37,6 +37,7 @@ #include #include +#include #include #include @@ -60,7 +61,7 @@ QString QGeoUriProvider::getCurrentHost() const { if (m_maxSubdomains) { - QString result(m_firstSubdomain.toLatin1() + qrand() % m_maxSubdomains); + QString result(m_firstSubdomain.toLatin1() + QRandomGenerator::global()->bounded(m_maxSubdomains)); result += '.' + m_currentHost; return result; } @@ -81,9 +82,9 @@ } } -void QGeoUriProvider::mobileCountryCodeChanged(int interface, const QString& mcc) +void QGeoUriProvider::mobileCountryCodeChanged(int interfaceId, const QString& mcc) { - Q_UNUSED(interface) + Q_UNUSED(interfaceId) Q_UNUSED(mcc) setCurrentHost(isInternationalNetwork() || m_localizedHost.isEmpty() ? m_internationalHost : m_localizedHost); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/nokia/qgeouriprovider.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/nokia/qgeouriprovider.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/nokia/qgeouriprovider.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/nokia/qgeouriprovider.h 2018-06-12 18:44:12.000000000 +0000 @@ -58,7 +58,7 @@ QString getCurrentHost() const; private Q_SLOTS: - void mobileCountryCodeChanged(int interface, const QString& mcc); + void mobileCountryCodeChanged(int interfaceId, const QString& mcc); private: bool isInternationalNetwork() const; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/nokia/qplacemanagerengine_nokiav2.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/nokia/qplacemanagerengine_nokiav2.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/nokia/qplacemanagerengine_nokiav2.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/nokia/qplacemanagerengine_nokiav2.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -313,6 +313,7 @@ networkReply = sendRequest(requestUrl); break; case QPlaceContent::NoType: + default: ; } } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/nokia/qplacemanagerengine_nokiav2.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/nokia/qplacemanagerengine_nokiav2.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/nokia/qplacemanagerengine_nokiav2.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/nokia/qplacemanagerengine_nokiav2.h 2018-06-12 18:44:12.000000000 +0000 @@ -71,33 +71,33 @@ QString *errorString); ~QPlaceManagerEngineNokiaV2(); - QPlaceDetailsReply *getPlaceDetails(const QString &placeId) Q_DECL_OVERRIDE; + QPlaceDetailsReply *getPlaceDetails(const QString &placeId) override; - QPlaceContentReply *getPlaceContent(const QPlaceContentRequest &request) Q_DECL_OVERRIDE; + QPlaceContentReply *getPlaceContent(const QPlaceContentRequest &request) override; - QPlaceSearchReply *search(const QPlaceSearchRequest &query) Q_DECL_OVERRIDE; + QPlaceSearchReply *search(const QPlaceSearchRequest &query) override; - QPlaceSearchSuggestionReply *searchSuggestions(const QPlaceSearchRequest &query) Q_DECL_OVERRIDE; + QPlaceSearchSuggestionReply *searchSuggestions(const QPlaceSearchRequest &query) override; - QPlaceIdReply *savePlace(const QPlace &place) Q_DECL_OVERRIDE; - QPlaceIdReply *removePlace(const QString &placeId) Q_DECL_OVERRIDE; + QPlaceIdReply *savePlace(const QPlace &place) override; + QPlaceIdReply *removePlace(const QString &placeId) override; - QPlaceIdReply *saveCategory(const QPlaceCategory &category, const QString &parentId) Q_DECL_OVERRIDE; - QPlaceIdReply *removeCategory(const QString &categoryId) Q_DECL_OVERRIDE; + QPlaceIdReply *saveCategory(const QPlaceCategory &category, const QString &parentId) override; + QPlaceIdReply *removeCategory(const QString &categoryId) override; - QPlaceReply *initializeCategories() Q_DECL_OVERRIDE; - QString parentCategoryId(const QString &categoryId) const Q_DECL_OVERRIDE; - QStringList childCategoryIds(const QString &categoryId) const Q_DECL_OVERRIDE; - QPlaceCategory category(const QString &categoryId) const Q_DECL_OVERRIDE; - QList childCategories(const QString &parentId) const Q_DECL_OVERRIDE; + QPlaceReply *initializeCategories() override; + QString parentCategoryId(const QString &categoryId) const override; + QStringList childCategoryIds(const QString &categoryId) const override; + QPlaceCategory category(const QString &categoryId) const override; + QList childCategories(const QString &parentId) const override; - QList locales() const Q_DECL_OVERRIDE; - void setLocales(const QList &locales) Q_DECL_OVERRIDE; + QList locales() const override; + void setLocales(const QList &locales) override; QPlaceIcon icon(const QString &remotePath, const QList &categories = QList()) const; - QUrl constructIconUrl(const QPlaceIcon &icon, const QSize &size) const Q_DECL_OVERRIDE; + QUrl constructIconUrl(const QPlaceIcon &icon, const QSize &size) const override; private: QNetworkReply *sendRequest(const QUrl &url); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/osm.pro qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/osm.pro --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/osm.pro 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/osm.pro 2018-06-12 18:44:12.000000000 +0000 @@ -2,6 +2,9 @@ QT += location-private positioning-private network concurrent +QT_FOR_CONFIG += location-private +qtConfig(location-labs-plugin): DEFINES += LOCATIONLABS + HEADERS += \ qgeoserviceproviderpluginosm.h \ qgeotiledmappingmanagerengineosm.h \ diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qgeocodingmanagerengineosm.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qgeocodingmanagerengineosm.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qgeocodingmanagerengineosm.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qgeocodingmanagerengineosm.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -83,7 +83,7 @@ if (parameters.contains(QStringLiteral("osm.geocoding.host"))) m_urlPrefix = parameters.value(QStringLiteral("osm.geocoding.host")).toString().toLatin1(); else - m_urlPrefix = QStringLiteral("http://nominatim.openstreetmap.org"); + m_urlPrefix = QStringLiteral("https://nominatim.openstreetmap.org"); *error = QGeoServiceProvider::NoError; errorString->clear(); @@ -111,8 +111,8 @@ query.addQueryItem(QStringLiteral("format"), QStringLiteral("json")); query.addQueryItem(QStringLiteral("accept-language"), locale().name().left(2)); //query.addQueryItem(QStringLiteral("countrycodes"), QStringLiteral("au,jp")); - if (bounds.type() == QGeoShape::RectangleType) { - query.addQueryItem(QStringLiteral("viewbox"), boundingBoxToLtrb(bounds)); + if (bounds.type() != QGeoShape::UnknownType) { + query.addQueryItem(QStringLiteral("viewbox"), boundingBoxToLtrb(bounds.boundingGeoRectangle())); query.addQueryItem(QStringLiteral("bounded"), QStringLiteral("1")); } query.addQueryItem(QStringLiteral("polygon_geojson"), QStringLiteral("1")); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qgeocodingmanagerengineosm.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qgeocodingmanagerengineosm.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qgeocodingmanagerengineosm.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qgeocodingmanagerengineosm.h 2018-06-12 18:44:12.000000000 +0000 @@ -57,11 +57,11 @@ QString *errorString); ~QGeoCodingManagerEngineOsm(); - QGeoCodeReply *geocode(const QGeoAddress &address, const QGeoShape &bounds) Q_DECL_OVERRIDE; + QGeoCodeReply *geocode(const QGeoAddress &address, const QGeoShape &bounds) override; QGeoCodeReply *geocode(const QString &address, int limit, int offset, - const QGeoShape &bounds) Q_DECL_OVERRIDE; + const QGeoShape &bounds) override; QGeoCodeReply *reverseGeocode(const QGeoCoordinate &coordinate, - const QGeoShape &bounds) Q_DECL_OVERRIDE; + const QGeoShape &bounds) override; private Q_SLOTS: void replyFinished(); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qgeofiletilecacheosm.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qgeofiletilecacheosm.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qgeofiletilecacheosm.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qgeofiletilecacheosm.h 2018-06-12 18:44:12.000000000 +0000 @@ -55,7 +55,7 @@ QObject *parent = 0); ~QGeoFileTileCacheOsm(); - QSharedPointer get(const QGeoTileSpec &spec) Q_DECL_OVERRIDE; + QSharedPointer get(const QGeoTileSpec &spec) override; Q_SIGNALS: void mapDataUpdated(int mapId); @@ -65,9 +65,9 @@ void onProviderResolutionError(const QGeoTileProviderOsm *provider, QNetworkReply::NetworkError error); protected: - void init() Q_DECL_OVERRIDE; - QString tileSpecToFilename(const QGeoTileSpec &spec, const QString &format, const QString &directory) const Q_DECL_OVERRIDE; - QGeoTileSpec filenameToTileSpec(const QString &filename) const Q_DECL_OVERRIDE; + void init() override; + QString tileSpecToFilename(const QGeoTileSpec &spec, const QString &format, const QString &directory) const override; + QGeoTileSpec filenameToTileSpec(const QString &filename) const override; QSharedPointer getFromOfflineStorage(const QGeoTileSpec &spec); void dropTiles(int mapId); void loadTiles(int mapId); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qgeotiledmaposm.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qgeotiledmaposm.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qgeotiledmaposm.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qgeotiledmaposm.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -46,7 +46,7 @@ QT_BEGIN_NAMESPACE QGeoTiledMapOsm::QGeoTiledMapOsm(QGeoTiledMappingManagerEngineOsm *engine, QObject *parent) -: QGeoTiledMap(engine, parent), m_mapId(-1), m_engine(engine) +: Map(engine, parent), m_mapId(-1), m_engine(engine) { // Needed because evaluateCopyrights() is only triggered if visible tiles change in the map. // It fails the first time it gets called if providers aren't resolved, and subsequent calls diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qgeotiledmaposm.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qgeotiledmaposm.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qgeotiledmaposm.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qgeotiledmaposm.h 2018-06-12 18:44:12.000000000 +0000 @@ -43,11 +43,17 @@ #include "qgeotileproviderosm.h" #include +#ifdef LOCATIONLABS +#include +typedef QGeoTiledMapLabs Map; +#else +typedef QGeoTiledMap Map; +#endif QT_BEGIN_NAMESPACE class QGeoTiledMappingManagerEngineOsm; -class QGeoTiledMapOsm: public QGeoTiledMap +class QGeoTiledMapOsm: public Map { Q_OBJECT @@ -56,7 +62,7 @@ ~QGeoTiledMapOsm(); protected: - void evaluateCopyrights(const QSet &visibleTiles) Q_DECL_OVERRIDE; + void evaluateCopyrights(const QSet &visibleTiles) override; protected Q_SLOTS: void onProviderDataUpdated(const QGeoTileProviderOsm *provider); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qgeotiledmappingmanagerengineosm.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qgeotiledmappingmanagerengineosm.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qgeotiledmappingmanagerengineosm.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qgeotiledmappingmanagerengineosm.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -164,25 +164,25 @@ /* QGeoTileProviderOsms setup */ const QByteArray pluginName = "osm"; m_providers.push_back( new QGeoTileProviderOsm( nm, - QGeoMapType(QGeoMapType::StreetMap, tr("Street Map"), tr("Street map view in daylight mode"), false, false, 1, pluginName), + QGeoMapType(QGeoMapType::StreetMap, tr("Street Map"), tr("Street map view in daylight mode"), false, false, 1, pluginName, cameraCaps), providers_street, cameraCaps )); m_providers.push_back( new QGeoTileProviderOsm( nm, - QGeoMapType(QGeoMapType::SatelliteMapDay, tr("Satellite Map"), tr("Satellite map view in daylight mode"), false, false, 2, pluginName), + QGeoMapType(QGeoMapType::SatelliteMapDay, tr("Satellite Map"), tr("Satellite map view in daylight mode"), false, false, 2, pluginName, cameraCaps), providers_satellite, cameraCaps )); m_providers.push_back( new QGeoTileProviderOsm( nm, - QGeoMapType(QGeoMapType::CycleMap, tr("Cycle Map"), tr("Cycle map view in daylight mode"), false, false, 3, pluginName), + QGeoMapType(QGeoMapType::CycleMap, tr("Cycle Map"), tr("Cycle map view in daylight mode"), false, false, 3, pluginName, cameraCaps), providers_cycle, cameraCaps )); m_providers.push_back( new QGeoTileProviderOsm( nm, - QGeoMapType(QGeoMapType::TransitMap, tr("Transit Map"), tr("Public transit map view in daylight mode"), false, false, 4, pluginName), + QGeoMapType(QGeoMapType::TransitMap, tr("Transit Map"), tr("Public transit map view in daylight mode"), false, false, 4, pluginName, cameraCaps), providers_transit, cameraCaps )); m_providers.push_back( new QGeoTileProviderOsm( nm, - QGeoMapType(QGeoMapType::TransitMap, tr("Night Transit Map"), tr("Public transit map view in night mode"), false, true, 5, pluginName), + QGeoMapType(QGeoMapType::TransitMap, tr("Night Transit Map"), tr("Public transit map view in night mode"), false, true, 5, pluginName, cameraCaps), providers_nighttransit, cameraCaps )); m_providers.push_back( new QGeoTileProviderOsm( nm, - QGeoMapType(QGeoMapType::TerrainMap, tr("Terrain Map"), tr("Terrain map view"), false, false, 6, pluginName), + QGeoMapType(QGeoMapType::TerrainMap, tr("Terrain Map"), tr("Terrain map view"), false, false, 6, pluginName, cameraCaps), providers_terrain, cameraCaps )); m_providers.push_back( new QGeoTileProviderOsm( nm, - QGeoMapType(QGeoMapType::PedestrianMap, tr("Hiking Map"), tr("Hiking map view"), false, false, 7, pluginName), + QGeoMapType(QGeoMapType::PedestrianMap, tr("Hiking Map"), tr("Hiking map view"), false, false, 7, pluginName, cameraCaps), providers_hiking, cameraCaps )); if (parameters.contains(QStringLiteral("osm.mapping.custom.host")) @@ -206,7 +206,7 @@ m_providers.push_back( new QGeoTileProviderOsm( nm, - QGeoMapType(QGeoMapType::CustomMap, tr("Custom URL Map"), tr("Custom url map view set via urlprefix parameter"), false, false, 8, pluginName), + QGeoMapType(QGeoMapType::CustomMap, tr("Custom URL Map"), tr("Custom url map view set via urlprefix parameter"), false, false, 8, pluginName, cameraCaps), { new TileProvider(tmsServer + QStringLiteral("%z/%x/%y.png"), QStringLiteral("png"), mapCopyright, @@ -352,16 +352,6 @@ return m_customCopyright; } -QGeoCameraCapabilities QGeoTiledMappingManagerEngineOsm::cameraCapabilities(int mapId) const -{ - if (mapId == 0) - return QGeoMappingManagerEngine::cameraCapabilities(mapId); - int idx = mapId - 1; - if (idx >= m_providers.size()) - return QGeoMappingManagerEngine::cameraCapabilities(mapId); - return m_providers[idx]->cameraCapabilities(); -} - void QGeoTiledMappingManagerEngineOsm::onProviderResolutionFinished(const QGeoTileProviderOsm *provider) { if (!provider->isResolved()) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qgeotiledmappingmanagerengineosm.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qgeotiledmappingmanagerengineosm.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qgeotiledmappingmanagerengineosm.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qgeotiledmappingmanagerengineosm.h 2018-06-12 18:44:12.000000000 +0000 @@ -62,7 +62,6 @@ QGeoMap *createMap() override; const QVector &providers(); QString customCopyright() const; - QGeoCameraCapabilities cameraCapabilities(int mapId) const override; protected Q_SLOTS: void onProviderResolutionFinished(const QGeoTileProviderOsm *provider); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qgeotilefetcherosm.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qgeotilefetcherosm.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qgeotilefetcherosm.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qgeotilefetcherosm.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -146,14 +146,14 @@ if (id < 1 || id > m_providers.size()) { qWarning("Unknown map id %d\n", spec.mapId()); if (m_providers.isEmpty()) - return Q_NULLPTR; + return nullptr; else id = 1; } id -= 1; // TODO: make OSM map ids start from 0. if (spec.zoom() > m_providers[id]->maximumZoomLevel() || spec.zoom() < m_providers[id]->minimumZoomLevel()) - return Q_NULLPTR; + return nullptr; const QUrl url = m_providers[id]->tileAddress(spec.x(), spec.y(), spec.zoom()); QNetworkRequest request; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qgeotilefetcherosm.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qgeotilefetcherosm.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qgeotilefetcherosm.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qgeotilefetcherosm.h 2018-06-12 18:44:12.000000000 +0000 @@ -67,7 +67,7 @@ void providerDataUpdated(const QGeoTileProviderOsm *provider); protected: - bool initialized() const Q_DECL_OVERRIDE; + bool initialized() const override; protected Q_SLOTS: void onProviderResolutionFinished(const QGeoTileProviderOsm *provider); @@ -75,7 +75,7 @@ void restartTimer(); private: - QGeoTiledMapReply *getTileImage(const QGeoTileSpec &spec) Q_DECL_OVERRIDE; + QGeoTiledMapReply *getTileImage(const QGeoTileSpec &spec) override; void readyUpdated(); QByteArray m_userAgent; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qgeotileproviderosm.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qgeotileproviderosm.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qgeotileproviderosm.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qgeotileproviderosm.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -236,7 +236,8 @@ m_cameraCapabilities.setMinimumZoomLevel(minimumZoomLevel()); m_cameraCapabilities.setMaximumZoomLevel(maximumZoomLevel()); - // Pushing the change + m_mapType = QGeoMapType(m_mapType.style(), m_mapType.name(), m_mapType.description(), m_mapType.mobile(), + m_mapType.night(), m_mapType.mapId(), m_mapType.pluginName(), m_cameraCapabilities); } void QGeoTileProviderOsm::addProvider(TileProvider *provider) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qplacemanagerengineosm.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qplacemanagerengineosm.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qplacemanagerengineosm.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qplacemanagerengineosm.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -108,6 +108,14 @@ else m_urlPrefix = QStringLiteral("http://nominatim.openstreetmap.org/search"); + + if (parameters.contains(QStringLiteral("osm.places.debug_query"))) + m_debugQuery = parameters.value(QStringLiteral("osm.places.debug_query")).toBool(); + + if (parameters.contains(QStringLiteral("osm.places.page_size")) + && parameters.value(QStringLiteral("osm.places.page_size")).canConvert()) + m_pageSize = parameters.value(QStringLiteral("osm.places.page_size")).toInt(); + *error = QGeoServiceProvider::NoError; errorString->clear(); } @@ -134,25 +142,7 @@ //queryItems.addQueryItem(QStringLiteral("accept-language"), QStringLiteral("en")); - QGeoRectangle boundingBox; - QGeoShape searchArea = request.searchArea(); - switch (searchArea.type()) { - case QGeoShape::CircleType: { - QGeoCircle c(searchArea); - qreal radius = c.radius(); - if (radius < 0) - radius = 50000; - - boundingBox = QGeoRectangle(c.center().atDistanceAndAzimuth(radius, -45), - c.center().atDistanceAndAzimuth(radius, 135)); - break; - } - case QGeoShape::RectangleType: - boundingBox = searchArea; - break; - default: - ; - } + QGeoRectangle boundingBox = request.searchArea().boundingGeoRectangle(); if (!boundingBox.isEmpty()) { queryItems.addQueryItem(QStringLiteral("bounded"), QStringLiteral("1")); @@ -185,17 +175,24 @@ queryItems.addQueryItem(QStringLiteral("exclude_place_ids"), placeIds.join(QLatin1Char(','))); queryItems.addQueryItem(QStringLiteral("addressdetails"), QStringLiteral("1")); + queryItems.addQueryItem(QStringLiteral("limit"), (request.limit() > 0) ? QString::number(request.limit()) + : QString::number(m_pageSize)); QUrl requestUrl(m_urlPrefix); requestUrl.setQuery(queryItems); - QNetworkReply *networkReply = m_networkManager->get(QNetworkRequest(requestUrl)); + QNetworkRequest rq(requestUrl); + rq.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); + QNetworkReply *networkReply = m_networkManager->get(rq); QPlaceSearchReplyOsm *reply = new QPlaceSearchReplyOsm(request, networkReply, this); connect(reply, SIGNAL(finished()), this, SLOT(replyFinished())); connect(reply, SIGNAL(error(QPlaceReply::Error,QString)), this, SLOT(replyError(QPlaceReply::Error,QString))); + if (m_debugQuery) + reply->requestUrl = requestUrl.toString(); + return reply; } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qplacemanagerengineosm.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qplacemanagerengineosm.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qplacemanagerengineosm.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qplacemanagerengineosm.h 2018-06-12 18:44:12.000000000 +0000 @@ -58,17 +58,17 @@ QString *errorString); ~QPlaceManagerEngineOsm(); - QPlaceSearchReply *search(const QPlaceSearchRequest &request) Q_DECL_OVERRIDE; + QPlaceSearchReply *search(const QPlaceSearchRequest &request) override; - QPlaceReply *initializeCategories() Q_DECL_OVERRIDE; - QString parentCategoryId(const QString &categoryId) const Q_DECL_OVERRIDE; - QStringList childCategoryIds(const QString &categoryId) const Q_DECL_OVERRIDE; - QPlaceCategory category(const QString &categoryId) const Q_DECL_OVERRIDE; + QPlaceReply *initializeCategories() override; + QString parentCategoryId(const QString &categoryId) const override; + QStringList childCategoryIds(const QString &categoryId) const override; + QPlaceCategory category(const QString &categoryId) const override; - QList childCategories(const QString &parentId) const Q_DECL_OVERRIDE; + QList childCategories(const QString &parentId) const override; - QList locales() const Q_DECL_OVERRIDE; - void setLocales(const QList &locales) Q_DECL_OVERRIDE; + QList locales() const override; + void setLocales(const QList &locales) override; private slots: void categoryReplyFinished(); @@ -83,6 +83,8 @@ QByteArray m_userAgent; QString m_urlPrefix; QList m_locales; + bool m_debugQuery = false; + int m_pageSize = 50; // the default page size of the public nominatim server QNetworkReply *m_categoriesReply; QList m_pendingCategoriesReply; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qplacesearchreplyosm.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qplacesearchreplyosm.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qplacesearchreplyosm.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qplacesearchreplyosm.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -192,6 +192,13 @@ place.setName(title); + if (!requestUrl.isEmpty()) { + QPlaceAttribute attribute; + attribute.setLabel("requestUrl"); + attribute.setText(requestUrl); + place.setExtendedAttribute("requestUrl", attribute); + } + QGeoAddress address; address.setCity(addressDetails.value(QStringLiteral("city")).toString()); address.setCountry(addressDetails.value(QStringLiteral("country")).toString()); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qplacesearchreplyosm.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qplacesearchreplyosm.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/geoservices/osm/qplacesearchreplyosm.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/geoservices/osm/qplacesearchreplyosm.h 2018-06-12 18:44:12.000000000 +0000 @@ -58,6 +58,8 @@ QPlaceManagerEngineOsm *parent); ~QPlaceSearchReplyOsm(); + QString requestUrl; + private slots: void setError(QPlaceReply::Error errorCode, const QString &errorString); void replyFinished(); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/android/jar/bundledjar.pro qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/android/jar/bundledjar.pro --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/android/jar/bundledjar.pro 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/android/jar/bundledjar.pro 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -TARGET = QtPositioning-bundled -CONFIG += bundled_jar_file -include(jar.pri) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/android/jar/distributedjar.pro qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/android/jar/distributedjar.pro --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/android/jar/distributedjar.pro 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/android/jar/distributedjar.pro 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -TARGET = QtPositioning -include(jar.pri) - diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/android/jar/jar.pri qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/android/jar/jar.pri --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/android/jar/jar.pri 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/android/jar/jar.pri 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ -load(qt_build_paths) - -CONFIG += java -DESTDIR = $$MODULE_BASE_OUTDIR/jar - -JAVACLASSPATH += $$PWD/src - -JAVASOURCES += \ - $$PWD/src/org/qtproject/qt5/android/positioning/QtPositioning.java - -# install -target.path = $$[QT_INSTALL_PREFIX]/jar -INSTALLS += target - diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/android/jar/jar.pro qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/android/jar/jar.pro --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/android/jar/jar.pro 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/android/jar/jar.pro 2018-06-12 18:44:12.000000000 +0000 @@ -1,2 +1,16 @@ -TEMPLATE = subdirs -SUBDIRS += bundledjar.pro distributedjar.pro +TARGET = QtPositioning + +load(qt_build_paths) + +CONFIG += java +DESTDIR = $$MODULE_BASE_OUTDIR/jar + +JAVACLASSPATH += $$PWD/src + +JAVASOURCES += \ + $$PWD/src/org/qtproject/qt5/android/positioning/QtPositioning.java + +# install +target.path = $$[QT_INSTALL_PREFIX]/jar +INSTALLS += target + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/android/src/jnipositioning.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/android/src/jnipositioning.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/android/src/jnipositioning.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/android/src/jnipositioning.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -40,6 +40,7 @@ #include #include #include +#include #include #include #include @@ -100,7 +101,6 @@ { static bool firstInit = true; if (firstInit) { - qsrand( QDateTime::currentMSecsSinceEpoch() / 1000 ); firstInit = false; } @@ -109,7 +109,7 @@ QGeoPositionInfoSourceAndroid *src = qobject_cast(obj); Q_ASSERT(src); do { - key = qrand(); + key = QRandomGenerator::global()->generate(); } while (idToPosSource()->contains(key)); idToPosSource()->insert(key, src); @@ -117,7 +117,7 @@ QGeoSatelliteInfoSourceAndroid *src = qobject_cast(obj); Q_ASSERT(src); do { - key = qrand(); + key = QRandomGenerator::global()->generate(); } while (idToSatSource()->contains(key)); idToSatSource()->insert(key, src); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/android/src/qgeopositioninfosource_android.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/android/src/qgeopositioninfosource_android.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/android/src/qgeopositioninfosource_android.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/android/src/qgeopositioninfosource_android.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -42,14 +42,12 @@ //#include #include -Q_DECLARE_METATYPE(QGeoPositionInfo) #define UPDATE_FROM_COLD_START 2*60*1000 QGeoPositionInfoSourceAndroid::QGeoPositionInfoSourceAndroid(QObject *parent) : QGeoPositionInfoSource(parent), updatesRunning(false), m_error(NoError), m_requestTimer(this) { - qRegisterMetaType< QGeoPositionInfo >(); androidClassKeyForUpdate = AndroidPositioning::registerPositionInfoSource(this); androidClassKeyForSingleRequest = AndroidPositioning::registerPositionInfoSource(this); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/corelocation/corelocation.pro qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/corelocation/corelocation.pro --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/corelocation/corelocation.pro 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/corelocation/corelocation.pro 2018-06-12 18:44:12.000000000 +0000 @@ -15,6 +15,10 @@ LIBS += -framework Foundation -framework CoreLocation +!darwin { + DISTFILES += $$OBJECTIVE_SOURCES +} + PLUGIN_TYPE = position PLUGIN_CLASS_NAME = QGeoPositionInfoSourceFactoryCL load(qt_plugin) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/geoclue/qgeopositioninfosourcefactory_geoclue.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/geoclue/qgeopositioninfosourcefactory_geoclue.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/geoclue/qgeopositioninfosourcefactory_geoclue.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/geoclue/qgeopositioninfosourcefactory_geoclue.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -45,15 +45,12 @@ #include -Q_DECLARE_METATYPE(QGeoPositionInfo) - Q_LOGGING_CATEGORY(lcPositioningGeoclue, "qt.positioning.geoclue") QT_BEGIN_NAMESPACE QGeoPositionInfoSource *QGeoPositionInfoSourceFactoryGeoclue::positionInfoSource(QObject *parent) { - qRegisterMetaType(); return new QGeoPositionInfoSourceGeoclueMaster(parent); } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/geoclue/qgeopositioninfosourcefactory_geoclue.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/geoclue/qgeopositioninfosourcefactory_geoclue.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/geoclue/qgeopositioninfosourcefactory_geoclue.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/geoclue/qgeopositioninfosourcefactory_geoclue.h 2018-06-12 18:44:12.000000000 +0000 @@ -60,9 +60,9 @@ Q_INTERFACES(QGeoPositionInfoSourceFactory) public: - QGeoPositionInfoSource *positionInfoSource(QObject *parent) Q_DECL_OVERRIDE; - QGeoSatelliteInfoSource *satelliteInfoSource(QObject *parent) Q_DECL_OVERRIDE; - QGeoAreaMonitorSource *areaMonitor(QObject *parent) Q_DECL_OVERRIDE; + QGeoPositionInfoSource *positionInfoSource(QObject *parent) override; + QGeoSatelliteInfoSource *satelliteInfoSource(QObject *parent) override; + QGeoAreaMonitorSource *areaMonitor(QObject *parent) override; }; QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/geoclue/qgeosatelliteinfosource_geocluemaster.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/geoclue/qgeosatelliteinfosource_geocluemaster.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/geoclue/qgeosatelliteinfosource_geocluemaster.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/geoclue/qgeosatelliteinfosource_geocluemaster.h 2018-06-12 18:44:12.000000000 +0000 @@ -61,14 +61,14 @@ explicit QGeoSatelliteInfoSourceGeoclueMaster(QObject *parent = 0); ~QGeoSatelliteInfoSourceGeoclueMaster(); - int minimumUpdateInterval() const Q_DECL_OVERRIDE; - void setUpdateInterval(int msec) Q_DECL_OVERRIDE; + int minimumUpdateInterval() const override; + void setUpdateInterval(int msec) override; - Error error() const Q_DECL_OVERRIDE; + Error error() const override; - void startUpdates() Q_DECL_OVERRIDE; - void stopUpdates() Q_DECL_OVERRIDE; - void requestUpdate(int timeout = 0) Q_DECL_OVERRIDE; + void startUpdates() override; + void stopUpdates() override; + void requestUpdate(int timeout = 0) override; private slots: void positionProviderChanged(const QString &name, const QString &description, diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/positionpoll/qgeoareamonitor_polling.h qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/positionpoll/qgeoareamonitor_polling.h --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/positionpoll/qgeoareamonitor_polling.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/positionpoll/qgeoareamonitor_polling.h 2018-06-12 18:44:12.000000000 +0000 @@ -57,20 +57,20 @@ explicit QGeoAreaMonitorPolling(QObject *parent = 0); ~QGeoAreaMonitorPolling(); - void setPositionInfoSource(QGeoPositionInfoSource *source) Q_DECL_OVERRIDE; - QGeoPositionInfoSource* positionInfoSource() const Q_DECL_OVERRIDE; + void setPositionInfoSource(QGeoPositionInfoSource *source) override; + QGeoPositionInfoSource* positionInfoSource() const override; - Error error() const Q_DECL_OVERRIDE; + Error error() const override; - bool startMonitoring(const QGeoAreaMonitorInfo &monitor) Q_DECL_OVERRIDE; + bool startMonitoring(const QGeoAreaMonitorInfo &monitor) override; bool requestUpdate(const QGeoAreaMonitorInfo &monitor, - const char *signal) Q_DECL_OVERRIDE; - bool stopMonitoring(const QGeoAreaMonitorInfo &monitor) Q_DECL_OVERRIDE; + const char *signal) override; + bool stopMonitoring(const QGeoAreaMonitorInfo &monitor) override; - QList activeMonitors() const Q_DECL_OVERRIDE; - QList activeMonitors(const QGeoShape ®ion) const Q_DECL_OVERRIDE; + QList activeMonitors() const override; + QList activeMonitors(const QGeoShape ®ion) const override; - QGeoAreaMonitorSource::AreaMonitorFeatures supportedAreaMonitorFeatures() const Q_DECL_OVERRIDE; + QGeoAreaMonitorSource::AreaMonitorFeatures supportedAreaMonitorFeatures() const override; inline bool isValid() { return positionInfoSource(); } @@ -85,8 +85,8 @@ QGeoAreaMonitorPollingPrivate* d; QGeoAreaMonitorSource::Error lastError; - void connectNotify(const QMetaMethod &signal) Q_DECL_OVERRIDE; - void disconnectNotify(const QMetaMethod &signal) Q_DECL_OVERRIDE; + void connectNotify(const QMetaMethod &signal) override; + void disconnectNotify(const QMetaMethod &signal) override; int idForSignal(const char *signal); }; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/position.pro qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/position.pro --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/position.pro 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/position.pro 2018-06-12 18:44:12.000000000 +0000 @@ -8,7 +8,7 @@ qtHaveModule(simulator):SUBDIRS += simulator osx|ios|tvos:SUBDIRS += corelocation android:SUBDIRS += android -win32:qtHaveModule(serialport):SUBDIRS += serialnmea +qtHaveModule(serialport):SUBDIRS += serialnmea SUBDIRS += \ positionpoll diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/serialnmea/qgeopositioninfosourcefactory_serialnmea.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/serialnmea/qgeopositioninfosourcefactory_serialnmea.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/serialnmea/qgeopositioninfosourcefactory_serialnmea.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/serialnmea/qgeopositioninfosourcefactory_serialnmea.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -111,17 +111,17 @@ QGeoPositionInfoSource *QGeoPositionInfoSourceFactorySerialNmea::positionInfoSource(QObject *parent) { QScopedPointer src(new NmeaSource(parent)); - return src->isValid() ? src.take() : Q_NULLPTR; + return src->isValid() ? src.take() : nullptr; } QGeoSatelliteInfoSource *QGeoPositionInfoSourceFactorySerialNmea::satelliteInfoSource(QObject *parent) { Q_UNUSED(parent); - return Q_NULLPTR; + return nullptr; } QGeoAreaMonitorSource *QGeoPositionInfoSourceFactorySerialNmea::areaMonitor(QObject *parent) { Q_UNUSED(parent); - return Q_NULLPTR; + return nullptr; } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -60,8 +60,6 @@ typedef IAsyncOperationCompletedHandler PositionHandler; typedef IAsyncOperationCompletedHandler AccessHandler; -Q_DECLARE_METATYPE(QGeoPositionInfo) - QT_BEGIN_NAMESPACE #ifndef Q_OS_WINRT @@ -95,8 +93,6 @@ Q_D(QGeoPositionInfoSourceWinRT); d->positionError = QGeoPositionInfoSource::NoError; d->updatesOngoing = false; - - qRegisterMetaType(); } QGeoPositionInfoSourceWinRT::~QGeoPositionInfoSourceWinRT() diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/doc/qtpositioning.qdocconf qtlocation-opensource-src-5.11.1+dfsg/src/positioning/doc/qtpositioning.qdocconf --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/doc/qtpositioning.qdocconf 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/doc/qtpositioning.qdocconf 2018-06-12 18:44:12.000000000 +0000 @@ -35,10 +35,12 @@ depends += qtcore qtdoc qtquick qtqml qtnetwork qtlocation headerdirs += .. \ - ../../imports/positioning + ../../imports/positioning \ + ../../positioningquick sourcedirs += .. \ - ../../imports/positioning + ../../imports/positioning \ + ../../positioningquick examplesinstallpath = positioning diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/doc/snippets/doc_src_qtpositioning.qml qtlocation-opensource-src-5.11.1+dfsg/src/positioning/doc/snippets/doc_src_qtpositioning.qml --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/doc/snippets/doc_src_qtpositioning.qml 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/doc/snippets/doc_src_qtpositioning.qml 2018-06-12 18:44:12.000000000 +0000 @@ -49,7 +49,7 @@ ****************************************************************************/ //! [import] -import QtPositioning 5.2 +import QtPositioning 5.11 //! [import] Item { diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/doc/src/qml-position.qdoc qtlocation-opensource-src-5.11.1+dfsg/src/positioning/doc/src/qml-position.qdoc --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/doc/src/qml-position.qdoc 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/doc/src/qml-position.qdoc 2018-06-12 18:44:12.000000000 +0000 @@ -61,18 +61,18 @@ latitude-longitude coordinate with a date/time value, with the option of providing the other attributes listed above. -\section2 Coordinate +\section2 Coordinates The \l {coordinate} is a basic unit of geographical information. The \l {coordinate} type has attributes to hold the \c {latitude}, \c longitude and \c altitude. -\section2 Position +\section2 Positions The three dimensional position of an object such as a mobile device can be specified by giving the latitude, longitude and altitude. That is the values held in the l\ {coordinate} type. Additionally for computation of future -positions we would like to know if the object is moving, what \l {Position::speed}{speed} it is +positions we would like to know if the object is moving, what \l [QML] {Position::}{speed} it is doing and what is the \l {Position::timestamp}{timestamp} of the last position data. Position therefore includes values for the \l {Position::coordinate}{coordinate}, \l {Position::speed}{speed} and a \l {Position::timestamp}{timestamp}. \l Position also takes @@ -83,7 +83,7 @@ \l {Position::verticalAccuracyValid}{verticalAccuracyValid} properties. -\section2 PositionSource +\section2 PositionSource Type We have a Position type, a \l {coordinate} type but where does the data come from? Also it is a good idea to be able to indicate alternative sources. @@ -111,7 +111,7 @@ -\section2 \b{GeoFlickr Example} +\section2 GeoFlickr Example The \l{GeoFlickr (QML)}{GeoFlickr Example} uses the Location to download thumbnail images from Flickr relevant to the current location. diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/doc/src/qtpositioning.qdoc qtlocation-opensource-src-5.11.1+dfsg/src/positioning/doc/src/qtpositioning.qdoc --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/doc/src/qtpositioning.qdoc 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/doc/src/qtpositioning.qdoc 2018-06-12 18:44:12.000000000 +0000 @@ -93,6 +93,15 @@ \code QT += positioning \endcode +\section1 Licenses + +Qt Positioning is available under commercial licenses from \l{The Qt Company}. +In addition, it is available under free software licenses. Since Qt 5.4, +these free software licenses are +\l{GNU Lesser General Public License, version 3}, or +the \l{GNU General Public License, version 2}. +See \l{Qt Licensing} for further details. + \section1 Related Information \section2 Overview diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/doc/src/qtpositioning-qml.qdoc qtlocation-opensource-src-5.11.1+dfsg/src/positioning/doc/src/qtpositioning-qml.qdoc --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/doc/src/qtpositioning-qml.qdoc 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/doc/src/qtpositioning-qml.qdoc 2018-06-12 18:44:12.000000000 +0000 @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \qmlmodule QtPositioning 5.2 + \qmlmodule QtPositioning 5.11 \title Qt Positioning QML Types \ingroup qmlmodules \brief Provides QML types for position information diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/positioning.pro qtlocation-opensource-src-5.11.1+dfsg/src/positioning/positioning.pro --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/positioning.pro 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/positioning.pro 2018-06-12 18:44:12.000000000 +0000 @@ -7,11 +7,9 @@ INCLUDEPATH += ../3rdparty/clip2tri QMAKE_DOCS = $$PWD/doc/qtpositioning.qdocconf -OTHER_FILES += doc/src/*.qdoc # show .qdoc files in Qt Creator +OTHER_FILES += configure.json doc/src/*.qdoc # show .qdoc files in Qt Creator ANDROID_BUNDLED_JAR_DEPENDENCIES = \ - jar/QtPositioning-bundled.jar:org.qtproject.qt5.android.positioning.QtPositioning -ANDROID_JAR_DEPENDENCIES = \ jar/QtPositioning.jar:org.qtproject.qt5.android.positioning.QtPositioning ANDROID_PERMISSIONS = \ android.permission.ACCESS_FINE_LOCATION @@ -38,6 +36,7 @@ qnmeapositioninfosource.h \ qgeopositioninfosourcefactory.h \ qpositioningglobal.h \ + qgeopolygon.h \ qgeopath.h \ PRIVATE_HEADERS += \ @@ -59,6 +58,7 @@ qlocationdata_simulator_p.h \ qdoublematrix4x4_p.h \ qgeopath_p.h \ + qgeocoordinateobject_p.h \ qgeopositioninfo_p.h \ qclipperutils_p.h @@ -83,10 +83,12 @@ qdoublevector2d.cpp \ qdoublevector3d.cpp \ qgeopath.cpp \ + qgeopolygon.cpp \ qlocationdata_simulator.cpp \ qwebmercator.cpp \ qdoublematrix4x4.cpp \ - qclipperutils.cpp + qclipperutils.cpp \ + qgeocoordinateobject.cpp HEADERS += $$PUBLIC_HEADERS $$PRIVATE_HEADERS diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qdoublematrix4x4_p.h qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qdoublematrix4x4_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qdoublematrix4x4_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qdoublematrix4x4_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -89,7 +89,7 @@ inline void fill(double value); double determinant() const; - QDoubleMatrix4x4 inverted(bool *invertible = Q_NULLPTR) const; + QDoubleMatrix4x4 inverted(bool *invertible = nullptr) const; QDoubleMatrix4x4 transposed() const; inline QDoubleMatrix4x4& operator+=(const QDoubleMatrix4x4& other); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qdoublevector2d_p.h qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qdoublevector2d_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qdoublevector2d_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qdoublevector2d_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -55,7 +55,7 @@ #include #endif -#include "qpositioningglobal.h" +#include "qpositioningglobal_p.h" #include #include @@ -63,7 +63,7 @@ class QDoubleVector3D; -class Q_POSITIONING_EXPORT QDoubleVector2D +class Q_POSITIONING_PRIVATE_EXPORT QDoubleVector2D { public: Q_DECL_CONSTEXPR inline QDoubleVector2D(); @@ -73,6 +73,7 @@ Q_DECL_CONSTEXPR inline double manhattanLength() const; inline bool isNull() const; + inline bool isFinite() const; Q_DECL_CONSTEXPR inline double x() const; Q_DECL_CONSTEXPR inline double y() const; @@ -136,6 +137,11 @@ return qIsNull(xp) && qIsNull(yp); } +inline bool QDoubleVector2D::isFinite() const +{ + return qIsFinite(xp) && qIsFinite(yp); +} + Q_DECL_CONSTEXPR inline double QDoubleVector2D::x() const { return xp; } Q_DECL_CONSTEXPR inline double QDoubleVector2D::y() const { return yp; } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qdoublevector3d_p.h qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qdoublevector3d_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qdoublevector3d_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qdoublevector3d_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -55,13 +55,13 @@ #include #endif -#include "qpositioningglobal.h" +#include "qpositioningglobal_p.h" #include "qdoublevector2d_p.h" #include QT_BEGIN_NAMESPACE -class Q_POSITIONING_EXPORT QDoubleVector3D +class Q_POSITIONING_PRIVATE_EXPORT QDoubleVector3D { public: Q_DECL_CONSTEXPR inline QDoubleVector3D(); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeocircle.cpp qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeocircle.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeocircle.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeocircle.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -356,8 +356,8 @@ return false; } -/*! - Extends the circle to include \a coordinate +/* + Extends the circle to include \a coordinate. */ void QGeoCirclePrivate::extendShape(const QGeoCoordinate &coordinate) { diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeocircle_p.h qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeocircle_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeocircle_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeocircle_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -64,13 +64,13 @@ QGeoCirclePrivate(const QGeoCirclePrivate &other); ~QGeoCirclePrivate(); - bool isValid() const Q_DECL_OVERRIDE; - bool isEmpty() const Q_DECL_OVERRIDE; - bool contains(const QGeoCoordinate &coordinate) const Q_DECL_OVERRIDE; + bool isValid() const override; + bool isEmpty() const override; + bool contains(const QGeoCoordinate &coordinate) const override; - QGeoCoordinate center() const Q_DECL_OVERRIDE; + QGeoCoordinate center() const override; - QGeoRectangle boundingGeoRectangle() const Q_DECL_OVERRIDE; + QGeoRectangle boundingGeoRectangle() const override; bool crossNorthPole() const; bool crossSouthPole() const; @@ -78,11 +78,11 @@ void setCenter(const QGeoCoordinate &c); void setRadius(const qreal r); - void extendShape(const QGeoCoordinate &coordinate) Q_DECL_OVERRIDE; + void extendShape(const QGeoCoordinate &coordinate) override; - QGeoShapePrivate *clone() const Q_DECL_OVERRIDE; + QGeoShapePrivate *clone() const override; - bool operator==(const QGeoShapePrivate &other) const Q_DECL_OVERRIDE; + bool operator==(const QGeoShapePrivate &other) const override; QGeoCoordinate m_center; qreal m_radius; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeocoordinate.cpp qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeocoordinate.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeocoordinate.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeocoordinate.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -291,14 +291,16 @@ } /*! - \fn bool QGeoCoordinate::operator!=(const QGeoCoordinate &other) const; + \fn bool QGeoCoordinate::operator!=(const QGeoCoordinate &other) const + \fn bool QGeoCoordinate::operator!=(const QGeoCoordinateObject &other) const + \fn bool QGeoCoordinate::operator!=(const QGeoCoordinateObject *other) const - Returns true if the latitude, longitude or altitude of this - coordinate are not the same as those of \a other. + Returns \c true if latitude, longitude, or altitude of this + coordinate are not identical to \a other. */ /*! - Returns true if the \l longitude and \l latitude are valid. + Returns \c true if the \l longitude and \l latitude are valid. */ bool QGeoCoordinate::isValid() const { diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeocoordinateobject.cpp qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeocoordinateobject.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeocoordinateobject.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeocoordinateobject.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,92 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtPositioning module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qgeocoordinateobject_p.h" + +QT_BEGIN_NAMESPACE + +/* + + Note: This class only purpose is to enable conversion between QGeoCoordinate and QDeclarativeGeoWaypoint. + Since QGeoCoordinate lives in the QtPositioning module, this class acts as a base for QDeclarativeGeoWaypoint, + and contains the bare minimum to convert/compare to a QGeoCoordinate + +*/ + +QGeoCoordinateObject::QGeoCoordinateObject(QObject *parent) : QObject(parent) +{ +} + +QGeoCoordinateObject::QGeoCoordinateObject(const QGeoCoordinate &c, QObject *parent) : QObject(parent) +{ + setCoordinate(c); +} + +QGeoCoordinateObject::~QGeoCoordinateObject() +{ + +} + +bool QGeoCoordinateObject::operator==(const QGeoCoordinateObject &other) const +{ + return m_coordinate == other.m_coordinate; +} + +bool QGeoCoordinateObject::operator==(const QGeoCoordinate &other) const +{ + return m_coordinate == other; +} + +QGeoCoordinate QGeoCoordinateObject::coordinate() const +{ + return m_coordinate; +} + +void QGeoCoordinateObject::setCoordinate(const QGeoCoordinate &c) +{ + if (c == m_coordinate) + return; + + m_coordinate = c; + emit coordinateChanged(); +} + +QT_END_NAMESPACE + + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeocoordinateobject_p.h qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeocoordinateobject_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeocoordinateobject_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeocoordinateobject_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,94 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtPositioning module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QGEOCOORDINATEOBJECT_P_H +#define QGEOCOORDINATEOBJECT_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Q_POSITIONING_PRIVATE_EXPORT QGeoCoordinateObject : public QObject +{ + Q_OBJECT + Q_PROPERTY(QGeoCoordinate coordinate READ coordinate WRITE setCoordinate NOTIFY coordinateChanged) + +public: + QGeoCoordinateObject(QObject *parent = 0); + QGeoCoordinateObject(const QGeoCoordinate &c, QObject *parent = 0); + virtual ~QGeoCoordinateObject(); + + bool operator==(const QGeoCoordinate &other) const; + bool operator==(const QGeoCoordinateObject &other) const; + inline bool operator!=(const QGeoCoordinate &other) const { + return !operator==(other); + } + inline bool operator!=(const QGeoCoordinateObject &other) const { + return !operator==(other); + } + + QGeoCoordinate coordinate() const; + void setCoordinate(const QGeoCoordinate &c); + +Q_SIGNALS: + void coordinateChanged(); + +protected: + QGeoCoordinate m_coordinate; +}; + +QT_END_NAMESPACE + +Q_DECLARE_METATYPE(QGeoCoordinateObject*) + +#endif // QGEOCOORDINATEOBJECT_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeopath.cpp qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeopath.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeopath.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeopath.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -73,15 +73,19 @@ This class is a \l Q_GADGET. It can be \l{Cpp_value_integration_positioning}{directly used from C++ and QML}. + + A QGeoPath is both invalid and empty if it contains no coordinate. + + \note A default constructed QGeoPath is both invalid and empty as it does not contain any coordinates. */ /*! \property QGeoPath::path \brief This property holds the list of coordinates for the geo path. - The path is both invalid and empty if it contains no coordinate. - - A default constructed QGeoPath is therefore invalid. + \note The coordinates cannot be processed in place. To change the value + of this property, retrieve the complete list of coordinates, process them, + and assign the new value to the property. */ inline QGeoPathPrivate *QGeoPath::d_func() @@ -109,7 +113,7 @@ Constructs a new, empty geo path. */ QGeoPath::QGeoPath() -: QGeoShape(new QGeoPathPrivate) +: QGeoShape(new QGeoPathPrivate(QGeoShape::PathType)) { initPathConversions(); } @@ -119,7 +123,7 @@ (\a path and \a width). */ QGeoPath::QGeoPath(const QList &path, const qreal &width) -: QGeoShape(new QGeoPathPrivate(path, width)) +: QGeoShape(new QGeoPathPrivate(QGeoShape::PathType, path, width)) { initPathConversions(); } @@ -141,7 +145,7 @@ { initPathConversions(); if (type() != QGeoShape::PathType) - d_ptr = new QGeoPathPrivate; + d_ptr = new QGeoPathPrivate(QGeoShape::PathType); } /*! @@ -176,6 +180,9 @@ return !(*d == *other.d_func()); } +/*! + Sets all the elements of the \a path. +*/ void QGeoPath::setPath(const QList &path) { Q_D(QGeoPath); @@ -183,15 +190,48 @@ } /*! - Returns all the elements. Equivalent to QGeoShape::center(). - The center coordinate, in case of a QGeoPath, is the center of its bounding box. + Returns all the elements of the path. */ const QList &QGeoPath::path() const { Q_D(const QGeoPath); return d->path(); } +/*! + Sets all the elements of the path. + + \internal +*/ +void QGeoPath::setVariantPath(const QVariantList &path) +{ + Q_D(QGeoPath); + QList p; + for (const auto &c: path) { + if (c.canConvert()) + p << c.value(); + } + d->setPath(p); +} +/*! + Returns all the elements of the path. + \internal +*/ +QVariantList QGeoPath::variantPath() const +{ + Q_D(const QGeoPath); + QVariantList p; + for (const auto &c: d->path()) + p << QVariant::fromValue(c); + return p; +} + + +/*! + \property QGeoPath::width + + \brief the width of the path in meters. +*/ void QGeoPath::setWidth(const qreal &width) { Q_D(QGeoPath); @@ -199,7 +239,7 @@ } /*! - Returns the width of the path, in meters. This information is used in the \l contains method + Returns the width of the path, in meters. This information is used in the \l contains method. The default value is 0. */ qreal QGeoPath::width() const @@ -247,6 +287,17 @@ } /*! + Returns the number of elements in the path. + + \since 5.10 +*/ +int QGeoPath::size() const +{ + Q_D(const QGeoPath); + return d->size(); +} + +/*! Appends \a coordinate to the path. */ void QGeoPath::addCoordinate(const QGeoCoordinate &coordinate) @@ -330,22 +381,22 @@ * QGeoPathPrivate *******************************************************************************/ -QGeoPathPrivate::QGeoPathPrivate() -: QGeoShapePrivate(QGeoShape::PathType), m_width(0) +QGeoPathPrivate::QGeoPathPrivate(QGeoShape::ShapeType type) +: QGeoShapePrivate(type), m_width(0), m_clipperDirty(true) { } -QGeoPathPrivate::QGeoPathPrivate(const QList &path, const qreal width) -: QGeoShapePrivate(QGeoShape::PathType), m_width(0) +QGeoPathPrivate::QGeoPathPrivate(QGeoShape::ShapeType type, const QList &path, const qreal width) +: QGeoShapePrivate(type), m_width(0), m_clipperDirty(true) { setPath(path); setWidth(width); } QGeoPathPrivate::QGeoPathPrivate(const QGeoPathPrivate &other) -: QGeoShapePrivate(QGeoShape::PathType), m_path(other.m_path), +: QGeoShapePrivate(other.type), m_path(other.m_path), m_deltaXs(other.m_deltaXs), m_minX(other.m_minX), m_maxX(other.m_maxX), m_minLati(other.m_minLati), - m_maxLati(other.m_maxLati), m_bbox(other.m_bbox), m_width(other.m_width) + m_maxLati(other.m_maxLati), m_bbox(other.m_bbox), m_width(other.m_width), m_clipperDirty(true) { } @@ -364,17 +415,25 @@ const QGeoPathPrivate &otherPath = static_cast(other); if (m_path.size() != otherPath.m_path.size()) return false; - return m_width == otherPath.m_width && m_path == otherPath.m_path; + + if (type == QGeoShape::PathType) + return m_width == otherPath.m_width && m_path == otherPath.m_path; + else + return m_path == otherPath.m_path; } bool QGeoPathPrivate::isValid() const { - return !isEmpty(); + if (type == QGeoShape::PathType) + return !isEmpty(); + else + return m_path.size() > 2; + } bool QGeoPathPrivate::isEmpty() const { - return m_path.isEmpty(); + return m_path.isEmpty(); // this should perhaps return geometric emptiness, less than 2 points for line, or empty polygon for polygons } const QList &QGeoPathPrivate::path() const @@ -405,6 +464,7 @@ double QGeoPathPrivate::length(int indexFrom, int indexTo) const { + bool wrap = indexTo == -1; if (indexTo < 0 || indexTo >= path().size()) indexTo = path().size() - 1; double len = 0.0; @@ -412,14 +472,29 @@ // instead of the shortest path from A to B. for (int i = indexFrom; i < indexTo; i++) len += m_path[i].distanceTo(m_path[i+1]); + if (wrap) + len += m_path.last().distanceTo(m_path.first()); return len; } +int QGeoPathPrivate::size() const +{ + return m_path.size(); +} + /*! Returns true if coordinate is present in m_path. */ bool QGeoPathPrivate::contains(const QGeoCoordinate &coordinate) const { + if (type == QGeoShape::PathType) + return lineContains(coordinate); + else + return polygonContains(coordinate); +} + +bool QGeoPathPrivate::lineContains(const QGeoCoordinate &coordinate) const +{ // Unoptimized approach: // - consider each segment of the path // - project it into mercator space (rhumb lines are straight in mercator space) @@ -487,6 +562,20 @@ return (m_path[0].distanceTo(coordinate) <= lineRadius); } +bool QGeoPathPrivate::polygonContains(const QGeoCoordinate &coordinate) const +{ + if (m_clipperDirty) + const_cast(this)->updateClipperPath(); + + QDoubleVector2D coord = QWebMercator::coordToMercator(coordinate); + double tlx = QWebMercator::coordToMercator(m_bbox.topLeft()).x(); + if (coord.x() < tlx) + coord.setX(coord.x() + 1.0); + + IntPoint intCoord = QClipperUtils::toIntPoint(coord); + return c2t::clip2tri::pointInPolygon(intCoord, m_clipperPath) != 0; +} + QGeoCoordinate QGeoPathPrivate::center() const { return boundingGeoRectangle().center(); @@ -575,6 +664,7 @@ void QGeoPathPrivate::computeBoundingBox() { + m_clipperDirty = true; if (m_path.isEmpty()) { m_deltaXs.clear(); m_minX = qInf(); @@ -625,6 +715,7 @@ void QGeoPathPrivate::updateBoundingBox() { + m_clipperDirty = true; if (m_path.isEmpty()) { m_deltaXs.clear(); m_minX = qInf(); @@ -677,4 +768,18 @@ QGeoCoordinate(m_minLati, currentMaxLongi)); } +void QGeoPathPrivate::updateClipperPath() +{ + m_clipperDirty = false; + double tlx = QWebMercator::coordToMercator(m_bbox.topLeft()).x(); + QList preservedPath; + for (const QGeoCoordinate &c : m_path) { + QDoubleVector2D crd = QWebMercator::coordToMercator(c); + if (crd.x() < tlx) + crd.setX(crd.x() + 1.0); + preservedPath << crd; + } + m_clipperPath = QClipperUtils::qListToPath(preservedPath); +} + QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeopath.h qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeopath.h --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeopath.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeopath.h 2018-06-12 18:44:12.000000000 +0000 @@ -41,6 +41,7 @@ #define QGEOPATH_H #include +#include QT_BEGIN_NAMESPACE @@ -50,7 +51,7 @@ class Q_POSITIONING_EXPORT QGeoPath : public QGeoShape { Q_GADGET - Q_PROPERTY(QList path READ path WRITE setPath) + Q_PROPERTY(QVariantList path READ variantPath WRITE setVariantPath) Q_PROPERTY(qreal width READ width WRITE setWidth) public: @@ -71,6 +72,8 @@ void setPath(const QList &path); const QList &path() const; + void setVariantPath(const QVariantList &path); + QVariantList variantPath() const; void setWidth(const qreal &width); qreal width() const; @@ -78,6 +81,7 @@ Q_INVOKABLE void translate(double degreesLatitude, double degreesLongitude); Q_INVOKABLE QGeoPath translated(double degreesLatitude, double degreesLongitude) const; Q_INVOKABLE double length(int indexFrom = 0, int indexTo = -1) const; + Q_INVOKABLE int size() const; Q_INVOKABLE void addCoordinate(const QGeoCoordinate &coordinate); Q_INVOKABLE void insertCoordinate(int index, const QGeoCoordinate &coordinate); Q_INVOKABLE void replaceCoordinate(int index, const QGeoCoordinate &coordinate); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeopath_p.h qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeopath_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeopath_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeopath_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -54,6 +54,7 @@ #include "qgeoshape_p.h" #include "qgeocoordinate.h" #include "qlocationutils_p.h" +#include #include @@ -62,29 +63,32 @@ class QGeoPathPrivate : public QGeoShapePrivate { public: - QGeoPathPrivate(); - QGeoPathPrivate(const QList &path, const qreal width = 0.0); + QGeoPathPrivate(QGeoShape::ShapeType type); + QGeoPathPrivate(QGeoShape::ShapeType type, const QList &path, const qreal width = 0.0); QGeoPathPrivate(const QGeoPathPrivate &other); ~QGeoPathPrivate(); - bool isValid() const Q_DECL_OVERRIDE; - bool isEmpty() const Q_DECL_OVERRIDE; - bool contains(const QGeoCoordinate &coordinate) const Q_DECL_OVERRIDE; - - QGeoCoordinate center() const Q_DECL_OVERRIDE; - QGeoRectangle boundingGeoRectangle() const Q_DECL_OVERRIDE; - void extendShape(const QGeoCoordinate &coordinate) Q_DECL_OVERRIDE; + bool isValid() const override; + bool isEmpty() const override; + bool contains(const QGeoCoordinate &coordinate) const override; + bool lineContains(const QGeoCoordinate &coordinate) const; + bool polygonContains(const QGeoCoordinate &coordinate) const; + + QGeoCoordinate center() const override; + QGeoRectangle boundingGeoRectangle() const override; + void extendShape(const QGeoCoordinate &coordinate) override; void translate(double degreesLatitude, double degreesLongitude); - QGeoShapePrivate *clone() const Q_DECL_OVERRIDE; + QGeoShapePrivate *clone() const override; - bool operator==(const QGeoShapePrivate &other) const Q_DECL_OVERRIDE; + bool operator==(const QGeoShapePrivate &other) const override; const QList &path() const; void setPath(const QList &path); qreal width() const; void setWidth(const qreal &width); double length(int indexFrom, int indexTo) const; + int size() const; void addCoordinate(const QGeoCoordinate &coordinate); void insertCoordinate(int index, const QGeoCoordinate &coordinate); void replaceCoordinate(int index, const QGeoCoordinate &coordinate); @@ -94,7 +98,7 @@ void removeCoordinate(int index); void computeBoundingBox(); void updateBoundingBox(); - + void updateClipperPath(); QList m_path; QVector m_deltaXs; // longitude deltas from m_path[0] @@ -104,6 +108,8 @@ double m_maxLati; // minimum latitude. paths do not wrap around through the poles QGeoRectangle m_bbox; qreal m_width; + bool m_clipperDirty; + QtClipperLib::Path m_clipperPath; }; QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeopolygon.cpp qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeopolygon.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeopolygon.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeopolygon.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,328 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtPositioning module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qgeopolygon.h" +#include "qgeopath_p.h" + +#include "qgeocoordinate.h" +#include "qnumeric.h" +#include "qlocationutils_p.h" +#include "qwebmercator_p.h" + +#include "qdoublevector2d_p.h" +#include "qdoublevector3d_p.h" +#include "qwebmercator_p.h" + +QT_BEGIN_NAMESPACE + +/*! + \class QGeoPolygon + \inmodule QtPositioning + \ingroup QtPositioning-positioning + \since 5.10 + + \brief The QGeoPolygon class defines a geographic polygon. + + The polygon is defined by an ordered list of QGeoCoordinates representing its perimeter. + + Each two adjacent elements in this list are intended to be connected + together by the shortest line segment of constant bearing passing + through both elements. + This type of connection can cross the date line in the longitudinal direction, + but never crosses the poles. + + This is relevant for the calculation of the bounding box returned by + \l QGeoShape::boundingGeoRectangle() for this shape, which will have the latitude of + the top left corner set to the maximum latitude in the path point set. + Similarly, the latitude of the bottom right corner will be the minimum latitude + in the path point set. + + This class is a \l Q_GADGET. + It can be \l{Cpp_value_integration_positioning}{directly used from C++ and QML}. +*/ + +/* + \property QGeoPolygon::path + \brief This property holds the list of coordinates for the geo polygon. + + The polygon is both invalid and empty if it contains no coordinate. + + A default constructed QGeoPolygon is therefore invalid. +*/ + +inline QGeoPolygonPrivate *QGeoPolygon::d_func() +{ + return static_cast(d_ptr.data()); +} + +inline const QGeoPolygonPrivate *QGeoPolygon::d_func() const +{ + return static_cast(d_ptr.constData()); +} + +struct PolygonVariantConversions +{ + PolygonVariantConversions() + { + QMetaType::registerConverter(); + QMetaType::registerConverter(); + } +}; + +Q_GLOBAL_STATIC(PolygonVariantConversions, initPathConversions) + +/*! + Constructs a new, empty geo path. +*/ +QGeoPolygon::QGeoPolygon() +: QGeoShape(new QGeoPolygonPrivate(QGeoShape::PolygonType)) +{ + initPathConversions(); +} + +/*! + Constructs a new geo \a path from a list of coordinates. +*/ +QGeoPolygon::QGeoPolygon(const QList &path) +: QGeoShape(new QGeoPolygonPrivate(QGeoShape::PolygonType, path)) +{ + initPathConversions(); +} + +/*! + Constructs a new geo path from the contents of \a other. +*/ +QGeoPolygon::QGeoPolygon(const QGeoPolygon &other) +: QGeoShape(other) +{ + initPathConversions(); +} + +/*! + Constructs a new geo path from the contents of \a other. +*/ +QGeoPolygon::QGeoPolygon(const QGeoShape &other) +: QGeoShape(other) +{ + initPathConversions(); + if (type() != QGeoShape::PolygonType) + d_ptr = new QGeoPolygonPrivate(QGeoShape::PolygonType); +} + +/*! + Destroys this path. +*/ +QGeoPolygon::~QGeoPolygon() {} + +/*! + Assigns \a other to this geo path and returns a reference to this geo path. +*/ +QGeoPolygon &QGeoPolygon::operator=(const QGeoPolygon &other) +{ + QGeoShape::operator=(other); + return *this; +} + +/*! + Returns whether this geo path is equal to \a other. +*/ +bool QGeoPolygon::operator==(const QGeoPolygon &other) const +{ + Q_D(const QGeoPolygon); + return *d == *other.d_func(); +} + +/*! + Returns whether this geo path is not equal to \a other. +*/ +bool QGeoPolygon::operator!=(const QGeoPolygon &other) const +{ + Q_D(const QGeoPolygon); + return !(*d == *other.d_func()); +} + +/*! + Sets the \a path from a list of coordinates. +*/ +void QGeoPolygon::setPath(const QList &path) +{ + Q_D(QGeoPolygon); + return d->setPath(path); +} + +/*! + Returns all the elements. Equivalent to QGeoShape::center(). + The center coordinate, in case of a QGeoPolygon, is the center of its bounding box. +*/ +const QList &QGeoPolygon::path() const +{ + Q_D(const QGeoPolygon); + return d->path(); +} + +/*! + Translates this geo path by \a degreesLatitude northwards and \a degreesLongitude eastwards. + + Negative values of \a degreesLatitude and \a degreesLongitude correspond to + southward and westward translation respectively. +*/ +void QGeoPolygon::translate(double degreesLatitude, double degreesLongitude) +{ + Q_D(QGeoPolygon); + d->translate(degreesLatitude, degreesLongitude); +} + +/*! + Returns a copy of this geo polygon translated by \a degreesLatitude northwards and + \a degreesLongitude eastwards. + + Negative values of \a degreesLatitude and \a degreesLongitude correspond to + southward and westward translation respectively. + + \sa translate() +*/ +QGeoPolygon QGeoPolygon::translated(double degreesLatitude, double degreesLongitude) const +{ + QGeoPolygon result(*this); + result.translate(degreesLatitude, degreesLongitude); + return result; +} + +/*! + Returns the length of the polygon's perimeter, in meters, from the element \a indexFrom to the element \a indexTo. + The length is intended to be the sum of the shortest distances for each pair of adjacent points. +*/ +double QGeoPolygon::length(int indexFrom, int indexTo) const +{ + Q_D(const QGeoPolygon); + return d->length(indexFrom, indexTo); +} + +/*! + Returns the number of elements in the polygon. + + \since 5.10 +*/ +int QGeoPolygon::size() const +{ + Q_D(const QGeoPolygon); + return d->size(); +} + +/*! + Appends \a coordinate to the polygon. +*/ +void QGeoPolygon::addCoordinate(const QGeoCoordinate &coordinate) +{ + Q_D(QGeoPolygon); + d->addCoordinate(coordinate); +} + +/*! + Inserts \a coordinate at the specified \a index. +*/ +void QGeoPolygon::insertCoordinate(int index, const QGeoCoordinate &coordinate) +{ + Q_D(QGeoPolygon); + d->insertCoordinate(index, coordinate); +} + +/*! + Replaces the path element at the specified \a index with \a coordinate. +*/ +void QGeoPolygon::replaceCoordinate(int index, const QGeoCoordinate &coordinate) +{ + Q_D(QGeoPolygon); + d->replaceCoordinate(index, coordinate); +} + +/*! + Returns the coordinate at \a index . +*/ +QGeoCoordinate QGeoPolygon::coordinateAt(int index) const +{ + Q_D(const QGeoPolygon); + return d->coordinateAt(index); +} + +/*! + Returns true if the polygon's perimeter contains \a coordinate as one of the elements. +*/ +bool QGeoPolygon::containsCoordinate(const QGeoCoordinate &coordinate) const +{ + Q_D(const QGeoPolygon); + return d->containsCoordinate(coordinate); +} + +/*! + Removes the last occurrence of \a coordinate from the polygon. +*/ +void QGeoPolygon::removeCoordinate(const QGeoCoordinate &coordinate) +{ + Q_D(QGeoPolygon); + d->removeCoordinate(coordinate); +} + +/*! + Removes element at position \a index from the polygon. +*/ +void QGeoPolygon::removeCoordinate(int index) +{ + Q_D(QGeoPolygon); + d->removeCoordinate(index); +} + +/*! + Returns the geo path properties as a string. +*/ +QString QGeoPolygon::toString() const +{ + if (type() != QGeoShape::PolygonType) { + qWarning("Not a polygon"); + return QStringLiteral("QGeoPolygon(not a polygon)"); + } + + QString pathString; + for (const auto &p : path()) + pathString += p.toString() + QLatin1Char(','); + + return QStringLiteral("QGeoPolygon([ %1 ])").arg(pathString); +} + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeopolygon.h qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeopolygon.h --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeopolygon.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeopolygon.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,99 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtPositioning module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QGEOPOLYGON_H +#define QGEOPOLYGON_H + +#include + +QT_BEGIN_NAMESPACE + +class QGeoCoordinate; +class QGeoPathPrivate; +typedef QGeoPathPrivate QGeoPolygonPrivate; + +class Q_POSITIONING_EXPORT QGeoPolygon : public QGeoShape +{ + Q_GADGET + +public: + QGeoPolygon(); + QGeoPolygon(const QList &path); + QGeoPolygon(const QGeoPolygon &other); + QGeoPolygon(const QGeoShape &other); + + ~QGeoPolygon(); + + QGeoPolygon &operator=(const QGeoPolygon &other); + + using QGeoShape::operator==; + bool operator==(const QGeoPolygon &other) const; + + using QGeoShape::operator!=; + bool operator!=(const QGeoPolygon &other) const; + + void setPath(const QList &path); + const QList &path() const; + + Q_INVOKABLE void translate(double degreesLatitude, double degreesLongitude); + Q_INVOKABLE QGeoPolygon translated(double degreesLatitude, double degreesLongitude) const; + Q_INVOKABLE double length(int indexFrom = 0, int indexTo = -1) const; + Q_INVOKABLE int size() const; + Q_INVOKABLE void addCoordinate(const QGeoCoordinate &coordinate); + Q_INVOKABLE void insertCoordinate(int index, const QGeoCoordinate &coordinate); + Q_INVOKABLE void replaceCoordinate(int index, const QGeoCoordinate &coordinate); + Q_INVOKABLE QGeoCoordinate coordinateAt(int index) const; + Q_INVOKABLE bool containsCoordinate(const QGeoCoordinate &coordinate) const; + Q_INVOKABLE void removeCoordinate(const QGeoCoordinate &coordinate); + Q_INVOKABLE void removeCoordinate(int index); + + Q_INVOKABLE QString toString() const; + +private: + inline QGeoPolygonPrivate *d_func(); + inline const QGeoPolygonPrivate *d_func() const; +}; + +Q_DECLARE_TYPEINFO(QGeoPolygon, Q_MOVABLE_TYPE); + +QT_END_NAMESPACE + +Q_DECLARE_METATYPE(QGeoPolygon) + +#endif // QGEOPOLYGON_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeopositioninfo.h qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeopositioninfo.h --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeopositioninfo.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeopositioninfo.h 2018-06-12 18:44:12.000000000 +0000 @@ -112,4 +112,6 @@ QT_END_NAMESPACE +Q_DECLARE_METATYPE(QGeoPositionInfo) + #endif diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeopositioninfo_p.h qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeopositioninfo_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeopositioninfo_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeopositioninfo_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -39,6 +39,17 @@ #ifndef QGEOPOSITIONINFO_P_H #define QGEOPOSITIONINFO_P_H +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + #include #include "qgeopositioninfo.h" #include diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeopositioninfosource.cpp qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeopositioninfosource.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeopositioninfosource.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeopositioninfosource.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -177,6 +177,7 @@ : QObject(parent), d(new QGeoPositionInfoSourcePrivate) { + qRegisterMetaType(); d->interval = 0; d->methods = 0; } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeorectangle_p.h qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeorectangle_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeorectangle_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeorectangle_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -64,19 +64,19 @@ QGeoRectanglePrivate(const QGeoRectanglePrivate &other); ~QGeoRectanglePrivate(); - bool isValid() const Q_DECL_OVERRIDE; - bool isEmpty() const Q_DECL_OVERRIDE; - bool contains(const QGeoCoordinate &coordinate) const Q_DECL_OVERRIDE; + bool isValid() const override; + bool isEmpty() const override; + bool contains(const QGeoCoordinate &coordinate) const override; - QGeoCoordinate center() const Q_DECL_OVERRIDE; + QGeoCoordinate center() const override; - QGeoRectangle boundingGeoRectangle() const Q_DECL_OVERRIDE; + QGeoRectangle boundingGeoRectangle() const override; - void extendShape(const QGeoCoordinate &coordinate) Q_DECL_OVERRIDE; + void extendShape(const QGeoCoordinate &coordinate) override; - QGeoShapePrivate *clone() const Q_DECL_OVERRIDE; + QGeoShapePrivate *clone() const override; - bool operator==(const QGeoShapePrivate &other) const Q_DECL_OVERRIDE; + bool operator==(const QGeoShapePrivate &other) const override; QGeoCoordinate topLeft; QGeoCoordinate bottomRight; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeosatelliteinfo.cpp qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeosatelliteinfo.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeosatelliteinfo.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeosatelliteinfo.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -274,7 +274,7 @@ Writes the given \a info to the specified \a stream. - \sa \link datastreamformat.html Format of the QDataStream operators \endlink + \sa {Serializing Qt Data Types} */ @@ -296,7 +296,7 @@ Reads satellite information from the specified \a stream into the given \a info. - \sa \link datastreamformat.html Format of the QDataStream operators \endlink + \sa {Serializing Qt Data Types} */ QDataStream &operator>>(QDataStream &stream, QGeoSatelliteInfo &info) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeoshape.cpp qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeoshape.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeoshape.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeoshape.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -42,6 +42,7 @@ #include "qgeorectangle.h" #include "qgeocircle.h" #include "qgeopath.h" +#include "qgeopolygon.h" #ifndef QT_NO_DEBUG_STREAM @@ -92,10 +93,11 @@ Describes the type of the shape. - \value UnknownType A shape of unknown type. - \value RectangleType A rectangular shape. - \value CircleType A circular shape. - \value PathType A path type. + \value UnknownType A shape of unknown type + \value RectangleType A rectangular shape + \value CircleType A circular shape + \value PathType A path type + \value PolygonType A polygon type */ /*! @@ -345,6 +347,9 @@ case QGeoShape::PathType: dbg << "Path"; break; + case QGeoShape::PolygonType: + dbg << "Polygon"; + break; case QGeoShape::CircleType: dbg << "Circle"; } @@ -379,6 +384,13 @@ stream << c; break; } + case QGeoShape::PolygonType: { + QGeoPolygon p = shape; + stream << p.path().size(); + for (const auto &c: p.path()) + stream << c; + break; + } } return stream; @@ -419,6 +431,18 @@ shape = QGeoPath(l); break; } + case QGeoShape::PolygonType: { + QList l; + QGeoCoordinate c; + int sz; + stream >> sz; + for (int i = 0; i < sz; i++) { + stream >> c; + l.append(c); + } + shape = QGeoPolygon(l); + break; + } } return stream; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeoshape.h qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeoshape.h --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qgeoshape.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qgeoshape.h 2018-06-12 18:44:12.000000000 +0000 @@ -66,7 +66,8 @@ UnknownType, RectangleType, CircleType, - PathType + PathType, + PolygonType }; ShapeType type() const; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qlocationutils.cpp qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qlocationutils.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qlocationutils.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qlocationutils.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -258,6 +258,32 @@ info->setTimestamp(QDateTime(date, time, Qt::UTC)); } +QLocationUtils::NmeaSentence QLocationUtils::getNmeaSentenceType(const char *data, int size) +{ + if (size < 6 || data[0] != '$' || !hasValidNmeaChecksum(data, size)) + return NmeaSentenceInvalid; + + if (data[3] == 'G' && data[4] == 'G' && data[5] == 'A') + return NmeaSentenceGGA; + + if (data[3] == 'G' && data[4] == 'S' && data[5] == 'A') + return NmeaSentenceGSA; + + if (data[3] == 'G' && data[4] == 'L' && data[5] == 'L') + return NmeaSentenceGLL; + + if (data[3] == 'R' && data[4] == 'M' && data[5] == 'C') + return NmeaSentenceRMC; + + if (data[3] == 'V' && data[4] == 'T' && data[5] == 'G') + return NmeaSentenceVTG; + + if (data[3] == 'Z' && data[4] == 'D' && data[5] == 'A') + return NmeaSentenceZDA; + + return NmeaSentenceInvalid; +} + bool QLocationUtils::getPosInfoFromNmea(const char *data, int size, QGeoPositionInfo *info, double uere, bool *hasFix) { @@ -266,7 +292,9 @@ if (hasFix) *hasFix = false; - if (size < 6 || data[0] != '$' || !hasValidNmeaChecksum(data, size)) + + NmeaSentence nmeaType = getNmeaSentenceType(data, size); + if (nmeaType == NmeaSentenceInvalid) return false; // Adjust size so that * and following characters are not parsed by the following functions. @@ -277,43 +305,28 @@ } } - if (data[3] == 'G' && data[4] == 'G' && data[5] == 'A') { - // "$--GGA" sentence. + switch (nmeaType) { + case NmeaSentenceGGA: qlocationutils_readGga(data, size, info, uere, hasFix); return true; - } - - if (data[3] == 'G' && data[4] == 'S' && data[5] == 'A') { - // "$--GSA" sentence. + case NmeaSentenceGSA: qlocationutils_readGsa(data, size, info, uere, hasFix); return true; - } - - if (data[3] == 'G' && data[4] == 'L' && data[5] == 'L') { - // "$--GLL" sentence. + case NmeaSentenceGLL: qlocationutils_readGll(data, size, info, hasFix); return true; - } - - if (data[3] == 'R' && data[4] == 'M' && data[5] == 'C') { - // "$--RMC" sentence. + case NmeaSentenceRMC: qlocationutils_readRmc(data, size, info, hasFix); return true; - } - - if (data[3] == 'V' && data[4] == 'T' && data[5] == 'G') { - // "$--VTG" sentence. + case NmeaSentenceVTG: qlocationutils_readVtg(data, size, info, hasFix); return true; - } - - if (data[3] == 'Z' && data[4] == 'D' && data[5] == 'A') { - // "$--ZDA" sentence. + case NmeaSentenceZDA: qlocationutils_readZda(data, size, info, hasFix); return true; + default: + return false; } - - return false; } bool QLocationUtils::hasValidNmeaChecksum(const char *data, int size) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qlocationutils_p.h qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qlocationutils_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qlocationutils_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qlocationutils_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -54,6 +54,7 @@ #include // needed for non-std:: versions of functions #include #include +#include static const double offsetEpsilon = 1e-12; // = 0.000000000001 static const double leftOffset = -180.0 + offsetEpsilon; @@ -64,7 +65,7 @@ class QByteArray; class QGeoPositionInfo; -class QLocationUtils +class Q_POSITIONING_PRIVATE_EXPORT QLocationUtils { public: enum CardinalDirection { @@ -86,6 +87,16 @@ CardinalNNW }; + enum NmeaSentence { + NmeaSentenceInvalid, + NmeaSentenceGGA, // Fix information + NmeaSentenceGSA, // Overall Satellite data, such as HDOP and VDOP + NmeaSentenceGLL, // Lat/Lon data + NmeaSentenceRMC, // Recommended minimum data for gps + NmeaSentenceVTG, // Vector track an Speed over the Ground + NmeaSentenceZDA // Date and Time + }; + inline static bool isValidLat(double lat) { return lat >= -90.0 && lat <= 90.0; } @@ -246,6 +257,11 @@ } /* + returns the NMEA sentence type. + */ + static NmeaSentence getNmeaSentenceType(const char *data, int size); + + /* Creates a QGeoPositionInfo from a GGA, GLL, RMC, VTG or ZDA sentence. Note: @@ -254,25 +270,31 @@ - RMC reports date with a two-digit year so in this case the year is assumed to be after the year 2000. */ - Q_AUTOTEST_EXPORT static bool getPosInfoFromNmea(const char *data, int size, - QGeoPositionInfo *info, double uere, - bool *hasFix = 0); + static bool getPosInfoFromNmea(const char *data, + int size, + QGeoPositionInfo *info, double uere, + bool *hasFix = nullptr); /* Returns true if the given NMEA sentence has a valid checksum. */ - Q_AUTOTEST_EXPORT static bool hasValidNmeaChecksum(const char *data, int size); + static bool hasValidNmeaChecksum(const char *data, int size); /* Returns time from a string in hhmmss or hhmmss.z+ format. */ - Q_AUTOTEST_EXPORT static bool getNmeaTime(const QByteArray &bytes, QTime *time); + static bool getNmeaTime(const QByteArray &bytes, QTime *time); /* Accepts for example ("2734.7964", 'S', "15306.0124", 'E') and returns the lat-long values. Fails if lat or long fail isValidLat() or isValidLong(). */ - Q_AUTOTEST_EXPORT static bool getNmeaLatLong(const QByteArray &latString, char latDirection, const QByteArray &lngString, char lngDirection, double *lat, double *lon); + static bool getNmeaLatLong(const QByteArray &latString, + char latDirection, + const QByteArray &lngString, + char lngDirection, + double *lat, + double *lon); }; QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qnmeapositioninfosource.cpp qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qnmeapositioninfosource.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qnmeapositioninfosource.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qnmeapositioninfosource.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -243,13 +243,18 @@ // the sentences containing the full timestamp (e.g., GPRMC) *first* ! if (infoTime.isValid()) { if (pos.timestamp().time().isValid()) { - if (infoTime != pos.timestamp().time() || infoDate != pos.timestamp().date()) { - // Effectively read data for different update, so copy buf into m_nextLine + if (infoTime < pos.timestamp().time() || + (infoDate.isValid() // if time is valid but one date or both are not, + && pos.timestamp().date().isValid() + && infoDate < pos.timestamp().date())) { + // Effectively read data for different update, that is also newer, so copy buf into m_nextLine m_nextLine = QByteArray(buf, size); break; } else { - // timestamps match -- merge into info - mergePositions(info, pos, QByteArray(buf, size)); + if (infoTime == pos.timestamp().time()) + // timestamps match -- merge into info + mergePositions(info, pos, QByteArray(buf, size)); + // else discard out of order outdated info. } } else { // no timestamp available -- merge into info diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qnmeapositioninfosource.h qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qnmeapositioninfosource.h --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qnmeapositioninfosource.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qnmeapositioninfosource.h 2018-06-12 18:44:12.000000000 +0000 @@ -55,7 +55,7 @@ SimulationMode }; - explicit QNmeaPositionInfoSource(UpdateMode updateMode, QObject *parent = Q_NULLPTR); + explicit QNmeaPositionInfoSource(UpdateMode updateMode, QObject *parent = nullptr); ~QNmeaPositionInfoSource(); void setUserEquivalentRangeError(double uere); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qwebmercator.cpp qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qwebmercator.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qwebmercator.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qwebmercator.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -100,30 +100,6 @@ return QGeoCoordinate(lat, lng, 0.0); } -QGeoCoordinate QWebMercator::mercatorToCoordClamped(const QDoubleVector2D &mercator) -{ - double fx = mercator.x(); - double fy = mercator.y(); - - if (fy < 0.0) - fy = 0.0; - else if (fy > 1.0) - fy = 1.0; - - double lat = qRadiansToDegrees(2.0 * std::atan(std::exp(M_PI * (1.0 - 2.0 * fy))) - (M_PI / 2.0)); - - double lng; - if (fx >= 0) { - lng = realmod(fx, 1.0); - } else { - lng = realmod(1.0 - realmod(-1.0 * fx, 1.0), 1.0); - } - - lng = lng * 360.0 - 180.0; - - return QGeoCoordinate(lat, lng, 0.0); -} - QGeoCoordinate QWebMercator::coordinateInterpolation(const QGeoCoordinate &from, const QGeoCoordinate &to, qreal progress) { QDoubleVector2D s = QWebMercator::coordToMercator(from); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qwebmercator_p.h qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qwebmercator_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/positioning/qwebmercator_p.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioning/qwebmercator_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -64,7 +64,6 @@ public: static QDoubleVector2D coordToMercator(const QGeoCoordinate &coord); static QGeoCoordinate mercatorToCoord(const QDoubleVector2D &mercator); - static QGeoCoordinate mercatorToCoordClamped(const QDoubleVector2D &mercator); static QGeoCoordinate coordinateInterpolation(const QGeoCoordinate &from, const QGeoCoordinate &to, qreal progress); private: diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioningquick/positioningquick.pro qtlocation-opensource-src-5.11.1+dfsg/src/positioningquick/positioningquick.pro --- qtlocation-opensource-src-5.9.5+dfsg/src/positioningquick/positioningquick.pro 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioningquick/positioningquick.pro 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,10 @@ +TARGET = QtPositioningQuick +QT = quick-private positioning-private qml-private core-private +CONFIG += simd optimize_full + +INCLUDEPATH += $$PWD + +SOURCES += $$files(*.cpp) +HEADERS += $$files(*.h) + +load(qt_module) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioningquick/qdeclarativeposition.cpp qtlocation-opensource-src-5.11.1+dfsg/src/positioningquick/qdeclarativeposition.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/positioningquick/qdeclarativeposition.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioningquick/qdeclarativeposition.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,474 @@ +/**************************************************************************** +** +** Copyright (C) 2016 Jolla Ltd. +** Contact: Aaron McCarthy +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtPositioning module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include "qdeclarativeposition_p.h" +#include +#include +#include + +QT_BEGIN_NAMESPACE + +/*! + \qmltype Position + //! \instantiates QDeclarativePosition + \inqmlmodule QtPositioning + \since 5.2 + + \brief The Position type holds positional data at a particular point in time, + such as coordinate (longitude, latitude, altitude) and speed. + + The Position type holds values related to geographic location such as + a \l coordinate (longitude, latitude, and altitude), the \l timestamp when + the Position was obtained, the \l speed at that time, and the accuracy of + the data. + + Primarily, it is used in the \l{PositionSource::position}{position} property + of a \l{PositionSource}, as the basic unit of data available from the system + location data source. + + Not all properties of a Position object are necessarily valid or available + (for example latitude and longitude may be valid, but speed update has not been + received or set manually). As a result, corresponding "valid" properties + are available (for example \l{coordinate} and \l{longitudeValid}, \l{latitudeValid} + etc) to discern whether the data is available and valid in this position + update. + + Position objects are read-only and can only be produced by a PositionSource. + + \section2 Example Usage + + See the example given for the \l{PositionSource} type, or the + \l{geoflickr}{GeoFlickr} example application. + + \sa PositionSource, coordinate +*/ + +namespace +{ + +bool equalOrNaN(qreal a, qreal b) +{ + return a == b || (qIsNaN(a) && qIsNaN(b)); +} + +bool exclusiveNaN(qreal a, qreal b) +{ + return qIsNaN(a) != qIsNaN(b); +} + +} + +QDeclarativePosition::QDeclarativePosition(QObject *parent) +: QObject(parent) +{ +} + +QDeclarativePosition::~QDeclarativePosition() +{ +} + +void QDeclarativePosition::setPosition(const QGeoPositionInfo &info) +{ + // timestamp + const QDateTime pTimestamp = m_info.timestamp(); + const QDateTime timestamp = info.timestamp(); + bool emitTimestampChanged = pTimestamp != timestamp; + + // coordinate + const QGeoCoordinate pCoordinate = m_info.coordinate(); + const QGeoCoordinate coordinate = info.coordinate(); + bool emitCoordinateChanged = pCoordinate != coordinate; + bool emitLatitudeValidChanged = exclusiveNaN(pCoordinate.latitude(), coordinate.latitude()); + bool emitLongitudeValidChanged = exclusiveNaN(pCoordinate.longitude(), coordinate.longitude()); + bool emitAltitudeValidChanged = exclusiveNaN(pCoordinate.altitude(), coordinate.altitude()); + + // direction + const qreal pDirection = m_info.attribute(QGeoPositionInfo::Direction); + const qreal direction = info.attribute(QGeoPositionInfo::Direction); + bool emitDirectionChanged = !equalOrNaN(pDirection, direction); + bool emitDirectionValidChanged = exclusiveNaN(pDirection, direction); + + // ground speed + const qreal pSpeed = m_info.attribute(QGeoPositionInfo::GroundSpeed); + const qreal speed = info.attribute(QGeoPositionInfo::GroundSpeed); + bool emitSpeedChanged = !equalOrNaN(pSpeed, speed); + bool emitSpeedValidChanged = exclusiveNaN(pSpeed, speed); + + // vertical speed + const qreal pVerticalSpeed = m_info.attribute(QGeoPositionInfo::VerticalSpeed); + const qreal verticalSpeed = info.attribute(QGeoPositionInfo::VerticalSpeed); + bool emitVerticalSpeedChanged = !equalOrNaN(pVerticalSpeed, verticalSpeed); + bool emitVerticalSpeedValidChanged = exclusiveNaN(pVerticalSpeed, verticalSpeed); + + // magnetic variation + const qreal pMagneticVariation = m_info.attribute(QGeoPositionInfo::MagneticVariation); + const qreal magneticVariation = info.attribute(QGeoPositionInfo::MagneticVariation); + bool emitMagneticVariationChanged = !equalOrNaN(pMagneticVariation, magneticVariation); + bool emitMagneticVariationValidChanged = exclusiveNaN(pMagneticVariation, magneticVariation); + + // horizontal accuracy + const qreal pHorizontalAccuracy = m_info.attribute(QGeoPositionInfo::HorizontalAccuracy); + const qreal horizontalAccuracy = info.attribute(QGeoPositionInfo::HorizontalAccuracy); + bool emitHorizontalAccuracyChanged = !equalOrNaN(pHorizontalAccuracy, horizontalAccuracy); + bool emitHorizontalAccuracyValidChanged = exclusiveNaN(pHorizontalAccuracy, horizontalAccuracy); + + // vertical accuracy + const qreal pVerticalAccuracy = m_info.attribute(QGeoPositionInfo::VerticalAccuracy); + const qreal verticalAccuracy = info.attribute(QGeoPositionInfo::VerticalAccuracy); + bool emitVerticalAccuracyChanged = !equalOrNaN(pVerticalAccuracy, verticalAccuracy); + bool emitVerticalAccuracyValidChanged = exclusiveNaN(pVerticalAccuracy, verticalAccuracy); + + m_info = info; + + if (emitTimestampChanged) + emit timestampChanged(); + if (emitCoordinateChanged) + emit coordinateChanged(); + if (emitLatitudeValidChanged) + emit latitudeValidChanged(); + if (emitLongitudeValidChanged) + emit longitudeValidChanged(); + if (emitAltitudeValidChanged) + emit altitudeValidChanged(); + if (emitDirectionChanged) + emit directionChanged(); + if (emitDirectionValidChanged) + emit directionValidChanged(); + if (emitSpeedChanged) + emit speedChanged(); + if (emitSpeedValidChanged) + emit speedValidChanged(); + if (emitVerticalSpeedChanged) + emit verticalSpeedChanged(); + if (emitVerticalSpeedValidChanged) + emit verticalSpeedValidChanged(); + if (emitHorizontalAccuracyChanged) + emit horizontalAccuracyChanged(); + if (emitHorizontalAccuracyValidChanged) + emit horizontalAccuracyValidChanged(); + if (emitVerticalAccuracyChanged) + emit verticalAccuracyChanged(); + if (emitVerticalAccuracyValidChanged) + emit verticalAccuracyValidChanged(); + if (emitMagneticVariationChanged) + emit magneticVariationChanged(); + if (emitMagneticVariationValidChanged) + emit magneticVariationValidChanged(); +} + +const QGeoPositionInfo &QDeclarativePosition::position() const +{ + return m_info; +} + +/*! + \qmlproperty coordinate Position::coordinate + + This property holds the latitude, longitude, and altitude value of the Position. + + It is a read-only property. + + \sa longitudeValid, latitudeValid, altitudeValid +*/ +QGeoCoordinate QDeclarativePosition::coordinate() +{ + return m_info.coordinate(); +} + +/*! + \qmlproperty bool Position::latitudeValid + + This property is true if coordinate's latitude has been set + (to indicate whether that data has been received or not, as every update + does not necessarily contain all data). + + \sa coordinate +*/ +bool QDeclarativePosition::isLatitudeValid() const +{ + return !qIsNaN(m_info.coordinate().latitude()); +} + + +/*! + \qmlproperty bool Position::longitudeValid + + This property is true if coordinate's longitude has been set + (to indicate whether that data has been received or not, as every update + does not necessarily contain all data). + + \sa coordinate +*/ +bool QDeclarativePosition::isLongitudeValid() const +{ + return !qIsNaN(m_info.coordinate().longitude()); +} + + +/*! + \qmlproperty bool Position::speedValid + + This property is true if \l speed has been set + (to indicate whether that data has been received or not, as every update + does not necessarily contain all data). + + \sa speed +*/ +bool QDeclarativePosition::isSpeedValid() const +{ + return !qIsNaN(m_info.attribute(QGeoPositionInfo::GroundSpeed)); +} + +/*! + \qmlproperty bool Position::altitudeValid + + This property is true if coordinate's altitude has been set + (to indicate whether that data has been received or not, as every update + does not necessarily contain all data). + + \sa coordinate +*/ +bool QDeclarativePosition::isAltitudeValid() const +{ + return !qIsNaN(m_info.coordinate().altitude()); +} + +/*! + \qmlproperty double Position::speed + + This property holds the value of speed (groundspeed, meters / second). + + It is a read-only property. + + \sa speedValid, coordinate +*/ +double QDeclarativePosition::speed() const +{ + return m_info.attribute(QGeoPositionInfo::GroundSpeed); +} + +/*! + \qmlproperty real Position::horizontalAccuracy + + This property holds the horizontal accuracy of the coordinate (in meters). + + \sa horizontalAccuracyValid, coordinate +*/ +void QDeclarativePosition::setHorizontalAccuracy(qreal horizontalAccuracy) +{ + const qreal pHorizontalAccuracy = m_info.attribute(QGeoPositionInfo::HorizontalAccuracy); + + if (equalOrNaN(pHorizontalAccuracy, horizontalAccuracy)) + return; + + bool validChanged = exclusiveNaN(pHorizontalAccuracy, horizontalAccuracy); + + m_info.setAttribute(QGeoPositionInfo::HorizontalAccuracy, horizontalAccuracy); + emit horizontalAccuracyChanged(); + if (validChanged) + emit horizontalAccuracyValidChanged(); +} + +qreal QDeclarativePosition::horizontalAccuracy() const +{ + return m_info.attribute(QGeoPositionInfo::HorizontalAccuracy); +} + +/*! + \qmlproperty bool Position::horizontalAccuracyValid + + This property is true if \l horizontalAccuracy has been set + (to indicate whether that data has been received or not, as every update + does not necessarily contain all data). + + \sa horizontalAccuracy +*/ +bool QDeclarativePosition::isHorizontalAccuracyValid() const +{ + return !qIsNaN(m_info.attribute(QGeoPositionInfo::HorizontalAccuracy)); +} + +/*! + \qmlproperty real Position::verticalAccuracy + + This property holds the vertical accuracy of the coordinate (in meters). + + \sa verticalAccuracyValid, coordinate +*/ +void QDeclarativePosition::setVerticalAccuracy(qreal verticalAccuracy) +{ + const qreal pVerticalAccuracy = m_info.attribute(QGeoPositionInfo::VerticalAccuracy); + + if (equalOrNaN(pVerticalAccuracy, verticalAccuracy)) + return; + + bool validChanged = exclusiveNaN(pVerticalAccuracy, verticalAccuracy); + + m_info.setAttribute(QGeoPositionInfo::VerticalAccuracy, verticalAccuracy); + emit verticalAccuracyChanged(); + if (validChanged) + emit verticalAccuracyValidChanged(); +} + +qreal QDeclarativePosition::verticalAccuracy() const +{ + return m_info.attribute(QGeoPositionInfo::VerticalAccuracy); +} + +/*! + \qmlproperty bool Position::verticalAccuracyValid + + This property is true if \l verticalAccuracy has been set + (to indicate whether that data has been received or not, as every update + does not necessarily contain all data). + + \sa verticalAccuracy +*/ +bool QDeclarativePosition::isVerticalAccuracyValid() const +{ + return !qIsNaN(m_info.attribute(QGeoPositionInfo::VerticalAccuracy)); +} + +/*! + \qmlproperty date Position::timestamp + + This property holds the timestamp when this position + was received. If the property has not been set, it is invalid. + + It is a read-only property. +*/ +QDateTime QDeclarativePosition::timestamp() const +{ + return m_info.timestamp(); +} + +/*! + \qmlproperty bool Position::directionValid + \since Qt Positioning 5.3 + + This property is true if \l direction has been set (to indicate whether that data has been + received or not, as every update does not necessarily contain all data). + + \sa direction +*/ +bool QDeclarativePosition::isDirectionValid() const +{ + return !qIsNaN(m_info.attribute(QGeoPositionInfo::Direction)); +} + +/*! + \qmlproperty double Position::direction + \since Qt Positioning 5.3 + + This property holds the value of the direction of travel in degrees from true north. + + It is a read-only property. + + \sa directionValid +*/ +double QDeclarativePosition::direction() const +{ + return m_info.attribute(QGeoPositionInfo::Direction); +} + +/*! + \qmlproperty bool Position::verticalSpeedValid + \since Qt Positioning 5.3 + + This property is true if \l verticalSpeed has been set (to indicate whether that data has been + received or not, as every update does not necessarily contain all data). + + \sa verticalSpeed +*/ +bool QDeclarativePosition::isVerticalSpeedValid() const +{ + return !qIsNaN(m_info.attribute(QGeoPositionInfo::VerticalSpeed)); +} + +/*! + \qmlproperty double Position::verticalSpeed + \since Qt Positioning 5.3 + + This property holds the value of the vertical speed in meters per second. + + It is a read-only property. + + \sa verticalSpeedValid +*/ +double QDeclarativePosition::verticalSpeed() const +{ + return m_info.attribute(QGeoPositionInfo::VerticalSpeed); +} + +/*! + \qmlproperty bool Position::magneticVariationValid + \since Qt Positioning 5.4 + + This property is true if \l magneticVariation has been set (to indicate whether that data has been + received or not, as every update does not necessarily contain all data). + + \sa magneticVariation +*/ +bool QDeclarativePosition::isMagneticVariationValid() const +{ + return !qIsNaN(m_info.attribute(QGeoPositionInfo::MagneticVariation)); +} + +/*! + \qmlproperty double Position::magneticVariation + \since Qt Positioning 5.4 + + This property holds the angle between the horizontal component of the + magnetic field and true north, in degrees. Also known as magnetic + declination. A positive value indicates a clockwise direction from + true north and a negative value indicates a counter-clockwise direction. + + It is a read-only property. + + \sa magneticVariationValid +*/ +double QDeclarativePosition::magneticVariation() const +{ + return m_info.attribute(QGeoPositionInfo::MagneticVariation); +} + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioningquick/qdeclarativeposition_p.h qtlocation-opensource-src-5.11.1+dfsg/src/positioningquick/qdeclarativeposition_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/positioningquick/qdeclarativeposition_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioningquick/qdeclarativeposition_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,149 @@ +/**************************************************************************** +** +** Copyright (C) 2016 Jolla Ltd. +** Contact: Aaron McCarthy +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtPositioning module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +***************************************************************************/ + +#ifndef QDECLARATIVEPOSITION_H +#define QDECLARATIVEPOSITION_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Q_POSITIONINGQUICK_PRIVATE_EXPORT QDeclarativePosition : public QObject +{ + Q_OBJECT + + Q_PROPERTY(bool latitudeValid READ isLatitudeValid NOTIFY latitudeValidChanged) + Q_PROPERTY(bool longitudeValid READ isLongitudeValid NOTIFY longitudeValidChanged) + Q_PROPERTY(bool altitudeValid READ isAltitudeValid NOTIFY altitudeValidChanged) + Q_PROPERTY(QGeoCoordinate coordinate READ coordinate NOTIFY coordinateChanged) + Q_PROPERTY(QDateTime timestamp READ timestamp NOTIFY timestampChanged) + Q_PROPERTY(double speed READ speed NOTIFY speedChanged) + Q_PROPERTY(bool speedValid READ isSpeedValid NOTIFY speedValidChanged) + Q_PROPERTY(qreal horizontalAccuracy READ horizontalAccuracy WRITE setHorizontalAccuracy NOTIFY horizontalAccuracyChanged) + Q_PROPERTY(qreal verticalAccuracy READ verticalAccuracy WRITE setVerticalAccuracy NOTIFY verticalAccuracyChanged) + Q_PROPERTY(bool horizontalAccuracyValid READ isHorizontalAccuracyValid NOTIFY horizontalAccuracyValidChanged) + Q_PROPERTY(bool verticalAccuracyValid READ isVerticalAccuracyValid NOTIFY verticalAccuracyValidChanged) + + Q_PROPERTY(bool directionValid READ isDirectionValid NOTIFY directionValidChanged REVISION 1) + Q_PROPERTY(double direction READ direction NOTIFY directionChanged REVISION 1) + Q_PROPERTY(bool verticalSpeedValid READ isVerticalSpeedValid NOTIFY verticalSpeedValidChanged REVISION 1) + Q_PROPERTY(double verticalSpeed READ verticalSpeed NOTIFY verticalSpeedChanged REVISION 1) + + Q_PROPERTY(double magneticVariation READ magneticVariation NOTIFY magneticVariationChanged REVISION 2) + Q_PROPERTY(bool magneticVariationValid READ isMagneticVariationValid NOTIFY magneticVariationChanged REVISION 2) + +public: + explicit QDeclarativePosition(QObject *parent = 0); + ~QDeclarativePosition(); + + bool isLatitudeValid() const; + bool isLongitudeValid() const; + bool isAltitudeValid() const; + QDateTime timestamp() const; + double speed() const; + bool isSpeedValid() const; + QGeoCoordinate coordinate(); + bool isHorizontalAccuracyValid() const; + qreal horizontalAccuracy() const; + void setHorizontalAccuracy(qreal horizontalAccuracy); + bool isVerticalAccuracyValid() const; + qreal verticalAccuracy() const; + void setVerticalAccuracy(qreal verticalAccuracy); + + bool isDirectionValid() const; + double direction() const; + void setDirection(double direction); + + bool isVerticalSpeedValid() const; + double verticalSpeed() const; + void setVerticalSpeed(double speed); + + bool isMagneticVariationValid() const; + double magneticVariation() const; + + void setPosition(const QGeoPositionInfo &info); + const QGeoPositionInfo &position() const; + +Q_SIGNALS: + void latitudeValidChanged(); + void longitudeValidChanged(); + void altitudeValidChanged(); + void timestampChanged(); + void speedChanged(); + void speedValidChanged(); + void coordinateChanged(); + void horizontalAccuracyChanged(); + void horizontalAccuracyValidChanged(); + void verticalAccuracyChanged(); + void verticalAccuracyValidChanged(); + + Q_REVISION(1) void directionValidChanged(); + Q_REVISION(1) void directionChanged(); + Q_REVISION(1) void verticalSpeedValidChanged(); + Q_REVISION(1) void verticalSpeedChanged(); + + Q_REVISION(2) void magneticVariationChanged(); + Q_REVISION(2) void magneticVariationValidChanged(); + +private: + QGeoPositionInfo m_info; +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QDeclarativePosition) + +#endif diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioningquick/qdeclarativepositionsource.cpp qtlocation-opensource-src-5.11.1+dfsg/src/positioningquick/qdeclarativepositionsource.cpp --- qtlocation-opensource-src-5.9.5+dfsg/src/positioningquick/qdeclarativepositionsource.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioningquick/qdeclarativepositionsource.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,768 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtPositioning module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qdeclarativepositionsource_p.h" +#include "qdeclarativeposition_p.h" + +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +/*! + \qmltype PositionSource + //! \instantiates QDeclarativePositionSource + \inqmlmodule QtPositioning + \since 5.2 + + \brief The PositionSource type provides the device's current position. + + The PositionSource type provides information about the user device's + current position. The position is available as a \l{Position} type, which + contains all the standard parameters typically available from GPS and other + similar systems, including longitude, latitude, speed and accuracy details. + + As different position sources are available on different platforms and + devices, these are categorized by their basic type (Satellite, NonSatellite, + and AllPositioningMethods). The available methods for the current platform + can be enumerated in the \l{supportedPositioningMethods} property. + + To indicate which methods are suitable for your application, set the + \l{preferredPositioningMethods} property. If the preferred methods are not + available, the default source of location data for the platform will be + chosen instead. If no default source is available (because none are installed + for the runtime platform, or because it is disabled), the \l{valid} property + will be set to false. + + The \l updateInterval property can then be used to indicate how often your + application wishes to receive position updates. The \l{start}(), + \l{stop}() and \l{update}() methods can be used to control the operation + of the PositionSource, as well as the \l{active} property, which when set + is equivalent to calling \l{start}() or \l{stop}(). + + When the PositionSource is active, position updates can be retrieved + either by simply using the \l{position} property in a binding (as the + value of another item's property), or by providing an implementation of + the \c {onPositionChanged} signal-handler. + + \section2 Example Usage + + The following example shows a simple PositionSource used to receive + updates every second and print the longitude and latitude out to + the console. + + \code + PositionSource { + id: src + updateInterval: 1000 + active: true + + onPositionChanged: { + var coord = src.position.coordinate; + console.log("Coordinate:", coord.longitude, coord.latitude); + } + } + \endcode + + The \l{geoflickr}{GeoFlickr} example application shows how to use + a PositionSource in your application to retrieve local data for users + from a REST web service. + + \sa {QtPositioning::Position}, {QGeoPositionInfoSource} + +*/ + +/*! + \qmlsignal PositionSource::updateTimeout() + + If \l update() was called, this signal is emitted if the current position could not be + retrieved within a certain amount of time. + + If \l start() was called, this signal is emitted if the position engine determines that + it is not able to provide further regular updates. + + \since Qt Positioning 5.5 + + \sa QGeoPositionInfoSource::updateTimeout() +*/ + + +QDeclarativePositionSource::QDeclarativePositionSource() +: m_positionSource(0), m_preferredPositioningMethods(NoPositioningMethods), m_nmeaFile(0), + m_nmeaSocket(0), m_active(false), m_singleUpdate(false), m_updateInterval(0), + m_sourceError(NoError) +{ +} + +QDeclarativePositionSource::~QDeclarativePositionSource() +{ + delete m_nmeaFile; + delete m_nmeaSocket; + delete m_positionSource; +} + + +/*! + \qmlproperty string PositionSource::name + + This property holds the unique internal name for the plugin currently + providing position information. + + Setting the property causes the PositionSource to use a particular positioning provider. If + the PositionSource is active at the time that the name property is changed, it will become + inactive. If the specified positioning provider cannot be loaded the position source will + become invalid. + + Changing the name property may cause the \l {updateInterval}, \l {supportedPositioningMethods} + and \l {preferredPositioningMethods} properties to change as well. +*/ + + +QString QDeclarativePositionSource::name() const +{ + if (m_positionSource) + return m_positionSource->sourceName(); + else + return QString(); +} + +void QDeclarativePositionSource::setName(const QString &newName) +{ + if (m_positionSource && m_positionSource->sourceName() == newName) + return; + + const QString previousName = name(); + int previousUpdateInterval = updateInterval(); + PositioningMethods previousPositioningMethods = supportedPositioningMethods(); + PositioningMethods previousPreferredPositioningMethods = preferredPositioningMethods(); + + delete m_positionSource; + if (newName.isEmpty()) + m_positionSource = QGeoPositionInfoSource::createDefaultSource(this); + else + m_positionSource = QGeoPositionInfoSource::createSource(newName, this); + + if (m_positionSource) { + connect(m_positionSource, SIGNAL(positionUpdated(QGeoPositionInfo)), + this, SLOT(positionUpdateReceived(QGeoPositionInfo))); + connect(m_positionSource, SIGNAL(error(QGeoPositionInfoSource::Error)), + this, SLOT(sourceErrorReceived(QGeoPositionInfoSource::Error))); + connect(m_positionSource, SIGNAL(updateTimeout()), + this, SLOT(updateTimeoutReceived())); + + m_positionSource->setUpdateInterval(m_updateInterval); + m_positionSource->setPreferredPositioningMethods( + static_cast(int(m_preferredPositioningMethods))); + + setPosition(m_positionSource->lastKnownPosition()); + } + + if (previousUpdateInterval != updateInterval()) + emit updateIntervalChanged(); + + if (previousPreferredPositioningMethods != preferredPositioningMethods()) + emit preferredPositioningMethodsChanged(); + + if (previousPositioningMethods != supportedPositioningMethods()) + emit supportedPositioningMethodsChanged(); + + emit validityChanged(); + + if (m_active) { + m_active = false; + emit activeChanged(); + } + + if (previousName != name()) + emit nameChanged(); +} + +/*! + \qmlproperty bool PositionSource::valid + + This property is true if the PositionSource object has acquired a valid + backend plugin to provide data. If false, other methods on the PositionSource + will have no effect. + + Applications should check this property to determine whether positioning is + available and enabled on the runtime platform, and react accordingly. +*/ +bool QDeclarativePositionSource::isValid() const +{ + return (m_positionSource != 0); +} + +/*! + \internal +*/ +void QDeclarativePositionSource::setNmeaSource(const QUrl &nmeaSource) +{ + if (nmeaSource.scheme() == QLatin1String("socket")) { + if (m_nmeaSocket + && nmeaSource.host() == m_nmeaSocket->peerName() + && nmeaSource.port() == m_nmeaSocket->peerPort()) { + return; + } + + delete m_nmeaSocket; + m_nmeaSocket = new QTcpSocket(); + + connect(m_nmeaSocket, static_cast (&QAbstractSocket::error), + this, &QDeclarativePositionSource::socketError); + connect(m_nmeaSocket, &QTcpSocket::connected, + this, &QDeclarativePositionSource::socketConnected); + + m_nmeaSocket->connectToHost(nmeaSource.host(), nmeaSource.port(), QTcpSocket::ReadOnly); + } else { + // Strip the filename. This is clumsy but the file may be prefixed in several + // ways: "file:///", "qrc:///", "/", "" in platform dependent manner. + QString localFileName = nmeaSource.toString(); + if (!QFile::exists(localFileName)) { + if (localFileName.startsWith(QStringLiteral("qrc:///"))) { + localFileName.remove(0, 7); + } else if (localFileName.startsWith(QStringLiteral("file:///"))) { + localFileName.remove(0, 7); + } else if (localFileName.startsWith(QStringLiteral("qrc:/"))) { + localFileName.remove(0, 5); + } + if (!QFile::exists(localFileName) && localFileName.startsWith('/')) { + localFileName.remove(0,1); + } + } + if (m_nmeaFileName == localFileName) + return; + m_nmeaFileName = localFileName; + + PositioningMethods previousPositioningMethods = supportedPositioningMethods(); + + // The current position source needs to be deleted + // because QNmeaPositionInfoSource can be bound only to a one file. + delete m_nmeaSocket; + m_nmeaSocket = 0; + delete m_positionSource; + m_positionSource = 0; + setPosition(QGeoPositionInfo()); + // Create the NMEA source based on the given data. QML has automatically set QUrl + // type to point to correct path. If the file is not found, check if the file actually + // was an embedded resource file. + delete m_nmeaFile; + m_nmeaFile = new QFile(localFileName); + if (!m_nmeaFile->exists()) { + localFileName.prepend(':'); + m_nmeaFile->setFileName(localFileName); + } + if (m_nmeaFile->exists()) { +#ifdef QDECLARATIVE_POSITION_DEBUG + qDebug() << "QDeclarativePositionSource NMEA File was found: " << localFileName; +#endif + m_positionSource = new QNmeaPositionInfoSource(QNmeaPositionInfoSource::SimulationMode); + (qobject_cast(m_positionSource))->setUserEquivalentRangeError(2.5); // it is internally multiplied by 2 in qlocationutils_readGga + (qobject_cast(m_positionSource))->setDevice(m_nmeaFile); + connect(m_positionSource, SIGNAL(positionUpdated(QGeoPositionInfo)), + this, SLOT(positionUpdateReceived(QGeoPositionInfo))); + connect(m_positionSource, SIGNAL(error(QGeoPositionInfoSource::Error)), + this, SLOT(sourceErrorReceived(QGeoPositionInfoSource::Error))); + connect(m_positionSource, SIGNAL(updateTimeout()), + this, SLOT(updateTimeoutReceived())); + + setPosition(m_positionSource->lastKnownPosition()); + if (m_active && !m_singleUpdate) { + // Keep on updating even though source changed + QTimer::singleShot(0, this, SLOT(start())); + } + } else { + qmlWarning(this) << QStringLiteral("Nmea file not found") << localFileName; +#ifdef QDECLARATIVE_POSITION_DEBUG + qDebug() << "QDeclarativePositionSource NMEA File was not found: " << localFileName; +#endif + if (m_active) { + m_active = false; + m_singleUpdate = false; + emit activeChanged(); + } + } + + if (previousPositioningMethods != supportedPositioningMethods()) + emit supportedPositioningMethodsChanged(); + } + + m_nmeaSource = nmeaSource; + emit nmeaSourceChanged(); +} + +/*! + \internal +*/ +void QDeclarativePositionSource::socketConnected() +{ +#ifdef QDECLARATIVE_POSITION_DEBUG + qDebug() << "Socket connected: " << m_nmeaSocket->peerName(); +#endif + PositioningMethods previousPositioningMethods = supportedPositioningMethods(); + + // The current position source needs to be deleted + // because QNmeaPositionInfoSource can be bound only to a one file. + delete m_nmeaFile; + m_nmeaFile = 0; + delete m_positionSource; + + m_positionSource = new QNmeaPositionInfoSource(QNmeaPositionInfoSource::RealTimeMode); + (qobject_cast(m_positionSource))->setDevice(m_nmeaSocket); + + connect(m_positionSource, &QNmeaPositionInfoSource::positionUpdated, + this, &QDeclarativePositionSource::positionUpdateReceived); + connect(m_positionSource, SIGNAL(error(QGeoPositionInfoSource::Error)), + this, SLOT(sourceErrorReceived(QGeoPositionInfoSource::Error))); + connect(m_positionSource, SIGNAL(updateTimeout()), + this, SLOT(updateTimeoutReceived())); + + setPosition(m_positionSource->lastKnownPosition()); + + if (m_active && !m_singleUpdate) { + // Keep on updating even though source changed + QTimer::singleShot(0, this, SLOT(start())); + } + + if (previousPositioningMethods != supportedPositioningMethods()) + emit supportedPositioningMethodsChanged(); +} + +/*! + \internal +*/ +void QDeclarativePositionSource::socketError(QAbstractSocket::SocketError error) +{ + delete m_nmeaSocket; + m_nmeaSocket = 0; + + switch (error) { + case QAbstractSocket::UnknownSocketError: + m_sourceError = QDeclarativePositionSource::UnknownSourceError; + break; + case QAbstractSocket::SocketAccessError: + m_sourceError = QDeclarativePositionSource::AccessError; + break; + case QAbstractSocket::RemoteHostClosedError: + m_sourceError = QDeclarativePositionSource::ClosedError; + break; + default: + qWarning() << "Connection failed! QAbstractSocket::SocketError" << error; + m_sourceError = QDeclarativePositionSource::SocketError; + break; + } + + emit sourceErrorChanged(); +} + + +void QDeclarativePositionSource::updateTimeoutReceived() +{ + if (!m_active) + return; + + if (m_singleUpdate) { + m_singleUpdate = false; + + // only singleUpdate based timeouts change activity + // continuous updates may resume again (see QGeoPositionInfoSource::startUpdates()) + m_active = false; + emit activeChanged(); + } + + emit updateTimeout(); +} + +void QDeclarativePositionSource::setPosition(const QGeoPositionInfo &pi) +{ + m_position.setPosition(pi); + emit positionChanged(); +} + +/*! + \internal +*/ +void QDeclarativePositionSource::setUpdateInterval(int updateInterval) +{ + if (m_positionSource) { + int previousUpdateInterval = m_positionSource->updateInterval(); + + m_updateInterval = updateInterval; + + if (previousUpdateInterval != updateInterval) { + m_positionSource->setUpdateInterval(updateInterval); + if (previousUpdateInterval != m_positionSource->updateInterval()) + emit updateIntervalChanged(); + } + } else { + if (m_updateInterval != updateInterval) { + m_updateInterval = updateInterval; + emit updateIntervalChanged(); + } + } +} + +/*! + \qmlproperty url PositionSource::nmeaSource + + This property holds the source for NMEA (National Marine Electronics Association) + position-specification data (file). One purpose of this property is to be of + development convenience. + + Setting this property will override any other position source. Currently only + files local to the .qml -file are supported. The NMEA source is created in simulation mode, + meaning that the data and time information in the NMEA source data is used to provide + positional updates at the rate at which the data was originally recorded. + + If nmeaSource has been set for a PositionSource object, there is no way to revert + back to non-file sources. +*/ + +QUrl QDeclarativePositionSource::nmeaSource() const +{ + return m_nmeaSource; +} + +/*! + \qmlproperty int PositionSource::updateInterval + + This property holds the desired interval between updates (milliseconds). + + \sa {QGeoPositionInfoSource::updateInterval()} +*/ + +int QDeclarativePositionSource::updateInterval() const +{ + if (!m_positionSource) + return m_updateInterval; + + return m_positionSource->updateInterval(); +} + +/*! + \qmlproperty enumeration PositionSource::supportedPositioningMethods + + This property holds the supported positioning methods of the + current source. + + \list + \li PositionSource.NoPositioningMethods - No positioning methods supported (no source). + \li PositionSource.SatellitePositioningMethods - Satellite-based positioning methods such as GPS are supported. + \li PositionSource.NonSatellitePositioningMethods - Non-satellite-based methods are supported. + \li PositionSource.AllPositioningMethods - Both satellite-based and non-satellite positioning methods are supported. + \endlist + +*/ + +QDeclarativePositionSource::PositioningMethods QDeclarativePositionSource::supportedPositioningMethods() const +{ + if (m_positionSource) { + return static_cast( + int(m_positionSource->supportedPositioningMethods())); + } + return QDeclarativePositionSource::NoPositioningMethods; +} + +/*! + \qmlproperty enumeration PositionSource::preferredPositioningMethods + + This property holds the preferred positioning methods of the + current source. + + \list + \li PositionSource.NoPositioningMethods - No positioning method is preferred. + \li PositionSource.SatellitePositioningMethods - Satellite-based positioning methods such as GPS should be preferred. + \li PositionSource.NonSatellitePositioningMethods - Non-satellite-based methods should be preferred. + \li PositionSource.AllPositioningMethods - Any positioning methods are acceptable. + \endlist + +*/ + +void QDeclarativePositionSource::setPreferredPositioningMethods(PositioningMethods methods) +{ + if (m_positionSource) { + PositioningMethods previousPreferredPositioningMethods = preferredPositioningMethods(); + + m_preferredPositioningMethods = methods; + + if (previousPreferredPositioningMethods != methods) { + m_positionSource->setPreferredPositioningMethods( + static_cast(int(methods))); + if (previousPreferredPositioningMethods != m_positionSource->preferredPositioningMethods()) + emit preferredPositioningMethodsChanged(); + } + } else { + if (m_preferredPositioningMethods != methods) { + m_preferredPositioningMethods = methods; + emit preferredPositioningMethodsChanged(); + } + } +} + +QDeclarativePositionSource::PositioningMethods QDeclarativePositionSource::preferredPositioningMethods() const +{ + if (m_positionSource) { + return static_cast( + int(m_positionSource->preferredPositioningMethods())); + } + return m_preferredPositioningMethods; +} + +/*! + \qmlmethod PositionSource::start() + + Requests updates from the location source. + Uses \l updateInterval if set, default interval otherwise. + If there is no source available, this method has no effect. + + \sa stop, update, active +*/ + +void QDeclarativePositionSource::start() +{ + if (m_positionSource) + m_positionSource->startUpdates(); + + if (!m_active) { + m_active = true; + emit activeChanged(); + } +} + +/*! + \qmlmethod PositionSource::update() + + A convenience method to request single update from the location source. + If there is no source available, this method has no effect. + + If the position source is not active, it will be activated for as + long as it takes to receive an update, or until the request times + out. The request timeout period is source-specific. + + \sa start, stop, active +*/ + +void QDeclarativePositionSource::update() +{ + if (m_positionSource) { + if (!m_active) { + m_active = true; + m_singleUpdate = true; + emit activeChanged(); + } + // Use default timeout value. Set active before calling the + // update request because on some platforms there may + // be results immediately. + m_positionSource->requestUpdate(); + } +} + +/*! + \qmlmethod PositionSource::stop() + + Stops updates from the location source. + If there is no source available or it is not active, + this method has no effect. + + \sa start, update, active +*/ + +void QDeclarativePositionSource::stop() +{ + if (m_positionSource) { + m_positionSource->stopUpdates(); + if (m_active) { + m_active = false; + emit activeChanged(); + } + } +} + +/*! + \qmlproperty bool PositionSource::active + + This property indicates whether the position source is active. + Setting this property to false equals calling \l stop, and + setting this property true equals calling \l start. + + \sa start, stop, update +*/ +void QDeclarativePositionSource::setActive(bool active) +{ + if (active == m_active) + return; + + if (active) + QTimer::singleShot(0, this, SLOT(start())); // delay ensures all properties have been set + else + stop(); +} + +bool QDeclarativePositionSource::isActive() const +{ + return m_active; +} + +/*! + \qmlproperty Position PositionSource::position + + This property holds the last known positional data. + It is a read-only property. + + The Position type has different positional member variables, + whose validity can be checked with appropriate validity functions + (for example sometimes an update does not have speed or altitude data). + + However, whenever a \c {positionChanged} signal has been received, at least + position::coordinate::latitude, position::coordinate::longitude, and position::timestamp can + be assumed to be valid. + + \sa start, stop, update +*/ + +QDeclarativePosition *QDeclarativePositionSource::position() +{ + return &m_position; +} + +void QDeclarativePositionSource::positionUpdateReceived(const QGeoPositionInfo &update) +{ + setPosition(update); + + if (m_singleUpdate && m_active) { + m_active = false; + m_singleUpdate = false; + emit activeChanged(); + } +} + + +/*! + \qmlproperty enumeration PositionSource::sourceError + + This property holds the error which last occurred with the PositionSource. + + \list + \li PositionSource.AccessError - The connection setup to the remote positioning backend failed because the + application lacked the required privileges. + \li PositionSource.ClosedError - The positioning backend closed the connection, which happens for example in case + the user is switching location services to off. As soon as the location service is re-enabled + regular updates will resume. + \li PositionSource.NoError - No error has occurred. + \li PositionSource.UnknownSourceError - An unidentified error occurred. + \li PositionSource.SocketError - An error occurred while connecting to an nmea source using a socket. + \endlist + +*/ + +QDeclarativePositionSource::SourceError QDeclarativePositionSource::sourceError() const +{ + return m_sourceError; +} + +QGeoPositionInfoSource *QDeclarativePositionSource::positionSource() const +{ + return m_positionSource; +} + +void QDeclarativePositionSource::componentComplete() +{ + if (!m_positionSource) { + int previousUpdateInterval = updateInterval(); + PositioningMethods previousPositioningMethods = supportedPositioningMethods(); + PositioningMethods previousPreferredPositioningMethods = preferredPositioningMethods(); + + m_positionSource = QGeoPositionInfoSource::createDefaultSource(this); + if (m_positionSource) { + connect(m_positionSource, SIGNAL(positionUpdated(QGeoPositionInfo)), + this, SLOT(positionUpdateReceived(QGeoPositionInfo))); + connect(m_positionSource, SIGNAL(error(QGeoPositionInfoSource::Error)), + this, SLOT(sourceErrorReceived(QGeoPositionInfoSource::Error))); + connect(m_positionSource, SIGNAL(updateTimeout()), + this, SLOT(updateTimeoutReceived())); + + m_positionSource->setUpdateInterval(m_updateInterval); + m_positionSource->setPreferredPositioningMethods( + static_cast(int(m_preferredPositioningMethods))); + + setPosition(m_positionSource->lastKnownPosition()); + + if (m_active) + QTimer::singleShot(0, this, SLOT(start())); // delay ensures all properties have been set + } else if (m_active) { + m_active = false; + emit activeChanged(); + } + + if (previousUpdateInterval != updateInterval()) + emit updateIntervalChanged(); + + if (previousPreferredPositioningMethods != preferredPositioningMethods()) + emit preferredPositioningMethodsChanged(); + + if (previousPositioningMethods != supportedPositioningMethods()) + emit supportedPositioningMethodsChanged(); + + emit validityChanged(); + emit nameChanged(); + } +} + +/*! + \internal +*/ +void QDeclarativePositionSource::sourceErrorReceived(const QGeoPositionInfoSource::Error error) +{ + if (error == QGeoPositionInfoSource::AccessError) + m_sourceError = QDeclarativePositionSource::AccessError; + else if (error == QGeoPositionInfoSource::ClosedError) + m_sourceError = QDeclarativePositionSource::ClosedError; + else if (error == QGeoPositionInfoSource::NoError) + return; //nothing to do + else + m_sourceError = QDeclarativePositionSource::UnknownSourceError; + + emit sourceErrorChanged(); +} + +QT_END_NAMESPACE diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioningquick/qdeclarativepositionsource_p.h qtlocation-opensource-src-5.11.1+dfsg/src/positioningquick/qdeclarativepositionsource_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/positioningquick/qdeclarativepositionsource_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioningquick/qdeclarativepositionsource_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,174 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtPositioning module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +***************************************************************************/ + +#ifndef QDECLARATIVEPOSITIONSOURCE_H +#define QDECLARATIVEPOSITIONSOURCE_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qdeclarativeposition_p.h" + +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QFile; +class QTcpSocket; + +class Q_POSITIONINGQUICK_PRIVATE_EXPORT QDeclarativePositionSource : public QObject, public QQmlParserStatus +{ + Q_OBJECT + + Q_PROPERTY(QDeclarativePosition *position READ position NOTIFY positionChanged) + Q_PROPERTY(bool active READ isActive WRITE setActive NOTIFY activeChanged) + Q_PROPERTY(bool valid READ isValid NOTIFY validityChanged) + Q_PROPERTY(QUrl nmeaSource READ nmeaSource WRITE setNmeaSource NOTIFY nmeaSourceChanged) + Q_PROPERTY(int updateInterval READ updateInterval WRITE setUpdateInterval NOTIFY updateIntervalChanged) + Q_PROPERTY(PositioningMethods supportedPositioningMethods READ supportedPositioningMethods NOTIFY supportedPositioningMethodsChanged) + Q_PROPERTY(PositioningMethods preferredPositioningMethods READ preferredPositioningMethods WRITE setPreferredPositioningMethods NOTIFY preferredPositioningMethodsChanged) + Q_PROPERTY(SourceError sourceError READ sourceError NOTIFY sourceErrorChanged) + Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) + Q_ENUMS(PositioningMethod) + + Q_INTERFACES(QQmlParserStatus) + +public: + enum PositioningMethod { + NoPositioningMethods = QGeoPositionInfoSource::NoPositioningMethods, + SatellitePositioningMethods = QGeoPositionInfoSource::SatellitePositioningMethods, + NonSatellitePositioningMethods = QGeoPositionInfoSource::NonSatellitePositioningMethods, + AllPositioningMethods = QGeoPositionInfoSource::AllPositioningMethods + }; + + Q_DECLARE_FLAGS(PositioningMethods, PositioningMethod) + Q_FLAGS(PositioningMethods) + + enum SourceError { + AccessError = QGeoPositionInfoSource::AccessError, + ClosedError = QGeoPositionInfoSource::ClosedError, + UnknownSourceError = QGeoPositionInfoSource::UnknownSourceError, + NoError = QGeoPositionInfoSource::NoError, + + //Leave a gap for future error enum values in QGeoPositionInfoSource::Error + SocketError = 100 + }; + Q_ENUMS(SourceError) + + QDeclarativePositionSource(); + ~QDeclarativePositionSource(); + void setNmeaSource(const QUrl &nmeaSource); + void setUpdateInterval(int updateInterval); + void setActive(bool active); + void setPreferredPositioningMethods(PositioningMethods methods); + + QString name() const; + void setName(const QString &name); + + QUrl nmeaSource() const; + int updateInterval() const; + bool isActive() const; + bool isValid() const; + QDeclarativePosition *position(); + PositioningMethods supportedPositioningMethods() const; + PositioningMethods preferredPositioningMethods() const; + SourceError sourceError() const; + QGeoPositionInfoSource *positionSource() const; + + // Virtuals from QQmlParserStatus + void classBegin() { } + void componentComplete(); + +public Q_SLOTS: + void update(); // TODO Qt 6 change to void update(int) + void start(); + void stop(); + +Q_SIGNALS: + void positionChanged(); + void activeChanged(); + void nmeaSourceChanged(); + void updateIntervalChanged(); + void supportedPositioningMethodsChanged(); + void preferredPositioningMethodsChanged(); + void sourceErrorChanged(); + void nameChanged(); + void validityChanged(); + void updateTimeout(); + +private Q_SLOTS: + void positionUpdateReceived(const QGeoPositionInfo &update); + void sourceErrorReceived(const QGeoPositionInfoSource::Error error); + void socketConnected(); + void socketError(QAbstractSocket::SocketError error); + void updateTimeoutReceived(); + +private: + void setPosition(const QGeoPositionInfo &pi); + + QGeoPositionInfoSource *m_positionSource; + QDeclarativePosition m_position; + PositioningMethods m_preferredPositioningMethods; + QFile *m_nmeaFile; + QTcpSocket *m_nmeaSocket; + QString m_nmeaFileName; + QUrl m_nmeaSource; + bool m_active; + bool m_singleUpdate; + int m_updateInterval; + SourceError m_sourceError; +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QDeclarativePositionSource) + +#endif diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioningquick/qpositioningquickglobal.h qtlocation-opensource-src-5.11.1+dfsg/src/positioningquick/qpositioningquickglobal.h --- qtlocation-opensource-src-5.9.5+dfsg/src/positioningquick/qpositioningquickglobal.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioningquick/qpositioningquickglobal.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,69 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtPositioning module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#ifndef QPOSITIONINGQUICKGLOBAL_H +#define QPOSITIONINGQUICKGLOBAL_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include + +QT_BEGIN_NAMESPACE + +#ifndef QT_STATIC +# if defined(QT_BUILD_POSITIONINGQUICK_LIB) +# define Q_POSITIONINGQUICK_EXPORT Q_DECL_EXPORT +# else +# define Q_POSITIONINGQUICK_EXPORT Q_DECL_IMPORT +# endif +#else +# define Q_POSITIONINGQUICK_EXPORT +#endif + +QT_END_NAMESPACE + +#endif // QPOSITIONINGQUICKGLOBAL_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/positioningquick/qpositioningquickglobal_p.h qtlocation-opensource-src-5.11.1+dfsg/src/positioningquick/qpositioningquickglobal_p.h --- qtlocation-opensource-src-5.9.5+dfsg/src/positioningquick/qpositioningquickglobal_p.h 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/positioningquick/qpositioningquickglobal_p.h 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtPositioning module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#ifndef QPOSITIONINGQUICKGLOBAL_P_H +#define QPOSITIONINGQUICKGLOBAL_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qpositioningquickglobal.h" + +QT_BEGIN_NAMESPACE + +#define Q_POSITIONINGQUICK_PRIVATE_EXPORT Q_POSITIONINGQUICK_EXPORT + +QT_END_NAMESPACE + +#endif // QPOSITIONINGQUICKGLOBAL_P_H diff -Nru qtlocation-opensource-src-5.9.5+dfsg/src/src.pro qtlocation-opensource-src-5.11.1+dfsg/src/src.pro --- qtlocation-opensource-src-5.9.5+dfsg/src/src.pro 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/src/src.pro 2018-06-12 18:44:12.000000000 +0000 @@ -1,5 +1,9 @@ TEMPLATE = subdirs +QT_FOR_CONFIG += location-private +include($$OUT_PWD/location/qtlocation-config.pri) +include($$OUT_PWD/positioning/qtpositioning-config.pri) + clip2tri.subdir = 3rdparty/clip2tri poly2tri.subdir = 3rdparty/poly2tri clipper.subdir = 3rdparty/clipper @@ -11,15 +15,15 @@ positioning.depends = clip2tri qtHaveModule(quick) { - SUBDIRS += location + SUBDIRS += positioningquick location + positioningquick.depends += positioning location.depends += positioning clip2tri plugins.depends += location SUBDIRS += imports - imports.depends += positioning location + imports.depends += positioningquick positioning location } - plugins.depends += positioning SUBDIRS += plugins diff -Nru qtlocation-opensource-src-5.9.5+dfsg/sync.profile qtlocation-opensource-src-5.11.1+dfsg/sync.profile --- qtlocation-opensource-src-5.9.5+dfsg/sync.profile 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/sync.profile 2018-06-12 18:44:12.000000000 +0000 @@ -1,6 +1,7 @@ %modules = ( # path to module name map "QtLocation" => "$basedir/src/location", "QtPositioning" => "$basedir/src/positioning", + "QtPositioningQuick" => "$basedir/src/positioningquick", ); %moduleheaders = ( # restrict the module headers to those found in relative path ); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/.tag qtlocation-opensource-src-5.11.1+dfsg/.tag --- qtlocation-opensource-src-5.9.5+dfsg/.tag 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/.tag 2018-06-12 18:44:12.000000000 +0000 @@ -1 +1 @@ -0008c4b6cc1b935915ba92982e7fea0b9af8dfb0 +f8a0ae9109c2ee56a0480cbe62f07239afb31392 diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/auto.pro qtlocation-opensource-src-5.11.1+dfsg/tests/auto/auto.pro --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/auto.pro 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/auto.pro 2018-06-12 18:44:12.000000000 +0000 @@ -62,9 +62,6 @@ declarative_geoshape !mac: SUBDIRS += declarative_ui - - # QTBUG-60268 - boot2qt: SUBDIRS -= declarative_ui } } @@ -78,6 +75,7 @@ qgeorectangle \ qgeocircle \ qgeopath \ + qgeopolygon \ qgeocoordinate \ qgeolocation \ qgeopositioninfo \ diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/bic/data/QtPositioning.5.10.0.linux-gcc-amd64.txt qtlocation-opensource-src-5.11.1+dfsg/tests/auto/bic/data/QtPositioning.5.10.0.linux-gcc-amd64.txt --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/bic/data/QtPositioning.5.10.0.linux-gcc-amd64.txt 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/bic/data/QtPositioning.5.10.0.linux-gcc-amd64.txt 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,4773 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7f13e8ed68a0) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7f13e8fad060) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7f13e8fad2a0) 0 empty + +Class std::__do_is_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_default_constructible_impl (0x0x7f13e8fad4e0) 0 empty + +Class std::__do_is_static_castable_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_static_castable_impl (0x0x7f13e8fad720) 0 empty + +Class std::__do_is_direct_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_direct_constructible_impl (0x0x7f13e8fad8a0) 0 empty + +Class std::__do_is_nary_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nary_constructible_impl (0x0x7f13e8fadc60) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7f13e6c69420) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7f13e6c694e0) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7f13e6c69840) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7f13e6c69900) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7f13e6c699c0) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7f13e6c69a80) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7f13e6c69d20) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7f13e6c69f00) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7f13e6cdb3c0) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7f13e6cdb420) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7f13e6d4f0c0) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7f13e6d4f120) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7f13e6cac208) 0 empty + std::input_iterator_tag (0x0x7f13e6d4f180) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7f13e6cac270) 0 empty + std::forward_iterator_tag (0x0x7f13e6cac2d8) 0 empty + std::input_iterator_tag (0x0x7f13e6d4f1e0) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7f13e6cac340) 0 empty + std::bidirectional_iterator_tag (0x0x7f13e6cac3a8) 0 empty + std::forward_iterator_tag (0x0x7f13e6cac410) 0 empty + std::input_iterator_tag (0x0x7f13e6d4f240) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7f13e6d4fea0) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7f13e6d4ff00) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7f13e6d4ff60) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7f13e6a0b000) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7f13e6a0b060) 0 empty + +Class wait + size=4 align=4 + base size=4 base align=4 +wait (0x0x7f13e6a0bb40) 0 + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7f13e6a0bd80) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7f13e6a0be40) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7f13e6a0bea0) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7f13e6a0bf60) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7f13e6abf000) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7f13e6abf480) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7f13e6abf4e0) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7f13e6abf540) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16u) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7f13e6cac958) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16u) + std::exception (0x0x7f13e6abf5a0) 0 nearly-empty + primary-for std::bad_exception (0x0x7f13e6cac958) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7f13e6abf600) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7f13e6abf660) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16u) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7f13e6cacb60) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16u) + std::exception (0x0x7f13e6abfa80) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f13e6cacb60) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7f13e6cacbc8) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16u) + std::bad_alloc (0x0x7f13e6cacc30) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7f13e6cacbc8) + std::exception (0x0x7f13e6abfae0) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f13e6cacc30) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7f13e6abfb40) 0 empty + +Class __exception + size=40 align=8 + base size=40 base align=8 +__exception (0x0x7f13e6839780) 0 + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7f13e663c480) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7f13e663c4e0) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16u) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7f13e66e13c0) 0 + +Class __sched_param + size=4 align=4 + base size=4 base align=4 +__sched_param (0x0x7f13e66e1420) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7f13e66e14e0) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7f13e66e1540) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7f13e66e15a0) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7f13e66e1600) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7f13e66e1720) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7f13e66e1780) 0 + +Class _IO_marker + size=24 align=8 + base size=24 base align=8 +_IO_marker (0x0x7f13e66e1ba0) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7f13e66e1c00) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7f13e6219420) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7f13e6219480) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7f13e62d3420) 0 empty + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7f13e608a240) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7f13e623d9c0) 0 + std::iterator (0x0x7f13e608a300) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7f13e623da28) 0 + std::_Bit_iterator_base (0x0x7f13e623da90) 0 + std::iterator (0x0x7f13e608a360) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7f13e623daf8) 0 + std::_Bit_iterator_base (0x0x7f13e623db60) 0 + std::iterator (0x0x7f13e608a3c0) 0 empty + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7f13e5e9a1e0) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7f13e5e9af60) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7f13e5e9af00) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7f13e5c01f00) 0 + +Class qIsNull(double)::U + size=8 align=8 + base size=8 base align=8 +qIsNull(double)::U (0x0x7f13e4bcea20) 0 + +Class qIsNull(float)::U + size=4 align=4 + base size=4 base align=4 +qIsNull(float)::U (0x0x7f13e4bcea80) 0 + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7f13e490c540) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7f13e490c5a0) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7f13e490c600) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7f13e490c660) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7f13e490c900) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7f13e490ce40) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7f13e4907888) 0 + std::__atomic_flag_base (0x0x7f13e490cea0) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7f13e4584000) 0 + QAtomicInteger (0x0x7f13e4584068) 0 + QBasicAtomicInteger (0x0x7f13e44b5600) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7f13e435eba0) 0 empty + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7f13e417cc00) 0 + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7f13e417cd20) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7f13e4362a90) 0 + QGenericArgument (0x0x7f13e417cd80) 0 + +Class QMetaObject + size=48 align=8 + base size=48 base align=8 +QMetaObject (0x0x7f13e417cf00) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7f13e3e1f000) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7f13e3ea1060) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7f13e3ea10c0) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7f13e3ea1360) 0 + +Class QArrayData + size=24 align=8 + base size=24 base align=8 +QArrayData (0x0x7f13e3ea13c0) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7f13e3ea1720) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7f13e3ea1780) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7f13e3ea17e0) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16u) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7f13e3ea1840) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7f13e3ea18a0) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7f13e3ea1c60) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7f13e3c47000) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16u) + std::exception (0x0x7f13e3ea1d20) 0 nearly-empty + primary-for std::logic_error (0x0x7f13e3c47000) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7f13e3c47068) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16u) + std::logic_error (0x0x7f13e3c470d0) 0 + primary-for std::domain_error (0x0x7f13e3c47068) + std::exception (0x0x7f13e3ea1d80) 0 nearly-empty + primary-for std::logic_error (0x0x7f13e3c470d0) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7f13e3c47138) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16u) + std::logic_error (0x0x7f13e3c471a0) 0 + primary-for std::invalid_argument (0x0x7f13e3c47138) + std::exception (0x0x7f13e3ea1de0) 0 nearly-empty + primary-for std::logic_error (0x0x7f13e3c471a0) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7f13e3c47208) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16u) + std::logic_error (0x0x7f13e3c47270) 0 + primary-for std::length_error (0x0x7f13e3c47208) + std::exception (0x0x7f13e3ea1e40) 0 nearly-empty + primary-for std::logic_error (0x0x7f13e3c47270) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7f13e3c472d8) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16u) + std::logic_error (0x0x7f13e3c47340) 0 + primary-for std::out_of_range (0x0x7f13e3c472d8) + std::exception (0x0x7f13e3ea1ea0) 0 nearly-empty + primary-for std::logic_error (0x0x7f13e3c47340) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7f13e3c473a8) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16u) + std::exception (0x0x7f13e3ea1f00) 0 nearly-empty + primary-for std::runtime_error (0x0x7f13e3c473a8) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7f13e3c47410) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16u) + std::runtime_error (0x0x7f13e3c47478) 0 + primary-for std::range_error (0x0x7f13e3c47410) + std::exception (0x0x7f13e3ea1f60) 0 nearly-empty + primary-for std::runtime_error (0x0x7f13e3c47478) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7f13e3c474e0) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16u) + std::runtime_error (0x0x7f13e3c47548) 0 + primary-for std::overflow_error (0x0x7f13e3c474e0) + std::exception (0x0x7f13e3c65000) 0 nearly-empty + primary-for std::runtime_error (0x0x7f13e3c47548) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7f13e3c475b0) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16u) + std::runtime_error (0x0x7f13e3c47618) 0 + primary-for std::underflow_error (0x0x7f13e3c475b0) + std::exception (0x0x7f13e3c65060) 0 nearly-empty + primary-for std::runtime_error (0x0x7f13e3c47618) + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7f13e3c651e0) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16u) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7f13e3c65420) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7f13e3c655a0) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7f13e3c47af8) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16u) + std::runtime_error (0x0x7f13e3c47b60) 0 + primary-for std::system_error (0x0x7f13e3c47af8) + std::exception (0x0x7f13e3c657e0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f13e3c47b60) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7f13e3ccc750) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16u) + std::system_error (0x0x7f13e3ccc7b8) 0 + primary-for std::ios_base::failure (0x0x7f13e3ccc750) + std::runtime_error (0x0x7f13e3ccc820) 0 + primary-for std::system_error (0x0x7f13e3ccc7b8) + std::exception (0x0x7f13e3c65ae0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f13e3ccc820) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7f13e3c65b40) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7f13e3c65ba0) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7f13e3c65c00) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7f13e3c65a80) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16u) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7f13e3da43c0) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7f13e3da4a80) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2u entries +0 ((& std::basic_ostream::_ZTVSo) + 24u) +8 ((& std::basic_ostream::_ZTVSo) + 64u) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2u entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24u) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64u) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2u entries +0 ((& std::basic_istream::_ZTVSi) + 24u) +8 ((& std::basic_istream::_ZTVSi) + 64u) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2u entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24u) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64u) + +Construction vtable for std::basic_istream (0x0x7f13e399b0d0 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10u entries +0 24u +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0u +32 0u +40 18446744073709551592u +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0u +72 0u + +Construction vtable for std::basic_ostream (0x0x7f13e399b1a0 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10u entries +0 8u +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0u +32 0u +40 18446744073709551608u +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0u +72 0u + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7u entries +0 ((& std::basic_iostream::_ZTVSd) + 24u) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24u) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64u) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24u) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64u) +40 ((& std::basic_iostream::_ZTVSd) + 104u) +48 ((& std::basic_iostream::_ZTVSd) + 64u) + +Construction vtable for std::basic_istream (0x0x7f13e399b548 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10u entries +0 24u +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0u +32 0u +40 18446744073709551592u +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0u +72 0u + +Construction vtable for std::basic_ostream (0x0x7f13e399b618 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10u entries +0 8u +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0u +32 0u +40 18446744073709551608u +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0u +72 0u + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7u entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24u) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24u) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64u) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24u) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64u) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104u) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64u) + +Class QByteArrayDataPtr + size=8 align=8 + base size=8 base align=8 +QByteArrayDataPtr (0x0x7f13e3950300) 0 + +Class QByteArray + size=8 align=8 + base size=8 base align=8 +QByteArray (0x0x7f13e3950360) 0 + +Class QByteRef + size=16 align=8 + base size=12 base align=8 +QByteRef (0x0x7f13e36d76c0) 0 + +Class QStringDataPtr + size=8 align=8 + base size=8 base align=8 +QStringDataPtr (0x0x7f13e36d7a20) 0 + +Class QStringView + size=16 align=8 + base size=16 base align=8 +QStringView (0x0x7f13e36d7ea0) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7f13e340ad20) 0 + +Class QString::Null + size=1 align=1 + base size=0 base align=1 +QString::Null (0x0x7f13e34983c0) 0 empty + +Class QString + size=8 align=8 + base size=8 base align=8 +QString (0x0x7f13e3498360) 0 + +Class QCharRef + size=16 align=8 + base size=12 base align=8 +QCharRef (0x0x7f13e323c480) 0 + +Class QStringRef + size=16 align=8 + base size=16 base align=8 +QStringRef (0x0x7f13e2fec0c0) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7f13e2feccc0) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7f13e2fecd20) 0 empty + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7f13e2fecd80) 0 + +Class QListData::NotArrayCompatibleLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotArrayCompatibleLayout (0x0x7f13e2dde180) 0 empty + +Class QListData::NotIndirectLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotIndirectLayout (0x0x7f13e2dde1e0) 0 empty + +Class QListData::ArrayCompatibleLayout + size=1 align=1 + base size=1 base align=1 +QListData::ArrayCompatibleLayout (0x0x7f13e2df4068) 0 empty + QListData::NotIndirectLayout (0x0x7f13e2dde240) 0 empty + +Class QListData::InlineWithPaddingLayout + size=1 align=1 + base size=1 base align=1 +QListData::InlineWithPaddingLayout (0x0x7f13e2e75620) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7f13e2dde2a0) 0 empty + QListData::NotIndirectLayout (0x0x7f13e2dde300) 0 empty + +Class QListData::IndirectLayout + size=1 align=1 + base size=1 base align=1 +QListData::IndirectLayout (0x0x7f13e2df40d0) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7f13e2dde360) 0 empty + +Class QListData::Data + size=24 align=8 + base size=24 base align=8 +QListData::Data (0x0x7f13e2dde3c0) 0 + +Class QListData + size=8 align=8 + base size=8 base align=8 +QListData (0x0x7f13e2dde120) 0 + +Class QRegExp + size=8 align=8 + base size=8 base align=8 +QRegExp (0x0x7f13e2dde840) 0 + +Class QStringMatcher::Data + size=272 align=8 + base size=272 base align=8 +QStringMatcher::Data (0x0x7f13e2c21a80) 0 + +Class QStringMatcher + size=1048 align=8 + base size=1048 base align=8 +QStringMatcher (0x0x7f13e2c21a20) 0 + +Class QStringList + size=8 align=8 + base size=8 base align=8 +QStringList (0x0x7f13e2c22af8) 0 + QList (0x0x7f13e2c22b60) 0 + QListSpecialMethods (0x0x7f13e2c21c60) 0 empty + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7f13e2cbe0c0) 0 empty + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7f13e2cbeba0) 0 + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7f13e2a9b240) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7f13e2a9b3c0) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7f13e2a9b480) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7f13e2d61340) 0 + std::__uses_alloc_base (0x0x7f13e2a9b420) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7f13e2bae4e0) 0 empty + +Class QtPrivate::AbstractDebugStreamFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::AbstractDebugStreamFunction (0x0x7f13e2bae720) 0 + +Class QtPrivate::AbstractComparatorFunction + size=24 align=8 + base size=24 base align=8 +QtPrivate::AbstractComparatorFunction (0x0x7f13e2bae7e0) 0 + +Class QtPrivate::AbstractConverterFunction + size=8 align=8 + base size=8 base align=8 +QtPrivate::AbstractConverterFunction (0x0x7f13e2bae900) 0 + +Class QMetaType + size=80 align=8 + base size=80 base align=8 +QMetaType (0x0x7f13e2baea80) 0 + +Class QtMetaTypePrivate::VariantData + size=24 align=8 + base size=20 base align=8 +QtMetaTypePrivate::VariantData (0x0x7f13e2baeea0) 0 + +Class QtMetaTypePrivate::VectorBoolElements + size=1 align=1 + base size=0 base align=1 +QtMetaTypePrivate::VectorBoolElements (0x0x7f13e2906000) 0 empty + +Class QtMetaTypePrivate::QSequentialIterableImpl + size=104 align=8 + base size=104 base align=8 +QtMetaTypePrivate::QSequentialIterableImpl (0x0x7f13e2906960) 0 + +Class QtMetaTypePrivate::QAssociativeIterableImpl + size=112 align=8 + base size=112 base align=8 +QtMetaTypePrivate::QAssociativeIterableImpl (0x0x7f13e2906d80) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7f13e25e30c0) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7f13e23f6900) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7f13e2557780) 0 empty + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=48 align=8 + base size=48 base align=8 +QObjectData (0x0x7f13e25577e0) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16u) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7f13e25579c0) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7f13e2557960) 0 + vptr=((& QObject::_ZTV7QObject) + 16u) + +Vtable for QObjectUserData +QObjectUserData::_ZTV15QObjectUserData: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QObjectUserData) +16 (int (*)(...))QObjectUserData::~QObjectUserData +24 (int (*)(...))QObjectUserData::~QObjectUserData + +Class QObjectUserData + size=8 align=8 + base size=8 base align=8 +QObjectUserData (0x0x7f13e221ec60) 0 nearly-empty + vptr=((& QObjectUserData::_ZTV15QObjectUserData) + 16u) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7f13e221ecc0) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7f13e221ed80) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7f13e224a680) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16u) + QObject (0x0x7f13e221ed20) 0 + primary-for QAbstractAnimation (0x0x7f13e224a680) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7f13e221ee40) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7f13e224a6e8) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16u) + QObject (0x0x7f13e221ede0) 0 + primary-for QAnimationDriver (0x0x7f13e224a6e8) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7f13e221ef00) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7f13e224a750) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16u) + QObject (0x0x7f13e221eea0) 0 + primary-for QEventLoop (0x0x7f13e224a750) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7f13e22a8120) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7f13e22a81e0) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7f13e22a8240) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 28u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))QAbstractEventDispatcher::startingUp +216 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7f13e224a888) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16u) + QObject (0x0x7f13e22a8180) 0 + primary-for QAbstractEventDispatcher (0x0x7f13e224a888) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7f13e22a84e0) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16u) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7f13e224aa90) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16u) + std::exception (0x0x7f13e22a8540) 0 nearly-empty + primary-for std::bad_cast (0x0x7f13e224aa90) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7f13e224aaf8) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16u) + std::exception (0x0x7f13e22a85a0) 0 nearly-empty + primary-for std::bad_typeid (0x0x7f13e224aaf8) + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7f13e1fa4d68) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16u) + std::exception (0x0x7f13e206c660) 0 nearly-empty + primary-for std::bad_function_call (0x0x7f13e1fa4d68) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7f13e206c720) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7f13e206c780) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7f13e206c8a0) 0 + +Class QMapNodeBase + size=24 align=8 + base size=24 base align=8 +QMapNodeBase (0x0x7f13e206cd80) 0 + +Class QMapDataBase + size=40 align=8 + base size=40 base align=8 +QMapDataBase (0x0x7f13e2121300) 0 + +Class QHashData::Node + size=16 align=8 + base size=16 base align=8 +QHashData::Node (0x0x7f13e21216c0) 0 + +Class QHashData + size=48 align=8 + base size=44 base align=8 +QHashData (0x0x7f13e2121660) 0 + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7f13e2121720) 0 empty + +Class QVariant::PrivateShared + size=16 align=8 + base size=12 base align=8 +QVariant::PrivateShared (0x0x7f13e1f5a000) 0 + +Class QVariant::Private::Data + size=8 align=8 + base size=8 base align=8 +QVariant::Private::Data (0x0x7f13e1f5a0c0) 0 + +Class QVariant::Private + size=16 align=8 + base size=12 base align=8 +QVariant::Private (0x0x7f13e1f5a060) 0 + +Class QVariant::Handler + size=72 align=8 + base size=72 base align=8 +QVariant::Handler (0x0x7f13e1f5a120) 0 + +Class QVariant + size=16 align=8 + base size=16 base align=8 +QVariant (0x0x7f13e2121f60) 0 + +Class QVariantComparisonHelper + size=8 align=8 + base size=8 base align=8 +QVariantComparisonHelper (0x0x7f13e1bfdc00) 0 + +Class QSequentialIterable::const_iterator + size=112 align=8 + base size=112 base align=8 +QSequentialIterable::const_iterator (0x0x7f13e1ca32a0) 0 + +Class QSequentialIterable + size=104 align=8 + base size=104 base align=8 +QSequentialIterable (0x0x7f13e1ca3240) 0 + +Class QAssociativeIterable::const_iterator + size=120 align=8 + base size=120 base align=8 +QAssociativeIterable::const_iterator (0x0x7f13e1ca3360) 0 + +Class QAssociativeIterable + size=112 align=8 + base size=112 base align=8 +QAssociativeIterable (0x0x7f13e1ca3300) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7f13e19bf660) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7f13e19bfd20) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7f13e1b97480) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractItemModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractItemModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7f13e1b88af8) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16u) + QObject (0x0x7f13e1b97420) 0 + primary-for QAbstractItemModel (0x0x7f13e1b88af8) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7f13e1b977e0) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractTableModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractTableModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7f13e1b88d00) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16u) + QAbstractItemModel (0x0x7f13e1b88d68) 0 + primary-for QAbstractTableModel (0x0x7f13e1b88d00) + QObject (0x0x7f13e1b97780) 0 + primary-for QAbstractItemModel (0x0x7f13e1b88d68) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7f13e1b978a0) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractListModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7f13e1b88dd0) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16u) + QAbstractItemModel (0x0x7f13e1b88e38) 0 + primary-for QAbstractListModel (0x0x7f13e1b88dd0) + QObject (0x0x7f13e1b97840) 0 + primary-for QAbstractItemModel (0x0x7f13e1b88e38) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7f13e1b97b40) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16u) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7f13e1b97c00) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 53u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QAbstractProxyModel::setSourceModel +392 (int (*)(...))__cxa_pure_virtual +400 (int (*)(...))__cxa_pure_virtual +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7f13e1b88f70) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16u) + QAbstractItemModel (0x0x7f13e189e000) 0 + primary-for QAbstractProxyModel (0x0x7f13e1b88f70) + QObject (0x0x7f13e1b97ba0) 0 + primary-for QAbstractItemModel (0x0x7f13e189e000) + +Class QAbstractState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractState::QPrivateSignal (0x0x7f13e1b97cc0) 0 empty + +Vtable for QAbstractState +QAbstractState::_ZTV14QAbstractState: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QAbstractState) +16 (int (*)(...))QAbstractState::metaObject +24 (int (*)(...))QAbstractState::qt_metacast +32 (int (*)(...))QAbstractState::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAbstractState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractState + size=16 align=8 + base size=16 base align=8 +QAbstractState (0x0x7f13e189e068) 0 + vptr=((& QAbstractState::_ZTV14QAbstractState) + 16u) + QObject (0x0x7f13e1b97c60) 0 + primary-for QAbstractState (0x0x7f13e189e068) + +Class QAbstractTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTransition::QPrivateSignal (0x0x7f13e1b97d80) 0 empty + +Vtable for QAbstractTransition +QAbstractTransition::_ZTV19QAbstractTransition: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTransition) +16 (int (*)(...))QAbstractTransition::metaObject +24 (int (*)(...))QAbstractTransition::qt_metacast +32 (int (*)(...))QAbstractTransition::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAbstractTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractTransition + size=16 align=8 + base size=16 base align=8 +QAbstractTransition (0x0x7f13e189e0d0) 0 + vptr=((& QAbstractTransition::_ZTV19QAbstractTransition) + 16u) + QObject (0x0x7f13e1b97d20) 0 + primary-for QAbstractTransition (0x0x7f13e189e0d0) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7f13e1b97e40) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7f13e189e138) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16u) + QAbstractAnimation (0x0x7f13e189e1a0) 0 + primary-for QAnimationGroup (0x0x7f13e189e138) + QObject (0x0x7f13e1b97de0) 0 + primary-for QAbstractAnimation (0x0x7f13e189e1a0) + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7f13e190bba0) 0 + +Class QBitArray + size=8 align=8 + base size=8 base align=8 +QBitArray (0x0x7f13e190be40) 0 + +Class QBitRef + size=16 align=8 + base size=12 base align=8 +QBitRef (0x0x7f13e190bf00) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7f13e15a2240) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 30u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7f13e189e820) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16u) + QObject (0x0x7f13e15a21e0) 0 + primary-for QIODevice (0x0x7f13e189e820) + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7f13e15a2480) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 30u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7f13e189e958) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16u) + QIODevice (0x0x7f13e189e9c0) 0 + primary-for QBuffer (0x0x7f13e189e958) + QObject (0x0x7f13e15a2420) 0 + primary-for QIODevice (0x0x7f13e189e9c0) + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7f13e15a2540) 0 + +Class QByteArrayMatcher + size=1040 align=8 + base size=1040 base align=8 +QByteArrayMatcher (0x0x7f13e15a24e0) 0 + +Class QStaticByteArrayMatcherBase::Skiptable + size=256 align=1 + base size=256 base align=1 +QStaticByteArrayMatcherBase::Skiptable (0x0x7f13e15a2660) 0 + +Class QStaticByteArrayMatcherBase + size=256 align=16 + base size=256 base align=16 +QStaticByteArrayMatcherBase (0x0x7f13e15a2600) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7f13e15a2840) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7f13e15a2a20) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7f13e173d060) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7f13e173d120) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7f13e13bb120) 0 + +Vtable for QEvent +QEvent::_ZTV6QEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent + +Class QEvent + size=24 align=8 + base size=20 base align=8 +QEvent (0x0x7f13e13bb5a0) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16u) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent + +Class QTimerEvent + size=24 align=8 + base size=24 base align=8 +QTimerEvent (0x0x7f13e13a3ea0) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16u) + QEvent (0x0x7f13e13bb600) 0 + primary-for QTimerEvent (0x0x7f13e13a3ea0) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent + +Class QChildEvent + size=32 align=8 + base size=32 base align=8 +QChildEvent (0x0x7f13e13a3f08) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16u) + QEvent (0x0x7f13e13bb660) 0 + primary-for QChildEvent (0x0x7f13e13a3f08) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent + +Class QDynamicPropertyChangeEvent + size=32 align=8 + base size=32 base align=8 +QDynamicPropertyChangeEvent (0x0x7f13e142d478) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16u) + QEvent (0x0x7f13e13bbb40) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7f13e142d478) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent + +Class QDeferredDeleteEvent + size=24 align=8 + base size=24 base align=8 +QDeferredDeleteEvent (0x0x7f13e142d4e0) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16u) + QEvent (0x0x7f13e13bbba0) 0 + primary-for QDeferredDeleteEvent (0x0x7f13e142d4e0) + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7f13e13bbc60) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7f13e142d548) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16u) + QObject (0x0x7f13e13bbc00) 0 + primary-for QCoreApplication (0x0x7f13e142d548) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7f13e13bbcc0) 0 + +Class QContiguousCacheData + size=24 align=4 + base size=24 base align=4 +QContiguousCacheData (0x0x7f13e13bbd20) 0 + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7f13e1493360) 0 + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7f13e14933c0) 0 + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7f13e1493480) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7f13e1493960) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7f13e1493c00) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7f13e11763c0) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7f13e1176420) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7f13e1176360) 0 + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7f13e1225540) 0 + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7f13e1225a20) 0 + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7f13e13499c0) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16u) + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7f13e1349c60) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7f13e1349ea0) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7f13e107f060) 0 + +Class QDebug::Stream + size=80 align=8 + base size=76 base align=8 +QDebug::Stream (0x0x7f13e107f5a0) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7f13e107f540) 0 + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7f13e0de5a80) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7f13e0de5b40) 0 empty + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7f13e0eb6cc0) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFileDevice::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7f13e0ed1410) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16u) + QIODevice (0x0x7f13e0ed1478) 0 + primary-for QFileDevice (0x0x7f13e0ed1410) + QObject (0x0x7f13e0eb6c60) 0 + primary-for QIODevice (0x0x7f13e0ed1478) + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7f13e0eb6f00) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7f13e0ed15b0) 0 + vptr=((& QFile::_ZTV5QFile) + 16u) + QFileDevice (0x0x7f13e0ed1618) 0 + primary-for QFile (0x0x7f13e0ed15b0) + QIODevice (0x0x7f13e0ed1680) 0 + primary-for QFileDevice (0x0x7f13e0ed1618) + QObject (0x0x7f13e0eb6ea0) 0 + primary-for QIODevice (0x0x7f13e0ed1680) + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7f13e0f3f120) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7f13e0f3f540) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7f13e0f3ff00) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7f13e0c33180) 0 + +Class QEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventTransition::QPrivateSignal (0x0x7f13e0cea5a0) 0 empty + +Vtable for QEventTransition +QEventTransition::_ZTV16QEventTransition: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QEventTransition) +16 (int (*)(...))QEventTransition::metaObject +24 (int (*)(...))QEventTransition::qt_metacast +32 (int (*)(...))QEventTransition::qt_metacall +40 (int (*)(...))QEventTransition::~QEventTransition +48 (int (*)(...))QEventTransition::~QEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QEventTransition::eventTest +120 (int (*)(...))QEventTransition::onTransition + +Class QEventTransition + size=16 align=8 + base size=16 base align=8 +QEventTransition (0x0x7f13e0ce28f0) 0 + vptr=((& QEventTransition::_ZTV16QEventTransition) + 16u) + QAbstractTransition (0x0x7f13e0ce2958) 0 + primary-for QEventTransition (0x0x7f13e0ce28f0) + QObject (0x0x7f13e0cea540) 0 + primary-for QAbstractTransition (0x0x7f13e0ce2958) + +Vtable for QException +QException::_ZTV10QException: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7f13e0ce29c0) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16u) + std::exception (0x0x7f13e0cea600) 0 nearly-empty + primary-for QException (0x0x7f13e0ce29c0) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=8 align=8 + base size=8 base align=8 +QUnhandledException (0x0x7f13e0ce2a28) 0 nearly-empty + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16u) + QException (0x0x7f13e0ce2a90) 0 nearly-empty + primary-for QUnhandledException (0x0x7f13e0ce2a28) + std::exception (0x0x7f13e0cea660) 0 nearly-empty + primary-for QException (0x0x7f13e0ce2a90) + +Class QtPrivate::ExceptionHolder + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionHolder (0x0x7f13e0cea6c0) 0 + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7f13e0cea780) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7f13e0cea7e0) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16u) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7f13e0cea900) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7f13e0ce2af8) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16u) + QObject (0x0x7f13e0cea8a0) 0 + primary-for QFileSelector (0x0x7f13e0ce2af8) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7f13e0cea9c0) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7f13e0ce2b60) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16u) + QObject (0x0x7f13e0cea960) 0 + primary-for QFileSystemWatcher (0x0x7f13e0ce2b60) + +Class QFinalState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFinalState::QPrivateSignal (0x0x7f13e0ceaa80) 0 empty + +Vtable for QFinalState +QFinalState::_ZTV11QFinalState: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFinalState) +16 (int (*)(...))QFinalState::metaObject +24 (int (*)(...))QFinalState::qt_metacast +32 (int (*)(...))QFinalState::qt_metacall +40 (int (*)(...))QFinalState::~QFinalState +48 (int (*)(...))QFinalState::~QFinalState +56 (int (*)(...))QFinalState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFinalState::onEntry +120 (int (*)(...))QFinalState::onExit + +Class QFinalState + size=16 align=8 + base size=16 base align=8 +QFinalState (0x0x7f13e0ce2bc8) 0 + vptr=((& QFinalState::_ZTV11QFinalState) + 16u) + QAbstractState (0x0x7f13e0ce2c30) 0 + primary-for QFinalState (0x0x7f13e0ce2bc8) + QObject (0x0x7f13e0ceaa20) 0 + primary-for QAbstractState (0x0x7f13e0ce2c30) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0u +32 0u + +Class QRunnable + size=16 align=8 + base size=12 base align=8 +QRunnable (0x0x7f13e0ceaae0) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16u) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7f13e0ceab40) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7f13e0ce2d68) 0 + QBasicMutex (0x0x7f13e0cead20) 0 + +Class QMutexLocker + size=8 align=8 + base size=8 base align=8 +QMutexLocker (0x0x7f13e0cead80) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7f13e0ceade0) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7f13e0ceae40) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7f13e0ceaf60) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16u) + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7f13e0a6d7e0) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16u) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7f13e0b1f000) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0u +48 0u +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7f13e0a72ea0) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16u) + QObject (0x0x7f13e0a6df60) 0 + primary-for QFutureWatcherBase (0x0x7f13e0a72ea0) + +Class QHistoryState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHistoryState::QPrivateSignal (0x0x7f13e0b1f600) 0 empty + +Vtable for QHistoryState +QHistoryState::_ZTV13QHistoryState: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QHistoryState) +16 (int (*)(...))QHistoryState::metaObject +24 (int (*)(...))QHistoryState::qt_metacast +32 (int (*)(...))QHistoryState::qt_metacall +40 (int (*)(...))QHistoryState::~QHistoryState +48 (int (*)(...))QHistoryState::~QHistoryState +56 (int (*)(...))QHistoryState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QHistoryState::onEntry +120 (int (*)(...))QHistoryState::onExit + +Class QHistoryState + size=16 align=8 + base size=16 base align=8 +QHistoryState (0x0x7f13e0b317b8) 0 + vptr=((& QHistoryState::_ZTV13QHistoryState) + 16u) + QAbstractState (0x0x7f13e0b31820) 0 + primary-for QHistoryState (0x0x7f13e0b317b8) + QObject (0x0x7f13e0b1f5a0) 0 + primary-for QAbstractState (0x0x7f13e0b31820) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7f13e0b1f6c0) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 53u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QIdentityProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QIdentityProxyModel::insertRows +264 (int (*)(...))QIdentityProxyModel::insertColumns +272 (int (*)(...))QIdentityProxyModel::removeRows +280 (int (*)(...))QIdentityProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QIdentityProxyModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QIdentityProxyModel::setSourceModel +392 (int (*)(...))QIdentityProxyModel::mapToSource +400 (int (*)(...))QIdentityProxyModel::mapFromSource +408 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +416 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7f13e0b31888) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16u) + QAbstractProxyModel (0x0x7f13e0b318f0) 0 + primary-for QIdentityProxyModel (0x0x7f13e0b31888) + QAbstractItemModel (0x0x7f13e0b31958) 0 + primary-for QAbstractProxyModel (0x0x7f13e0b318f0) + QObject (0x0x7f13e0b1f660) 0 + primary-for QAbstractItemModel (0x0x7f13e0b31958) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7f13e0b1f720) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7f13e0b1fde0) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7f13e07ce1a0) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16u) + QObject (0x0x7f13e0b1fd80) 0 + primary-for QItemSelectionModel (0x0x7f13e07ce1a0) + +Class QItemSelection + size=8 align=8 + base size=8 base align=8 +QItemSelection (0x0x7f13e07ce3a8) 0 + QList (0x0x7f13e07ce410) 0 + QListSpecialMethods (0x0x7f13e0817120) 0 empty + +Class QJsonValue + size=24 align=8 + base size=20 base align=8 +QJsonValue (0x0x7f13e0817600) 0 + +Class QJsonValueRef + size=16 align=8 + base size=12 base align=8 +QJsonValueRef (0x0x7f13e05b3d20) 0 + +Class QJsonValuePtr + size=24 align=8 + base size=24 base align=8 +QJsonValuePtr (0x0x7f13e061c2a0) 0 + +Class QJsonValueRefPtr + size=16 align=8 + base size=16 base align=8 +QJsonValueRefPtr (0x0x7f13e061c300) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::iterator (0x0x7f13e061c4e0) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::const_iterator (0x0x7f13e061c540) 0 + +Class QJsonArray + size=16 align=8 + base size=16 base align=8 +QJsonArray (0x0x7f13e061c480) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7f13e06de780) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7f13e06de7e0) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::iterator (0x0x7f13e06dee40) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::const_iterator (0x0x7f13e06deea0) 0 + +Class QJsonObject + size=16 align=8 + base size=16 base align=8 +QJsonObject (0x0x7f13e06dede0) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7f13e041f180) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=32 align=8 + base size=25 base align=8 +QLibrary (0x0x7f13e03e5750) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16u) + QObject (0x0x7f13e041f120) 0 + primary-for QLibrary (0x0x7f13e03e5750) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7f13e041f840) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7f13e041f360) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7f13e041fd20) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7f13e041fd80) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7f13e04f6060) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7f13e04f6300) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7f13e04f6c60) 0 + +Class QLinkedListData + size=32 align=8 + base size=25 base align=8 +QLinkedListData (0x0x7f13e01b2600) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7f13e01b2960) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7f13e01b2ae0) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7f13e01b2a80) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7f13e01b2c60) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7f13e01b2f00) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7f13dff3c5a0) 0 + +Class QMetaMethod + size=16 align=8 + base size=12 base align=8 +QMetaMethod (0x0x7f13dff3c600) 0 + +Class QMetaEnum + size=16 align=8 + base size=12 base align=8 +QMetaEnum (0x0x7f13dff3cc00) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7f13dff3cf00) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=12 base align=8 +QMetaClassInfo (0x0x7f13dff3cf60) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7f13dfff32a0) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7f13dff5e9c0) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16u) + QObject (0x0x7f13dfff3240) 0 + primary-for QMimeData (0x0x7f13dff5e9c0) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7f13dfff3300) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7f13dfff3600) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7f13dfff36c0) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=24 align=8 + base size=24 base align=8 +QObjectCleanupHandler (0x0x7f13dff5ebc8) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16u) + QObject (0x0x7f13dfff3660) 0 + primary-for QObjectCleanupHandler (0x0x7f13dff5ebc8) + +Class QOperatingSystemVersion + size=16 align=4 + base size=16 base align=4 +QOperatingSystemVersion (0x0x7f13dfff3720) 0 + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7f13dfff3ea0) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7f13e005b2d8) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16u) + QAnimationGroup (0x0x7f13e005b340) 0 + primary-for QParallelAnimationGroup (0x0x7f13e005b2d8) + QAbstractAnimation (0x0x7f13e005b3a8) 0 + primary-for QAnimationGroup (0x0x7f13e005b340) + QObject (0x0x7f13dfff3e40) 0 + primary-for QAbstractAnimation (0x0x7f13e005b3a8) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7f13dfff3f60) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7f13e005b410) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16u) + QAbstractAnimation (0x0x7f13e005b478) 0 + primary-for QPauseAnimation (0x0x7f13e005b410) + QObject (0x0x7f13dfff3f00) 0 + primary-for QAbstractAnimation (0x0x7f13e005b478) + +Class QStaticPlugin + size=16 align=8 + base size=16 base align=8 +QStaticPlugin (0x0x7f13e008f180) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7f13e008f480) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7f13e005b680) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16u) + QObject (0x0x7f13e008f420) 0 + primary-for QPluginLoader (0x0x7f13e005b680) + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7f13e008f4e0) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7f13e008fba0) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 31u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QProcess::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QProcess::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QProcess::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QProcess::writeData +240 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7f13e005bd00) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16u) + QIODevice (0x0x7f13e005bd68) 0 + primary-for QProcess (0x0x7f13e005bd00) + QObject (0x0x7f13e008fb40) 0 + primary-for QIODevice (0x0x7f13e005bd68) + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7f13e008fc60) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7f13e005bdd0) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16u) + QAbstractAnimation (0x0x7f13e005be38) 0 + primary-for QVariantAnimation (0x0x7f13e005bdd0) + QObject (0x0x7f13e008fc00) 0 + primary-for QAbstractAnimation (0x0x7f13e005be38) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7f13e008fd20) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7f13e005bf08) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16u) + QVariantAnimation (0x0x7f13e005bf70) 0 + primary-for QPropertyAnimation (0x0x7f13e005bf08) + QAbstractAnimation (0x0x7f13dfd33000) 0 + primary-for QVariantAnimation (0x0x7f13e005bf70) + QObject (0x0x7f13e008fcc0) 0 + primary-for QAbstractAnimation (0x0x7f13dfd33000) + +Class QRandomGenerator::Storage + size=2504 align=8 + base size=2504 base align=8 +QRandomGenerator::Storage (0x0x7f13e008fe40) 0 + +Class QRandomGenerator + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator (0x0x7f13e008fde0) 0 + +Class QRandomGenerator64 + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator64 (0x0x7f13dfdd12d8) 0 + QRandomGenerator (0x0x7f13dfda8de0) 0 + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7f13dfda8ea0) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7f13dfe34180) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7f13dfe34240) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7f13dfe34300) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7f13dfe345a0) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7f13dfe34840) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7f13dfe34ae0) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7f13dfe34d80) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7f13dfc563c0) 0 + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7f13dfc566c0) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7f13dfc569c0) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7f13dfc56b40) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QSaveFile::writeData +240 (int (*)(...))QSaveFile::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7f13dfc754e0) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16u) + QFileDevice (0x0x7f13dfc75548) 0 + primary-for QSaveFile (0x0x7f13dfc754e0) + QIODevice (0x0x7f13dfc755b0) 0 + primary-for QFileDevice (0x0x7f13dfc75548) + QObject (0x0x7f13dfc56ae0) 0 + primary-for QIODevice (0x0x7f13dfc755b0) + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7f13dfc56c00) 0 + +Class QSemaphoreReleaser + size=16 align=8 + base size=12 base align=8 +QSemaphoreReleaser (0x0x7f13dfc56c60) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7f13df9f32a0) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7f13df9d8dd0) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16u) + QAnimationGroup (0x0x7f13df9d8e38) 0 + primary-for QSequentialAnimationGroup (0x0x7f13df9d8dd0) + QAbstractAnimation (0x0x7f13df9d8ea0) 0 + primary-for QAnimationGroup (0x0x7f13df9d8e38) + QObject (0x0x7f13df9f3240) 0 + primary-for QAbstractAnimation (0x0x7f13df9d8ea0) + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7f13df9f3360) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7f13df9d8f08) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16u) + QObject (0x0x7f13df9f3300) 0 + primary-for QSettings (0x0x7f13df9d8f08) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7f13df9f3420) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7f13df9d8f70) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16u) + QObject (0x0x7f13df9f33c0) 0 + primary-for QSharedMemory (0x0x7f13df9d8f70) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7f13df9f34e0) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7f13dfa42000) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16u) + QObject (0x0x7f13df9f3480) 0 + primary-for QSignalMapper (0x0x7f13dfa42000) + +Class QSignalTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalTransition::QPrivateSignal (0x0x7f13df9f35a0) 0 empty + +Vtable for QSignalTransition +QSignalTransition::_ZTV17QSignalTransition: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSignalTransition) +16 (int (*)(...))QSignalTransition::metaObject +24 (int (*)(...))QSignalTransition::qt_metacast +32 (int (*)(...))QSignalTransition::qt_metacall +40 (int (*)(...))QSignalTransition::~QSignalTransition +48 (int (*)(...))QSignalTransition::~QSignalTransition +56 (int (*)(...))QSignalTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSignalTransition::eventTest +120 (int (*)(...))QSignalTransition::onTransition + +Class QSignalTransition + size=16 align=8 + base size=16 base align=8 +QSignalTransition (0x0x7f13dfa42068) 0 + vptr=((& QSignalTransition::_ZTV17QSignalTransition) + 16u) + QAbstractTransition (0x0x7f13dfa420d0) 0 + primary-for QSignalTransition (0x0x7f13dfa42068) + QObject (0x0x7f13df9f3540) 0 + primary-for QAbstractTransition (0x0x7f13dfa420d0) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7f13df9f3660) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7f13dfa42138) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16u) + QObject (0x0x7f13df9f3600) 0 + primary-for QSocketNotifier (0x0x7f13dfa42138) + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7f13df9f3720) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 56u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QSortFilterProxyModel::mimeTypes +216 (int (*)(...))QSortFilterProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QSortFilterProxyModel::dropMimeData +240 (int (*)(...))QSortFilterProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QSortFilterProxyModel::insertRows +264 (int (*)(...))QSortFilterProxyModel::insertColumns +272 (int (*)(...))QSortFilterProxyModel::removeRows +280 (int (*)(...))QSortFilterProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QSortFilterProxyModel::fetchMore +312 (int (*)(...))QSortFilterProxyModel::canFetchMore +320 (int (*)(...))QSortFilterProxyModel::flags +328 (int (*)(...))QSortFilterProxyModel::sort +336 (int (*)(...))QSortFilterProxyModel::buddy +344 (int (*)(...))QSortFilterProxyModel::match +352 (int (*)(...))QSortFilterProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QSortFilterProxyModel::setSourceModel +392 (int (*)(...))QSortFilterProxyModel::mapToSource +400 (int (*)(...))QSortFilterProxyModel::mapFromSource +408 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +416 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +424 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +432 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +440 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7f13dfa421a0) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16u) + QAbstractProxyModel (0x0x7f13dfa42208) 0 + primary-for QSortFilterProxyModel (0x0x7f13dfa421a0) + QAbstractItemModel (0x0x7f13dfa42270) 0 + primary-for QAbstractProxyModel (0x0x7f13dfa42208) + QObject (0x0x7f13df9f36c0) 0 + primary-for QAbstractItemModel (0x0x7f13dfa42270) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7f13df9f37e0) 0 empty + +Class QState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QState::QPrivateSignal (0x0x7f13df9f3a20) 0 empty + +Vtable for QState +QState::_ZTV6QState: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QState) +16 (int (*)(...))QState::metaObject +24 (int (*)(...))QState::qt_metacast +32 (int (*)(...))QState::qt_metacall +40 (int (*)(...))QState::~QState +48 (int (*)(...))QState::~QState +56 (int (*)(...))QState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QState::onEntry +120 (int (*)(...))QState::onExit + +Class QState + size=16 align=8 + base size=16 base align=8 +QState (0x0x7f13dfa42410) 0 + vptr=((& QState::_ZTV6QState) + 16u) + QAbstractState (0x0x7f13dfa42478) 0 + primary-for QState (0x0x7f13dfa42410) + QObject (0x0x7f13df9f39c0) 0 + primary-for QAbstractState (0x0x7f13dfa42478) + +Class QStateMachine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStateMachine::QPrivateSignal (0x0x7f13df9f3b40) 0 empty + +Vtable for QStateMachine::SignalEvent +QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine11SignalEventE) +16 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent +24 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent + +Class QStateMachine::SignalEvent + size=48 align=8 + base size=48 base align=8 +QStateMachine::SignalEvent (0x0x7f13dfa42618) 0 + vptr=((& QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE) + 16u) + QEvent (0x0x7f13df9f3ba0) 0 + primary-for QStateMachine::SignalEvent (0x0x7f13dfa42618) + +Vtable for QStateMachine::WrappedEvent +QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine12WrappedEventE) +16 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent +24 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent + +Class QStateMachine::WrappedEvent + size=40 align=8 + base size=40 base align=8 +QStateMachine::WrappedEvent (0x0x7f13dfa42680) 0 + vptr=((& QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE) + 16u) + QEvent (0x0x7f13df9f3c00) 0 + primary-for QStateMachine::WrappedEvent (0x0x7f13dfa42680) + +Vtable for QStateMachine +QStateMachine::_ZTV13QStateMachine: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStateMachine) +16 (int (*)(...))QStateMachine::metaObject +24 (int (*)(...))QStateMachine::qt_metacast +32 (int (*)(...))QStateMachine::qt_metacall +40 (int (*)(...))QStateMachine::~QStateMachine +48 (int (*)(...))QStateMachine::~QStateMachine +56 (int (*)(...))QStateMachine::event +64 (int (*)(...))QStateMachine::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStateMachine::onEntry +120 (int (*)(...))QStateMachine::onExit +128 (int (*)(...))QStateMachine::beginSelectTransitions +136 (int (*)(...))QStateMachine::endSelectTransitions +144 (int (*)(...))QStateMachine::beginMicrostep +152 (int (*)(...))QStateMachine::endMicrostep + +Class QStateMachine + size=16 align=8 + base size=16 base align=8 +QStateMachine (0x0x7f13dfa424e0) 0 + vptr=((& QStateMachine::_ZTV13QStateMachine) + 16u) + QState (0x0x7f13dfa42548) 0 + primary-for QStateMachine (0x0x7f13dfa424e0) + QAbstractState (0x0x7f13dfa425b0) 0 + primary-for QState (0x0x7f13dfa42548) + QObject (0x0x7f13df9f3ae0) 0 + primary-for QAbstractState (0x0x7f13dfa425b0) + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7f13df9f3c60) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7f13df73dba0) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7f13df79a6c0) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QStringListModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QStringListModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QStringListModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QStringListModel::flags +328 (int (*)(...))QStringListModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QStringListModel + size=24 align=8 + base size=24 base align=8 +QStringListModel (0x0x7f13df75db60) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16u) + QAbstractListModel (0x0x7f13df75dbc8) 0 + primary-for QStringListModel (0x0x7f13df75db60) + QAbstractItemModel (0x0x7f13df75dc30) 0 + primary-for QAbstractListModel (0x0x7f13df75dbc8) + QObject (0x0x7f13df79a660) 0 + primary-for QAbstractItemModel (0x0x7f13df75dc30) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7f13df79a720) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7f13df79a7e0) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7f13df79a900) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QTemporaryFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7f13df75dc98) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16u) + QFile (0x0x7f13df75dd00) 0 + primary-for QTemporaryFile (0x0x7f13df75dc98) + QFileDevice (0x0x7f13df75dd68) 0 + primary-for QFile (0x0x7f13df75dd00) + QIODevice (0x0x7f13df75ddd0) 0 + primary-for QFileDevice (0x0x7f13df75dd68) + QObject (0x0x7f13df79a8a0) 0 + primary-for QIODevice (0x0x7f13df75ddd0) + +Class QTextBoundaryFinder + size=48 align=8 + base size=48 base align=8 +QTextBoundaryFinder (0x0x7f13df79a960) 0 + +Class QTextCodec::ConverterState + size=32 align=8 + base size=32 base align=8 +QTextCodec::ConverterState (0x0x7f13df79aba0) 0 + +Vtable for QTextCodec +QTextCodec::_ZTV10QTextCodec: 9u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextCodec) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))QTextCodec::aliases +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 0u +64 0u + +Class QTextCodec + size=8 align=8 + base size=8 base align=8 +QTextCodec (0x0x7f13df79ab40) 0 nearly-empty + vptr=((& QTextCodec::_ZTV10QTextCodec) + 16u) + +Class QTextEncoder + size=40 align=8 + base size=40 base align=8 +QTextEncoder (0x0x7f13df79ad80) 0 + +Class QTextDecoder + size=40 align=8 + base size=40 base align=8 +QTextDecoder (0x0x7f13df79ade0) 0 + +Class std::__mutex_base + size=40 align=8 + base size=40 base align=8 +std::__mutex_base (0x0x7f13df79ae40) 0 + +Class std::__recursive_mutex_base + size=40 align=8 + base size=40 base align=8 +std::__recursive_mutex_base (0x0x7f13df79aea0) 0 + +Class std::mutex + size=40 align=8 + base size=40 base align=8 +std::mutex (0x0x7f13df8bc000) 0 + std::__mutex_base (0x0x7f13df79af00) 0 + +Class std::recursive_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_mutex (0x0x7f13df8bc068) 0 + std::__recursive_mutex_base (0x0x7f13df79af60) 0 + +Class std::timed_mutex + size=40 align=8 + base size=40 base align=8 +std::timed_mutex (0x0x7f13df8d2460) 0 + std::__mutex_base (0x0x7f13df8cf0c0) 0 + std::__timed_mutex_impl (0x0x7f13df8cf120) 0 empty + +Class std::recursive_timed_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_timed_mutex (0x0x7f13df8e80e0) 0 + std::__recursive_mutex_base (0x0x7f13df8cf1e0) 0 + std::__timed_mutex_impl (0x0x7f13df8cf240) 0 empty + +Class std::defer_lock_t + size=1 align=1 + base size=0 base align=1 +std::defer_lock_t (0x0x7f13df8cf2a0) 0 empty + +Class std::try_to_lock_t + size=1 align=1 + base size=0 base align=1 +std::try_to_lock_t (0x0x7f13df8cf300) 0 empty + +Class std::adopt_lock_t + size=1 align=1 + base size=0 base align=1 +std::adopt_lock_t (0x0x7f13df8cf360) 0 empty + +Class std::once_flag + size=4 align=4 + base size=4 base align=4 +std::once_flag (0x0x7f13df8cf5a0) 0 + +Vtable for __gnu_cxx::__concurrence_lock_error +__gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_lock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +24 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +32 (int (*)(...))__gnu_cxx::__concurrence_lock_error::what + +Class __gnu_cxx::__concurrence_lock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_lock_error (0x0x7f13df8bc1a0) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE) + 16u) + std::exception (0x0x7f13df8cf660) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_lock_error (0x0x7f13df8bc1a0) + +Vtable for __gnu_cxx::__concurrence_unlock_error +__gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx26__concurrence_unlock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +24 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +32 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::what + +Class __gnu_cxx::__concurrence_unlock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_unlock_error (0x0x7f13df8bc208) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE) + 16u) + std::exception (0x0x7f13df8cf720) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_unlock_error (0x0x7f13df8bc208) + +Vtable for __gnu_cxx::__concurrence_broadcast_error +__gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx29__concurrence_broadcast_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +24 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +32 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::what + +Class __gnu_cxx::__concurrence_broadcast_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_broadcast_error (0x0x7f13df8bc270) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE) + 16u) + std::exception (0x0x7f13df8cf7e0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_broadcast_error (0x0x7f13df8bc270) + +Vtable for __gnu_cxx::__concurrence_wait_error +__gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_wait_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +24 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +32 (int (*)(...))__gnu_cxx::__concurrence_wait_error::what + +Class __gnu_cxx::__concurrence_wait_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_wait_error (0x0x7f13df8bc340) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE) + 16u) + std::exception (0x0x7f13df8cf8a0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_wait_error (0x0x7f13df8bc340) + +Class __gnu_cxx::__mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__mutex (0x0x7f13df8cf960) 0 + +Class __gnu_cxx::__recursive_mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__recursive_mutex (0x0x7f13df8cf9c0) 0 + +Class __gnu_cxx::__scoped_lock + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__scoped_lock (0x0x7f13df8cfa20) 0 + +Class __gnu_cxx::__cond + size=48 align=8 + base size=48 base align=8 +__gnu_cxx::__cond (0x0x7f13df8cfa80) 0 + +Vtable for std::bad_weak_ptr +std::bad_weak_ptr::_ZTVSt12bad_weak_ptr: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12bad_weak_ptr) +16 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +24 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +32 (int (*)(...))std::bad_weak_ptr::what + +Class std::bad_weak_ptr + size=8 align=8 + base size=8 base align=8 +std::bad_weak_ptr (0x0x7f13df8bc618) 0 nearly-empty + vptr=((& std::bad_weak_ptr::_ZTVSt12bad_weak_ptr) + 16u) + std::exception (0x0x7f13df8cfde0) 0 nearly-empty + primary-for std::bad_weak_ptr (0x0x7f13df8bc618) + +Class std::_Sp_make_shared_tag + size=1 align=1 + base size=0 base align=1 +std::_Sp_make_shared_tag (0x0x7f13df619660) 0 empty + +Class std::_Sp_locker + size=2 align=1 + base size=2 base align=1 +std::_Sp_locker (0x0x7f13df619e40) 0 + +Class std::thread::id + size=8 align=8 + base size=8 base align=8 +std::thread::id (0x0x7f13df2a9060) 0 + +Vtable for std::thread::_Impl_base +std::thread::_Impl_base::_ZTVNSt6thread10_Impl_baseE: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6thread10_Impl_baseE) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class std::thread::_Impl_base + size=24 align=8 + base size=24 base align=8 +std::thread::_Impl_base (0x0x7f13df2a90c0) 0 + vptr=((& std::thread::_Impl_base::_ZTVNSt6thread10_Impl_baseE) + 16u) + +Class std::thread + size=8 align=8 + base size=8 base align=8 +std::thread (0x0x7f13df2a9000) 0 + +Class std::condition_variable + size=48 align=8 + base size=48 base align=8 +std::condition_variable (0x0x7f13df3e0cc0) 0 + +Class std::__at_thread_exit_elt + size=16 align=8 + base size=16 base align=8 +std::__at_thread_exit_elt (0x0x7f13df3e0d80) 0 + +Class std::_V2::condition_variable_any + size=64 align=8 + base size=64 base align=8 +std::_V2::condition_variable_any (0x0x7f13df3e0de0) 0 + +Class std::__atomic_futex_unsigned_base + size=1 align=1 + base size=0 base align=1 +std::__atomic_futex_unsigned_base (0x0x7f13df0cd480) 0 empty + +Vtable for std::future_error +std::future_error::_ZTVSt12future_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12future_error) +16 (int (*)(...))std::future_error::~future_error +24 (int (*)(...))std::future_error::~future_error +32 (int (*)(...))std::future_error::what + +Class std::future_error + size=32 align=8 + base size=32 base align=8 +std::future_error (0x0x7f13df0ca958) 0 + vptr=((& std::future_error::_ZTVSt12future_error) + 16u) + std::logic_error (0x0x7f13df0ca9c0) 0 + primary-for std::future_error (0x0x7f13df0ca958) + std::exception (0x0x7f13df0cd5a0) 0 nearly-empty + primary-for std::logic_error (0x0x7f13df0ca9c0) + +Class std::__future_base::_Result_base::_Deleter + size=1 align=1 + base size=0 base align=1 +std::__future_base::_Result_base::_Deleter (0x0x7f13df0cd6c0) 0 empty + +Vtable for std::__future_base::_Result_base +std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base12_Result_baseE) +16 (int (*)(...))__cxa_pure_virtual +24 0u +32 0u + +Class std::__future_base::_Result_base + size=16 align=8 + base size=16 base align=8 +std::__future_base::_Result_base (0x0x7f13df0cd660) 0 + vptr=((& std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE) + 16u) + +Class std::__future_base::_State_baseV2::__exception_ptr_tag + size=1 align=1 + base size=0 base align=1 +std::__future_base::_State_baseV2::__exception_ptr_tag (0x0x7f13df228c00) 0 empty + +Class std::__future_base::_State_baseV2::_Make_ready + size=32 align=8 + base size=32 base align=8 +std::__future_base::_State_baseV2::_Make_ready (0x0x7f13df162f70) 0 + std::__at_thread_exit_elt (0x0x7f13df228cc0) 0 + +Vtable for std::__future_base::_State_baseV2 +std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base13_State_baseV2E) +16 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +24 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +32 (int (*)(...))std::__future_base::_State_baseV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_State_baseV2 + size=32 align=8 + base size=28 base align=8 +std::__future_base::_State_baseV2 (0x0x7f13df0cd840) 0 + vptr=((& std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E) + 16u) + +Class std::__future_base + size=1 align=1 + base size=0 base align=1 +std::__future_base (0x0x7f13df0cd600) 0 empty + +Vtable for std::__future_base::_Async_state_commonV2 +std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base21_Async_state_commonV2E) +16 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +24 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +32 (int (*)(...))std::__future_base::_Async_state_commonV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_Async_state_commonV2 + size=48 align=8 + base size=44 base align=8 +std::__future_base::_Async_state_commonV2 (0x0x7f13deb7ab60) 0 + vptr=((& std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E) + 16u) + std::__future_base::_State_baseV2 (0x0x7f13deb75ba0) 0 + primary-for std::__future_base::_Async_state_commonV2 (0x0x7f13deb7ab60) + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7f13debda300) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7f13debd9618) 0 + vptr=((& QThread::_ZTV7QThread) + 16u) + QObject (0x0x7f13debda2a0) 0 + primary-for QThread (0x0x7f13debd9618) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7f13debda420) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7f13debd9680) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16u) + QObject (0x0x7f13debda3c0) 0 + primary-for QThreadPool (0x0x7f13debd9680) + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7f13debda480) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7f13debda5a0) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7f13debd96e8) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16u) + QObject (0x0x7f13debda540) 0 + primary-for QTimeLine (0x0x7f13debd96e8) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7f13debda660) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=32 align=8 + base size=29 base align=8 +QTimer (0x0x7f13debd9750) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16u) + QObject (0x0x7f13debda600) 0 + primary-for QTimer (0x0x7f13debd9750) + +Class QTimeZone::OffsetData + size=32 align=8 + base size=28 base align=8 +QTimeZone::OffsetData (0x0x7f13debdad20) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7f13debdacc0) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7f13de8c1300) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7f13de8c81a0) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16u) + QObject (0x0x7f13de8c12a0) 0 + primary-for QTranslator (0x0x7f13de8c81a0) + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7f13de8c1420) 0 + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7f13de9daae0) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7f13de670180) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7f13de670780) 0 + +Class QXmlStreamStringRef + size=16 align=8 + base size=16 base align=8 +QXmlStreamStringRef (0x0x7f13de6707e0) 0 + +Class QXmlStreamAttribute + size=80 align=8 + base size=73 base align=8 +QXmlStreamAttribute (0x0x7f13de670ae0) 0 + +Class QXmlStreamAttributes + size=8 align=8 + base size=8 base align=8 +QXmlStreamAttributes (0x0x7f13de699c98) 0 + QVector (0x0x7f13de670ea0) 0 + +Class QXmlStreamNamespaceDeclaration + size=40 align=8 + base size=40 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7f13de670f00) 0 + +Class QXmlStreamNotationDeclaration + size=56 align=8 + base size=56 base align=8 +QXmlStreamNotationDeclaration (0x0x7f13de7671e0) 0 + +Class QXmlStreamEntityDeclaration + size=88 align=8 + base size=88 base align=8 +QXmlStreamEntityDeclaration (0x0x7f13de767480) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7f13de767720) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16u) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7f13de767780) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7f13de4121e0) 0 + +Class QGeoAddress + size=8 align=8 + base size=8 base align=8 +QGeoAddress (0x0x7f13de412300) 0 + +Class QGeoCoordinate + size=8 align=8 + base size=8 base align=8 +QGeoCoordinate (0x0x7f13de412a80) 0 + +Class QGeoShape + size=8 align=8 + base size=8 base align=8 +QGeoShape (0x0x7f13de412ea0) 0 + +Class QGeoAreaMonitorInfo + size=8 align=8 + base size=8 base align=8 +QGeoAreaMonitorInfo (0x0x7f13de497360) 0 + +Class QGeoPositionInfo + size=8 align=8 + base size=8 base align=8 +QGeoPositionInfo (0x0x7f13de497420) 0 + +Class QGeoPositionInfoSource::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGeoPositionInfoSource::QPrivateSignal (0x0x7f13de4974e0) 0 empty + +Vtable for QGeoPositionInfoSource +QGeoPositionInfoSource::_ZTV22QGeoPositionInfoSource: 23u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGeoPositionInfoSource) +16 (int (*)(...))QGeoPositionInfoSource::metaObject +24 (int (*)(...))QGeoPositionInfoSource::qt_metacast +32 (int (*)(...))QGeoPositionInfoSource::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGeoPositionInfoSource::setUpdateInterval +120 (int (*)(...))QGeoPositionInfoSource::setPreferredPositioningMethods +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual + +Class QGeoPositionInfoSource + size=24 align=8 + base size=24 base align=8 +QGeoPositionInfoSource (0x0x7f13de44d6e8) 0 + vptr=((& QGeoPositionInfoSource::_ZTV22QGeoPositionInfoSource) + 16u) + QObject (0x0x7f13de497480) 0 + primary-for QGeoPositionInfoSource (0x0x7f13de44d6e8) + +Class QGeoAreaMonitorSource::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGeoAreaMonitorSource::QPrivateSignal (0x0x7f13de497720) 0 empty + +Vtable for QGeoAreaMonitorSource +QGeoAreaMonitorSource::_ZTV21QGeoAreaMonitorSource: 23u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGeoAreaMonitorSource) +16 (int (*)(...))QGeoAreaMonitorSource::metaObject +24 (int (*)(...))QGeoAreaMonitorSource::qt_metacast +32 (int (*)(...))QGeoAreaMonitorSource::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGeoAreaMonitorSource::setPositionInfoSource +120 (int (*)(...))QGeoAreaMonitorSource::positionInfoSource +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual + +Class QGeoAreaMonitorSource + size=24 align=8 + base size=24 base align=8 +QGeoAreaMonitorSource (0x0x7f13de44d820) 0 + vptr=((& QGeoAreaMonitorSource::_ZTV21QGeoAreaMonitorSource) + 16u) + QObject (0x0x7f13de4976c0) 0 + primary-for QGeoAreaMonitorSource (0x0x7f13de44d820) + +Class QGeoRectangle + size=8 align=8 + base size=8 base align=8 +QGeoRectangle (0x0x7f13de44d888) 0 + QGeoShape (0x0x7f13de497780) 0 + +Class QGeoCircle + size=8 align=8 + base size=8 base align=8 +QGeoCircle (0x0x7f13de44db60) 0 + QGeoShape (0x0x7f13de497c60) 0 + +Class QGeoLocation + size=8 align=8 + base size=8 base align=8 +QGeoLocation (0x0x7f13de574060) 0 + +Class QGeoPath + size=8 align=8 + base size=8 base align=8 +QGeoPath (0x0x7f13de58e3a8) 0 + QGeoShape (0x0x7f13de5747e0) 0 + +Class QGeoPolygon + size=8 align=8 + base size=8 base align=8 +QGeoPolygon (0x0x7f13de58e5b0) 0 + QGeoShape (0x0x7f13de574ba0) 0 + +Class QGeoSatelliteInfo + size=8 align=8 + base size=8 base align=8 +QGeoSatelliteInfo (0x0x7f13de574f60) 0 + +Class QGeoSatelliteInfoSource::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGeoSatelliteInfoSource::QPrivateSignal (0x0x7f13de5e4060) 0 empty + +Vtable for QGeoSatelliteInfoSource +QGeoSatelliteInfoSource::_ZTV23QGeoSatelliteInfoSource: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGeoSatelliteInfoSource) +16 (int (*)(...))QGeoSatelliteInfoSource::metaObject +24 (int (*)(...))QGeoSatelliteInfoSource::qt_metacast +32 (int (*)(...))QGeoSatelliteInfoSource::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGeoSatelliteInfoSource::setUpdateInterval +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual + +Class QGeoSatelliteInfoSource + size=24 align=8 + base size=24 base align=8 +QGeoSatelliteInfoSource (0x0x7f13de58e7b8) 0 + vptr=((& QGeoSatelliteInfoSource::_ZTV23QGeoSatelliteInfoSource) + 16u) + QObject (0x0x7f13de5e4000) 0 + primary-for QGeoSatelliteInfoSource (0x0x7f13de58e7b8) + +Vtable for QGeoPositionInfoSourceFactory +QGeoPositionInfoSourceFactory::_ZTV29QGeoPositionInfoSourceFactory: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QGeoPositionInfoSourceFactory) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QGeoPositionInfoSourceFactory + size=8 align=8 + base size=8 base align=8 +QGeoPositionInfoSourceFactory (0x0x7f13de5e4120) 0 nearly-empty + vptr=((& QGeoPositionInfoSourceFactory::_ZTV29QGeoPositionInfoSourceFactory) + 16u) + +Class QNmeaPositionInfoSource::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNmeaPositionInfoSource::QPrivateSignal (0x0x7f13de5e4240) 0 empty + +Vtable for QNmeaPositionInfoSource +QNmeaPositionInfoSource::_ZTV23QNmeaPositionInfoSource: 24u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QNmeaPositionInfoSource) +16 (int (*)(...))QNmeaPositionInfoSource::metaObject +24 (int (*)(...))QNmeaPositionInfoSource::qt_metacast +32 (int (*)(...))QNmeaPositionInfoSource::qt_metacall +40 (int (*)(...))QNmeaPositionInfoSource::~QNmeaPositionInfoSource +48 (int (*)(...))QNmeaPositionInfoSource::~QNmeaPositionInfoSource +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QNmeaPositionInfoSource::setUpdateInterval +120 (int (*)(...))QGeoPositionInfoSource::setPreferredPositioningMethods +128 (int (*)(...))QNmeaPositionInfoSource::lastKnownPosition +136 (int (*)(...))QNmeaPositionInfoSource::supportedPositioningMethods +144 (int (*)(...))QNmeaPositionInfoSource::minimumUpdateInterval +152 (int (*)(...))QNmeaPositionInfoSource::error +160 (int (*)(...))QNmeaPositionInfoSource::startUpdates +168 (int (*)(...))QNmeaPositionInfoSource::stopUpdates +176 (int (*)(...))QNmeaPositionInfoSource::requestUpdate +184 (int (*)(...))QNmeaPositionInfoSource::parsePosInfoFromNmeaData + +Class QNmeaPositionInfoSource + size=32 align=8 + base size=32 base align=8 +QNmeaPositionInfoSource (0x0x7f13de58e820) 0 + vptr=((& QNmeaPositionInfoSource::_ZTV23QNmeaPositionInfoSource) + 16u) + QGeoPositionInfoSource (0x0x7f13de58e888) 0 + primary-for QNmeaPositionInfoSource (0x0x7f13de58e820) + QObject (0x0x7f13de5e41e0) 0 + primary-for QGeoPositionInfoSource (0x0x7f13de58e888) + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/bic/data/QtPositioning.5.11.0.linux-gcc-amd64.txt qtlocation-opensource-src-5.11.1+dfsg/tests/auto/bic/data/QtPositioning.5.11.0.linux-gcc-amd64.txt --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/bic/data/QtPositioning.5.11.0.linux-gcc-amd64.txt 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/bic/data/QtPositioning.5.11.0.linux-gcc-amd64.txt 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,4773 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7f1d80fa6de0) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7f1d810875a0) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7f1d810877e0) 0 empty + +Class std::__do_is_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_default_constructible_impl (0x0x7f1d81087a20) 0 empty + +Class std::__do_is_static_castable_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_static_castable_impl (0x0x7f1d81087c60) 0 empty + +Class std::__do_is_direct_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_direct_constructible_impl (0x0x7f1d81087de0) 0 empty + +Class std::__do_is_nary_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nary_constructible_impl (0x0x7f1d7ec391e0) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7f1d7ecc0960) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7f1d7ecc0a20) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7f1d7ecc0d80) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7f1d7ecc0e40) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7f1d7ecc0f00) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7f1d7ecf4000) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7f1d7ecf42a0) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7f1d7ecf4480) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7f1d7ecf4900) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7f1d7ecf4960) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7f1d7eda0600) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7f1d7eda0660) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7f1d7ed052d8) 0 empty + std::input_iterator_tag (0x0x7f1d7eda06c0) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7f1d7ed05340) 0 empty + std::forward_iterator_tag (0x0x7f1d7ed053a8) 0 empty + std::input_iterator_tag (0x0x7f1d7eda0720) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7f1d7ed05410) 0 empty + std::bidirectional_iterator_tag (0x0x7f1d7ed05478) 0 empty + std::forward_iterator_tag (0x0x7f1d7ed054e0) 0 empty + std::input_iterator_tag (0x0x7f1d7eda0780) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7f1d7ede6420) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7f1d7ede6480) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7f1d7ede64e0) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7f1d7ede6540) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7f1d7ede65a0) 0 empty + +Class wait + size=4 align=4 + base size=4 base align=4 +wait (0x0x7f1d7eaf60c0) 0 + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7f1d7eaf6300) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7f1d7eaf63c0) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7f1d7eaf6420) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7f1d7eaf64e0) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7f1d7eaf6540) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7f1d7eaf69c0) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7f1d7eaf6a20) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7f1d7eaf6a80) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16u) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7f1d7ed05a28) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16u) + std::exception (0x0x7f1d7eaf6ae0) 0 nearly-empty + primary-for std::bad_exception (0x0x7f1d7ed05a28) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7f1d7eaf6b40) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7f1d7eaf6ba0) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16u) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7f1d7ed05c30) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16u) + std::exception (0x0x7f1d7ec2c000) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f1d7ed05c30) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7f1d7ed05c98) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16u) + std::bad_alloc (0x0x7f1d7ed05d00) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7f1d7ed05c98) + std::exception (0x0x7f1d7ec2c060) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f1d7ed05d00) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7f1d7ec2c0c0) 0 empty + +Class __exception + size=40 align=8 + base size=40 base align=8 +__exception (0x0x7f1d7ec2ccc0) 0 + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7f1d7ea299c0) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7f1d7ea29a20) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16u) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7f1d7e733900) 0 + +Class __sched_param + size=4 align=4 + base size=4 base align=4 +__sched_param (0x0x7f1d7e733960) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7f1d7e733a20) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7f1d7e733a80) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7f1d7e733ae0) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7f1d7e733b40) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7f1d7e733c60) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7f1d7e733cc0) 0 + +Class _IO_marker + size=24 align=8 + base size=24 base align=8 +_IO_marker (0x0x7f1d7e49a120) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7f1d7e49a180) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7f1d7e291960) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7f1d7e2919c0) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7f1d7e2c5960) 0 empty + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7f1d7e0b9780) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7f1d7e2bfa90) 0 + std::iterator (0x0x7f1d7e0b9840) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7f1d7e2bfaf8) 0 + std::_Bit_iterator_base (0x0x7f1d7e2bfb60) 0 + std::iterator (0x0x7f1d7e0b98a0) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7f1d7e2bfbc8) 0 + std::_Bit_iterator_base (0x0x7f1d7e2bfc30) 0 + std::iterator (0x0x7f1d7e0b9900) 0 empty + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7f1d7defc720) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7f1d7dfe74e0) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7f1d7dfe7480) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7f1d7dd91480) 0 + +Class qIsNull(double)::U + size=8 align=8 + base size=8 base align=8 +qIsNull(double)::U (0x0x7f1d7cac7f60) 0 + +Class qIsNull(float)::U + size=4 align=4 + base size=4 base align=4 +qIsNull(float)::U (0x0x7f1d7c981000) 0 + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7f1d7ca0ea80) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7f1d7ca0eae0) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7f1d7ca0eb40) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7f1d7ca0eba0) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7f1d7ca0ee40) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7f1d7c67c3c0) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7f1d7ca17958) 0 + std::__atomic_flag_base (0x0x7f1d7c67c420) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7f1d7c2930d0) 0 + QAtomicInteger (0x0x7f1d7c293138) 0 + QBasicAtomicInteger (0x0x7f1d7c4a7b40) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7f1d7be79120) 0 empty + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7f1d7beec180) 0 + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7f1d7beec2a0) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7f1d7c070b60) 0 + QGenericArgument (0x0x7f1d7beec300) 0 + +Class QMetaObject + size=48 align=8 + base size=48 base align=8 +QMetaObject (0x0x7f1d7beec480) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7f1d7beec540) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7f1d7bfca5a0) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7f1d7bfca600) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7f1d7bfca8a0) 0 + +Class QArrayData + size=24 align=8 + base size=24 base align=8 +QArrayData (0x0x7f1d7bfca900) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7f1d7bfcac60) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7f1d7bfcacc0) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7f1d7bfcad20) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16u) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7f1d7bfcad80) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7f1d7bfcade0) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7f1d7bd661e0) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7f1d7bd700d0) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16u) + std::exception (0x0x7f1d7bd662a0) 0 nearly-empty + primary-for std::logic_error (0x0x7f1d7bd700d0) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7f1d7bd70138) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16u) + std::logic_error (0x0x7f1d7bd701a0) 0 + primary-for std::domain_error (0x0x7f1d7bd70138) + std::exception (0x0x7f1d7bd66300) 0 nearly-empty + primary-for std::logic_error (0x0x7f1d7bd701a0) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7f1d7bd70208) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16u) + std::logic_error (0x0x7f1d7bd70270) 0 + primary-for std::invalid_argument (0x0x7f1d7bd70208) + std::exception (0x0x7f1d7bd66360) 0 nearly-empty + primary-for std::logic_error (0x0x7f1d7bd70270) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7f1d7bd702d8) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16u) + std::logic_error (0x0x7f1d7bd70340) 0 + primary-for std::length_error (0x0x7f1d7bd702d8) + std::exception (0x0x7f1d7bd663c0) 0 nearly-empty + primary-for std::logic_error (0x0x7f1d7bd70340) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7f1d7bd703a8) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16u) + std::logic_error (0x0x7f1d7bd70410) 0 + primary-for std::out_of_range (0x0x7f1d7bd703a8) + std::exception (0x0x7f1d7bd66420) 0 nearly-empty + primary-for std::logic_error (0x0x7f1d7bd70410) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7f1d7bd70478) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16u) + std::exception (0x0x7f1d7bd66480) 0 nearly-empty + primary-for std::runtime_error (0x0x7f1d7bd70478) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7f1d7bd704e0) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16u) + std::runtime_error (0x0x7f1d7bd70548) 0 + primary-for std::range_error (0x0x7f1d7bd704e0) + std::exception (0x0x7f1d7bd664e0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f1d7bd70548) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7f1d7bd705b0) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16u) + std::runtime_error (0x0x7f1d7bd70618) 0 + primary-for std::overflow_error (0x0x7f1d7bd705b0) + std::exception (0x0x7f1d7bd66540) 0 nearly-empty + primary-for std::runtime_error (0x0x7f1d7bd70618) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7f1d7bd70680) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16u) + std::runtime_error (0x0x7f1d7bd706e8) 0 + primary-for std::underflow_error (0x0x7f1d7bd70680) + std::exception (0x0x7f1d7bd665a0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f1d7bd706e8) + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7f1d7bd66720) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16u) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7f1d7bd66960) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7f1d7bd66ae0) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7f1d7bd70bc8) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16u) + std::runtime_error (0x0x7f1d7bd70c30) 0 + primary-for std::system_error (0x0x7f1d7bd70bc8) + std::exception (0x0x7f1d7bd66d20) 0 nearly-empty + primary-for std::runtime_error (0x0x7f1d7bd70c30) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7f1d7be05820) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16u) + std::system_error (0x0x7f1d7be05888) 0 + primary-for std::ios_base::failure (0x0x7f1d7be05820) + std::runtime_error (0x0x7f1d7be058f0) 0 + primary-for std::system_error (0x0x7f1d7be05888) + std::exception (0x0x7f1d7ba37060) 0 nearly-empty + primary-for std::runtime_error (0x0x7f1d7be058f0) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7f1d7ba370c0) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7f1d7ba37120) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7f1d7ba37180) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7f1d7ba37000) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16u) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7f1d7ba37900) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7f1d7bbbb000) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2u entries +0 ((& std::basic_ostream::_ZTVSo) + 24u) +8 ((& std::basic_ostream::_ZTVSo) + 64u) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2u entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24u) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64u) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2u entries +0 ((& std::basic_istream::_ZTVSi) + 24u) +8 ((& std::basic_istream::_ZTVSi) + 64u) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2u entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24u) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64u) + +Construction vtable for std::basic_istream (0x0x7f1d7b6d91a0 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10u entries +0 24u +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0u +32 0u +40 18446744073709551592u +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0u +72 0u + +Construction vtable for std::basic_ostream (0x0x7f1d7b6d9270 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10u entries +0 8u +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0u +32 0u +40 18446744073709551608u +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0u +72 0u + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7u entries +0 ((& std::basic_iostream::_ZTVSd) + 24u) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24u) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64u) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24u) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64u) +40 ((& std::basic_iostream::_ZTVSd) + 104u) +48 ((& std::basic_iostream::_ZTVSd) + 64u) + +Construction vtable for std::basic_istream (0x0x7f1d7b6d9618 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10u entries +0 24u +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0u +32 0u +40 18446744073709551592u +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0u +72 0u + +Construction vtable for std::basic_ostream (0x0x7f1d7b6d96e8 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10u entries +0 8u +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0u +32 0u +40 18446744073709551608u +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0u +72 0u + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7u entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24u) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24u) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64u) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24u) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64u) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104u) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64u) + +Class QByteArrayDataPtr + size=8 align=8 + base size=8 base align=8 +QByteArrayDataPtr (0x0x7f1d7b9b4840) 0 + +Class QByteArray + size=8 align=8 + base size=8 base align=8 +QByteArray (0x0x7f1d7b9b48a0) 0 + +Class QByteRef + size=16 align=8 + base size=12 base align=8 +QByteRef (0x0x7f1d7b816c00) 0 + +Class QStringDataPtr + size=8 align=8 + base size=8 base align=8 +QStringDataPtr (0x0x7f1d7b816f60) 0 + +Class QStringView + size=16 align=8 + base size=16 base align=8 +QStringView (0x0x7f1d7b50e420) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7f1d7b5962a0) 0 + +Class QString::Null + size=1 align=1 + base size=0 base align=1 +QString::Null (0x0x7f1d7b596900) 0 empty + +Class QString + size=8 align=8 + base size=8 base align=8 +QString (0x0x7f1d7b5968a0) 0 + +Class QCharRef + size=16 align=8 + base size=12 base align=8 +QCharRef (0x0x7f1d7b37b9c0) 0 + +Class QStringRef + size=16 align=8 + base size=16 base align=8 +QStringRef (0x0x7f1d7b117600) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7f1d7af242a0) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7f1d7af24300) 0 empty + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7f1d7af24360) 0 + +Class QListData::NotArrayCompatibleLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotArrayCompatibleLayout (0x0x7f1d7af24720) 0 empty + +Class QListData::NotIndirectLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotIndirectLayout (0x0x7f1d7af24780) 0 empty + +Class QListData::ArrayCompatibleLayout + size=1 align=1 + base size=1 base align=1 +QListData::ArrayCompatibleLayout (0x0x7f1d7af371a0) 0 empty + QListData::NotIndirectLayout (0x0x7f1d7af247e0) 0 empty + +Class QListData::InlineWithPaddingLayout + size=1 align=1 + base size=1 base align=1 +QListData::InlineWithPaddingLayout (0x0x7f1d7afeda10) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7f1d7af24840) 0 empty + QListData::NotIndirectLayout (0x0x7f1d7af248a0) 0 empty + +Class QListData::IndirectLayout + size=1 align=1 + base size=1 base align=1 +QListData::IndirectLayout (0x0x7f1d7af37208) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7f1d7af24900) 0 empty + +Class QListData::Data + size=24 align=8 + base size=24 base align=8 +QListData::Data (0x0x7f1d7af24960) 0 + +Class QListData + size=8 align=8 + base size=8 base align=8 +QListData (0x0x7f1d7af246c0) 0 + +Class QRegExp + size=8 align=8 + base size=8 base align=8 +QRegExp (0x0x7f1d7af24de0) 0 + +Class QStringMatcher::Data + size=272 align=8 + base size=272 base align=8 +QStringMatcher::Data (0x0x7f1d7adb5060) 0 + +Class QStringMatcher + size=1048 align=8 + base size=1048 base align=8 +QStringMatcher (0x0x7f1d7adb5000) 0 + +Class QStringList + size=8 align=8 + base size=8 base align=8 +QStringList (0x0x7f1d7ada1c30) 0 + QList (0x0x7f1d7ada1c98) 0 + QListSpecialMethods (0x0x7f1d7adb5240) 0 empty + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7f1d7adb5660) 0 empty + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7f1d7aad4240) 0 + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7f1d7aad48a0) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7f1d7aad4a20) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7f1d7aad4ae0) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7f1d7ae205b0) 0 + std::__uses_alloc_base (0x0x7f1d7aad4a80) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7f1d7a8f9b40) 0 empty + +Class QtPrivate::AbstractDebugStreamFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::AbstractDebugStreamFunction (0x0x7f1d7a8f9d80) 0 + +Class QtPrivate::AbstractComparatorFunction + size=24 align=8 + base size=24 base align=8 +QtPrivate::AbstractComparatorFunction (0x0x7f1d7a8f9e40) 0 + +Class QtPrivate::AbstractConverterFunction + size=8 align=8 + base size=8 base align=8 +QtPrivate::AbstractConverterFunction (0x0x7f1d7a8f9f60) 0 + +Class QMetaType + size=80 align=8 + base size=80 base align=8 +QMetaType (0x0x7f1d7aa22120) 0 + +Class QtMetaTypePrivate::VariantData + size=24 align=8 + base size=20 base align=8 +QtMetaTypePrivate::VariantData (0x0x7f1d7aa22540) 0 + +Class QtMetaTypePrivate::VectorBoolElements + size=1 align=1 + base size=0 base align=1 +QtMetaTypePrivate::VectorBoolElements (0x0x7f1d7aa22660) 0 empty + +Class QtMetaTypePrivate::QSequentialIterableImpl + size=104 align=8 + base size=104 base align=8 +QtMetaTypePrivate::QSequentialIterableImpl (0x0x7f1d7a73f000) 0 + +Class QtMetaTypePrivate::QAssociativeIterableImpl + size=112 align=8 + base size=112 base align=8 +QtMetaTypePrivate::QAssociativeIterableImpl (0x0x7f1d7a73f420) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7f1d7a73f720) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7f1d7a58cf60) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7f1d7a30ade0) 0 empty + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=48 align=8 + base size=48 base align=8 +QObjectData (0x0x7f1d7a30ae40) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16u) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7f1d7a37d060) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7f1d7a37d000) 0 + vptr=((& QObject::_ZTV7QObject) + 16u) + +Vtable for QObjectUserData +QObjectUserData::_ZTV15QObjectUserData: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QObjectUserData) +16 (int (*)(...))QObjectUserData::~QObjectUserData +24 (int (*)(...))QObjectUserData::~QObjectUserData + +Class QObjectUserData + size=8 align=8 + base size=8 base align=8 +QObjectUserData (0x0x7f1d7a415300) 0 nearly-empty + vptr=((& QObjectUserData::_ZTV15QObjectUserData) + 16u) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7f1d7a415360) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7f1d7a415420) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7f1d7a4117b8) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16u) + QObject (0x0x7f1d7a4153c0) 0 + primary-for QAbstractAnimation (0x0x7f1d7a4117b8) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7f1d7a4154e0) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7f1d7a411820) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16u) + QObject (0x0x7f1d7a415480) 0 + primary-for QAnimationDriver (0x0x7f1d7a411820) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7f1d7a4155a0) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7f1d7a411888) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16u) + QObject (0x0x7f1d7a415540) 0 + primary-for QEventLoop (0x0x7f1d7a411888) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7f1d7a415780) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7f1d7a415840) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7f1d7a4158a0) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 28u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))QAbstractEventDispatcher::startingUp +216 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7f1d7a4119c0) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16u) + QObject (0x0x7f1d7a4157e0) 0 + primary-for QAbstractEventDispatcher (0x0x7f1d7a4119c0) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7f1d7a415b40) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16u) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7f1d7a411bc8) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16u) + std::exception (0x0x7f1d7a415ba0) 0 nearly-empty + primary-for std::bad_cast (0x0x7f1d7a411bc8) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7f1d7a411c30) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16u) + std::exception (0x0x7f1d7a415c00) 0 nearly-empty + primary-for std::bad_typeid (0x0x7f1d7a411c30) + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7f1d7a164ea0) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16u) + std::exception (0x0x7f1d7a1d6cc0) 0 nearly-empty + primary-for std::bad_function_call (0x0x7f1d7a164ea0) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7f1d7a1d6d80) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7f1d7a1d6de0) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7f1d7a1d6f00) 0 + +Class QMapNodeBase + size=24 align=8 + base size=24 base align=8 +QMapNodeBase (0x0x7f1d79e7f420) 0 + +Class QMapDataBase + size=40 align=8 + base size=40 base align=8 +QMapDataBase (0x0x7f1d79e7f960) 0 + +Class QHashData::Node + size=16 align=8 + base size=16 base align=8 +QHashData::Node (0x0x7f1d79e7fd20) 0 + +Class QHashData + size=48 align=8 + base size=44 base align=8 +QHashData (0x0x7f1d79e7fcc0) 0 + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7f1d79e7fd80) 0 empty + +Class QVariant::PrivateShared + size=16 align=8 + base size=12 base align=8 +QVariant::PrivateShared (0x0x7f1d7a012660) 0 + +Class QVariant::Private::Data + size=8 align=8 + base size=8 base align=8 +QVariant::Private::Data (0x0x7f1d7a012720) 0 + +Class QVariant::Private + size=16 align=8 + base size=12 base align=8 +QVariant::Private (0x0x7f1d7a0126c0) 0 + +Class QVariant::Handler + size=72 align=8 + base size=72 base align=8 +QVariant::Handler (0x0x7f1d7a012780) 0 + +Class QVariant + size=16 align=8 + base size=16 base align=8 +QVariant (0x0x7f1d7a012600) 0 + +Class QVariantComparisonHelper + size=8 align=8 + base size=8 base align=8 +QVariantComparisonHelper (0x0x7f1d79a692a0) 0 + +Class QSequentialIterable::const_iterator + size=112 align=8 + base size=112 base align=8 +QSequentialIterable::const_iterator (0x0x7f1d79a69900) 0 + +Class QSequentialIterable + size=104 align=8 + base size=104 base align=8 +QSequentialIterable (0x0x7f1d79a698a0) 0 + +Class QAssociativeIterable::const_iterator + size=120 align=8 + base size=120 base align=8 +QAssociativeIterable::const_iterator (0x0x7f1d79a699c0) 0 + +Class QAssociativeIterable + size=112 align=8 + base size=112 base align=8 +QAssociativeIterable (0x0x7f1d79a69960) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7f1d79b92cc0) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7f1d798d83c0) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7f1d79974ae0) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractItemModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractItemModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7f1d79975c30) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16u) + QObject (0x0x7f1d79974a80) 0 + primary-for QAbstractItemModel (0x0x7f1d79975c30) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7f1d799d53c0) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractTableModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractTableModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7f1d799d4340) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16u) + QAbstractItemModel (0x0x7f1d799d43a8) 0 + primary-for QAbstractTableModel (0x0x7f1d799d4340) + QObject (0x0x7f1d799d5360) 0 + primary-for QAbstractItemModel (0x0x7f1d799d43a8) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7f1d799d5480) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractListModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7f1d799d4410) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16u) + QAbstractItemModel (0x0x7f1d799d4478) 0 + primary-for QAbstractListModel (0x0x7f1d799d4410) + QObject (0x0x7f1d799d5420) 0 + primary-for QAbstractItemModel (0x0x7f1d799d4478) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7f1d799d5720) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16u) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7f1d799d57e0) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 53u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QAbstractProxyModel::setSourceModel +392 (int (*)(...))__cxa_pure_virtual +400 (int (*)(...))__cxa_pure_virtual +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7f1d799d45b0) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16u) + QAbstractItemModel (0x0x7f1d799d4618) 0 + primary-for QAbstractProxyModel (0x0x7f1d799d45b0) + QObject (0x0x7f1d799d5780) 0 + primary-for QAbstractItemModel (0x0x7f1d799d4618) + +Class QAbstractState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractState::QPrivateSignal (0x0x7f1d799d58a0) 0 empty + +Vtable for QAbstractState +QAbstractState::_ZTV14QAbstractState: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QAbstractState) +16 (int (*)(...))QAbstractState::metaObject +24 (int (*)(...))QAbstractState::qt_metacast +32 (int (*)(...))QAbstractState::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAbstractState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractState + size=16 align=8 + base size=16 base align=8 +QAbstractState (0x0x7f1d799d4680) 0 + vptr=((& QAbstractState::_ZTV14QAbstractState) + 16u) + QObject (0x0x7f1d799d5840) 0 + primary-for QAbstractState (0x0x7f1d799d4680) + +Class QAbstractTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTransition::QPrivateSignal (0x0x7f1d799d5960) 0 empty + +Vtable for QAbstractTransition +QAbstractTransition::_ZTV19QAbstractTransition: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTransition) +16 (int (*)(...))QAbstractTransition::metaObject +24 (int (*)(...))QAbstractTransition::qt_metacast +32 (int (*)(...))QAbstractTransition::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAbstractTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractTransition + size=16 align=8 + base size=16 base align=8 +QAbstractTransition (0x0x7f1d799d46e8) 0 + vptr=((& QAbstractTransition::_ZTV19QAbstractTransition) + 16u) + QObject (0x0x7f1d799d5900) 0 + primary-for QAbstractTransition (0x0x7f1d799d46e8) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7f1d799d5a20) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0u +48 0u +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7f1d799d4750) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16u) + QAbstractAnimation (0x0x7f1d799d47b8) 0 + primary-for QAnimationGroup (0x0x7f1d799d4750) + QObject (0x0x7f1d799d59c0) 0 + primary-for QAbstractAnimation (0x0x7f1d799d47b8) + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7f1d79743780) 0 + +Class QBitArray + size=8 align=8 + base size=8 base align=8 +QBitArray (0x0x7f1d79743a20) 0 + +Class QBitRef + size=16 align=8 + base size=12 base align=8 +QBitRef (0x0x7f1d79743ae0) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7f1d79743de0) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 30u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7f1d799d4e38) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16u) + QObject (0x0x7f1d79743d80) 0 + primary-for QIODevice (0x0x7f1d799d4e38) + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7f1d79822060) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 30u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7f1d799d4f70) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16u) + QIODevice (0x0x7f1d79821000) 0 + primary-for QBuffer (0x0x7f1d799d4f70) + QObject (0x0x7f1d79822000) 0 + primary-for QIODevice (0x0x7f1d79821000) + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7f1d79822120) 0 + +Class QByteArrayMatcher + size=1040 align=8 + base size=1040 base align=8 +QByteArrayMatcher (0x0x7f1d798220c0) 0 + +Class QStaticByteArrayMatcherBase::Skiptable + size=256 align=1 + base size=256 base align=1 +QStaticByteArrayMatcherBase::Skiptable (0x0x7f1d79822240) 0 + +Class QStaticByteArrayMatcherBase + size=256 align=16 + base size=256 base align=16 +QStaticByteArrayMatcherBase (0x0x7f1d798221e0) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7f1d79822420) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7f1d79822600) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7f1d79822c00) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7f1d79822cc0) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7f1d7961dcc0) 0 + +Vtable for QEvent +QEvent::_ZTV6QEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent + +Class QEvent + size=24 align=8 + base size=20 base align=8 +QEvent (0x0x7f1d7925b180) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16u) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent + +Class QTimerEvent + size=24 align=8 + base size=24 base align=8 +QTimerEvent (0x0x7f1d792304e0) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16u) + QEvent (0x0x7f1d7925b1e0) 0 + primary-for QTimerEvent (0x0x7f1d792304e0) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent + +Class QChildEvent + size=32 align=8 + base size=32 base align=8 +QChildEvent (0x0x7f1d79230548) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16u) + QEvent (0x0x7f1d7925b240) 0 + primary-for QChildEvent (0x0x7f1d79230548) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent + +Class QDynamicPropertyChangeEvent + size=32 align=8 + base size=32 base align=8 +QDynamicPropertyChangeEvent (0x0x7f1d79230a90) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16u) + QEvent (0x0x7f1d7925b720) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7f1d79230a90) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent + +Class QDeferredDeleteEvent + size=24 align=8 + base size=24 base align=8 +QDeferredDeleteEvent (0x0x7f1d79230af8) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16u) + QEvent (0x0x7f1d7925b780) 0 + primary-for QDeferredDeleteEvent (0x0x7f1d79230af8) + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7f1d7925b840) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7f1d79230b60) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16u) + QObject (0x0x7f1d7925b7e0) 0 + primary-for QCoreApplication (0x0x7f1d79230b60) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7f1d7925b8a0) 0 + +Class QContiguousCacheData + size=24 align=4 + base size=24 base align=4 +QContiguousCacheData (0x0x7f1d7925b900) 0 + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7f1d7925bf00) 0 + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7f1d7925bf60) 0 + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7f1d7936a060) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7f1d7936a540) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7f1d7936a7e0) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7f1d7936af60) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7f1d79410000) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7f1d7936af00) 0 + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7f1d790bf120) 0 + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7f1d790bf600) 0 + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7f1d791f85a0) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16u) + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7f1d791f8840) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7f1d791f8a80) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7f1d791f8c00) 0 + +Class QDebug::Stream + size=80 align=8 + base size=76 base align=8 +QDebug::Stream (0x0x7f1d78fb6180) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7f1d78fb6120) 0 + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7f1d78c80660) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7f1d78c80720) 0 empty + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7f1d78d588a0) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFileDevice::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7f1d78d5cc98) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16u) + QIODevice (0x0x7f1d78d5cd00) 0 + primary-for QFileDevice (0x0x7f1d78d5cc98) + QObject (0x0x7f1d78d58840) 0 + primary-for QIODevice (0x0x7f1d78d5cd00) + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7f1d78d58ae0) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7f1d78d5ce38) 0 + vptr=((& QFile::_ZTV5QFile) + 16u) + QFileDevice (0x0x7f1d78d5cea0) 0 + primary-for QFile (0x0x7f1d78d5ce38) + QIODevice (0x0x7f1d78d5cf08) 0 + primary-for QFileDevice (0x0x7f1d78d5cea0) + QObject (0x0x7f1d78d58a80) 0 + primary-for QIODevice (0x0x7f1d78d5cf08) + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7f1d78d58cc0) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7f1d78e19120) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7f1d78e19720) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7f1d78e19960) 0 + +Class QEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventTransition::QPrivateSignal (0x0x7f1d78b6ed80) 0 empty + +Vtable for QEventTransition +QEventTransition::_ZTV16QEventTransition: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QEventTransition) +16 (int (*)(...))QEventTransition::metaObject +24 (int (*)(...))QEventTransition::qt_metacast +32 (int (*)(...))QEventTransition::qt_metacall +40 (int (*)(...))QEventTransition::~QEventTransition +48 (int (*)(...))QEventTransition::~QEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QEventTransition::eventTest +120 (int (*)(...))QEventTransition::onTransition + +Class QEventTransition + size=16 align=8 + base size=16 base align=8 +QEventTransition (0x0x7f1d78b70b60) 0 + vptr=((& QEventTransition::_ZTV16QEventTransition) + 16u) + QAbstractTransition (0x0x7f1d78b70bc8) 0 + primary-for QEventTransition (0x0x7f1d78b70b60) + QObject (0x0x7f1d78b6ed20) 0 + primary-for QAbstractTransition (0x0x7f1d78b70bc8) + +Vtable for QException +QException::_ZTV10QException: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7f1d78b70c30) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16u) + std::exception (0x0x7f1d78b6ede0) 0 nearly-empty + primary-for QException (0x0x7f1d78b70c30) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=8 align=8 + base size=8 base align=8 +QUnhandledException (0x0x7f1d78b70c98) 0 nearly-empty + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16u) + QException (0x0x7f1d78b70d00) 0 nearly-empty + primary-for QUnhandledException (0x0x7f1d78b70c98) + std::exception (0x0x7f1d78b6ee40) 0 nearly-empty + primary-for QException (0x0x7f1d78b70d00) + +Class QtPrivate::ExceptionHolder + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionHolder (0x0x7f1d78b6eea0) 0 + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7f1d78b6ef60) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7f1d78bea000) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16u) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7f1d78bea120) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7f1d78b70d68) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16u) + QObject (0x0x7f1d78bea0c0) 0 + primary-for QFileSelector (0x0x7f1d78b70d68) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7f1d78bea1e0) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7f1d78b70dd0) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16u) + QObject (0x0x7f1d78bea180) 0 + primary-for QFileSystemWatcher (0x0x7f1d78b70dd0) + +Class QFinalState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFinalState::QPrivateSignal (0x0x7f1d78bea2a0) 0 empty + +Vtable for QFinalState +QFinalState::_ZTV11QFinalState: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFinalState) +16 (int (*)(...))QFinalState::metaObject +24 (int (*)(...))QFinalState::qt_metacast +32 (int (*)(...))QFinalState::qt_metacall +40 (int (*)(...))QFinalState::~QFinalState +48 (int (*)(...))QFinalState::~QFinalState +56 (int (*)(...))QFinalState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFinalState::onEntry +120 (int (*)(...))QFinalState::onExit + +Class QFinalState + size=16 align=8 + base size=16 base align=8 +QFinalState (0x0x7f1d78b70e38) 0 + vptr=((& QFinalState::_ZTV11QFinalState) + 16u) + QAbstractState (0x0x7f1d78b70ea0) 0 + primary-for QFinalState (0x0x7f1d78b70e38) + QObject (0x0x7f1d78bea240) 0 + primary-for QAbstractState (0x0x7f1d78b70ea0) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0u +32 0u + +Class QRunnable + size=16 align=8 + base size=12 base align=8 +QRunnable (0x0x7f1d78bea300) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16u) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7f1d78bea360) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7f1d7889b000) 0 + QBasicMutex (0x0x7f1d78bea540) 0 + +Class QMutexLocker + size=8 align=8 + base size=8 base align=8 +QMutexLocker (0x0x7f1d78bea5a0) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7f1d78bea600) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7f1d78bea660) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7f1d78bea780) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16u) + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7f1d78913000) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16u) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7f1d789137e0) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0u +48 0u +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7f1d78991138) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16u) + QObject (0x0x7f1d78913780) 0 + primary-for QFutureWatcherBase (0x0x7f1d78991138) + +Class QHistoryState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHistoryState::QPrivateSignal (0x0x7f1d78913de0) 0 empty + +Vtable for QHistoryState +QHistoryState::_ZTV13QHistoryState: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QHistoryState) +16 (int (*)(...))QHistoryState::metaObject +24 (int (*)(...))QHistoryState::qt_metacast +32 (int (*)(...))QHistoryState::qt_metacall +40 (int (*)(...))QHistoryState::~QHistoryState +48 (int (*)(...))QHistoryState::~QHistoryState +56 (int (*)(...))QHistoryState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QHistoryState::onEntry +120 (int (*)(...))QHistoryState::onExit + +Class QHistoryState + size=16 align=8 + base size=16 base align=8 +QHistoryState (0x0x7f1d78991a28) 0 + vptr=((& QHistoryState::_ZTV13QHistoryState) + 16u) + QAbstractState (0x0x7f1d78991a90) 0 + primary-for QHistoryState (0x0x7f1d78991a28) + QObject (0x0x7f1d78913d80) 0 + primary-for QAbstractState (0x0x7f1d78991a90) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7f1d78913ea0) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 53u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QIdentityProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QIdentityProxyModel::insertRows +264 (int (*)(...))QIdentityProxyModel::insertColumns +272 (int (*)(...))QIdentityProxyModel::removeRows +280 (int (*)(...))QIdentityProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QIdentityProxyModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QIdentityProxyModel::setSourceModel +392 (int (*)(...))QIdentityProxyModel::mapToSource +400 (int (*)(...))QIdentityProxyModel::mapFromSource +408 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +416 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7f1d78991af8) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16u) + QAbstractProxyModel (0x0x7f1d78991b60) 0 + primary-for QIdentityProxyModel (0x0x7f1d78991af8) + QAbstractItemModel (0x0x7f1d78991bc8) 0 + primary-for QAbstractProxyModel (0x0x7f1d78991b60) + QObject (0x0x7f1d78913e40) 0 + primary-for QAbstractItemModel (0x0x7f1d78991bc8) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7f1d78913f00) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7f1d78658600) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7f1d7865b410) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16u) + QObject (0x0x7f1d786585a0) 0 + primary-for QItemSelectionModel (0x0x7f1d7865b410) + +Class QItemSelection + size=8 align=8 + base size=8 base align=8 +QItemSelection (0x0x7f1d7865b618) 0 + QList (0x0x7f1d7865b680) 0 + QListSpecialMethods (0x0x7f1d78658900) 0 empty + +Class QJsonValue + size=24 align=8 + base size=20 base align=8 +QJsonValue (0x0x7f1d78658de0) 0 + +Class QJsonValueRef + size=16 align=8 + base size=12 base align=8 +QJsonValueRef (0x0x7f1d78465540) 0 + +Class QJsonValuePtr + size=24 align=8 + base size=24 base align=8 +QJsonValuePtr (0x0x7f1d78465a80) 0 + +Class QJsonValueRefPtr + size=16 align=8 + base size=16 base align=8 +QJsonValueRefPtr (0x0x7f1d78465ae0) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::iterator (0x0x7f1d78465cc0) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::const_iterator (0x0x7f1d78465d20) 0 + +Class QJsonArray + size=16 align=8 + base size=16 base align=8 +QJsonArray (0x0x7f1d78465c60) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7f1d78566f60) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7f1d785d9000) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::iterator (0x0x7f1d785d9660) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::const_iterator (0x0x7f1d785d96c0) 0 + +Class QJsonObject + size=16 align=8 + base size=16 base align=8 +QJsonObject (0x0x7f1d785d9600) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7f1d78284960) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=32 align=8 + base size=25 base align=8 +QLibrary (0x0x7f1d782859c0) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16u) + QObject (0x0x7f1d78284900) 0 + primary-for QLibrary (0x0x7f1d782859c0) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7f1d78315060) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7f1d78284b40) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7f1d78315540) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7f1d783155a0) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7f1d78315840) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7f1d78315ae0) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7f1d7800f480) 0 + +Class QLinkedListData + size=32 align=8 + base size=25 base align=8 +QLinkedListData (0x0x7f1d7800fde0) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7f1d780b6180) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7f1d780b6300) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7f1d780b62a0) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7f1d780b6480) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7f1d780b6720) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7f1d780b6d80) 0 + +Class QMetaMethod + size=16 align=8 + base size=12 base align=8 +QMetaMethod (0x0x7f1d780b6de0) 0 + +Class QMetaEnum + size=16 align=8 + base size=12 base align=8 +QMetaEnum (0x0x7f1d77e7a420) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7f1d77e7a720) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=12 base align=8 +QMetaClassInfo (0x0x7f1d77e7a780) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7f1d77e7aa80) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7f1d7820dc30) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16u) + QObject (0x0x7f1d77e7aa20) 0 + primary-for QMimeData (0x0x7f1d7820dc30) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7f1d77e7aae0) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7f1d77e7ade0) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7f1d77e7aea0) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=24 align=8 + base size=24 base align=8 +QObjectCleanupHandler (0x0x7f1d7820de38) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16u) + QObject (0x0x7f1d77e7ae40) 0 + primary-for QObjectCleanupHandler (0x0x7f1d7820de38) + +Class QOperatingSystemVersion + size=16 align=4 + base size=16 base align=4 +QOperatingSystemVersion (0x0x7f1d77e7af00) 0 + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7f1d77f086c0) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7f1d77f0b548) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16u) + QAnimationGroup (0x0x7f1d77f0b5b0) 0 + primary-for QParallelAnimationGroup (0x0x7f1d77f0b548) + QAbstractAnimation (0x0x7f1d77f0b618) 0 + primary-for QAnimationGroup (0x0x7f1d77f0b5b0) + QObject (0x0x7f1d77f08660) 0 + primary-for QAbstractAnimation (0x0x7f1d77f0b618) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7f1d77f08780) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7f1d77f0b680) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16u) + QAbstractAnimation (0x0x7f1d77f0b6e8) 0 + primary-for QPauseAnimation (0x0x7f1d77f0b680) + QObject (0x0x7f1d77f08720) 0 + primary-for QAbstractAnimation (0x0x7f1d77f0b6e8) + +Class QStaticPlugin + size=16 align=8 + base size=16 base align=8 +QStaticPlugin (0x0x7f1d77f08960) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7f1d77f08c60) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7f1d77f0b8f0) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16u) + QObject (0x0x7f1d77f08c00) 0 + primary-for QPluginLoader (0x0x7f1d77f0b8f0) + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7f1d77f08cc0) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7f1d77f8a3c0) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 31u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QProcess::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QProcess::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QProcess::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QProcess::writeData +240 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7f1d77f0bf70) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16u) + QIODevice (0x0x7f1d77f96000) 0 + primary-for QProcess (0x0x7f1d77f0bf70) + QObject (0x0x7f1d77f8a360) 0 + primary-for QIODevice (0x0x7f1d77f96000) + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7f1d77f8a480) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7f1d77f96068) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16u) + QAbstractAnimation (0x0x7f1d77f960d0) 0 + primary-for QVariantAnimation (0x0x7f1d77f96068) + QObject (0x0x7f1d77f8a420) 0 + primary-for QAbstractAnimation (0x0x7f1d77f960d0) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7f1d77f8a540) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7f1d77f961a0) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16u) + QVariantAnimation (0x0x7f1d77f96208) 0 + primary-for QPropertyAnimation (0x0x7f1d77f961a0) + QAbstractAnimation (0x0x7f1d77f96270) 0 + primary-for QVariantAnimation (0x0x7f1d77f96208) + QObject (0x0x7f1d77f8a4e0) 0 + primary-for QAbstractAnimation (0x0x7f1d77f96270) + +Class QRandomGenerator::Storage + size=2504 align=8 + base size=2504 base align=8 +QRandomGenerator::Storage (0x0x7f1d77f8a660) 0 + +Class QRandomGenerator + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator (0x0x7f1d77f8a600) 0 + +Class QRandomGenerator64 + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator64 (0x0x7f1d77c78548) 0 + QRandomGenerator (0x0x7f1d77c76600) 0 + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7f1d77c766c0) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7f1d77c76960) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7f1d77c76a20) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7f1d77c76ae0) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7f1d77c76d80) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7f1d77d90060) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7f1d77d90300) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7f1d77d905a0) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7f1d77d90ba0) 0 + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7f1d77d90ea0) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7f1d77b961e0) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7f1d77b96360) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QSaveFile::writeData +240 (int (*)(...))QSaveFile::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7f1d77a81750) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16u) + QFileDevice (0x0x7f1d77a817b8) 0 + primary-for QSaveFile (0x0x7f1d77a81750) + QIODevice (0x0x7f1d77a81820) 0 + primary-for QFileDevice (0x0x7f1d77a817b8) + QObject (0x0x7f1d77b96300) 0 + primary-for QIODevice (0x0x7f1d77a81820) + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7f1d77b96420) 0 + +Class QSemaphoreReleaser + size=16 align=8 + base size=12 base align=8 +QSemaphoreReleaser (0x0x7f1d77b965a0) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7f1d778e3ba0) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7f1d778f50d0) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16u) + QAnimationGroup (0x0x7f1d778f5138) 0 + primary-for QSequentialAnimationGroup (0x0x7f1d778f50d0) + QAbstractAnimation (0x0x7f1d778f51a0) 0 + primary-for QAnimationGroup (0x0x7f1d778f5138) + QObject (0x0x7f1d778e3b40) 0 + primary-for QAbstractAnimation (0x0x7f1d778f51a0) + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7f1d778e3c60) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7f1d778f5208) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16u) + QObject (0x0x7f1d778e3c00) 0 + primary-for QSettings (0x0x7f1d778f5208) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7f1d778e3d20) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7f1d778f5270) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16u) + QObject (0x0x7f1d778e3cc0) 0 + primary-for QSharedMemory (0x0x7f1d778f5270) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7f1d778e3de0) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7f1d778f52d8) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16u) + QObject (0x0x7f1d778e3d80) 0 + primary-for QSignalMapper (0x0x7f1d778f52d8) + +Class QSignalTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalTransition::QPrivateSignal (0x0x7f1d778e3ea0) 0 empty + +Vtable for QSignalTransition +QSignalTransition::_ZTV17QSignalTransition: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSignalTransition) +16 (int (*)(...))QSignalTransition::metaObject +24 (int (*)(...))QSignalTransition::qt_metacast +32 (int (*)(...))QSignalTransition::qt_metacall +40 (int (*)(...))QSignalTransition::~QSignalTransition +48 (int (*)(...))QSignalTransition::~QSignalTransition +56 (int (*)(...))QSignalTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSignalTransition::eventTest +120 (int (*)(...))QSignalTransition::onTransition + +Class QSignalTransition + size=16 align=8 + base size=16 base align=8 +QSignalTransition (0x0x7f1d778f5340) 0 + vptr=((& QSignalTransition::_ZTV17QSignalTransition) + 16u) + QAbstractTransition (0x0x7f1d778f53a8) 0 + primary-for QSignalTransition (0x0x7f1d778f5340) + QObject (0x0x7f1d778e3e40) 0 + primary-for QAbstractTransition (0x0x7f1d778f53a8) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7f1d778e3f60) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7f1d778f5410) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16u) + QObject (0x0x7f1d778e3f00) 0 + primary-for QSocketNotifier (0x0x7f1d778f5410) + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7f1d77976060) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 56u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QSortFilterProxyModel::mimeTypes +216 (int (*)(...))QSortFilterProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QSortFilterProxyModel::dropMimeData +240 (int (*)(...))QSortFilterProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QSortFilterProxyModel::insertRows +264 (int (*)(...))QSortFilterProxyModel::insertColumns +272 (int (*)(...))QSortFilterProxyModel::removeRows +280 (int (*)(...))QSortFilterProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QSortFilterProxyModel::fetchMore +312 (int (*)(...))QSortFilterProxyModel::canFetchMore +320 (int (*)(...))QSortFilterProxyModel::flags +328 (int (*)(...))QSortFilterProxyModel::sort +336 (int (*)(...))QSortFilterProxyModel::buddy +344 (int (*)(...))QSortFilterProxyModel::match +352 (int (*)(...))QSortFilterProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QSortFilterProxyModel::setSourceModel +392 (int (*)(...))QSortFilterProxyModel::mapToSource +400 (int (*)(...))QSortFilterProxyModel::mapFromSource +408 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +416 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +424 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +432 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +440 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7f1d778f5478) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16u) + QAbstractProxyModel (0x0x7f1d778f54e0) 0 + primary-for QSortFilterProxyModel (0x0x7f1d778f5478) + QAbstractItemModel (0x0x7f1d778f5548) 0 + primary-for QAbstractProxyModel (0x0x7f1d778f54e0) + QObject (0x0x7f1d77976000) 0 + primary-for QAbstractItemModel (0x0x7f1d778f5548) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7f1d77976120) 0 empty + +Class QState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QState::QPrivateSignal (0x0x7f1d77976360) 0 empty + +Vtable for QState +QState::_ZTV6QState: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QState) +16 (int (*)(...))QState::metaObject +24 (int (*)(...))QState::qt_metacast +32 (int (*)(...))QState::qt_metacall +40 (int (*)(...))QState::~QState +48 (int (*)(...))QState::~QState +56 (int (*)(...))QState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QState::onEntry +120 (int (*)(...))QState::onExit + +Class QState + size=16 align=8 + base size=16 base align=8 +QState (0x0x7f1d778f56e8) 0 + vptr=((& QState::_ZTV6QState) + 16u) + QAbstractState (0x0x7f1d778f5750) 0 + primary-for QState (0x0x7f1d778f56e8) + QObject (0x0x7f1d77976300) 0 + primary-for QAbstractState (0x0x7f1d778f5750) + +Class QStateMachine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStateMachine::QPrivateSignal (0x0x7f1d77976480) 0 empty + +Vtable for QStateMachine::SignalEvent +QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine11SignalEventE) +16 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent +24 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent + +Class QStateMachine::SignalEvent + size=48 align=8 + base size=48 base align=8 +QStateMachine::SignalEvent (0x0x7f1d778f58f0) 0 + vptr=((& QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE) + 16u) + QEvent (0x0x7f1d779764e0) 0 + primary-for QStateMachine::SignalEvent (0x0x7f1d778f58f0) + +Vtable for QStateMachine::WrappedEvent +QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE: 4u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine12WrappedEventE) +16 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent +24 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent + +Class QStateMachine::WrappedEvent + size=40 align=8 + base size=40 base align=8 +QStateMachine::WrappedEvent (0x0x7f1d778f5958) 0 + vptr=((& QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE) + 16u) + QEvent (0x0x7f1d77976540) 0 + primary-for QStateMachine::WrappedEvent (0x0x7f1d778f5958) + +Vtable for QStateMachine +QStateMachine::_ZTV13QStateMachine: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStateMachine) +16 (int (*)(...))QStateMachine::metaObject +24 (int (*)(...))QStateMachine::qt_metacast +32 (int (*)(...))QStateMachine::qt_metacall +40 (int (*)(...))QStateMachine::~QStateMachine +48 (int (*)(...))QStateMachine::~QStateMachine +56 (int (*)(...))QStateMachine::event +64 (int (*)(...))QStateMachine::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStateMachine::onEntry +120 (int (*)(...))QStateMachine::onExit +128 (int (*)(...))QStateMachine::beginSelectTransitions +136 (int (*)(...))QStateMachine::endSelectTransitions +144 (int (*)(...))QStateMachine::beginMicrostep +152 (int (*)(...))QStateMachine::endMicrostep + +Class QStateMachine + size=16 align=8 + base size=16 base align=8 +QStateMachine (0x0x7f1d778f57b8) 0 + vptr=((& QStateMachine::_ZTV13QStateMachine) + 16u) + QState (0x0x7f1d778f5820) 0 + primary-for QStateMachine (0x0x7f1d778f57b8) + QAbstractState (0x0x7f1d778f5888) 0 + primary-for QState (0x0x7f1d778f5820) + QObject (0x0x7f1d77976420) 0 + primary-for QAbstractState (0x0x7f1d778f5888) + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7f1d779765a0) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7f1d7765c4e0) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7f1d776e98a0) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 48u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QStringListModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QStringListModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QStringListModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QStringListModel::flags +328 (int (*)(...))QStringListModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QStringListModel + size=24 align=8 + base size=24 base align=8 +QStringListModel (0x0x7f1d776ed958) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16u) + QAbstractListModel (0x0x7f1d776ed9c0) 0 + primary-for QStringListModel (0x0x7f1d776ed958) + QAbstractItemModel (0x0x7f1d776eda28) 0 + primary-for QAbstractListModel (0x0x7f1d776ed9c0) + QObject (0x0x7f1d776e9840) 0 + primary-for QAbstractItemModel (0x0x7f1d776eda28) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7f1d776e9900) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7f1d776e99c0) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7f1d776e9ae0) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 34u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QTemporaryFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7f1d776eda90) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16u) + QFile (0x0x7f1d776edaf8) 0 + primary-for QTemporaryFile (0x0x7f1d776eda90) + QFileDevice (0x0x7f1d776edb60) 0 + primary-for QFile (0x0x7f1d776edaf8) + QIODevice (0x0x7f1d776edbc8) 0 + primary-for QFileDevice (0x0x7f1d776edb60) + QObject (0x0x7f1d776e9a80) 0 + primary-for QIODevice (0x0x7f1d776edbc8) + +Class QTextBoundaryFinder + size=48 align=8 + base size=48 base align=8 +QTextBoundaryFinder (0x0x7f1d776e9b40) 0 + +Class QTextCodec::ConverterState + size=32 align=8 + base size=32 base align=8 +QTextCodec::ConverterState (0x0x7f1d776e9d80) 0 + +Vtable for QTextCodec +QTextCodec::_ZTV10QTextCodec: 9u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextCodec) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))QTextCodec::aliases +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 0u +64 0u + +Class QTextCodec + size=8 align=8 + base size=8 base align=8 +QTextCodec (0x0x7f1d776e9d20) 0 nearly-empty + vptr=((& QTextCodec::_ZTV10QTextCodec) + 16u) + +Class QTextEncoder + size=40 align=8 + base size=40 base align=8 +QTextEncoder (0x0x7f1d776e9f60) 0 + +Class QTextDecoder + size=40 align=8 + base size=40 base align=8 +QTextDecoder (0x0x7f1d777d7000) 0 + +Class std::__mutex_base + size=40 align=8 + base size=40 base align=8 +std::__mutex_base (0x0x7f1d777d7060) 0 + +Class std::__recursive_mutex_base + size=40 align=8 + base size=40 base align=8 +std::__recursive_mutex_base (0x0x7f1d777d70c0) 0 + +Class std::mutex + size=40 align=8 + base size=40 base align=8 +std::mutex (0x0x7f1d776eddd0) 0 + std::__mutex_base (0x0x7f1d777d7120) 0 + +Class std::recursive_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_mutex (0x0x7f1d776ede38) 0 + std::__recursive_mutex_base (0x0x7f1d777d7180) 0 + +Class std::timed_mutex + size=40 align=8 + base size=40 base align=8 +std::timed_mutex (0x0x7f1d777f1b60) 0 + std::__mutex_base (0x0x7f1d777d72a0) 0 + std::__timed_mutex_impl (0x0x7f1d777d7300) 0 empty + +Class std::recursive_timed_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_timed_mutex (0x0x7f1d7730f540) 0 + std::__recursive_mutex_base (0x0x7f1d777d73c0) 0 + std::__timed_mutex_impl (0x0x7f1d777d7420) 0 empty + +Class std::defer_lock_t + size=1 align=1 + base size=0 base align=1 +std::defer_lock_t (0x0x7f1d777d7480) 0 empty + +Class std::try_to_lock_t + size=1 align=1 + base size=0 base align=1 +std::try_to_lock_t (0x0x7f1d777d74e0) 0 empty + +Class std::adopt_lock_t + size=1 align=1 + base size=0 base align=1 +std::adopt_lock_t (0x0x7f1d777d7540) 0 empty + +Class std::once_flag + size=4 align=4 + base size=4 base align=4 +std::once_flag (0x0x7f1d777d7780) 0 + +Vtable for __gnu_cxx::__concurrence_lock_error +__gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_lock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +24 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +32 (int (*)(...))__gnu_cxx::__concurrence_lock_error::what + +Class __gnu_cxx::__concurrence_lock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_lock_error (0x0x7f1d776edf70) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE) + 16u) + std::exception (0x0x7f1d777d7840) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_lock_error (0x0x7f1d776edf70) + +Vtable for __gnu_cxx::__concurrence_unlock_error +__gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx26__concurrence_unlock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +24 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +32 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::what + +Class __gnu_cxx::__concurrence_unlock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_unlock_error (0x0x7f1d77369000) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE) + 16u) + std::exception (0x0x7f1d777d7900) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_unlock_error (0x0x7f1d77369000) + +Vtable for __gnu_cxx::__concurrence_broadcast_error +__gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx29__concurrence_broadcast_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +24 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +32 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::what + +Class __gnu_cxx::__concurrence_broadcast_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_broadcast_error (0x0x7f1d77369068) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE) + 16u) + std::exception (0x0x7f1d777d79c0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_broadcast_error (0x0x7f1d77369068) + +Vtable for __gnu_cxx::__concurrence_wait_error +__gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_wait_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +24 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +32 (int (*)(...))__gnu_cxx::__concurrence_wait_error::what + +Class __gnu_cxx::__concurrence_wait_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_wait_error (0x0x7f1d77369138) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE) + 16u) + std::exception (0x0x7f1d777d7a80) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_wait_error (0x0x7f1d77369138) + +Class __gnu_cxx::__mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__mutex (0x0x7f1d777d7b40) 0 + +Class __gnu_cxx::__recursive_mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__recursive_mutex (0x0x7f1d777d7ba0) 0 + +Class __gnu_cxx::__scoped_lock + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__scoped_lock (0x0x7f1d777d7c00) 0 + +Class __gnu_cxx::__cond + size=48 align=8 + base size=48 base align=8 +__gnu_cxx::__cond (0x0x7f1d777d7c60) 0 + +Vtable for std::bad_weak_ptr +std::bad_weak_ptr::_ZTVSt12bad_weak_ptr: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12bad_weak_ptr) +16 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +24 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +32 (int (*)(...))std::bad_weak_ptr::what + +Class std::bad_weak_ptr + size=8 align=8 + base size=8 base align=8 +std::bad_weak_ptr (0x0x7f1d77369410) 0 nearly-empty + vptr=((& std::bad_weak_ptr::_ZTVSt12bad_weak_ptr) + 16u) + std::exception (0x0x7f1d7742f000) 0 nearly-empty + primary-for std::bad_weak_ptr (0x0x7f1d77369410) + +Class std::_Sp_make_shared_tag + size=1 align=1 + base size=0 base align=1 +std::_Sp_make_shared_tag (0x0x7f1d7742f840) 0 empty + +Class std::_Sp_locker + size=2 align=1 + base size=2 base align=1 +std::_Sp_locker (0x0x7f1d771a8060) 0 + +Class std::thread::id + size=8 align=8 + base size=8 base align=8 +std::thread::id (0x0x7f1d771a8240) 0 + +Vtable for std::thread::_Impl_base +std::thread::_Impl_base::_ZTVNSt6thread10_Impl_baseE: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6thread10_Impl_baseE) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual + +Class std::thread::_Impl_base + size=24 align=8 + base size=24 base align=8 +std::thread::_Impl_base (0x0x7f1d771a82a0) 0 + vptr=((& std::thread::_Impl_base::_ZTVNSt6thread10_Impl_baseE) + 16u) + +Class std::thread + size=8 align=8 + base size=8 base align=8 +std::thread (0x0x7f1d771a81e0) 0 + +Class std::condition_variable + size=48 align=8 + base size=48 base align=8 +std::condition_variable (0x0x7f1d76f18ea0) 0 + +Class std::__at_thread_exit_elt + size=16 align=8 + base size=16 base align=8 +std::__at_thread_exit_elt (0x0x7f1d76f18f60) 0 + +Class std::_V2::condition_variable_any + size=64 align=8 + base size=64 base align=8 +std::_V2::condition_variable_any (0x0x7f1d76f7c000) 0 + +Class std::__atomic_futex_unsigned_base + size=1 align=1 + base size=0 base align=1 +std::__atomic_futex_unsigned_base (0x0x7f1d77003660) 0 empty + +Vtable for std::future_error +std::future_error::_ZTVSt12future_error: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12future_error) +16 (int (*)(...))std::future_error::~future_error +24 (int (*)(...))std::future_error::~future_error +32 (int (*)(...))std::future_error::what + +Class std::future_error + size=32 align=8 + base size=32 base align=8 +std::future_error (0x0x7f1d77005750) 0 + vptr=((& std::future_error::_ZTVSt12future_error) + 16u) + std::logic_error (0x0x7f1d770057b8) 0 + primary-for std::future_error (0x0x7f1d77005750) + std::exception (0x0x7f1d77003780) 0 nearly-empty + primary-for std::logic_error (0x0x7f1d770057b8) + +Class std::__future_base::_Result_base::_Deleter + size=1 align=1 + base size=0 base align=1 +std::__future_base::_Result_base::_Deleter (0x0x7f1d770038a0) 0 empty + +Vtable for std::__future_base::_Result_base +std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE: 5u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base12_Result_baseE) +16 (int (*)(...))__cxa_pure_virtual +24 0u +32 0u + +Class std::__future_base::_Result_base + size=16 align=8 + base size=16 base align=8 +std::__future_base::_Result_base (0x0x7f1d77003840) 0 + vptr=((& std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE) + 16u) + +Class std::__future_base::_State_baseV2::__exception_ptr_tag + size=1 align=1 + base size=0 base align=1 +std::__future_base::_State_baseV2::__exception_ptr_tag (0x0x7f1d76cf7de0) 0 empty + +Class std::__future_base::_State_baseV2::_Make_ready + size=32 align=8 + base size=32 base align=8 +std::__future_base::_State_baseV2::_Make_ready (0x0x7f1d76cf6d68) 0 + std::__at_thread_exit_elt (0x0x7f1d76cf7ea0) 0 + +Vtable for std::__future_base::_State_baseV2 +std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base13_State_baseV2E) +16 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +24 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +32 (int (*)(...))std::__future_base::_State_baseV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_State_baseV2 + size=32 align=8 + base size=28 base align=8 +std::__future_base::_State_baseV2 (0x0x7f1d77003a20) 0 + vptr=((& std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E) + 16u) + +Class std::__future_base + size=1 align=1 + base size=0 base align=1 +std::__future_base (0x0x7f1d770037e0) 0 empty + +Vtable for std::__future_base::_Async_state_commonV2 +std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base21_Async_state_commonV2E) +16 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +24 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +32 (int (*)(...))std::__future_base::_Async_state_commonV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_Async_state_commonV2 + size=48 align=8 + base size=44 base align=8 +std::__future_base::_Async_state_commonV2 (0x0x7f1d76abd958) 0 + vptr=((& std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E) + 16u) + std::__future_base::_State_baseV2 (0x0x7f1d76aa9d80) 0 + primary-for std::__future_base::_Async_state_commonV2 (0x0x7f1d76abd958) + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7f1d767184e0) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7f1d7671e410) 0 + vptr=((& QThread::_ZTV7QThread) + 16u) + QObject (0x0x7f1d76718480) 0 + primary-for QThread (0x0x7f1d7671e410) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7f1d76718600) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7f1d7671e478) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16u) + QObject (0x0x7f1d767185a0) 0 + primary-for QThreadPool (0x0x7f1d7671e478) + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7f1d76718660) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7f1d76718780) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7f1d7671e4e0) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16u) + QObject (0x0x7f1d76718720) 0 + primary-for QTimeLine (0x0x7f1d7671e4e0) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7f1d76718840) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=32 align=8 + base size=29 base align=8 +QTimer (0x0x7f1d7671e548) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16u) + QObject (0x0x7f1d767187e0) 0 + primary-for QTimer (0x0x7f1d7671e548) + +Class QTimeZone::OffsetData + size=32 align=8 + base size=28 base align=8 +QTimeZone::OffsetData (0x0x7f1d76718f00) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7f1d76718ea0) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7f1d767ff4e0) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7f1d7671e5b0) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16u) + QObject (0x0x7f1d767ff480) 0 + primary-for QTranslator (0x0x7f1d7671e5b0) + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7f1d767ff600) 0 + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7f1d7651bcc0) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7f1d765b7360) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7f1d765b7960) 0 + +Class QXmlStreamStringRef + size=16 align=8 + base size=16 base align=8 +QXmlStreamStringRef (0x0x7f1d765b79c0) 0 + +Class QXmlStreamAttribute + size=80 align=8 + base size=73 base align=8 +QXmlStreamAttribute (0x0x7f1d765b7c60) 0 + +Class QXmlStreamAttributes + size=8 align=8 + base size=8 base align=8 +QXmlStreamAttributes (0x0x7f1d765e4a28) 0 + QVector (0x0x7f1d7666e060) 0 + +Class QXmlStreamNamespaceDeclaration + size=40 align=8 + base size=40 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7f1d7666e0c0) 0 + +Class QXmlStreamNotationDeclaration + size=56 align=8 + base size=56 base align=8 +QXmlStreamNotationDeclaration (0x0x7f1d7666e360) 0 + +Class QXmlStreamEntityDeclaration + size=88 align=8 + base size=88 base align=8 +QXmlStreamEntityDeclaration (0x0x7f1d7666e600) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7f1d7666e8a0) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16u) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7f1d7666e900) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7f1d7635a360) 0 + +Class QGeoAddress + size=8 align=8 + base size=8 base align=8 +QGeoAddress (0x0x7f1d7635a480) 0 + +Class QGeoCoordinate + size=8 align=8 + base size=8 base align=8 +QGeoCoordinate (0x0x7f1d7635ac00) 0 + +Class QGeoShape + size=8 align=8 + base size=8 base align=8 +QGeoShape (0x0x7f1d763ce060) 0 + +Class QGeoAreaMonitorInfo + size=8 align=8 + base size=8 base align=8 +QGeoAreaMonitorInfo (0x0x7f1d763ce4e0) 0 + +Class QGeoPositionInfo + size=8 align=8 + base size=8 base align=8 +QGeoPositionInfo (0x0x7f1d763ce5a0) 0 + +Class QGeoPositionInfoSource::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGeoPositionInfoSource::QPrivateSignal (0x0x7f1d763ce780) 0 empty + +Vtable for QGeoPositionInfoSource +QGeoPositionInfoSource::_ZTV22QGeoPositionInfoSource: 23u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGeoPositionInfoSource) +16 (int (*)(...))QGeoPositionInfoSource::metaObject +24 (int (*)(...))QGeoPositionInfoSource::qt_metacast +32 (int (*)(...))QGeoPositionInfoSource::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGeoPositionInfoSource::setUpdateInterval +120 (int (*)(...))QGeoPositionInfoSource::setPreferredPositioningMethods +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual + +Class QGeoPositionInfoSource + size=24 align=8 + base size=24 base align=8 +QGeoPositionInfoSource (0x0x7f1d7639a478) 0 + vptr=((& QGeoPositionInfoSource::_ZTV22QGeoPositionInfoSource) + 16u) + QObject (0x0x7f1d763ce720) 0 + primary-for QGeoPositionInfoSource (0x0x7f1d7639a478) + +Class QGeoAreaMonitorSource::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGeoAreaMonitorSource::QPrivateSignal (0x0x7f1d763ce9c0) 0 empty + +Vtable for QGeoAreaMonitorSource +QGeoAreaMonitorSource::_ZTV21QGeoAreaMonitorSource: 23u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGeoAreaMonitorSource) +16 (int (*)(...))QGeoAreaMonitorSource::metaObject +24 (int (*)(...))QGeoAreaMonitorSource::qt_metacast +32 (int (*)(...))QGeoAreaMonitorSource::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGeoAreaMonitorSource::setPositionInfoSource +120 (int (*)(...))QGeoAreaMonitorSource::positionInfoSource +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual + +Class QGeoAreaMonitorSource + size=24 align=8 + base size=24 base align=8 +QGeoAreaMonitorSource (0x0x7f1d7639a5b0) 0 + vptr=((& QGeoAreaMonitorSource::_ZTV21QGeoAreaMonitorSource) + 16u) + QObject (0x0x7f1d763ce960) 0 + primary-for QGeoAreaMonitorSource (0x0x7f1d7639a5b0) + +Class QGeoRectangle + size=8 align=8 + base size=8 base align=8 +QGeoRectangle (0x0x7f1d7639a618) 0 + QGeoShape (0x0x7f1d763cea20) 0 + +Class QGeoCircle + size=8 align=8 + base size=8 base align=8 +QGeoCircle (0x0x7f1d7639a8f0) 0 + QGeoShape (0x0x7f1d763cef00) 0 + +Class QGeoLocation + size=8 align=8 + base size=8 base align=8 +QGeoLocation (0x0x7f1d764c1300) 0 + +Class QGeoPath + size=8 align=8 + base size=8 base align=8 +QGeoPath (0x0x7f1d764eb138) 0 + QGeoShape (0x0x7f1d764c1a80) 0 + +Class QGeoPolygon + size=8 align=8 + base size=8 base align=8 +QGeoPolygon (0x0x7f1d764eb340) 0 + QGeoShape (0x0x7f1d764c1e40) 0 + +Class QGeoSatelliteInfo + size=8 align=8 + base size=8 base align=8 +QGeoSatelliteInfo (0x0x7f1d76121240) 0 + +Class QGeoSatelliteInfoSource::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGeoSatelliteInfoSource::QPrivateSignal (0x0x7f1d76121300) 0 empty + +Vtable for QGeoSatelliteInfoSource +QGeoSatelliteInfoSource::_ZTV23QGeoSatelliteInfoSource: 20u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGeoSatelliteInfoSource) +16 (int (*)(...))QGeoSatelliteInfoSource::metaObject +24 (int (*)(...))QGeoSatelliteInfoSource::qt_metacast +32 (int (*)(...))QGeoSatelliteInfoSource::qt_metacall +40 0u +48 0u +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGeoSatelliteInfoSource::setUpdateInterval +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual + +Class QGeoSatelliteInfoSource + size=24 align=8 + base size=24 base align=8 +QGeoSatelliteInfoSource (0x0x7f1d764eb548) 0 + vptr=((& QGeoSatelliteInfoSource::_ZTV23QGeoSatelliteInfoSource) + 16u) + QObject (0x0x7f1d761212a0) 0 + primary-for QGeoSatelliteInfoSource (0x0x7f1d764eb548) + +Vtable for QGeoPositionInfoSourceFactory +QGeoPositionInfoSourceFactory::_ZTV29QGeoPositionInfoSourceFactory: 7u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QGeoPositionInfoSourceFactory) +16 0u +24 0u +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QGeoPositionInfoSourceFactory + size=8 align=8 + base size=8 base align=8 +QGeoPositionInfoSourceFactory (0x0x7f1d761213c0) 0 nearly-empty + vptr=((& QGeoPositionInfoSourceFactory::_ZTV29QGeoPositionInfoSourceFactory) + 16u) + +Class QNmeaPositionInfoSource::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNmeaPositionInfoSource::QPrivateSignal (0x0x7f1d761214e0) 0 empty + +Vtable for QNmeaPositionInfoSource +QNmeaPositionInfoSource::_ZTV23QNmeaPositionInfoSource: 24u entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QNmeaPositionInfoSource) +16 (int (*)(...))QNmeaPositionInfoSource::metaObject +24 (int (*)(...))QNmeaPositionInfoSource::qt_metacast +32 (int (*)(...))QNmeaPositionInfoSource::qt_metacall +40 (int (*)(...))QNmeaPositionInfoSource::~QNmeaPositionInfoSource +48 (int (*)(...))QNmeaPositionInfoSource::~QNmeaPositionInfoSource +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QNmeaPositionInfoSource::setUpdateInterval +120 (int (*)(...))QGeoPositionInfoSource::setPreferredPositioningMethods +128 (int (*)(...))QNmeaPositionInfoSource::lastKnownPosition +136 (int (*)(...))QNmeaPositionInfoSource::supportedPositioningMethods +144 (int (*)(...))QNmeaPositionInfoSource::minimumUpdateInterval +152 (int (*)(...))QNmeaPositionInfoSource::error +160 (int (*)(...))QNmeaPositionInfoSource::startUpdates +168 (int (*)(...))QNmeaPositionInfoSource::stopUpdates +176 (int (*)(...))QNmeaPositionInfoSource::requestUpdate +184 (int (*)(...))QNmeaPositionInfoSource::parsePosInfoFromNmeaData + +Class QNmeaPositionInfoSource + size=32 align=8 + base size=32 base align=8 +QNmeaPositionInfoSource (0x0x7f1d764eb5b0) 0 + vptr=((& QNmeaPositionInfoSource::_ZTV23QNmeaPositionInfoSource) + 16u) + QGeoPositionInfoSource (0x0x7f1d764eb618) 0 + primary-for QNmeaPositionInfoSource (0x0x7f1d764eb5b0) + QObject (0x0x7f1d76121480) 0 + primary-for QGeoPositionInfoSource (0x0x7f1d764eb618) + diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/declarative_core/tst_place.qml qtlocation-opensource-src-5.11.1+dfsg/tests/auto/declarative_core/tst_place.qml --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/declarative_core/tst_place.qml 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/declarative_core/tst_place.qml 2018-06-12 18:44:12.000000000 +0000 @@ -134,7 +134,7 @@ function compare_place(place1, place2) { // check simple properties var simpleProperties = ["name", "placeId", "primaryPhone", "primaryFax", "primaryEmail", - "primaryUrl", "visibility"]; + "primaryWebsite", "visibility"]; for (x in simpleProperties) { if (place1[simpleProperties[x]] !== place2[simpleProperties[x]]) return false; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/declarative_core/tst_placesearchmodel.qml qtlocation-opensource-src-5.11.1+dfsg/tests/auto/declarative_core/tst_placesearchmodel.qml --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/declarative_core/tst_placesearchmodel.qml 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/declarative_core/tst_placesearchmodel.qml 2018-06-12 18:44:12.000000000 +0000 @@ -129,6 +129,16 @@ ] }, { + tag: "searchTerm, multiple results", + property: "searchTerm", + value: "sea", + reset: "", + alternate: true, + places: [ + "8f72057a-54b2-4e95-a7bb-97b4d2b5721e" + ] + }, + { tag: "categories, single result", property: "categories", value: [ park ], @@ -192,6 +202,14 @@ verify(data.places.indexOf(place.placeId) >= 0); } + // Test for alternate implementation + if (data.alternate !== undefined && data.alternate === true) { + for (var ii = 0; ii < testModel.count; ++ii) { + var p = testModel.data(ii, "place"); + compare(p.extendedAttributes["x_provider"].text, "QPlacePrivateDefaultAlt") + } + } + testModel.reset(); compare(statusChangedSpy.count, 3); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/declarative_core/tst_routing.qml qtlocation-opensource-src-5.11.1+dfsg/tests/auto/declarative_core/tst_routing.qml --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/declarative_core/tst_routing.qml 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/declarative_core/tst_routing.qml 2018-06-12 18:44:12.000000000 +0000 @@ -28,10 +28,17 @@ import QtQuick 2.0 import QtTest 1.0 -import QtLocation 5.3 +import QtLocation 5.11 import QtPositioning 5.2 Item { + id: root + function cloneArray(a) { + var i = a.length + var arr = new Array(i) + while (i--) arr[i] = a[i]; + return arr + } Plugin { id: testPlugin; name: "qmlgeo.test.plugin"; allowExperimental: true } Plugin { id: errorPlugin; name: "qmlgeo.test.plugin"; allowExperimental: true parameters: [ @@ -169,8 +176,7 @@ compare (emptyQuery.maneuverDetail, RouteQuery.BasicManeuvers) compare (emptyQuery.waypoints.length, 0, "Waypoints") compare (emptyQuery.excludedAreas.length, 0, "excluded areas") - // Bug in QtQml. Todo, enable when QList support is done - //compare (emptyQuery.featureTypes.length, 0, "Feature types") + compare (emptyQuery.featureTypes.length, 0, "Feature types") } SignalSpy {id: autoUpdateSpy; target: emptyModel; signalName: "autoUpdateChanged"} @@ -323,8 +329,7 @@ // Feature types and weights queryDetailsChangedSpy.clear() - // Bug in QtQml. Todo, enable when QList support is done - //compare(emptyQuery.featureTypes.length, 0) + compare(emptyQuery.featureTypes.length, 0) compare(featureTypesSpy.count, 0) emptyQuery.setFeatureWeight(RouteQuery.TollFeature, RouteQuery.AvoidFeatureWeight); compare(featureTypesSpy.count, 1) @@ -332,10 +337,9 @@ emptyQuery.setFeatureWeight(RouteQuery.HighwayFeature, RouteQuery.PreferFeatureWeight); compare(featureTypesSpy.count, 2) compare(queryDetailsChangedSpy.count, 2) - // Bug in QtQml. Todo, enable when QList support is done - //compare(emptyQuery.featureTypes.length, 2) - //compare(emptyQuery.featureTypes[0], RouteQuery.TollFeature) - //compare(emptyQuery.featureTypes[1], RouteQuery.HighwayFeature) + compare(emptyQuery.featureTypes.length, 2) + compare(emptyQuery.featureTypes[0], RouteQuery.TollFeature) + compare(emptyQuery.featureTypes[1], RouteQuery.HighwayFeature) // Verify feature weights are as set compare(emptyQuery.featureWeight(RouteQuery.TollFeature), RouteQuery.AvoidFeatureWeight); compare(emptyQuery.featureWeight(RouteQuery.HighwayFeature), RouteQuery.PreferFeatureWeight); @@ -343,30 +347,25 @@ emptyQuery.setFeatureWeight(RouteQuery.TollFeature, RouteQuery.NeutralFeatureWeight); compare(featureTypesSpy.count, 3) compare(queryDetailsChangedSpy.count, 3) - // Bug in QtQml. Todo, enable when QList support is done - //compare(emptyQuery.featureTypes.length, 1) + compare(emptyQuery.featureTypes.length, 1) compare(emptyQuery.featureWeight(RouteQuery.TollFeature), RouteQuery.NeutralFeatureWeight); compare(emptyQuery.featureWeight(RouteQuery.HighwayFeature), RouteQuery.PreferFeatureWeight); - // Bug in QtQml. Todo, enable when QList support is done - //compare(emptyQuery.featureTypes[0], RouteQuery.HighwayFeature) - //compare(emptyQuery.featureWeight(emptyQuery.featureTypes[0]), RouteQuery.PreferFeatureWeight) + compare(emptyQuery.featureTypes[0], RouteQuery.HighwayFeature) + compare(emptyQuery.featureWeight(emptyQuery.featureTypes[0]), RouteQuery.PreferFeatureWeight) compare(featureTypesSpy.count, 3) compare(queryDetailsChangedSpy.count, 3) - // Bug in QtQml. Todo, enable when QList support is done - //compare(emptyQuery.featureTypes.length, 1) + compare(emptyQuery.featureTypes.length, 1) // Put some feature weights and then reset them with NoFeature emptyQuery.setFeatureWeight(RouteQuery.FerryFeature, RouteQuery.RequireFeatureWeight); emptyQuery.setFeatureWeight(RouteQuery.MotorPoolLaneFeature, RouteQuery.DisallowFeatureWeight); compare(featureTypesSpy.count, 5) compare(queryDetailsChangedSpy.count, 5) - // Bug in QtQml. Todo, enable when QList support is done - //compare(emptyQuery.featureTypes.length, 3) + compare(emptyQuery.featureTypes.length, 3) emptyQuery.setFeatureWeight(RouteQuery.NoFeature, RouteQuery.NeutralFeatureWeight) compare(featureTypesSpy.count, 6) compare(queryDetailsChangedSpy.count, 6) - // Bug in QtQml. Todo, enable when QList support is done - //compare(emptyQuery.featureTypes.length, 0) + compare(emptyQuery.featureTypes.length, 0) // Segment details queryDetailsChangedSpy.clear() @@ -503,7 +502,15 @@ } Plugin { - id: bacicRoutingPlugin_slacker; + id: testPlugin_slacker_alt + name: "qmlgeo.test.plugin" + allowExperimental: true + PluginParameter { name: "gc_finishRequestImmediately"; value: false} + PluginParameter { name: "gc_alternateGeoRoute"; value: true} + } + + Plugin { + id: basicRoutingPlugin_slacker; name: "qmlgeo.test.plugin" allowExperimental: true parameters: [ @@ -528,25 +535,46 @@ property variant f2coordinate2: QtPositioning.coordinate(61, 62) property variant f2coordinate3: QtPositioning.coordinate(63, 64) + Waypoint { + id: waypoint1 + coordinate: QtPositioning.coordinate(70, 70) + bearing: 42 + } + + Waypoint { + id: waypoint2 + coordinate: QtPositioning.coordinate(71, 71) + bearing: 43 + + MapParameter { + id: param1 + type: "user_distance" + property real distance: 10 + } + } + RouteQuery {id: routeQuery} + property var routeQueryDefaultWaypoints: [ + { latitude: 60, longitude: 60 }, + { latitude: 61, longitude: 62 }, + { latitude: 63, longitude: 64 }, + { latitude: 65, longitude: 66 }, + { latitude: 67, longitude: 68 } + ] + property var routeQuery2DefaultWaypoints: [ + f2coordinate1, + f2coordinate2, + f2coordinate3 + ] RouteQuery { id: filledRouteQuery numberAlternativeRoutes: 0 - waypoints: [ - { latitude: 60, longitude: 60 }, - { latitude: 61, longitude: 62 }, - { latitude: 63, longitude: 64 }, - { latitude: 65, longitude: 66 }, - { latitude: 67, longitude: 68 } - ] + waypoints: routeQueryDefaultWaypoints } RouteQuery { id: filledRouteQuery2 - waypoints: [ - f2coordinate1, - f2coordinate2, - f2coordinate3 - ] + numberAlternativeRoutes: 0 + waypoints: routeQuery2DefaultWaypoints } RouteModel { id: routeModelAutomatic; @@ -554,8 +582,15 @@ query: filledRouteQuery; autoUpdate: true } + RouteModel { + id: routeModelAutomaticAltImpl; + plugin: testPlugin_slacker_alt; + query: filledRouteQuery; + autoUpdate: true + } SignalSpy {id: automaticRoutesSpy; target: routeModelAutomatic; signalName: "routesChanged" } + SignalSpy {id: automaticRoutesSpyAlt; target: routeModelAutomaticAltImpl; signalName: "routesChanged" } RouteModel {id: routeModel; plugin: testPlugin_immediate; query: routeQuery } SignalSpy {id: testRoutesSpy; target: routeModel; signalName: "routesChanged"} @@ -565,7 +600,7 @@ SignalSpy {id: testErrorSpy; target: routeModel; signalName: "errorChanged"} SignalSpy {id: testWaypointsSpy; target: routeQuery; signalName: "waypointsChanged"} - RouteModel {id: routeModelSlack; plugin: bacicRoutingPlugin_slacker; query: routeQuery } + RouteModel {id: routeModelSlack; plugin: basicRoutingPlugin_slacker; query: routeQuery } SignalSpy {id: testRoutesSlackSpy; target: routeModelSlack; signalName: "routesChanged"} SignalSpy {id: testCountSlackSpy; target: routeModelSlack; signalName: "countChanged" } SignalSpy {id: testStatusSlackSpy; target: routeModelSlack; signalName: "statusChanged"} @@ -740,26 +775,37 @@ compare(testCountSlackSpy.count, 1) compare(routeModelSlack.count, 1) + test_basic_routing_automatic(routeModelAutomatic, automaticRoutesSpy, "routeModelAutomatic") + test_basic_routing_automatic(routeModelAutomaticAltImpl, automaticRoutesSpyAlt, "routeModelAutomaticAltImpl") + } + + function test_basic_routing_automatic(model, spy, label) { + if (label === undefined) + return + console.log("testing",label) // Autoupdate - automaticRoutesSpy.clear(); + spy.clear(); filledRouteQuery.numberAlternativeRoutes = 1 // 'altroutes - 70' is the echoed errorcode - tryCompare (automaticRoutesSpy, "count", 1) // 5 sec - compare(routeModelAutomatic.count, 1) // There should be a route already - compare (routeModelAutomatic.get(0).path.length, 5) - compare (routeModelAutomatic.get(0).path[0].latitude, filledRouteQuery.waypoints[0].latitude) + tryCompare (spy, "count", 1) // 5 sec + compare(model.count, 1) // There should be a route already + compare (model.get(0).path.length, 5) + compare (model.get(0).path[0].latitude, filledRouteQuery.waypoints[0].latitude) + + if (label === "routeModelAutomaticAltImpl") // Test that it is an altImpl + compare(model.get(0).travelTime, 123456) // Remove a waypoint and check that autoupdate works filledRouteQuery.removeWaypoint(fcoordinate2) - tryCompare (automaticRoutesSpy, "count", 2) - compare (routeModelAutomatic.get(0).path.length, 4) - compare (routeModelAutomatic.get(0).path[0].latitude, fcoordinate1.latitude) + tryCompare (spy, "count", 2) + compare (model.get(0).path.length, 4) + compare (model.get(0).path[0].latitude, fcoordinate1.latitude) // Add a waypoint and check that autoupdate works filledRouteQuery.addWaypoint(fcoordinate2); - tryCompare (automaticRoutesSpy, "count", 3) - compare(routeModelAutomatic.count, 1); - compare(routeModelAutomatic.get(0).path.length, 5); - compare(routeModelAutomatic.get(0).path[0].latitude, filledRouteQuery.waypoints[0].latitude); + tryCompare (spy, "count", 3) + compare(model.count, 1); + compare(model.get(0).path.length, 5); + compare(model.get(0).path[0].latitude, filledRouteQuery.waypoints[0].latitude); // Change contents of a coordinate and check that autoupdate works filledRouteQuery.waypoints = [ @@ -769,14 +815,99 @@ { latitude: 65, longitude: 66 }, { latitude: 67, longitude: 68 } ]; - tryCompare (automaticRoutesSpy, "count", 4) - compare(routeModelAutomatic.get(0).path[0].latitude, fcoordinate1.latitude + 1) // new value should be echoed + tryCompare (spy, "count", 4) + compare(model.get(0).path[0].latitude, fcoordinate1.latitude + 1) // new value should be echoed + + // Extra parameter + var param = Qt.createQmlObject ('import QtLocation 5.9; MapParameter { type : "test-traveltime"; property var requestedTime : 42}', root) + var initialParams = cloneArray(filledRouteQuery.quickChildren) + var modifiedParams = cloneArray(initialParams) + modifiedParams.push(param) + + filledRouteQuery.quickChildren = modifiedParams + tryCompare (spy, "count", 5) + if (label === "routeModelAutomaticAltImpl") + compare(model.get(0).travelTime, 123456) + else + compare(model.get(0).travelTime, 42) + param.requestedTime = 43 + tryCompare (spy, "count", 6) + if (label === "routeModelAutomaticAltImpl") + compare(model.get(0).travelTime, 123456) + else + compare(model.get(0).travelTime, 43) + filledRouteQuery.quickChildren = initialParams + tryCompare (spy, "count", 7) + if (label === "routeModelAutomaticAltImpl") + compare(model.get(0).travelTime, 123456) + else + compare(model.get(0).travelTime, 0) + var secondParam = Qt.createQmlObject ('import QtLocation 5.9; MapParameter { type : "foo"; property var bar : 42}', root) + modifiedParams.push(secondParam) + param.requestedTime = 44 + filledRouteQuery.quickChildren = modifiedParams + tryCompare (spy, "count", 8) + if (label === "routeModelAutomaticAltImpl") + compare(model.get(0).travelTime, 123456) + else + compare(model.get(0).travelTime, 44) + filledRouteQuery.quickChildren = initialParams + tryCompare (spy, "count", 9) + if (label === "routeModelAutomaticAltImpl") + compare(model.get(0).travelTime, 123456) + else + compare(model.get(0).travelTime, 0) + + /* Test waypoints */ + // Verify that bearing is NaN for coordinates + verify(isNaN(filledRouteQuery.waypointObjects()[0].bearing)) + var numWaypoints = filledRouteQuery.waypoints.length + // Add a waypoint with bearing + filledRouteQuery.addWaypoint(waypoint1) + tryCompare (spy, "count", 10) + compare(filledRouteQuery.waypointObjects()[numWaypoints].bearing, 42) + // testing Waypoint to coordinate conversion + compare(filledRouteQuery.waypoints[numWaypoints], filledRouteQuery.waypointObjects()[numWaypoints].coordinate) + waypoint1.latitude += 0.1 + compare(model.get(0).distance, 0) + tryCompare (spy, "count", 11) + numWaypoints++; + filledRouteQuery.addWaypoint(waypoint2) // waypoint2 contains a MapParameter with user_distance + numWaypoints++; + tryCompare (spy, "count", 12) + compare(filledRouteQuery.waypointObjects()[numWaypoints-1].bearing, 43) + compare(model.get(0).distance, 10) + waypoint1.latitude += 0.1 + tryCompare (spy, "count", 13) + waypoint2.latitude += 0.1 + tryCompare (spy, "count", 14) + filledRouteQuery.removeWaypoint(waypoint1) + tryCompare (spy, "count", 15) + waypoint2.latitude += 0.1 + tryCompare (spy, "count", 16) + waypoint1.latitude += 0.1 + tryCompare (spy, "count", 16) // No effect, now disconnected + // test with other props + waypoint2.longitude += 0.1 + tryCompare (spy, "count", 17) + waypoint2.altitude = 42 + tryCompare (spy, "count", 18) + waypoint2.bearing += 1 + tryCompare (spy, "count", 19) + compare(waypoint2.longitude, 71.1) + compare(waypoint2.altitude, 42) + compare(waypoint2.bearing, 44) + // test with map parameters + param1.distance = 42 + tryCompare (spy, "count", 20) + compare(model.get(0).distance, 42) + // Change query - routeModelAutomatic.query = filledRouteQuery2 + model.query = filledRouteQuery2 filledRouteQuery2.numberAlternativeRoutes = 3 - tryCompare (automaticRoutesSpy, "count", 5) - compare (routeModelAutomatic.get(0).path.length, 3) + tryCompare (spy, "count", 21) + compare (model.get(0).path.length, 3) // Verify that the old query is disconnected internally ie. does not trigger update filledRouteQuery.waypoints = [ @@ -787,10 +918,24 @@ { latitude: 67, longitude: 68 } ]; wait(800) // wait to hope no further updates comes through - compare (automaticRoutesSpy.count, 5) - compare(routeModelAutomatic.get(0).path.length, 3); + compare (spy.count, 21) + compare(model.get(0).path.length, 3); + + // ReSetting + filledRouteQuery.numberAlternativeRoutes = 0 + filledRouteQuery2.numberAlternativeRoutes = 0 + filledRouteQuery.waypoints = routeQueryDefaultWaypoints + filledRouteQuery2.waypoints = routeQuery2DefaultWaypoints + + waypoint1.coordinate = QtPositioning.coordinate(70, 70) + waypoint2.bearing = 42 + waypoint2.coordinate = QtPositioning.coordinate(71, 71) + waypoint2.bearing = 43 + param1.distance = 10 } + + function test_route_query_handles_destroyed_qml_objects() { var coordinate = QtPositioning.coordinate(11, 52); routeQuery.addWaypoint(coordinate); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/declarative_geoshape/tst_locationsingleton.qml qtlocation-opensource-src-5.11.1+dfsg/tests/auto/declarative_geoshape/tst_locationsingleton.qml --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/declarative_geoshape/tst_locationsingleton.qml 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/declarative_geoshape/tst_locationsingleton.qml 2018-06-12 18:44:12.000000000 +0000 @@ -228,6 +228,10 @@ ] } + MapPolyline { + id: mapPolylineGeopath + } + TestCase { name: "MapPolyline path" function test_path_operations() { @@ -274,4 +278,40 @@ compare(mapPolyline.path.length, mapPolyline.pathLength()) } } + + TestCase { + name: "GeoPath path" + function test_qgeopath_path_operations() { + var geopath = QtPositioning.path() + + geopath.path = trace2 + compare(geopath.path.length, trace2.length) + + geopath.path = mapPolyline.path + compare(geopath.path.length, mapPolyline.pathLength()) + compare(geopath.boundingGeoRectangle(), mapPolyline.geoShape.boundingGeoRectangle()) + + mapPolylineGeopath.path = mapPolyline.path + compare(mapPolylineGeopath.pathLength(), mapPolyline.pathLength()) + compare(mapPolylineGeopath.geoShape.boundingGeoRectangle(), mapPolyline.geoShape.boundingGeoRectangle()) + + try { + var err = false; + mapPolylineGeopath.geoShape = geopath + } catch (e) { + if (e.message != 'Cannot assign to read-only property "geoShape"') + fail('Expected Cannot assign to read-only property "geoShape", got: ' + e.message); + err = true; + } finally { + verify(err, 'should throw Cannot assign to read-only property "geoShape"'); + } + + geopath.path = trace2 + geopath.path[0].longitude = 11.0 + compare(geopath.path.length, trace2.length) + compare(geopath.coordinateAt(0).latitude, trace2[0].latitude) + expectFail("", "Longitude comparison fails") + compare(geopath.coordinateAt(0).longitude, 11) + } + } } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/declarative_ui/tst_map_flick.qml qtlocation-opensource-src-5.11.1+dfsg/tests/auto/declarative_ui/tst_map_flick.qml --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/declarative_ui/tst_map_flick.qml 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/declarative_ui/tst_map_flick.qml 2018-06-12 18:44:12.000000000 +0000 @@ -170,7 +170,7 @@ map.center.longitude = 11 mousePress(page, 0, 50) for (var i = 0; i < 50; i += 5) { - wait(20) + wait(25) mouseMove(page, 0, (50 + i), 0, Qt.LeftButton); } mouseRelease(page, 0, 100) @@ -207,7 +207,7 @@ map.center.longitude = 11 mousePress(page, 10, 95) for (var i = 45; i > 0; i -= 5) { - wait(20) + wait(25) mouseMove(page, 10, (50 + i), 0, Qt.LeftButton); } mouseRelease(page, 10, 50) @@ -242,7 +242,7 @@ mousePress(page, pos, pos) for (var i = pos; i < 50; i += 5) { pos = i - wait(20) + wait(25) mouseMove(page, pos, pos, 0, Qt.LeftButton); } mouseRelease(page, pos, pos) @@ -263,7 +263,7 @@ map.center.longitude = 50 mousePress(page, 0, 0) for (var i = 0; i < 50; i += 5) { - wait(20) + wait(25) mouseMove(page, i, i, 0, Qt.LeftButton); } mouseRelease(page, 50, 50) @@ -290,7 +290,7 @@ map.center.longitude = 50 mousePress(page, 0, 0) for (var i = 0; i < 50; i += 5) { - wait(20) + wait(25) mouseMove(page, i, i, 0, Qt.LeftButton); } mouseRelease(page, 50, 50) @@ -324,7 +324,7 @@ map.center.longitude = 50 mousePress(page, 0, 0) for (var i = 0; i < 50; i += 5) { - wait(20) + wait(25) mouseMove(page, i, i, 0, Qt.LeftButton); } mouseRelease(page, 50, 50) @@ -348,5 +348,17 @@ map.disableOnPanStartedWithNoGesture = true disable_onPanStarted() } + + /* + Regression test for QTBUG-67580 where touching the map + (as opposing to clicking it with a mouse) would cause a crash. + So this test is merely about surviving a tap. + */ + function test_touch() + { + touchEvent(map).press(0).commit(); + wait(25); + touchEvent(map).release(0).commit(); + } } } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/declarative_ui/tst_map_item_details.qml qtlocation-opensource-src-5.11.1+dfsg/tests/auto/declarative_ui/tst_map_item_details.qml --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/declarative_ui/tst_map_item_details.qml 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/declarative_ui/tst_map_item_details.qml 2018-06-12 18:44:12.000000000 +0000 @@ -157,6 +157,17 @@ } MapPolyline { + id: polylineForSetpath + line.width: 3 + path: [ + { latitude: 20, longitude: 175 }, + { latitude: 20, longitude: -175 }, + { latitude: 10, longitude: -175 }, + { latitude: 10, longitude: 175 } + ] + } + + MapPolyline { id: extMapPolylineDateline line.width : 3 path: [ @@ -395,6 +406,33 @@ verify(extMapPolyline.path.length == 0) } + function test_polyline_setpath() + { + compare (polylineForSetpath.line.width, 3.0) + verify(polylineForSetpath.path.length == 4) + compare(polylineForSetpath.path[0], QtPositioning.coordinate(20, 175)) + compare(polylineForSetpath.path[3], QtPositioning.coordinate(10, 175)) + + + var originalPath = QtPositioning.shapeToPath(polylineForSetpath.geoShape) + + var geoPath = QtPositioning.path([ { latitude: 20, longitude: -15 }, + { latitude: 20, longitude: -5 }, + { latitude: 10, longitude: -5 }, + { latitude: 10, longitude: -15 }, + { latitude: 10, longitude: -105 } ], 50) + + polylineForSetpath.setPath(geoPath) + verify(polylineForSetpath.path.length == 5) + compare(polylineForSetpath.path[0], QtPositioning.coordinate(20, -15)) + compare(polylineForSetpath.path[3], QtPositioning.coordinate(10, -15)) + + polylineForSetpath.setPath(originalPath) + verify(polylineForSetpath.path.length == 4) + compare(polylineForSetpath.path[0], QtPositioning.coordinate(20, 175)) + compare(polylineForSetpath.path[3], QtPositioning.coordinate(10, 175)) + } + /* (0,0) ---------------------------------------------------- (600,0) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/declarative_ui/tst_map_item_fit_viewport.qml qtlocation-opensource-src-5.11.1+dfsg/tests/auto/declarative_ui/tst_map_item_fit_viewport.qml --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/declarative_ui/tst_map_item_fit_viewport.qml 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/declarative_ui/tst_map_item_fit_viewport.qml 2018-06-12 18:44:12.000000000 +0000 @@ -572,13 +572,13 @@ } function calculate_fit_circle_bounds() { - var circleDiagonal = Math.sqrt(2 * fitCircle.radius * fitCircle.radius) + var circleDiagonal = Math.sqrt(2) * fitCircle.radius fitCircleTopLeft = fitCircle.center.atDistanceAndAzimuth(circleDiagonal,-45) fitCircleBottomRight = fitCircle.center.atDistanceAndAzimuth(circleDiagonal,135) } function calculate_bounds(){ - var circleDiagonal = Math.sqrt(2 * preMapCircle.radius * preMapCircle.radius) + var circleDiagonal = Math.sqrt(2) * preMapCircle.radius var itemTopLeft = preMapCircle.center.atDistanceAndAzimuth(circleDiagonal,-45) var itemBottomRight = preMapCircle.center.atDistanceAndAzimuth(circleDiagonal,135) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/declarative_ui/tst_map_itemview.qml qtlocation-opensource-src-5.11.1+dfsg/tests/auto/declarative_ui/tst_map_itemview.qml --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/declarative_ui/tst_map_itemview.qml 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/declarative_ui/tst_map_itemview.qml 2018-06-12 18:44:12.000000000 +0000 @@ -46,6 +46,35 @@ && mapForTestingListModel.mapReady && mapForTestingRouteModel.mapReady + MapItemView { + id: routeItemViewExtra + model: routeModel + delegate: Component { + MapRoute { + route: routeData + } + } + } + + MapItemView { + id: listModelItemViewExtra + model: ListModel { + id: testingListModelExtra + ListElement { lat: 11; lon: 31 } + ListElement { lat: 12; lon: 32 } + ListElement { lat: 13; lon: 33 } + } + delegate: Component { + MapCircle { + radius: 1500000 + center { + latitude: lat + longitude: lon + } + } + } + } + Map { id: map objectName: 'staticallyDeclaredMap' @@ -418,7 +447,8 @@ } testingListModel.remove(0) - compare(mapForTestingListModel.mapItems.length, 2) + // default exit animation kicks in here, of length 300msec + tryCompare(mapForTestingListModel, "mapItemsLength", 2) for (var i = 0; i < 2; ++i) { itemCoord = mapForTestingListModel.mapItems[i].center @@ -431,7 +461,44 @@ compare(mapForTestingListModel.mapItems[2].center, QtPositioning.coordinate(1, 1)) testingListModel.clear() - compare(mapForTestingListModel.mapItems.length, 0) + // default exit animation kicks in here, of length 300msec + tryCompare(mapForTestingListModel, "mapItemsLength", 0) + + // Repopulating the model with initial data + testingListModel.append({ "lat": 11, "lon": 31 }) + testingListModel.append({ "lat": 12, "lon": 32 }) + testingListModel.append({ "lat": 13, "lon": 33 }) + } + + function test_add_extra_listmodel() { + tryCompare(mapForTestingListModel, "mapItemsLength", 3) + mapForTestingListModel.addMapItemView(listModelItemViewExtra) + tryCompare(mapForTestingListModel, "mapItemsLength", 6) + mapForTestingListModel.removeMapItemView(listModelItemViewExtra) + tryCompare(mapForTestingListModel, "mapItemsLength", 3) + mapForTestingListModel.addMapItemView(listModelItemViewExtra) + tryCompare(mapForTestingListModel, "mapItemsLength", 6) + mapForTestingListModel.removeMapItemView(listModelItemView) + tryCompare(mapForTestingListModel, "mapItemsLength", 3) + mapForTestingListModel.removeMapItemView(listModelItemViewExtra) + tryCompare(mapForTestingListModel, "mapItemsLength", 0) + mapForTestingListModel.addMapItemView(listModelItemViewExtra) + tryCompare(mapForTestingListModel, "mapItemsLength", 3) + testingListModelExtra.clear() + tryCompare(mapForTestingListModel, "mapItemsLength", 0) + mapForTestingListModel.removeMapItemView(listModelItemViewExtra) + + mapForTestingListModel.addMapItemView(listModelItemView) + tryCompare(mapForTestingListModel, "mapItemsLength", 3) + + testingListModelExtra.append({ "lat": 11, "lon": 31 }) + testingListModelExtra.append({ "lat": 12, "lon": 32 }) + testingListModelExtra.append({ "lat": 13, "lon": 33 }) + + mapForTestingListModel.addMapItemView(listModelItemViewExtra) + tryCompare(mapForTestingListModel, "mapItemsLength", 6) + mapForTestingListModel.removeMapItemView(listModelItemViewExtra) + tryCompare(mapForTestingListModel, "mapItemsLength", 3) } function test_routemodel() { @@ -446,16 +513,30 @@ routeModel.update(); tryCompare(mapForTestingRouteModel, "mapItemsLength", 3) routeModel.reset(); - compare(mapForTestingRouteModel.mapItems.length, 0) + // default exit animation kicks in here, of length 300msec + tryCompare(mapForTestingRouteModel, "mapItemsLength", 0) routeModel.reset(); // clear empty model routeQuery.numberAlternativeRoutes = 3 routeModel.update(); tryCompare(mapForTestingRouteModel, "mapItemsLength", 3) + + // Test adding the extra mapitemview fed from the same route model + mapForTestingRouteModel.addMapItemView(routeItemViewExtra) + tryCompare(mapForTestingRouteModel, "mapItemsLength", 6) + routeQuery.numberAlternativeRoutes = 4 + routeModel.update(); + tryCompare(mapForTestingRouteModel, "mapItemsLength", 8) + routeQuery.numberAlternativeRoutes = 3 + routeModel.update(); + mapForTestingRouteModel.removeMapItemView(routeItemViewExtra) + tryCompare(mapForTestingRouteModel, "mapItemsLength", 3) + mapForTestingRouteModel.addMapItem(externalCircle2) compare(mapForTestingRouteModel.mapItems.length, 4) compare(mapForTestingRouteModel.mapItems[3], externalCircle2) routeModel.reset(); - compare(mapForTestingRouteModel.mapItems.length, 1) + // default exit animation kicks in here, of length 300msec + tryCompare(mapForTestingRouteModel, "mapItemsLength", 1) mapForTestingRouteModel.clearMapItems() compare(mapForTestingRouteModel.mapItems.length, 0) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/declarative_ui/tst_map_maptype.qml qtlocation-opensource-src-5.11.1+dfsg/tests/auto/declarative_ui/tst_map_maptype.qml --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/declarative_ui/tst_map_maptype.qml 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/declarative_ui/tst_map_maptype.qml 2018-06-12 18:44:12.000000000 +0000 @@ -28,7 +28,7 @@ import QtQuick 2.0 import QtTest 1.0 -import QtLocation 5.6 +import QtLocation 5.10 Item{ id: page @@ -122,6 +122,13 @@ compare(map.minimumFieldOfView, 45) compare(map.maximumFieldOfView, 45) + compare(map.activeMapType.cameraCapabilities.minimumZoomLevel, 0) + compare(map.activeMapType.cameraCapabilities.maximumZoomLevel, 20) + compare(map.activeMapType.cameraCapabilities.minimumTilt, 0) + compare(map.activeMapType.cameraCapabilities.maximumTilt, 60) + compare(map.activeMapType.cameraCapabilities.minimumFieldOfView, 45) + compare(map.activeMapType.cameraCapabilities.maximumFieldOfView, 45) + tryCompare(minimumZoomLevelChangedSpy, "count", 0) tryCompare(maximumZoomLevelChangedSpy, "count", 0) tryCompare(minimumTiltChangedSpy, "count", 0) @@ -139,6 +146,13 @@ compare(map.minimumFieldOfView, 45) compare(map.maximumFieldOfView, 45) + compare(map.activeMapType.cameraCapabilities.minimumZoomLevel, 0) + compare(map.activeMapType.cameraCapabilities.maximumZoomLevel, 20) + compare(map.activeMapType.cameraCapabilities.minimumTilt, 0) + compare(map.activeMapType.cameraCapabilities.maximumTilt, 60) + compare(map.activeMapType.cameraCapabilities.minimumFieldOfView, 45) + compare(map.activeMapType.cameraCapabilities.maximumFieldOfView, 45) + tryCompare(minimumZoomLevelChangedSpy, "count", 0) tryCompare(maximumZoomLevelChangedSpy, "count", 0) tryCompare(minimumTiltChangedSpy, "count", 0) @@ -156,6 +170,13 @@ compare(map.minimumFieldOfView, 1) compare(map.maximumFieldOfView, 179) + compare(map.activeMapType.cameraCapabilities.minimumZoomLevel, 0) + compare(map.activeMapType.cameraCapabilities.maximumZoomLevel, 19) + compare(map.activeMapType.cameraCapabilities.minimumTilt, 0) + compare(map.activeMapType.cameraCapabilities.maximumTilt, 80) + compare(map.activeMapType.cameraCapabilities.minimumFieldOfView, 1) + compare(map.activeMapType.cameraCapabilities.maximumFieldOfView, 179) + tryCompare(minimumZoomLevelChangedSpy, "count", 0) tryCompare(maximumZoomLevelChangedSpy, "count", 1) tryCompare(minimumTiltChangedSpy, "count", 0) @@ -173,13 +194,29 @@ compare(map.minimumFieldOfView, 45) compare(map.maximumFieldOfView, 45) + compare(map.activeMapType.cameraCapabilities.minimumZoomLevel, 0) + compare(map.activeMapType.cameraCapabilities.maximumZoomLevel, 20) + compare(map.activeMapType.cameraCapabilities.minimumTilt, 0) + compare(map.activeMapType.cameraCapabilities.maximumTilt, 60) + compare(map.activeMapType.cameraCapabilities.minimumFieldOfView, 45) + compare(map.activeMapType.cameraCapabilities.maximumFieldOfView, 45) + tryCompare(minimumZoomLevelChangedSpy, "count", 0) tryCompare(maximumZoomLevelChangedSpy, "count", 2) tryCompare(minimumTiltChangedSpy, "count", 0) tryCompare(maximumTiltChangedSpy, "count", 2) tryCompare(minimumFieldOfViewChangedSpy, "count", 2) tryCompare(maximumFieldOfViewChangedSpy, "count", 2) + } + function test_maptype_metadata() + { + map.activeMapType = map.supportedMapTypes[0] + compare(Object.keys(map.activeMapType.metadata).length, 0) + + map.activeMapType = map.supportedMapTypes[3] + compare(Object.keys(map.activeMapType.metadata).length, 1) + compare(map.activeMapType.metadata['foo'], 42) } } } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/declarative_ui/tst_map_mouse.qml qtlocation-opensource-src-5.11.1+dfsg/tests/auto/declarative_ui/tst_map_mouse.qml --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/declarative_ui/tst_map_mouse.qml 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/declarative_ui/tst_map_mouse.qml 2018-06-12 18:44:12.000000000 +0000 @@ -107,13 +107,12 @@ preventStealing: true - // The following signal handlers use arguments[0] instead of mouse due to QTBUG-36560 - onClicked: page.setMouseData(mouseUpper, arguments[0]) - onDoubleClicked: page.setMouseData(mouseUpper, arguments[0]) - onPressed: page.setMouseData(mouseUpper, arguments[0]) - onReleased: page.setMouseData(mouseUpper, arguments[0]) - onPositionChanged: page.setMouseData(mouseUpper, arguments[0]) - onPressAndHold: page.setMouseData(mouseUpper, arguments[0]) + onClicked: page.setMouseData(mouseUpper, mouse) + onDoubleClicked: page.setMouseData(mouseUpper, mouse) + onPressed: page.setMouseData(mouseUpper, mouse) + onReleased: page.setMouseData(mouseUpper, mouse) + onPositionChanged: page.setMouseData(mouseUpper, mouse) + onPressAndHold: page.setMouseData(mouseUpper, mouse) } MouseArea { id: mouseLower @@ -128,13 +127,12 @@ property bool lastIsClick: false property bool lastAccepted: false; - // The following signal handlers use arguments[0] instead of mouse due to QTBUG-36560 - onClicked: page.setMouseData(mouseLower, arguments[0]) - onDoubleClicked: page.setMouseData(mouseLower, arguments[0]) - onPressed: page.setMouseData(mouseLower, arguments[0]) - onReleased: page.setMouseData(mouseLower, arguments[0]) - onPositionChanged: page.setMouseData(mouseLower, arguments[0]) - onPressAndHold: page.setMouseData(mouseLower, arguments[0]) + onClicked: page.setMouseData(mouseLower, mouse) + onDoubleClicked: page.setMouseData(mouseLower, mouse) + onPressed: page.setMouseData(mouseLower, mouse) + onReleased: page.setMouseData(mouseLower, mouse) + onPositionChanged: page.setMouseData(mouseLower, mouse) + onPressAndHold: page.setMouseData(mouseLower, mouse) } MouseArea { id: mouseOverlapper @@ -149,13 +147,12 @@ property bool lastIsClick: false property bool lastAccepted: false; - // The following signal handlers use arguments[0] instead of mouse due to QTBUG-36560 - onClicked: page.setMouseData(mouseOverlapper, arguments[0]) - onDoubleClicked: page.setMouseData(mouseOverlapper, arguments[0]) - onPressed: page.setMouseData(mouseOverlapper, arguments[0]) - onReleased: page.setMouseData(mouseOverlapper, arguments[0]) - onPositionChanged: page.setMouseData(mouseOverlapper, arguments[0]) - onPressAndHold: page.setMouseData(mouseOverlapper, arguments[0]) + onClicked: page.setMouseData(mouseOverlapper, mouse) + onDoubleClicked: page.setMouseData(mouseOverlapper, mouse) + onPressed: page.setMouseData(mouseOverlapper, mouse) + onReleased: page.setMouseData(mouseOverlapper, mouse) + onPositionChanged: page.setMouseData(mouseOverlapper, mouse) + onPressAndHold: page.setMouseData(mouseOverlapper, mouse) } } @@ -522,20 +519,21 @@ compare(mouseUpperReleasedSpy.count, 2) compare(mouseLowerPressedSpy.count, 1) compare(mouseLowerReleasedSpy.count, 1) - - compare(mouseOverlapperPressedSpy.count, 0) + mousePress(map, 55, 75) compare(mouseUpperPressedSpy.count, 2) compare(mouseLowerPressedSpy.count, 1) compare(mouseOverlapperPressedSpy.count, 1) compare(mouseOverlapperReleasedSpy.count, 0) + + mouseMove(map, 55, 25) mouseRelease(map, 55, 25) compare(mouseUpperPressedSpy.count, 2) compare(mouseUpperReleasedSpy.count, 2) compare(mouseLowerPressedSpy.count, 1) compare(mouseLowerReleasedSpy.count, 1) - //this should follow the same logic as Flickable + //this should follow the same logic as Flickable, after the gesture is detected, the map should steal events. compare(mouseOverlapperReleasedSpy.count, 0) } @@ -672,6 +670,16 @@ compare(mouseOverlapperDoubleClickedSpy.count, 4) } + function test_release_does_not_block_clicked() { // QTBUG-66534 + clear_data() + mousePress(map, 55, 75) + compare(mouseOverlapperPressedSpy.count, 1) + mouseRelease(map, 55, 25) + compare(mouseOverlapperReleasedSpy.count, 1) + mouseClick(map, 25, 25) + compare(mouseUpperClickedSpy.count, 1) + } + function test_zzz_basic_press_and_hold() { // _zzz_ to ensure execution last (takes time) clear_data(); wait(1000); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/declarative_ui/tst_map.qml qtlocation-opensource-src-5.11.1+dfsg/tests/auto/declarative_ui/tst_map.qml --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/declarative_ui/tst_map.qml 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/declarative_ui/tst_map.qml 2018-06-12 18:44:12.000000000 +0000 @@ -29,7 +29,7 @@ import QtQuick 2.0 import QtTest 1.0 import QtPositioning 5.5 -import QtLocation 5.9 +import QtLocation 5.10 import QtLocation.Test 5.6 Item { @@ -298,6 +298,8 @@ //initial plugin values compare(map.minimumZoomLevel, 0) compare(map.maximumZoomLevel, 20) + compare(map.activeMapType.cameraCapabilities.minimumZoomLevel, 0) + compare(map.activeMapType.cameraCapabilities.maximumZoomLevel, 20) //Higher min level than curr zoom, should change curr zoom map.minimumZoomLevel = 5 @@ -321,6 +323,8 @@ map.zoomLevel = 18 map.maximumZoomLevel = 16 compare(map.zoomLevel, 16) + compare(map.activeMapType.cameraCapabilities.minimumZoomLevel, 0) + compare(map.activeMapType.cameraCapabilities.maximumZoomLevel, 20) //reseting default map.minimumZoomLevel = 0 @@ -336,6 +340,8 @@ //initial plugin values compare(map.minimumTilt, 0) compare(map.maximumTilt, 60) + compare(map.activeMapType.cameraCapabilities.minimumTilt, 0) + compare(map.activeMapType.cameraCapabilities.maximumTilt, 60) //Higher min level than curr tilt, should change curr tilt map.minimumTilt = 5 @@ -343,6 +349,9 @@ compare(map.tilt, 5) compare(map.minimumTilt, 5) compare(map.maximumTilt, 18) + // Capabilities remain the same + compare(map.activeMapType.cameraCapabilities.minimumTilt, 0) + compare(map.activeMapType.cameraCapabilities.maximumTilt, 60) //Trying to set higher than max, max should be set. map.maximumTilt = 61 @@ -376,6 +385,8 @@ //initial plugin values compare(map.minimumFieldOfView, 45) compare(map.maximumFieldOfView, 45) + compare(map.activeMapType.cameraCapabilities.minimumFieldOfView, 45) + compare(map.activeMapType.cameraCapabilities.maximumFieldOfView, 45) map.minimumFieldOfView = 5 map.maximumFieldOfView = 18 @@ -388,6 +399,8 @@ // camera caps are [1-179], user previously asked for [5-18] compare(map.minimumFieldOfView, 5) compare(map.maximumFieldOfView, 18) + compare(map.activeMapType.cameraCapabilities.minimumFieldOfView, 1) + compare(map.activeMapType.cameraCapabilities.maximumFieldOfView, 179) map.fieldOfView = 4 compare(map.fieldOfView, 5) @@ -426,6 +439,8 @@ compare(map.minimumFieldOfView, 45) compare(map.maximumFieldOfView, 45) compare(map.fieldOfView, 45) + compare(map.activeMapType.cameraCapabilities.minimumFieldOfView, 45) + compare(map.activeMapType.cameraCapabilities.maximumFieldOfView, 45) } function test_zoom() @@ -561,6 +576,59 @@ compare(mapTiltBearing.tilt, 25.0) } + function test_map_setbearing() + { + var zeroCoord = QtPositioning.coordinate(0,0) + mapTiltBearing.bearing = 0.0 + mapTiltBearing.tilt = 0.0 + mapTiltBearing.zoomLevel = 3 + mapTiltBearing.center = zeroCoord + compare(mapTiltBearing.bearing, 0.0) + compare(mapTiltBearing.tilt, 0.0) + compare(mapTiltBearing.zoomLevel, 3) + compare(mapTiltBearing.center, zeroCoord) + + var fulcrum = QtPositioning.coordinate(20,-20) + var fulcrumPos = mapTiltBearing.fromCoordinate(fulcrum) + var bearing = 90.0 + mapTiltBearing.setBearing(bearing, fulcrum) + var fulcrumPosAfter = mapTiltBearing.fromCoordinate(fulcrum) + compare(mapTiltBearing.bearing, bearing) + compare(fulcrumPos, fulcrumPosAfter) + + // resetting + mapTiltBearing.center = coordinate1 + mapTiltBearing.zoomLevel = 4 + mapTiltBearing.bearing = 45.0 + mapTiltBearing.tilt = 25.0 + } + + function test_map_align_coordinate_to_point() + { + var zeroCoord = QtPositioning.coordinate(0,0) + mapTiltBearing.bearing = 0.0 + mapTiltBearing.tilt = 0.0 + mapTiltBearing.zoomLevel = 3 + mapTiltBearing.center = zeroCoord + compare(mapTiltBearing.bearing, 0.0) + compare(mapTiltBearing.tilt, 0.0) + compare(mapTiltBearing.zoomLevel, 3) + compare(mapTiltBearing.center, zeroCoord) + + var coord = QtPositioning.coordinate(20,-20) + var point = Qt.point(400, 400) + mapTiltBearing.alignCoordinateToPoint(coord, point) + var coordAfter = mapTiltBearing.toCoordinate(point) + compare(coord.latitude, coordAfter.latitude) + compare(coord.longitude, coordAfter.longitude) + + // resetting + mapTiltBearing.center = coordinate1 + mapTiltBearing.zoomLevel = 4 + mapTiltBearing.bearing = 45.0 + mapTiltBearing.tilt = 25.0 + } + function test_coordinate_conversion() { wait(1000) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/geotestplugin/place_data.json qtlocation-opensource-src-5.11.1+dfsg/tests/auto/geotestplugin/place_data.json --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/geotestplugin/place_data.json 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/geotestplugin/place_data.json 2018-06-12 18:44:12.000000000 +0000 @@ -130,7 +130,8 @@ "location": { "latitude": 0.1002, "longitude": 0.1002 - } + }, + "alternateImplementation": true }, { "name": "Country Gardens", diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/geotestplugin/qgeoroutingmanagerengine_test.h qtlocation-opensource-src-5.11.1+dfsg/tests/auto/geotestplugin/qgeoroutingmanagerengine_test.h --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/geotestplugin/qgeoroutingmanagerengine_test.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/geotestplugin/qgeoroutingmanagerengine_test.h 2018-06-12 18:44:12.000000000 +0000 @@ -34,6 +34,7 @@ #include #include #include +#include #include #include @@ -42,6 +43,32 @@ QT_USE_NAMESPACE +class QGeoRoutePrivateDefaultAlt : public QGeoRoutePrivateDefault +{ +public: + QGeoRoutePrivateDefaultAlt() : QGeoRoutePrivateDefault() + { + m_travelTime = 123456; // To identify this is actually a QGeoRoutePrivateDefaultAlt + } + QGeoRoutePrivateDefaultAlt(const QGeoRoutePrivateDefaultAlt &other) + : QGeoRoutePrivateDefault(other) {} + ~QGeoRoutePrivateDefaultAlt() {} + + void setTravelTime(int travelTime) override + { + Q_UNUSED(travelTime) + } +}; + +class QGeoRouteAlt : public QGeoRoute +{ +public: + QGeoRouteAlt() + : QGeoRoute(QExplicitlySharedDataPointer(new QGeoRoutePrivateDefaultAlt())) + { + } +}; + class RouteReplyTest :public QGeoRouteReply { Q_OBJECT @@ -62,6 +89,7 @@ int timerId_; QGeoRouteReply::Error errorCode_; QString errorString_; + bool alternateGeoRouteImplementation_; public: QGeoRoutingManagerEngineTest(const QVariantMap ¶meters, @@ -70,7 +98,8 @@ routeReply_(0), finishRequestImmediately_(true), timerId_(0), - errorCode_(QGeoRouteReply::NoError) + errorCode_(QGeoRouteReply::NoError), + alternateGeoRouteImplementation_(false) { Q_UNUSED(error) Q_UNUSED(errorString) @@ -79,6 +108,10 @@ finishRequestImmediately_ = qvariant_cast(parameters.value("gc_finishRequestImmediately")); } + if (parameters.contains("gc_alternateGeoRoute")) { + alternateGeoRouteImplementation_ = qvariant_cast(parameters.value("gc_alternateGeoRoute")); + } + setLocale(QLocale (QLocale::German, QLocale::Germany)); setSupportedFeatureTypes ( QGeoRouteRequest::NoFeature | QGeoRouteRequest::TollFeature | @@ -134,9 +167,26 @@ void setRoutes(const QGeoRouteRequest& request, RouteReplyTest* reply) { QList routes; + int travelTime = 0; + if (request.extraParameters().contains("test-traveltime")) + travelTime = request.extraParameters().value("test-traveltime").toMap().value("requestedTime").toInt(); + for (int i = 0; i < request.numberAlternativeRoutes(); ++i) { QGeoRoute route; + if (alternateGeoRouteImplementation_) + route = QGeoRouteAlt(); route.setPath(request.waypoints()); + route.setTravelTime(travelTime); + + const QList metadata = request.waypointsMetadata(); + for (const auto &meta: metadata) { + if (meta.contains("extra")) { + QVariantMap extra = meta.value("extra").toMap(); + if (extra.contains("user_distance")) + route.setDistance(meta.value("extra").toMap().value("user_distance").toMap().value("distance").toDouble()); + } + } + routes.append(route); } reply->callSetRoutes(routes); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/geotestplugin/qgeotiledmappingmanagerengine_test.h qtlocation-opensource-src-5.11.1+dfsg/tests/auto/geotestplugin/qgeotiledmappingmanagerengine_test.h --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/geotestplugin/qgeotiledmappingmanagerengine_test.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/geotestplugin/qgeotiledmappingmanagerengine_test.h 2018-06-12 18:44:12.000000000 +0000 @@ -64,14 +64,27 @@ const QByteArray pluginName = "qmlgeo.test.plugin"; QList mapTypes; - mapTypes << QGeoMapType(QGeoMapType::StreetMap, tr("StreetMap"), tr("StreetMap"), false, false, 1, pluginName); - mapTypes << QGeoMapType(QGeoMapType::SatelliteMapDay, tr("SatelliteMapDay"), tr("SatelliteMapDay"), false, false, 2, pluginName); - mapTypes << QGeoMapType(QGeoMapType::CycleMap, tr("CycleMap"), tr("CycleMap"), false, false, 3, pluginName); - mapTypes << QGeoMapType(QGeoMapType::CustomMap, tr("AlternateCameraCapabilities"), tr("AlternateCameraCapabilities"), false, false, 4, pluginName); + + mapTypes << QGeoMapType(QGeoMapType::StreetMap, tr("StreetMap"), tr("StreetMap"), false, false, 1, pluginName, capabilities); + mapTypes << QGeoMapType(QGeoMapType::SatelliteMapDay, tr("SatelliteMapDay"), tr("SatelliteMapDay"), false, false, 2, pluginName, capabilities); + mapTypes << QGeoMapType(QGeoMapType::CycleMap, tr("CycleMap"), tr("CycleMap"), false, false, 3, pluginName, capabilities); + + QGeoCameraCapabilities capabilities4; + capabilities4.setMinimumZoomLevel(0.0); + capabilities4.setMaximumZoomLevel(19.0); + capabilities4.setSupportsBearing(true); + capabilities4.setSupportsTilting(true); + capabilities4.setMinimumTilt(0); + capabilities4.setMaximumTilt(80); + capabilities4.setMinimumFieldOfView(1); + capabilities4.setMaximumFieldOfView(179); + QVariantMap meta; + meta["foo"] = 42; + mapTypes << QGeoMapType(QGeoMapType::CustomMap, tr("AlternateCameraCapabilities"), tr("AlternateCameraCapabilities"), false, false, 4, pluginName, capabilities4, meta); if (parameters.contains(QStringLiteral("extraMapTypeName"))) { QString extraMapTypeName = parameters.value(QStringLiteral("extraMapTypeName")).toString(); - mapTypes << QGeoMapType(QGeoMapType::CustomMap, extraMapTypeName, extraMapTypeName, false, false, 5, pluginName); + mapTypes << QGeoMapType(QGeoMapType::CustomMap, extraMapTypeName, extraMapTypeName, false, false, 5, pluginName, capabilities); } setSupportedMapTypes(mapTypes); @@ -97,28 +110,6 @@ { return new QGeoTiledMapTest(this); } - - QGeoCameraCapabilities cameraCapabilities(int mapId) const Q_DECL_OVERRIDE - { - switch (mapId) { - case 4: - { - QGeoCameraCapabilities capabilities; - capabilities.setMinimumZoomLevel(0.0); - capabilities.setMaximumZoomLevel(19.0); - capabilities.setSupportsBearing(true); - capabilities.setSupportsTilting(true); - capabilities.setMinimumTilt(0); - capabilities.setMaximumTilt(80); - capabilities.setMinimumFieldOfView(1); - capabilities.setMaximumFieldOfView(179); - return capabilities; - } - default: - return QGeoMappingManagerEngine::cameraCapabilities(mapId); - } - } - }; #endif diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/geotestplugin/qplacemanagerengine_test.h qtlocation-opensource-src-5.11.1+dfsg/tests/auto/geotestplugin/qplacemanagerengine_test.h --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/geotestplugin/qplacemanagerengine_test.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/geotestplugin/qplacemanagerengine_test.h 2018-06-12 18:44:12.000000000 +0000 @@ -51,6 +51,7 @@ #include #include #include +#include #include QT_BEGIN_NAMESPACE @@ -64,6 +65,37 @@ QT_USE_NAMESPACE +class QPlacePrivateDefaultAlt : public QPlacePrivateDefault +{ +public: + QPlacePrivateDefaultAlt() {} + QPlacePrivateDefaultAlt(const QPlacePrivateDefaultAlt &other) + : QPlacePrivateDefault(other) + { + } + ~QPlacePrivateDefaultAlt() {} + + QPlaceAttribute extendedAttribute(const QString &attributeType) const override + { + if (attributeType == QStringLiteral("x_provider")) { + QPlaceAttribute a; + a.setLabel(QStringLiteral("x_provider")); + a.setText(QStringLiteral("QPlacePrivateDefaultAlt")); + return a; + } else { + return QPlacePrivateDefault::extendedAttribute(attributeType); + } + } +}; + +class QPlaceAlt : public QPlace +{ +public: + QPlaceAlt() : QPlace(QSharedDataPointer(new QPlacePrivateDefaultAlt())) + { + } +}; + class PlaceReply : public QPlaceReply { Q_OBJECT @@ -233,6 +265,13 @@ QJsonObject p = places.at(i).toObject(); QPlace place; + if (p.value(QStringLiteral("alternateImplementation")).toBool(false)) { + place = QPlaceAlt(); + QPlaceAttribute att; + att.setLabel(QStringLiteral("x_provider")); + att.setText(QStringLiteral("42")); // Doesn't matter, wont be used. + place.setExtendedAttribute(QStringLiteral("x_provider"), att); + } place.setName(p.value(QStringLiteral("name")).toString()); place.setPlaceId(p.value(QStringLiteral("id")).toString()); @@ -335,7 +374,7 @@ } } - QPlaceDetailsReply *getPlaceDetails(const QString &placeId) Q_DECL_OVERRIDE + QPlaceDetailsReply *getPlaceDetails(const QString &placeId) override { DetailsReply *reply = new DetailsReply(this); @@ -351,7 +390,7 @@ return reply; } - QPlaceContentReply *getPlaceContent(const QPlaceContentRequest &query) Q_DECL_OVERRIDE + QPlaceContentReply *getPlaceContent(const QPlaceContentRequest &query) override { ContentReply *reply = new ContentReply(this); if (query.placeId().isEmpty() || !m_places.contains(query.placeId())) { @@ -419,7 +458,7 @@ return reply; } - QPlaceSearchReply *search(const QPlaceSearchRequest &query) Q_DECL_OVERRIDE + QPlaceSearchReply *search(const QPlaceSearchRequest &query) override { QList results; @@ -464,7 +503,7 @@ return reply; } - QPlaceSearchSuggestionReply *searchSuggestions(const QPlaceSearchRequest &query) Q_DECL_OVERRIDE + QPlaceSearchSuggestionReply *searchSuggestions(const QPlaceSearchRequest &query) override { QStringList suggestions; if (query.searchTerm() == QLatin1String("test")) { @@ -480,7 +519,7 @@ return reply; } - QPlaceIdReply *savePlace(const QPlace &place) Q_DECL_OVERRIDE + QPlaceIdReply *savePlace(const QPlace &place) override { IdReply *reply = new IdReply(QPlaceIdReply::SavePlace, this); @@ -503,7 +542,7 @@ return reply; } - QPlaceIdReply *removePlace(const QString &placeId) Q_DECL_OVERRIDE + QPlaceIdReply *removePlace(const QString &placeId) override { IdReply *reply = new IdReply(QPlaceIdReply::RemovePlace, this); reply->setId(placeId); @@ -520,7 +559,7 @@ return reply; } - QPlaceIdReply *saveCategory(const QPlaceCategory &category, const QString &parentId) Q_DECL_OVERRIDE + QPlaceIdReply *saveCategory(const QPlaceCategory &category, const QString &parentId) override { IdReply *reply = new IdReply(QPlaceIdReply::SaveCategory, this); @@ -561,7 +600,7 @@ return reply; } - QPlaceIdReply *removeCategory(const QString &categoryId) Q_DECL_OVERRIDE + QPlaceIdReply *removeCategory(const QString &categoryId) override { IdReply *reply = new IdReply(QPlaceIdReply::RemoveCategory, this); reply->setId(categoryId); @@ -584,7 +623,7 @@ return reply; } - QPlaceReply *initializeCategories() Q_DECL_OVERRIDE + QPlaceReply *initializeCategories() override { QPlaceReply *reply = new PlaceReply(this); @@ -593,7 +632,7 @@ return reply; } - QString parentCategoryId(const QString &categoryId) const Q_DECL_OVERRIDE + QString parentCategoryId(const QString &categoryId) const override { QHashIterator i(m_childCategories); while (i.hasNext()) { @@ -605,17 +644,17 @@ return QString(); } - virtual QStringList childCategoryIds(const QString &categoryId) const Q_DECL_OVERRIDE + virtual QStringList childCategoryIds(const QString &categoryId) const override { return m_childCategories.value(categoryId); } - virtual QPlaceCategory category(const QString &categoryId) const Q_DECL_OVERRIDE + virtual QPlaceCategory category(const QString &categoryId) const override { return m_categories.value(categoryId); } - QList childCategories(const QString &parentId) const Q_DECL_OVERRIDE + QList childCategories(const QString &parentId) const override { QList categories; @@ -625,17 +664,17 @@ return categories; } - QList locales() const Q_DECL_OVERRIDE + QList locales() const override { return m_locales; } - void setLocales(const QList &locales) Q_DECL_OVERRIDE + void setLocales(const QList &locales) override { m_locales = locales; } - QUrl constructIconUrl(const QPlaceIcon &icon, const QSize &size) const Q_DECL_OVERRIDE + QUrl constructIconUrl(const QPlaceIcon &icon, const QSize &size) const override { QList > candidates; @@ -672,7 +711,7 @@ } } - QPlace compatiblePlace(const QPlace &original) const Q_DECL_OVERRIDE + QPlace compatiblePlace(const QPlace &original) const override { QPlace place; place.setName(original.name()); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/maptype/tst_maptype.cpp qtlocation-opensource-src-5.11.1+dfsg/tests/auto/maptype/tst_maptype.cpp --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/maptype/tst_maptype.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/maptype/tst_maptype.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -28,6 +28,7 @@ #include #include +#include #include @@ -52,9 +53,18 @@ void tst_MapType::constructorTest() { + QGeoCameraCapabilities capabilities; + capabilities.setMinimumZoomLevel(0.0); + capabilities.setMaximumZoomLevel(20.0); + capabilities.setSupportsBearing(true); + capabilities.setSupportsTilting(true); + capabilities.setMinimumTilt(0); + capabilities.setMaximumTilt(60); + capabilities.setMinimumFieldOfView(20); + capabilities.setMaximumFieldOfView(90); const QByteArray pluginName = "tst_MapType"; QGeoMapType *testObjPtr = new QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street map"), - QStringLiteral("map description"), true, true, 1, pluginName); + QStringLiteral("map description"), true, true, 1, pluginName, capabilities); QVERIFY(testObjPtr); QCOMPARE(testObjPtr->style(), QGeoMapType::StreetMap); QCOMPARE(testObjPtr->name(), QStringLiteral("street map")); @@ -63,6 +73,8 @@ QVERIFY(testObjPtr->night()); QCOMPARE(testObjPtr->mapId(), 1); QCOMPARE(testObjPtr->pluginName(), pluginName); + QCOMPARE(testObjPtr->cameraCapabilities(), capabilities); + QCOMPARE(testObjPtr->metadata(), QVariantMap()); delete testObjPtr; testObjPtr = new QGeoMapType(); @@ -73,6 +85,7 @@ QVERIFY2(!testObjPtr->night(), "Wrong default value"); QCOMPARE(testObjPtr->mapId(), 0); QCOMPARE(testObjPtr->pluginName(), QByteArrayLiteral("")); + QCOMPARE(testObjPtr->cameraCapabilities(), QGeoCameraCapabilities()); delete testObjPtr; } @@ -83,57 +96,82 @@ QTest::addColumn("expected"); const QByteArray pluginName = "tst_MapType"; + QGeoCameraCapabilities capabilities; + capabilities.setMinimumZoomLevel(0.0); + capabilities.setMaximumZoomLevel(20.0); + capabilities.setSupportsBearing(true); + capabilities.setSupportsTilting(true); + capabilities.setMinimumTilt(0); + capabilities.setMaximumTilt(60); + capabilities.setMinimumFieldOfView(20); + capabilities.setMaximumFieldOfView(90); + QGeoCameraCapabilities capabilities2 = capabilities; + capabilities2.setMaximumFieldOfView(80); QTest::newRow("null") << QGeoMapType() << QGeoMapType() << true; QTest::newRow("equal") << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"), - QStringLiteral("street desc"), false, false, 42, pluginName) + QStringLiteral("street desc"), false, false, 42, pluginName, capabilities) << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"), - QStringLiteral("street desc"), false, false, 42, pluginName) + QStringLiteral("street desc"), false, false, 42, pluginName, capabilities) << true; QTest::newRow("style") << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"), - QStringLiteral("street desc"), false, false, 42, pluginName) + QStringLiteral("street desc"), false, false, 42, pluginName, capabilities) << QGeoMapType(QGeoMapType::TerrainMap, QStringLiteral("street name"), - QStringLiteral("street desc"), false, false, 42, pluginName) + QStringLiteral("street desc"), false, false, 42, pluginName, capabilities) << false; QTest::newRow("name") << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"), - QStringLiteral("street desc"), false, false, 42, pluginName) + QStringLiteral("street desc"), false, false, 42, pluginName, capabilities) << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("different name"), - QStringLiteral("street desc"), false, false, 42, pluginName) + QStringLiteral("street desc"), false, false, 42, pluginName, capabilities) << false; QTest::newRow("description") << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"), - QStringLiteral("street desc"), false, false, 42, pluginName) + QStringLiteral("street desc"), false, false, 42, pluginName, capabilities) << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"), - QStringLiteral("different desc"), false, false, 42, pluginName) + QStringLiteral("different desc"), false, false, 42, pluginName, capabilities) << false; QTest::newRow("mobile") << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"), - QStringLiteral("street desc"), false, false, 42, pluginName) + QStringLiteral("street desc"), false, false, 42, pluginName, capabilities) << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"), - QStringLiteral("street desc"), true, false, 42, pluginName) + QStringLiteral("street desc"), true, false, 42, pluginName, capabilities) << false; QTest::newRow("night") << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"), - QStringLiteral("street desc"), false, false, 42, pluginName) + QStringLiteral("street desc"), false, false, 42, pluginName, capabilities) << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"), - QStringLiteral("street desc"), false, true, 42, pluginName) + QStringLiteral("street desc"), false, true, 42, pluginName, capabilities) << false; QTest::newRow("id") << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"), - QStringLiteral("street desc"), false, false, 42, pluginName) + QStringLiteral("street desc"), false, false, 42, pluginName, capabilities) << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"), - QStringLiteral("street desc"), false, false, 99, pluginName) + QStringLiteral("street desc"), false, false, 99, pluginName, capabilities) << false; QTest::newRow("plugin_name") << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"), - QStringLiteral("street desc"), false, false, 42, pluginName) + QStringLiteral("street desc"), false, false, 42, pluginName, capabilities) << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"), - QStringLiteral("street desc"), false, false, 42, QByteArrayLiteral("abc")) + QStringLiteral("street desc"), false, false, 42, QByteArrayLiteral("abc"), capabilities) + << false; + + QTest::newRow("camera_capabilities") << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"), + QStringLiteral("street desc"), false, false, 42, pluginName, capabilities) + << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"), + QStringLiteral("street desc"), false, false, 42, pluginName, capabilities2) + << false; + + QVariantMap metadata; + metadata["foo"] = 42; + QTest::newRow("metadata") << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"), + QStringLiteral("street desc"), false, false, 42, pluginName, capabilities) + << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("street name"), + QStringLiteral("street desc"), false, false, 42, pluginName, capabilities, metadata) << false; } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/nokia_services/routing/tst_routing.cpp qtlocation-opensource-src-5.11.1+dfsg/tests/auto/nokia_services/routing/tst_routing.cpp --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/nokia_services/routing/tst_routing.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/nokia_services/routing/tst_routing.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -234,7 +234,8 @@ m_routingManager->calculateRoute(m_dummyRequest); m_replyUnowned->complete(); m_replyUnowned = 0; - QTRY_VERIFY_WITH_TIMEOUT(m_calculationDone, 100); + // Timeout of 200ms is required for slow targets (e.g. Qemu) + QTRY_VERIFY_WITH_TIMEOUT(m_calculationDone, 200); } void tst_nokia_routing::onReply(QGeoRouteReply* reply) diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/positionplugintest/tst_positionplugin.cpp qtlocation-opensource-src-5.11.1+dfsg/tests/auto/positionplugintest/tst_positionplugin.cpp --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/positionplugintest/tst_positionplugin.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/positionplugintest/tst_positionplugin.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -37,8 +37,6 @@ QT_USE_NAMESPACE -Q_DECLARE_METATYPE(QGeoPositionInfo) - class tst_PositionPlugin : public QObject { Q_OBJECT @@ -65,7 +63,6 @@ + QStringLiteral("/../../../plugins")); #endif #endif - qRegisterMetaType(); } void tst_PositionPlugin::availableSources() diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeoareamonitor/tst_qgeoareamonitor.cpp qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeoareamonitor/tst_qgeoareamonitor.cpp --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeoareamonitor/tst_qgeoareamonitor.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeoareamonitor/tst_qgeoareamonitor.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -52,7 +52,6 @@ QT_USE_NAMESPACE #define UPDATE_INTERVAL 200 -Q_DECLARE_METATYPE(QGeoPositionInfo) Q_DECLARE_METATYPE(QGeoAreaMonitorInfo) QString tst_qgeoareamonitorinfo_debug; @@ -89,7 +88,6 @@ + QStringLiteral("/../../../plugins")); #endif #endif - qRegisterMetaType(); qRegisterMetaType(); } @@ -720,14 +718,14 @@ QGeoAreaMonitorInfo info; QTest::newRow("uninitialized") << info << 45 << QString("QGeoAreaMonitorInfo(\"\", QGeoShape(Unknown), " - "persistent: false, expiry: QDateTime( Qt::TimeSpec(LocalTime))) 45"); + "persistent: false, expiry: QDateTime(Invalid)) 45"); info.setArea(QGeoRectangle()); info.setPersistent(true); info.setName("RectangleAreaMonitor"); QTest::newRow("Rectangle Test") << info << 45 << QString("QGeoAreaMonitorInfo(\"RectangleAreaMonitor\", QGeoShape(Rectangle), " - "persistent: true, expiry: QDateTime( Qt::TimeSpec(LocalTime))) 45"); + "persistent: true, expiry: QDateTime(Invalid)) 45"); info = QGeoAreaMonitorInfo(); info.setArea(QGeoCircle()); @@ -738,7 +736,7 @@ info.setNotificationParameters(map); QTest::newRow("Circle Test") << info << 45 << QString("QGeoAreaMonitorInfo(\"CircleAreaMonitor\", QGeoShape(Circle), " - "persistent: false, expiry: QDateTime( Qt::TimeSpec(LocalTime))) 45"); + "persistent: false, expiry: QDateTime(Invalid)) 45"); // we ignore any further QDateTime related changes to avoid depending on QDateTime related // failures in case its QDebug string changes diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeocameratiles/tst_qgeocameratiles.cpp qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeocameratiles/tst_qgeocameratiles.cpp --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeocameratiles/tst_qgeocameratiles.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeocameratiles/tst_qgeocameratiles.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -150,7 +150,7 @@ ct.setTileSize(16); ct.setCameraData(camera); ct.setScreenSize(QSize(32, 32)); - ct.setMapType(QGeoMapType(QGeoMapType::StreetMap, "street map", "street map", false, false, 1, QByteArrayLiteral(""))); + ct.setMapType(QGeoMapType(QGeoMapType::StreetMap, "street map", "street map", false, false, 1, QByteArrayLiteral(""), QGeoCameraCapabilities())); QSet tiles1 = ct.createTiles(); @@ -202,7 +202,7 @@ QSet tiles1 = ct.createTiles(); - QGeoMapType mapType1 = QGeoMapType(QGeoMapType::StreetMap, "street map", "street map", false, false, 1, QByteArrayLiteral("")); + QGeoMapType mapType1 = QGeoMapType(QGeoMapType::StreetMap, "street map", "street map", false, false, 1, QByteArrayLiteral(""), QGeoCameraCapabilities()); ct.setMapType(mapType1); QSet tiles2 = ct.createTiles(); @@ -220,7 +220,7 @@ QCOMPARE(tiles2, tiles2_check); - QGeoMapType mapType2 = QGeoMapType(QGeoMapType::StreetMap, "satellite map", "satellite map", false, false, 2, QByteArrayLiteral("")); + QGeoMapType mapType2 = QGeoMapType(QGeoMapType::StreetMap, "satellite map", "satellite map", false, false, 2, QByteArrayLiteral(""), QGeoCameraCapabilities()); ct.setMapType(mapType2); QSet tiles3 = ct.createTiles(); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeomaneuver/qgeomaneuver.pro qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeomaneuver/qgeomaneuver.pro --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeomaneuver/qgeomaneuver.pro 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeomaneuver/qgeomaneuver.pro 2018-06-12 18:44:12.000000000 +0000 @@ -8,4 +8,4 @@ SOURCES += tst_qgeomaneuver.cpp \ ../utils/qlocationtestutils.cpp -QT += location testlib +QT += location-private testlib diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeomaneuver/tst_qgeomaneuver.cpp qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeomaneuver/tst_qgeomaneuver.cpp --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeomaneuver/tst_qgeomaneuver.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeomaneuver/tst_qgeomaneuver.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -27,7 +27,30 @@ ****************************************************************************/ #include "tst_qgeomaneuver.h" +#include +class QGeoManeuverPrivateDefaultAlt : public QGeoManeuverPrivateDefault +{ +public: + QGeoManeuverPrivateDefaultAlt() {} + QGeoManeuverPrivateDefaultAlt(const QGeoManeuverPrivateDefaultAlt &other) + : QGeoManeuverPrivateDefault(other) {} + ~QGeoManeuverPrivateDefaultAlt() {} + + QString text() const override + { + return QStringLiteral("QGeoManeuverPrivateDefaultAlt"); // To identify this is actually a QGeoManeuverPrivateDefaultAlt + } +}; + +class QGeoManeuverAlt : public QGeoManeuver +{ +public: + QGeoManeuverAlt() + : QGeoManeuver(QSharedDataPointer(new QGeoManeuverPrivateDefaultAlt())) + { + } +}; tst_QGeoManeuver::tst_QGeoManeuver() { @@ -241,9 +264,7 @@ qgeomaneuvercopy->setTimeToNextInstruction(70); qgeomaneuvercopy->setDistanceToNextInstruction(56065.45); -// Not passing QVERIFY(!(qgeomaneuver->operator ==(*qgeomaneuvercopy))); -// Not passing QVERIFY(qgeomaneuver->operator !=(*qgeomaneuvercopy)); *qgeomaneuvercopy = qgeomaneuvercopy->operator =(*qgeomaneuver); @@ -253,5 +274,28 @@ delete qgeomaneuvercopy; } +void tst_QGeoManeuver::alternateImplementation() +{ + QGeoManeuver qgeomaneuvercopy = *qgeomaneuver; + + QVERIFY(qgeomaneuvercopy == (*qgeomaneuver)); + + qgeomaneuvercopy.setDirection(QGeoManeuver::DirectionForward); + qgeomaneuvercopy.setInstructionText("Turn left in 80m"); + qgeomaneuvercopy.setTimeToNextInstruction(70); + qgeomaneuvercopy.setDistanceToNextInstruction(56065.45); + + QVERIFY(qgeomaneuvercopy != (*qgeomaneuver)); + + QGeoManeuverAlt mAlt; + QGeoManeuver m = mAlt; + + QCOMPARE(m.instructionText(), "QGeoManeuverPrivateDefaultAlt"); + m = qgeomaneuvercopy; + QCOMPARE(m.instructionText(), "Turn left in 80m"); + m = mAlt; + QCOMPARE(m.instructionText(), "QGeoManeuverPrivateDefaultAlt"); +} + QTEST_APPLESS_MAIN(tst_QGeoManeuver); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeomaneuver/tst_qgeomaneuver.h qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeomaneuver/tst_qgeomaneuver.h --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeomaneuver/tst_qgeomaneuver.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeomaneuver/tst_qgeomaneuver.h 2018-06-12 18:44:12.000000000 +0000 @@ -69,6 +69,7 @@ void waypoint_data(); void isValid(); void operators(); + void alternateImplementation(); //End Unit Test for QGeoRouteManeuver private: diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeopath/tst_qgeopath.cpp qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeopath/tst_qgeopath.cpp --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeopath/tst_qgeopath.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeopath/tst_qgeopath.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -47,6 +47,7 @@ void path(); void width(); + void size(); void translate_data(); void translate(); @@ -188,6 +189,32 @@ QCOMPARE(p.width(), qreal(10.0)); } +void tst_QGeoPath::size() +{ + QList coords; + + QGeoPath p1(coords, 3); + QCOMPARE(p1.size(), coords.size()); + + coords.append(QGeoCoordinate(1,1)); + QGeoPath p2(coords, 3); + QCOMPARE(p2.size(), coords.size()); + + coords.append(QGeoCoordinate(2,2)); + QGeoPath p3(coords, 3); + QCOMPARE(p3.size(), coords.size()); + + coords.append(QGeoCoordinate(3,0)); + QGeoPath p4(coords, 3); + QCOMPARE(p4.size(), coords.size()); + + p4.removeCoordinate(2); + QCOMPARE(p4.size(), coords.size() - 1); + + p4.removeCoordinate(coords.first()); + QCOMPARE(p4.size(), coords.size() - 2); +} + void tst_QGeoPath::translate_data() { QTest::addColumn("c1"); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeopolygon/qgeopolygon.pro qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeopolygon/qgeopolygon.pro --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeopolygon/qgeopolygon.pro 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeopolygon/qgeopolygon.pro 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,8 @@ +TEMPLATE = app +CONFIG += testcase +TARGET = tst_qgeopolygon + +SOURCES += \ + tst_qgeopolygon.cpp + +QT += positioning testlib diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeopolygon/tst_qgeopolygon.cpp qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeopolygon/tst_qgeopolygon.cpp --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeopolygon/tst_qgeopolygon.cpp 1970-01-01 00:00:00.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeopolygon/tst_qgeopolygon.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -0,0 +1,402 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include +#include + +QT_USE_NAMESPACE + +class tst_QGeoPolygon : public QObject +{ + Q_OBJECT + +private slots: + void defaultConstructor(); + void listConstructor(); + void assignment(); + + void comparison(); + void type(); + + void path(); + void size(); + + void translate_data(); + void translate(); + + void valid_data(); + void valid(); + + void contains_data(); + void contains(); + + void boundingGeoRectangle_data(); + void boundingGeoRectangle(); + + void extendShape(); + void extendShape_data(); +}; + +void tst_QGeoPolygon::defaultConstructor() +{ + QGeoPolygon p; + QVERIFY(!p.path().size()); + QVERIFY(!p.size()); + QVERIFY(!p.isValid()); + QVERIFY(p.isEmpty()); +} + +void tst_QGeoPolygon::listConstructor() +{ + QList coords; + coords.append(QGeoCoordinate(1,1)); + coords.append(QGeoCoordinate(2,2)); + QGeoPolygon p2(coords); + QCOMPARE(p2.path().size(), 2); + QCOMPARE(p2.size(), 2); + QVERIFY(!p2.isValid()); // a polygon can't have only 2 coords + QVERIFY(!p2.isEmpty()); + + coords.append(QGeoCoordinate(3,0)); + + QGeoPolygon p(coords); + QCOMPARE(p.path().size(), 3); + QCOMPARE(p.size(), 3); + QVERIFY(p.isValid()); + QVERIFY(!p.isEmpty()); + + + for (const QGeoCoordinate &c : coords) { + QCOMPARE(p.path().contains(c), true); + QCOMPARE(p.containsCoordinate(c), true); + } +} + +void tst_QGeoPolygon::assignment() +{ + QGeoPolygon p1; + QList coords; + coords.append(QGeoCoordinate(1,1)); + coords.append(QGeoCoordinate(2,2)); + coords.append(QGeoCoordinate(3,0)); + QGeoPolygon p2(coords); + + QVERIFY(p1 != p2); + + p1 = p2; + QCOMPARE(p1.path(), coords); + QCOMPARE(p1, p2); + + // Assign c1 to an area + QGeoShape area = p1; + QCOMPARE(area.type(), p1.type()); + QVERIFY(area == p1); + + // Assign the area back to a polygon + QGeoPolygon p3 = area; + QCOMPARE(p3.path(), coords); + QVERIFY(p3 == p1); + + // Check that the copy is not modified when modifying the original. + p1.addCoordinate(QGeoCoordinate(4,0)); + QVERIFY(p3 != p1); +} + +void tst_QGeoPolygon::comparison() +{ + QList coords; + coords.append(QGeoCoordinate(1,1)); + coords.append(QGeoCoordinate(2,2)); + coords.append(QGeoCoordinate(3,0)); + QList coords2; + coords2.append(QGeoCoordinate(3,1)); + coords2.append(QGeoCoordinate(4,2)); + coords2.append(QGeoCoordinate(3,0)); + QGeoPolygon c1(coords); + QGeoPolygon c2(coords); + QGeoPolygon c3(coords2); + + QVERIFY(c1 == c2); + QVERIFY(!(c1 != c2)); + + QVERIFY(!(c1 == c3)); + QVERIFY(c1 != c3); + + QVERIFY(!(c2 == c3)); + QVERIFY(c2 != c3); + + QGeoRectangle b1(QGeoCoordinate(20,20),QGeoCoordinate(10,30)); + QVERIFY(!(c1 == b1)); + QVERIFY(c1 != b1); + + QGeoShape *c2Ptr = &c2; + QVERIFY(c1 == *c2Ptr); + QVERIFY(!(c1 != *c2Ptr)); + + QGeoShape *c3Ptr = &c3; + QVERIFY(!(c1 == *c3Ptr)); + QVERIFY(c1 != *c3Ptr); +} + +void tst_QGeoPolygon::type() +{ + QGeoPolygon c; + QCOMPARE(c.type(), QGeoShape::PolygonType); +} + +void tst_QGeoPolygon::path() +{ + QList coords; + coords.append(QGeoCoordinate(1,1)); + coords.append(QGeoCoordinate(2,2)); + coords.append(QGeoCoordinate(3,0)); + + QGeoPolygon p; + p.setPath(coords); + QCOMPARE(p.path().size(), 3); + QCOMPARE(p.size(), 3); + + for (const QGeoCoordinate &c : coords) { + QCOMPARE(p.path().contains(c), true); + QCOMPARE(p.containsCoordinate(c), true); + } +} + +void tst_QGeoPolygon::size() +{ + QList coords; + + QGeoPolygon p1(coords); + QCOMPARE(p1.size(), coords.size()); + + coords.append(QGeoCoordinate(1,1)); + QGeoPolygon p2(coords); + QCOMPARE(p2.size(), coords.size()); + + coords.append(QGeoCoordinate(2,2)); + QGeoPolygon p3(coords); + QCOMPARE(p3.size(), coords.size()); + + coords.append(QGeoCoordinate(3,0)); + QGeoPolygon p4(coords); + QCOMPARE(p4.size(), coords.size()); + + p4.removeCoordinate(2); + QCOMPARE(p4.size(), coords.size() - 1); + + p4.removeCoordinate(coords.first()); + QCOMPARE(p4.size(), coords.size() - 2); +} + +void tst_QGeoPolygon::translate_data() +{ + QTest::addColumn("c1"); + QTest::addColumn("c2"); + QTest::addColumn("c3"); + QTest::addColumn("lat"); + QTest::addColumn("lon"); + + QTest::newRow("Simple") << QGeoCoordinate(1,1) << QGeoCoordinate(2,2) << + QGeoCoordinate(3,0) << 5.0 << 4.0; + QTest::newRow("Backward") << QGeoCoordinate(1,1) << QGeoCoordinate(2,2) << + QGeoCoordinate(3,0) << -5.0 << -4.0; +} + +void tst_QGeoPolygon::translate() +{ + QFETCH(QGeoCoordinate, c1); + QFETCH(QGeoCoordinate, c2); + QFETCH(QGeoCoordinate, c3); + QFETCH(double, lat); + QFETCH(double, lon); + + QList coords; + coords.append(c1); + coords.append(c2); + coords.append(c3); + QGeoPolygon p(coords); + + p.translate(lat, lon); + + for (int i = 0; i < p.path().size(); i++) { + QCOMPARE(coords[i].latitude(), p.path()[i].latitude() - lat ); + QCOMPARE(coords[i].longitude(), p.path()[i].longitude() - lon ); + } +} + +void tst_QGeoPolygon::valid_data() +{ + QTest::addColumn("c1"); + QTest::addColumn("c2"); + QTest::addColumn("c3"); + QTest::addColumn("valid"); + + QTest::newRow("empty coords") << QGeoCoordinate() << QGeoCoordinate() << QGeoCoordinate() << false; + QTest::newRow("invalid coord") << QGeoCoordinate(50, 50) << QGeoCoordinate(60, 60) << QGeoCoordinate(700, 700) << false; + QTest::newRow("good") << QGeoCoordinate(10, 10) << QGeoCoordinate(11, 11) << QGeoCoordinate(10, 12) << true; +} + +void tst_QGeoPolygon::valid() +{ + QFETCH(QGeoCoordinate, c1); + QFETCH(QGeoCoordinate, c2); + QFETCH(QGeoCoordinate, c3); + QFETCH(bool, valid); + + QList coords; + coords.append(c1); + coords.append(c2); + coords.append(c3); + QGeoPolygon p(coords); + + QCOMPARE(p.isValid(), valid); + + QGeoShape area = p; + QCOMPARE(area.isValid(), valid); +} + +void tst_QGeoPolygon::contains_data() +{ + QTest::addColumn("c1"); + QTest::addColumn("c2"); + QTest::addColumn("c3"); + QTest::addColumn("probe"); + QTest::addColumn("result"); + + QList c; + c.append(QGeoCoordinate(1,1)); + c.append(QGeoCoordinate(2,2)); + c.append(QGeoCoordinate(3,0)); + + QTest::newRow("One of the points") << c[0] << c[1] << c[2] << QGeoCoordinate(2, 2) << true; + QTest::newRow("Not so far away") << c[0] << c[1] << c[2] << QGeoCoordinate(0.8, 0.8) << false; + QTest::newRow("Not so far away and large line") << c[0] << c[1] << c[2] << QGeoCoordinate(0.8, 0.8) << false; + QTest::newRow("Inside") << c[0] << c[1] << c[2] << QGeoCoordinate(2.0, 1.0) << true; +} + +void tst_QGeoPolygon::contains() +{ + QFETCH(QGeoCoordinate, c1); + QFETCH(QGeoCoordinate, c2); + QFETCH(QGeoCoordinate, c3); + QFETCH(QGeoCoordinate, probe); + QFETCH(bool, result); + + QList coords; + coords.append(c1); + coords.append(c2); + coords.append(c3); + QGeoPolygon p(coords); + + QCOMPARE(p.contains(probe), result); + + QGeoShape area = p; + QCOMPARE(area.contains(probe), result); +} + +void tst_QGeoPolygon::boundingGeoRectangle_data() +{ + QTest::addColumn("c1"); + QTest::addColumn("c2"); + QTest::addColumn("c3"); + QTest::addColumn("probe"); + QTest::addColumn("result"); + + QList c; + c.append(QGeoCoordinate(1,1)); + c.append(QGeoCoordinate(2,2)); + c.append(QGeoCoordinate(3,0)); + + QTest::newRow("One of the points") << c[0] << c[1] << c[2] << QGeoCoordinate(2, 2) << true; + QTest::newRow("Not so far away") << c[0] << c[1] << c[2] << QGeoCoordinate(0, 0) << false; + QTest::newRow("Inside the bounds") << c[0] << c[1] << c[2] << QGeoCoordinate(1, 0) << true; + QTest::newRow("Inside the bounds") << c[0] << c[1] << c[2] << QGeoCoordinate(1.1, 0.1) << true; +} + +void tst_QGeoPolygon::boundingGeoRectangle() +{ + QFETCH(QGeoCoordinate, c1); + QFETCH(QGeoCoordinate, c2); + QFETCH(QGeoCoordinate, c3); + QFETCH(QGeoCoordinate, probe); + QFETCH(bool, result); + + QList coords; + coords.append(c1); + coords.append(c2); + coords.append(c3); + QGeoPolygon p(coords); + + QGeoRectangle box = p.boundingGeoRectangle(); + QCOMPARE(box.contains(probe), result); +} + +void tst_QGeoPolygon::extendShape() +{ + QFETCH(QGeoCoordinate, c1); + QFETCH(QGeoCoordinate, c2); + QFETCH(QGeoCoordinate, c3); + QFETCH(QGeoCoordinate, probe); + QFETCH(bool, before); + QFETCH(bool, after); + + QList coords; + coords.append(c1); + coords.append(c2); + coords.append(c3); + QGeoPolygon p(coords); + + + QCOMPARE(p.contains(probe), before); + p.extendShape(probe); + QCOMPARE(p.contains(probe), after); +} + +void tst_QGeoPolygon::extendShape_data() +{ + QTest::addColumn("c1"); + QTest::addColumn("c2"); + QTest::addColumn("c3"); + QTest::addColumn("probe"); + QTest::addColumn("before"); + QTest::addColumn("after"); + + QList c; + c.append(QGeoCoordinate(1,1)); + c.append(QGeoCoordinate(2,2)); + c.append(QGeoCoordinate(3,0)); + + QTest::newRow("One of the points") << c[0] << c[1] << c[2] << QGeoCoordinate(2, 2) << true << true; + QTest::newRow("Not so far away") << c[0] << c[1] << c[2] << QGeoCoordinate(0, 0) << false << true; + QTest::newRow("Contained point") << c[0] << c[1] << c[2] << QGeoCoordinate(2.0, 1.0) << true << true; +} + +QTEST_MAIN(tst_QGeoPolygon) +#include "tst_qgeopolygon.moc" diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeopositioninfo/tst_qgeopositioninfo.cpp qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeopositioninfo/tst_qgeopositioninfo.cpp --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeopositioninfo/tst_qgeopositioninfo.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeopositioninfo/tst_qgeopositioninfo.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -40,7 +40,6 @@ QT_USE_NAMESPACE -Q_DECLARE_METATYPE(QGeoPositionInfo) Q_DECLARE_METATYPE(QGeoPositionInfo::Attribute) QByteArray tst_qgeopositioninfo_debug; diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -45,7 +45,6 @@ Q_DECLARE_METATYPE(QGeoPositionInfoSource::PositioningMethod) Q_DECLARE_METATYPE(QGeoPositionInfoSource::PositioningMethods) -Q_DECLARE_METATYPE(QGeoPositionInfo) #define MAX_WAITING_TIME 50000 @@ -141,7 +140,7 @@ void TestQGeoPositionInfoSource::base_initTestCase() { - qRegisterMetaType(); + } void TestQGeoPositionInfoSource::base_init() diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeoroute/qgeoroute.pro qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeoroute/qgeoroute.pro --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeoroute/qgeoroute.pro 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeoroute/qgeoroute.pro 2018-06-12 18:44:12.000000000 +0000 @@ -6,4 +6,4 @@ HEADERS += tst_qgeoroute.h SOURCES += tst_qgeoroute.cpp -QT += location testlib +QT += location-private testlib diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeoroute/tst_qgeoroute.cpp qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeoroute/tst_qgeoroute.cpp --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeoroute/tst_qgeoroute.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeoroute/tst_qgeoroute.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -27,6 +27,7 @@ ****************************************************************************/ #include "tst_qgeoroute.h" +#include "../geotestplugin/qgeoroutingmanagerengine_test.h" tst_QGeoRoute::tst_QGeoRoute() @@ -71,6 +72,13 @@ { QGeoRoute *qgeoroutecopy = new QGeoRoute(*qgeoroute); QCOMPARE(*qgeoroute, *qgeoroutecopy); + + // CoW + qreal distance = qgeoroute->distance(); + qgeoroutecopy->setDistance(distance + 10.0); + + QVERIFY(*qgeoroute == *qgeoroutecopy); // QGeoRoute uses a QExplicitlySharedDataPointer. no implicit detach() + delete qgeoroutecopy; } @@ -263,7 +271,7 @@ QVERIFY(qgeoroute->operator ==(*qgeoroutecopy)); QVERIFY(!qgeoroute->operator !=(*qgeoroutecopy)); - qgeoroute->setDistance(543.324); + qgeoroute->setDistance(543.324); // QExplicitlySharedDataPointer does not detach implicitly. qgeoroute->setRouteId("RouteId 111"); qgeoroute->setTravelMode(QGeoRouteRequest::PedestrianTravel); qgeoroute->setTravelTime(10); @@ -282,6 +290,14 @@ QVERIFY(qgeoroute->operator ==(*qgeoroutecopy)); QVERIFY(!qgeoroute->operator !=(*qgeoroutecopy)); + + QGeoRouteAlt rAlt; + QGeoRoute r; + QCOMPARE(rAlt.travelTime(), 123456); + QCOMPARE(r.travelTime(), 0); + r = rAlt; + QCOMPARE(r.travelTime(), 123456); + delete qgeoroutecopy; } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeorouterequest/tst_qgeorouterequest.cpp qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeorouterequest/tst_qgeorouterequest.cpp --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeorouterequest/tst_qgeorouterequest.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeorouterequest/tst_qgeorouterequest.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -319,5 +319,33 @@ QVERIFY(qgeorouterequest->featureTypes().contains(type)); } +void tst_QGeoRouteRequest::extraParameters_data() +{ + QTest::addColumn("extraParameters"); + + QVariantMap params; + QTest::newRow("Empty") << params; + + const QVariantMap param1 = {{"property1", QVariant(42)} , {"property2", QVariant("42")} , {"property3", QVariant("42.0")}}; + params["param1"] = param1; + + QTest::newRow("One param") << params; + + const QVariantMap param2 = {{"property1", QVariant(43)} , {"property2", QVariant("43")} , {"property3", QVariant("43.0")}}; + params["param2"] = param2; + + QTest::newRow("Two params") << params; +} + +void tst_QGeoRouteRequest::extraParameters() +{ + typedef QVariantMap ParameterType; + QFETCH(ParameterType , extraParameters); + QVariantMap emptyParams; + qgeorouterequest->setExtraParameters(extraParameters); + QCOMPARE(qgeorouterequest->extraParameters(), extraParameters); + qgeorouterequest->setExtraParameters(emptyParams); + QCOMPARE(qgeorouterequest->extraParameters(), emptyParams); +} QTEST_APPLESS_MAIN(tst_QGeoRouteRequest); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeorouterequest/tst_qgeorouterequest.h qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeorouterequest/tst_qgeorouterequest.h --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeorouterequest/tst_qgeorouterequest.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeorouterequest/tst_qgeorouterequest.h 2018-06-12 18:44:12.000000000 +0000 @@ -72,6 +72,8 @@ void maneuverDetail_data(); void featureWeight(); void featureWeight_data(); + void extraParameters(); + void extraParameters_data(); //End Unit Test for QGeoRouteRequest private: diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeoserviceprovider/tst_qgeoserviceprovider.cpp qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeoserviceprovider/tst_qgeoserviceprovider.cpp --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeoserviceprovider/tst_qgeoserviceprovider.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeoserviceprovider/tst_qgeoserviceprovider.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -104,9 +104,14 @@ QTest::newRow("mapbox") << QString("mapbox") << QGeoServiceProvider::MappingFeatures(QGeoServiceProvider::OnlineMappingFeature) - << QGeoServiceProvider::GeocodingFeatures(QGeoServiceProvider::NoGeocodingFeatures) + << QGeoServiceProvider::GeocodingFeatures(QGeoServiceProvider::OnlineGeocodingFeature + | QGeoServiceProvider::ReverseGeocodingFeature + | QGeoServiceProvider::LocalizedGeocodingFeature) << QGeoServiceProvider::RoutingFeatures(QGeoServiceProvider::OnlineRoutingFeature) - << QGeoServiceProvider::PlacesFeatures(QGeoServiceProvider::NoPlacesFeatures); + << QGeoServiceProvider::PlacesFeatures(QGeoServiceProvider::OnlinePlacesFeature + | QGeoServiceProvider::PlaceRecommendationsFeature + | QGeoServiceProvider::SearchSuggestionsFeature + | QGeoServiceProvider::LocalizedPlacesFeature); QTest::newRow("here") << QString("here") << QGeoServiceProvider::MappingFeatures(QGeoServiceProvider::OnlineMappingFeature) @@ -151,38 +156,38 @@ QCOMPARE(provider.placesFeatures(), placeFeatures); if (provider.mappingFeatures() == QGeoServiceProvider::NoMappingFeatures) { - QVERIFY(provider.mappingManager() == Q_NULLPTR); + QVERIFY(provider.mappingManager() == nullptr); } else { // some plugins require token/access parameter // they return 0 but set QGeoServiceProvider::MissingRequiredParameterError - if (provider.mappingManager() != Q_NULLPTR) + if (provider.mappingManager() != nullptr) QCOMPARE(provider.error(), QGeoServiceProvider::NoError); else QCOMPARE(provider.error(), QGeoServiceProvider::MissingRequiredParameterError); } if (provider.geocodingFeatures() == QGeoServiceProvider::NoGeocodingFeatures) { - QVERIFY(provider.geocodingManager() == Q_NULLPTR); + QVERIFY(provider.geocodingManager() == nullptr); } else { - if (provider.geocodingManager() != Q_NULLPTR) - QVERIFY(provider.geocodingManager() != Q_NULLPTR); //pointless but we want a VERIFY here + if (provider.geocodingManager() != nullptr) + QVERIFY(provider.geocodingManager() != nullptr); //pointless but we want a VERIFY here else QCOMPARE(provider.error(), QGeoServiceProvider::MissingRequiredParameterError); } if (provider.routingFeatures() == QGeoServiceProvider::NoRoutingFeatures) { - QVERIFY(provider.routingManager() == Q_NULLPTR); + QVERIFY(provider.routingManager() == nullptr); } else { - if (provider.routingManager() != Q_NULLPTR) + if (provider.routingManager() != nullptr) QCOMPARE(provider.error(), QGeoServiceProvider::NoError); else QCOMPARE(provider.error(), QGeoServiceProvider::MissingRequiredParameterError); } if (provider.placesFeatures() == QGeoServiceProvider::NoPlacesFeatures) { - QVERIFY(provider.placeManager() == Q_NULLPTR); + QVERIFY(provider.placeManager() == nullptr); } else { - if (provider.placeManager() != Q_NULLPTR) + if (provider.placeManager() != nullptr) QCOMPARE(provider.error(), QGeoServiceProvider::NoError); else QCOMPARE(provider.error(), QGeoServiceProvider::MissingRequiredParameterError); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeotiledmap/tst_qgeotiledmap.cpp qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeotiledmap/tst_qgeotiledmap.cpp --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qgeotiledmap/tst_qgeotiledmap.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qgeotiledmap/tst_qgeotiledmap.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -1,11 +1,11 @@ /**************************************************************************** ** -** Copyright (C) 2017 The Qt Company Ltd. +** Copyright (C) 2018 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the test suite of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL$ +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the @@ -14,24 +14,13 @@ ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT ** included in the packaging of this file. Please review the following ** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** @@ -119,6 +108,7 @@ m_map.reset(static_cast(mappingManager->createMap(this))); QVERIFY(m_map); m_map->setViewportSize(QSize(256, 256)); + m_map->setActiveMapType(m_map->m_engine->supportedMapTypes().first()); m_fetcher = static_cast(m_map->m_engine->tileFetcher()); m_tilesCounter.reset(new FetchTileCounter()); connect(m_fetcher, SIGNAL(tileFetched(const QGeoTileSpec&)), m_tilesCounter.data(), SLOT(tileFetched(const QGeoTileSpec&))); @@ -139,6 +129,8 @@ //prev_visible camera.setZoomLevel(zoomLevel-1); + // Delay needed on slow targets (e.g. Qemu) + QTest::qWait(10); m_map->clearData(); m_tilesCounter->m_tiles.clear(); m_map->setCameraData(camera); @@ -147,6 +139,8 @@ //visible + prefetch camera.setZoomLevel(zoomLevel); + // Delay needed on slow targets (e.g. Qemu) + QTest::qWait(10); m_map->clearData(); m_tilesCounter->m_tiles.clear(); m_map->setCameraData(camera); @@ -160,6 +154,8 @@ //next visible camera.setZoomLevel(zoomLevel + 1); + // Delay needed on slow targets (e.g. Qemu) + QTest::qWait(10); m_map->clearData(); m_tilesCounter->m_tiles.clear(); m_map->setCameraData(camera); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qnmeapositioninfosource/dummynmeapositioninfosource/tst_dummynmeapositioninfosource.cpp qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qnmeapositioninfosource/dummynmeapositioninfosource/tst_dummynmeapositioninfosource.cpp --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qnmeapositioninfosource/dummynmeapositioninfosource/tst_dummynmeapositioninfosource.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qnmeapositioninfosource/dummynmeapositioninfosource/tst_dummynmeapositioninfosource.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -37,7 +37,6 @@ #include Q_DECLARE_METATYPE(QNmeaPositionInfoSource::UpdateMode) -Q_DECLARE_METATYPE(QGeoPositionInfo) class DummyNmeaPositionInfoSource : public QNmeaPositionInfoSource { @@ -95,7 +94,7 @@ void tst_DummyNmeaPositionInfoSource::initTestCase() { - qRegisterMetaType(); + } void tst_DummyNmeaPositionInfoSource::testOverloadedParseFunction() diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.cpp qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.cpp --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -70,7 +70,6 @@ void tst_QNmeaPositionInfoSource::initTestCase() { - qRegisterMetaType(); qRegisterMetaType(); } diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.h qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.h --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.h 2018-06-12 18:44:12.000000000 +0000 @@ -45,7 +45,6 @@ QT_USE_NAMESPACE Q_DECLARE_METATYPE(QNmeaPositionInfoSource::UpdateMode) -Q_DECLARE_METATYPE(QGeoPositionInfo) Q_DECLARE_METATYPE(QList) class tst_QNmeaPositionInfoSource : public QObject diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qplacemanager_nokia/tst_qplacemanager_nokia.cpp qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qplacemanager_nokia/tst_qplacemanager_nokia.cpp --- qtlocation-opensource-src-5.9.5+dfsg/tests/auto/qplacemanager_nokia/tst_qplacemanager_nokia.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/auto/qplacemanager_nokia/tst_qplacemanager_nokia.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -65,7 +65,6 @@ bool checkSignals(QPlaceReply *reply, QPlaceReply::Error expectedError); QGeoServiceProvider *provider; QPlaceManager *placeManager; - QCoreApplication *coreApp; }; tst_QPlaceManagerNokia::tst_QPlaceManagerNokia() diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/plugins/declarativetestplugin/qdeclarativelocationtestmodel.cpp qtlocation-opensource-src-5.11.1+dfsg/tests/plugins/declarativetestplugin/qdeclarativelocationtestmodel.cpp --- qtlocation-opensource-src-5.9.5+dfsg/tests/plugins/declarativetestplugin/qdeclarativelocationtestmodel.cpp 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/plugins/declarativetestplugin/qdeclarativelocationtestmodel.cpp 2018-06-12 18:44:12.000000000 +0000 @@ -41,8 +41,6 @@ crazyLevel_(0), crazyMode_(false) { - // seed crazy random generator - qsrand(QTime(0,0,0).secsTo(QTime::currentTime()) + QCoreApplication::applicationPid()); timer_.setSingleShot(true); connect(&timer_, SIGNAL(timeout()), this, SLOT(timerFired())); } @@ -63,7 +61,7 @@ repopulate(); if (crazyMode_) { //qDebug() << "raw randomw value: " << qrand(); - int delay = (qAbs(qrand()) % crazyLevel_); // writing software is exact science + int delay = (QRandomGenerator::global()->bounded(uint(INT_MAX) + 1) % crazyLevel_); // writing software is exact science delay = qMax(1000, delay); // 3 ms at minimum qDebug() << "starting timer with : " << delay; timer_.start(delay); @@ -164,7 +162,7 @@ } int datacount = datacount_; if (crazyMode_) - datacount = (qAbs(qrand()) % datacount_); + datacount = QRandomGenerator::global()->bounded(datacount_); for (int i = 0; i < datacount; ++i) { DataObject* dataobject = new DataObject; @@ -206,7 +204,7 @@ if (crazyMode_) { // start generating arbitrary amount of data at arbitrary intervals - int delay = (qAbs(qrand()) % crazyLevel_); // writing software is exact science + int delay = QRandomGenerator::global()->bounded(crazyLevel_); // writing software is exact science delay = qMax(3, delay); // 3 ms at minimum qDebug() << "starting timer with : " << delay; timer_.start(delay); diff -Nru qtlocation-opensource-src-5.9.5+dfsg/tests/plugins/declarativetestplugin/testhelper.h qtlocation-opensource-src-5.11.1+dfsg/tests/plugins/declarativetestplugin/testhelper.h --- qtlocation-opensource-src-5.9.5+dfsg/tests/plugins/declarativetestplugin/testhelper.h 2018-03-26 06:20:41.000000000 +0000 +++ qtlocation-opensource-src-5.11.1+dfsg/tests/plugins/declarativetestplugin/testhelper.h 2018-06-12 18:44:12.000000000 +0000 @@ -1,11 +1,11 @@ /**************************************************************************** ** -** Copyright (C) 2017 The Qt Company Ltd. +** Copyright (C) 2018 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the test suite of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL$ +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the @@ -14,24 +14,13 @@ ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT ** included in the packaging of this file. Please review the following ** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** @@ -52,7 +41,7 @@ { Q_OBJECT public: - TestHelper(QObject *parent = Q_NULLPTR):QObject(parent){} + TestHelper(QObject *parent = nullptr):QObject(parent){} Q_INVOKABLE bool waitForPolished(QQuickItem *item, int timeout = 10000) const { QSignalSpy spy(item->window(), &QQuickWindow::afterAnimating);