diff options
author | Ivan Solovev <ivan.solovev@qt.io> | 2021-10-21 17:27:08 +0200 |
---|---|---|
committer | Ivan Solovev <ivan.solovev@qt.io> | 2021-11-02 09:46:33 +0200 |
commit | 6db775f6d9d72cf8ee9d66333b8424e74be1e352 (patch) | |
tree | 0a293756b61619a91970d9368a0449b7bf922728 /src/positioning/doc | |
parent | 5a1f44c3d41febca8480c077bd4c34e5a3332cdc (diff) | |
download | qtlocation-6.2.4.tar.gz |
Turns out that our CI does not support repos without
any tests. This is treated like an error and leads to
integration failure.
This patch fixes it by disabling tests in
coin/module_config.yaml. This config should be fixed
when QtLocation tests are enabled
Task-number: QTBUG-97084
Change-Id: Ib06e865fe2836806bbbee34345f06b471dd48660
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
(cherry picked from commit 23f32792ad53e23bbafbff6d7667f0bb0f69fc53)
Diffstat (limited to 'src/positioning/doc')
20 files changed, 0 insertions, 1870 deletions
diff --git a/src/positioning/doc/images/permissions.png b/src/positioning/doc/images/permissions.png Binary files differdeleted file mode 100644 index bd8c4850..00000000 --- a/src/positioning/doc/images/permissions.png +++ /dev/null diff --git a/src/positioning/doc/qtpositioning.qdocconf b/src/positioning/doc/qtpositioning.qdocconf deleted file mode 100644 index 67e5837a..00000000 --- a/src/positioning/doc/qtpositioning.qdocconf +++ /dev/null @@ -1,56 +0,0 @@ -include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf) -include($QT_INSTALL_DOCS/config/exampleurl-qtlocation.qdocconf) - -project = QtPositioning -description = Qt Positioning Reference Documentation -version = $QT_VERSION - - - -qhp.projects = QtPositioning - -qhp.QtPositioning.file = qtpositioning.qhp -qhp.QtPositioning.namespace = org.qt-project.qtpositioning.$QT_VERSION_TAG -qhp.QtPositioning.virtualFolder = qtpositioning -qhp.QtPositioning.indexTitle = Qt Positioning -qhp.QtPositioning.indexRoot = - -qhp.QtPositioning.filterAttributes = qtpositioning $QT_VERSION qtrefdoc -qhp.QtPositioning.customFilters.Qt.name = QtPositioning $QT_VERSION -qhp.QtPositioning.customFilters.Qt.filterAttributes = qtpositioning $QT_VERSION -qhp.QtPositioning.subprojects = classes qml examples -qhp.QtPositioning.subprojects.classes.title = C++ Classes -qhp.QtPositioning.subprojects.classes.indexTitle = Qt Positioning C++ Classes -qhp.QtPositioning.subprojects.classes.selectors = class fake:headerfile -qhp.QtPositioning.subprojects.classes.sortPages = true -qhp.QtPositioning.subprojects.qml.title = QML Types -qhp.QtPositioning.subprojects.qml.indexTitle = Qt Positioning QML Types -qhp.QtPositioning.subprojects.qml.selectors = qmlclass -qhp.QtPositioning.subprojects.qml.sortPages = true -qhp.QtPositioning.subprojects.examples.title = Qt Positioning Examples -qhp.QtPositioning.subprojects.examples.indexTitle = Qt Positioning Examples -qhp.QtPositioning.subprojects.examples.selectors = fake:example - -tagfile = ../../../doc/qtpositioning/qtpositioning.tags - -depends += qtcore qtdoc qtquick qtqml qtnetwork qtqmlxmllistmodel qmake qtcmake - -headerdirs += .. \ - ../../positioningquick - -sourcedirs += .. \ - ../../positioningquick - -examplesinstallpath = positioning - -exampledirs += ../../../examples/positioning \ - snippets/ - - -imagedirs += images - -navigation.landingpage = "Qt Positioning" -navigation.cppclassespage = "Qt Positioning C++ Classes" -navigation.qmltypespage = "Qt Positioning QML Types" - -manifestmeta.thumbnail.names += "QtPositioning/Log File*" diff --git a/src/positioning/doc/snippets/cpp/cpp.pro b/src/positioning/doc/snippets/cpp/cpp.pro deleted file mode 100644 index 47401e90..00000000 --- a/src/positioning/doc/snippets/cpp/cpp.pro +++ /dev/null @@ -1,8 +0,0 @@ -TEMPLATE = app -TARGET = positioning_cppsnippet -QT = core positioning - -SOURCES += \ - main.cpp \ - cppqml.cpp - diff --git a/src/positioning/doc/snippets/cpp/cppqml.cpp b/src/positioning/doc/snippets/cpp/cppqml.cpp deleted file mode 100644 index c3d0139e..00000000 --- a/src/positioning/doc/snippets/cpp/cppqml.cpp +++ /dev/null @@ -1,118 +0,0 @@ -/**************************************************************************** -** -** 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:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QtCore/QObject> -#include <QtCore/QDebug> -#include <QtCore/QVariant> -#include <QtPositioning/QGeoAddress> -#include <QtPositioning/QGeoLocation> -#include <QtPositioning/QGeoCircle> -#include <QtPositioning/QGeoAreaMonitorSource> - -void cppQmlInterface(QObject *qmlObject) -{ - //! [Address get] - QGeoAddress geoAddress = qmlObject->property("address").value<QGeoAddress>(); - //! [Address get] - - //! [Address set] - qmlObject->setProperty("address", QVariant::fromValue(geoAddress)); - //! [Address set] - - //! [Location get] - QGeoLocation geoLocation = qmlObject->property("location").value<QGeoLocation>(); - //! [Location get] - - //! [Location set] - qmlObject->setProperty("location", QVariant::fromValue(geoLocation)); - //! [Location set] -} - -class MyClass : public QObject -{ - Q_OBJECT -//! [BigBen] -public: - MyClass() : QObject() - { - QGeoAreaMonitorSource *monitor = QGeoAreaMonitorSource::createDefaultSource(this); - if (monitor) { - connect(monitor, SIGNAL(areaEntered(QGeoAreaMonitorInfo,QGeoPositionInfo)), - this, SLOT(areaEntered(QGeoAreaMonitorInfo,QGeoPositionInfo))); - connect(monitor, SIGNAL(areaExited(QGeoAreaMonitorInfo,QGeoPositionInfo)), - this, SLOT(areaExited(QGeoAreaMonitorInfo,QGeoPositionInfo))); - - QGeoAreaMonitorInfo bigBen("Big Ben"); - QGeoCoordinate position(51.50104, -0.124632); - bigBen.setArea(QGeoCircle(position, 100)); - - monitor->startMonitoring(bigBen); - - } else { - qDebug() << "Could not create default area monitor"; - } - } - -public Q_SLOTS: - void areaEntered(const QGeoAreaMonitorInfo &mon, const QGeoPositionInfo &update) - { - Q_UNUSED(mon); - - qDebug() << "Now within 100 meters, current position is" << update.coordinate(); - } - - void areaExited(const QGeoAreaMonitorInfo &mon, const QGeoPositionInfo &update) - { - Q_UNUSED(mon); - - qDebug() << "No longer within 100 meters, current position is" << update.coordinate(); - } -//! [BigBen] -}; diff --git a/src/positioning/doc/snippets/cpp/main.cpp b/src/positioning/doc/snippets/cpp/main.cpp deleted file mode 100644 index 285bf6af..00000000 --- a/src/positioning/doc/snippets/cpp/main.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/**************************************************************************** -** -** 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:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -int main(int /*argc*/, char ** /*argv*/) -{ - return 0; -} - diff --git a/src/positioning/doc/snippets/doc_src_qtpositioning.qml b/src/positioning/doc/snippets/doc_src_qtpositioning.qml deleted file mode 100644 index f6d15572..00000000 --- a/src/positioning/doc/snippets/doc_src_qtpositioning.qml +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -//! [import] -import QtPositioning -//! [import] - -Item { -} - diff --git a/src/positioning/doc/snippets/snippets.pro b/src/positioning/doc/snippets/snippets.pro deleted file mode 100644 index 451d1c36..00000000 --- a/src/positioning/doc/snippets/snippets.pro +++ /dev/null @@ -1,2 +0,0 @@ -TEMPLATE = subdirs -SUBDIRS += cpp diff --git a/src/positioning/doc/src/cpp-position.qdoc b/src/positioning/doc/src/cpp-position.qdoc deleted file mode 100644 index a380f105..00000000 --- a/src/positioning/doc/src/cpp-position.qdoc +++ /dev/null @@ -1,194 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $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 -** 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 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$ -** -****************************************************************************/ - -/*! -\page location-positioning-cpp.html - -\title Positioning (C++) - -\brief The Location Positioning API enables location positioning by means of -GPS or an NMEA data source. - -\section1 Positioning - -The Positioning component of the Qt Location API is about the geographical -position, size, and address of some place. Positioning contains a -\l QGeoCoordinate class, containing latitude, longitude and altitude in meters. -\l QGeoLocation contains a \l QGeoCoordinate plus address and size information -(a bounding box) so that positions can be more than mathematical points. -Movement into or out of the defined bounding box areas can be monitored. The API -also allows the developer to control the source of the positional information -as well. - -Location data involves a precisely specified position on the Earth's -surface \unicode {0x2014} as provided by a latitude-longitude coordinate -\unicode {0x2014} along with associated data, such as: - - \list - \li The date and time at which the position was reported - \li The velocity of the device that reported the position - \li The altitude of the reported position (height above sea level) - \li The bearing of the device in degrees, relative to true north - \endlist - -This data can be extracted through a variety of methods. One of the most -well known methods of positioning is GPS (Global Positioning System), a -publicly available system that uses radiowave signals received from -Earth-orbiting satellites to calculate the precise position and time of -the receiver. Another popular method is 'Cell Identifier Positioning', which uses -the cell identifier of the cell site that is currently serving the receiving -device to calculate its approximate location. These and other positioning -methods can all be used with the Location API; the only requirement for a -location data source within the API is that it provides a -latitude-longitude coordinate with a date/time value, with the option of -providing the other attributes listed above. - - -Location data sources are created by subclassing \l QGeoPositionInfoSource and -providing \l QGeoPositionInfo objects through the -\l {QGeoPositionInfoSource::positionUpdated()} signal. Clients that require -location data can connect to the -\l{QGeoPositionInfoSource::positionUpdated()}{positionUpdated()} signal and -call \l{QGeoPositionInfoSource::startUpdates()}{startUpdates()} or -\l{QGeoPositionInfoSource::requestUpdate()}{requestUpdate()} to trigger the -distribution of location data. The location data distribution can be stopped by -calling the \l {QGeoPositionInfoSource::stopUpdates()}{stopUpdates()} function. - -A default position source may be available on some platforms. Call -\l {QGeoPositionInfoSource::createDefaultSource()} to create an instance of the -default position source. The method returns \c nullptr if no default source is -available for the platform. - -If a problem occurs with access to the information source then an -\l {QGeoPositionInfoSource::errorOccurred()}{errorOccurred()} signal is emitted. - -The \l QGeoAreaMonitorSource class enables client applications to be notified -when the receiving device has moved into or out of a particular area, as -specified by a coordinate and radius. If the platform provides built-in support -for area monitoring, the \l {QGeoAreaMonitorSource::createDefaultSource()} -method returns an instance of the default area monitor. - -Satellite information can also be distributed through the -\l QGeoSatelliteInfoSource class. Call -\l {QGeoSatelliteInfoSource::createDefaultSource()} to create an instance of the -default satellite data source for the platform if one is available. -Alternatively, clients can subclass it to provide a custom satellite data -source. - - - -\section2 Requesting Location Data from Data Sources - -To receive data from a source, connect to its -\l{QGeoPositionInfoSource::positionUpdated()}{positionUpdated()} signal, -then call either \l{QGeoPositionInfoSource::startUpdates()}{startUpdates()} -or \l{QGeoPositionInfoSource::requestUpdate()}{requestUpdate()} to begin. - -Here is an example of a client that receives data from the default location -data source, as returned by \l {QGeoPositionInfoSource::createDefaultSource()}: - -\code -class MyClass : public QObject -{ - Q_OBJECT -public: - MyClass(QObject *parent = 0) - : QObject(parent) - { - QGeoPositionInfoSource *source = QGeoPositionInfoSource::createDefaultSource(this); - if (source) { - connect(source, SIGNAL(positionUpdated(QGeoPositionInfo)), - this, SLOT(positionUpdated(QGeoPositionInfo))); - source->startUpdates(); - } - } - -private slots: - void positionUpdated(const QGeoPositionInfo &info) - { - qDebug() << "Position updated:" << info; - } -}; - -\endcode - -\section2 Controlling Aspects of Data Sources - -The \l {QGeoPositionInfoSource::setUpdateInterval()} method can be used to -control the rate at which position updates are received. For example, if -the client application only requires updates once every 30 seconds, it can -call \c setUpdateInterval(30000). If no update interval is set, or -\l {QGeoPositionInfoSource::}{setUpdateInterval()} is called with a value of 0, -the source uses a default interval or some other internal logic to determine -when updates should be provided. - -\l {QGeoPositionInfoSource::setPreferredPositioningMethods()} enables client -applications to request that a certain type of positioning method be used. -For example, if the application prefers to use only satellite positioning, -which offers fairly precise outdoor positioning but can be a heavy user of -power resources, it can call this method with the -\l {QGeoPositionInfoSource::SatellitePositioningMethods} value. However, this -method should only be used in specialized client applications; in most -cases, the default positioning methods should not be changed, as a source -may internally use a variety of positioning methods that can be useful to -the application. - -\section2 NMEA Data - -\l {http://en.wikipedia.org/wiki/NMEA_0183}{NMEA} is a common text-based -protocol for specifying navigational data. For convenience, the -\l QNmeaPositionInfoSource is provided to enable client applications to read -and distribute NMEA data in either real-time mode (for example, when -streaming from a GPS device) or simulation mode (for example, when reading -from a NMEA log file). In simulation mode, the source will emit updates -according to the time stamp of each NMEA sentence to produce a "replay" -of the recorded data. - -Generally, the capabilities provided by the default position source as -returned by \l {QGeoPositionInfoSource::createDefaultSource()}, along with the -\l QNmeaPositionInfoSource class, are sufficient for retrieving location -data. However, in some cases developers may wish to write their own custom -location data source. - -The \l {Log File Position Source (C++)} example demonstrates how to subclass -\l QGeoPositionInfoSource to create a custom positioning source. - - -\section1 Examples - -\section3 \b{Flickr Example} - -The \l{GeoFlickr QML}{Flickr Example} uses the current location to download thumbnail -images from Flickr relevant to the current location. - - - -\section1 Positioning Classes - -\annotatedlist QtPositioning-positioning - -*/ diff --git a/src/positioning/doc/src/cpp-qml-positioning.qdoc b/src/positioning/doc/src/cpp-qml-positioning.qdoc deleted file mode 100644 index f1044306..00000000 --- a/src/positioning/doc/src/cpp-qml-positioning.qdoc +++ /dev/null @@ -1,114 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $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 -** 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 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$ -** -****************************************************************************/ - -/*! -\page positioning-cpp-qml.html -\title Interfaces between C++ and QML Code in Qt Positioning - -\brief Describes the methods used to exchange position data between C++ and QML -code. - -\section1 Overview - -Qt Positioning utilizes two methods to simplify exchange of position data -between C++ and QML code. - -\target Cpp_value_integration_positioning -\section1 Direct C++ Value Integration in QtPositioning - -Starting with Qt 5.5, it has become much easier to integrate non-QObject based -data types into QML. This is achieved by adding \l Q_GADGET support to \l QtQml. -The macro converts classes into a light-weight version of a \l QObject without -the required \l QObject inheritance. At the same time, it retains the reflection -capabilities of \l QMetaObject. As a result, they can be directly exposed to -QML. - -A significant number of Position related data types were converted to -\l {Q_GADGET}s. They retain their API and value type character but have become -introspectable via \l QMetaObject. - -The \l QML_ANONYMOUS macro is used to expose these types to the QML environment. -See the \l QQmlEngine documentation for more details and the full list of -available macros. - -The classes, however, are not directly extended with this macro, because we do -not want Qt Positioning to depend on \l QtQml. So a helper class is created for -each of them, and the \l QML_FOREIGN macro is used: - -\code -struct QGeoCoordinateForeign -{ - Q_GADGET - QML_FOREIGN(QGeoCoordinate) - QML_ANONYMOUS - QML_ADDED_IN_VERSION(5, 0) -}; -\endcode - -The above registration of Positioning types is automatically done once by the -QtPositioning QML plugin. - -\section1 QVariant Based integration - -This section provides information on how to integrate QGeoAddress and -QGeoLocation. - -\section2 Address - QGeoAddress - -The \l {QtPositioning::Address::address} {Address.address} property is used to -provide an interface between C++ and QML code. First a pointer to an -\l {QtPositioning::}{Address} object must be obtained from C++, then the -\l {QObject::}{property()} and \l {QObject::}{setProperty()} functions must be -used to get and set the \c address property. - -The following piece of code gets the \l QGeoAddress object from C++: - -\snippet cpp/cppqml.cpp Address get - -The following piece of code sets the address property of the QML object based -on a \l QGeoAddress object from C++: - -\snippet cpp/cppqml.cpp Address set - - -\section2 Location - QGeoLocation -The \l {Location::location} {Location.location} property is used to provide an -interface between C++ and QML code. First a pointer to a \l Location object -must be obtained from C++, then the \l {QObject::}{property()} and -\l {QObject::}{setProperty()} functions must be used to get and set the -\c location property. - -The following piece of code gets the \l QGeoLocation object from C++: - -\snippet cpp/cppqml.cpp Location get - -The following piece of code sets the location property of the QML object based -on a \l QGeoLocation object from C++: - -\snippet cpp/cppqml.cpp Location set - -*/ diff --git a/src/positioning/doc/src/external-resources.qdoc b/src/positioning/doc/src/external-resources.qdoc deleted file mode 100644 index 948249d9..00000000 --- a/src/positioning/doc/src/external-resources.qdoc +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $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 -** 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 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$ -** -****************************************************************************/ - -/*! -\externalpage https://developer.android.com/about/versions/oreo/background-location-limits -\title Background Location Limits -*/ - -/*! -\externalpage https://developer.android.com/guide/components/foreground-services -\title Foreground Service -*/ - -/*! -\externalpage https://developer.android.com/reference/android/Manifest.permission#ACCESS_BACKGROUND_LOCATION -\title ACCESS_BACKGROUND_LOCATION -*/ - -/*! -\externalpage https://developer.android.com/training/location/background -\title Access Location in the Background -*/ - -/*! -\externalpage https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home -\title GeoClue service -*/ - -/*! -\externalpage https://www.freedesktop.org/software/geoclue/docs/gdbus-org.freedesktop.GeoClue2.Client.html#gdbus-property-org-freedesktop-GeoClue2-Client.DesktopId -\title GeoClue DesktopId property -*/ - -/*! -\externalpage https://gypsy.freedesktop.org/wiki/ -\title Gypsy daemon -*/ diff --git a/src/positioning/doc/src/plugins/geoclue2.qdoc b/src/positioning/doc/src/plugins/geoclue2.qdoc deleted file mode 100644 index 13ba2d2d..00000000 --- a/src/positioning/doc/src/plugins/geoclue2.qdoc +++ /dev/null @@ -1,86 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $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 -** 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 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$ -** -****************************************************************************/ - -/*! -\page position-plugin-geoclue2.html -\title Qt Positioning GeoClue v2 plugin -\ingroup QtPositioning-plugins - -\brief Uses the GeoClue v2 library to provide positioning updates - -\section1 Overview - -This plugin is an interface to the \l {GeoClue service}{GeoClue v2} library. -It requires this library to be installed on the system to function. - -The plugin uses D-Bus to establish communication with the GeoClue v2 D-Bus -service and to provide positioning information. - -The plugin can be used to receive only the positioning information. -It \e {does not} provide satellite information. - -The plugin can be loaded by using the provider name \b geoclue2. - -\section1 Parameters - -The following table lists parameters that \e can be passed to the geoclue2 -plugin. - -\table -\header - \li Parameter - \li Description -\row - \li desktopId - \li The \l {GeoClue DesktopId property}{Desktop Id} property used by the - D-Bus service. If the parameter is not specified, the application name - provided by \l QCoreApplication::applicationName() is used. -\endtable - -\section1 Usage example - -The following examples show how to create a \b geoclue2 PositionSource from -C++ and QML. - -\section2 QML - -\code -PositionSource { - name: "geoclue2" - PluginParameter { name: "desktopId"; value: "SomeIdentifierString" } -} -\endcode - -\section2 C++ - -\code -QVariantMap params; -params["desktopId"] = "SomeIdentifierString"; -QGeoPositionInfoSource *positionSource = QGeoPositionInfoSource::createSource("geoclue2", params, this); -\endcode - -*/ diff --git a/src/positioning/doc/src/plugins/gypsy.qdoc b/src/positioning/doc/src/plugins/gypsy.qdoc deleted file mode 100644 index 9b59314a..00000000 --- a/src/positioning/doc/src/plugins/gypsy.qdoc +++ /dev/null @@ -1,115 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $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 -** 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 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$ -** -****************************************************************************/ - -/*! -\page position-plugin-gypsy.html -\title Qt Positioning Gypsy plugin -\ingroup QtPositioning-plugins - -\brief Uses the Gypsy daemon to provide satellite information - -\section1 Overview - -The plugin is an interface to the \l {Gypsy daemon}. It requires the daemon -to be installed and running on the system to function. - -The plugin uses D-Bus and GLib to connect to GPS device and provide satellite -information. - -Currently the plugin \e {does not} provide positioning information. - -The plugin can be loaded using provider name \b gypsy. - -\section1 Parameters - -The following table lists parameters that \e can be passed to the gypsy -plugin. - -\table -\header - \li Parameter - \li Description -\row - \li deviceName - \li The name of the device (or path to the device file) that will be used - to provide satellite information. The typical values can be - \c {/dev/ttyUSB0} or \c {/dev/ttyACM0}. -\row - \li gconfKey - \li The key that will be used to extract device name from the GConf - configuration system. -\endtable - -The plugin supports two ways of specifying the device name: -\list - \li Specify the device name directly with the \e deviceName plugin - parameter. - \li Specify the configuration key using \e gconfKey plugin parameter and - extract the device name from the GConf configuration system. This - approach is useful when the device name is already specified for some - other GConf-based application. -\endlist - -By default, when none of the parameters is specified, the plugin will try to -extract the device name from the GConf configuration system using the following -hardcoded key: - -\badcode -/apps/geoclue/master/org.freedesktop.Geoclue.GPSDevice -\endcode - -\section2 Using GConf to set parameters - -To specify a value for a key in the GConf configuration system, use -\e {gconftool-2} as follows: - -\badcode -gconftool-2 -t string -s /apps/geoclue/master/org.freedesktop.Geoclue.GPSDevice /dev/ttyUSB0 -\endcode - -\section1 Usage example - -The following examples show how to create a \b gypsy satellite info source -from C++. - -Specifying device name directly: - -\code -QVariantMap parameters; -parameters["deviceName"] = "/dev/ttyACM0"; -QGeoSatelliteInfoSource *source = QGeoSatelliteInfoSource::createSource("gypsy", parameters, this); -\endcode - -Using GConf key: - -\code -QVariantMap parameters; -parameters["gconfKey"] = "/apps/myapp/mykey"; -QGeoSatelliteInfoSource *source = QGeoSatelliteInfoSource::createSource("gypsy", parameters, this); -\endcode - -*/ diff --git a/src/positioning/doc/src/plugins/nmea.qdoc b/src/positioning/doc/src/plugins/nmea.qdoc deleted file mode 100644 index 00a50f0e..00000000 --- a/src/positioning/doc/src/plugins/nmea.qdoc +++ /dev/null @@ -1,201 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $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 -** 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 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$ -** -****************************************************************************/ - -/*! -\page position-plugin-nmea.html -\title Qt Positioning NMEA plugin -\ingroup QtPositioning-plugins - -\brief Reads the NMEA stream to provide position updates. - -\section1 Overview - -Included with Qt Positioning is a position plugin which parses NMEA sentences -into position updates. This plugin can use serial port, socket or file as a -source. - -This plugin can be loaded by using the provider name \b nmea. - -\section1 Parameters - -The following table lists parameters that \e can be passed to the nmea plugin. - -\table -\header - \li Parameter - \li Description -\row - \li nmea.source - \li The source that will be used to get NMEA data. -\row - \li nmea.satellite_info_simulation_interval - \li The interval for reading satellite information data from the file in - simulation mode. -\endtable - -Different sources require different ways of providing the data. The following -table lists different ways of providing \c {nmea.source} parameter for socket, -serial port and file inputs. - -\table -\header - \li Scheme - \li Example - \li Description -\row - \li socket://hostname:port - \li \c {socket://localhost:12345} - \li Use \b {socket:} keyword to specify that you want to get the nmea data - from the socket. A TCP socket will be created, which will try to connect - to host \c hostname using port \c port. Upon successful connection - a text NMEA stream is expected to be received from the server. -\row - \li {1, 3} serial:portname - \li \c {serial:/dev/ttyUSB0} - \li {1, 3} Use \b {serial:} keyword to specify that you want to get the nmea - data from the serial port. The plugin will try to establish a connection - to port \c portname with baudrate = 4800 Bd. Upon successful connection - a text NMEA stream is expected to be received from the serial port. - If you use \b {serial:} without any port name, the plugin will try to - find one of the well known serial devices using vendor identifier. Note - however that this is not a recommended way of using the serial port - connection, as the list of well-known devices is small and most probably - does not include your hardware. -\row - \li \c {serial:COM1} -\row - \li \c {serial:} -\row - \li filepath - \li \c {/home/user/nmealog.txt} - \li {1, 2} Use \b {file:///} or just full file path to specify a path to a - local file. -\row - \li file:///filepath - \li \c {file:///home/user/nmealog.txt} -\row - \li qrc:///filepath - \li \c {qrc:///nmealog.txt} - \li Use \b {qrc:///} prefix to specify a path to a file in the application - resources. -\endtable - -\note If \c {nmea.source} parameter is not specified, the plugin will try to -locate one of the well-known serial devices (as if \c {nmea.source = serial:} -was specified). - -\section1 Position source usage example - -The following examples show how to create a \b nmea PositionSource -using different data sources. - -\section2 QML - -\code -// text file -PositionSource { - name: "nmea" - PluginParameter { name: "nmea.source"; value: "qrc:///nmealog.txt" } -} - -// socket -PositionSource { - name: "nmea" - PluginParameter { name: "nmea.source"; value: "socket://localhost:22222" } -} - -// serial port -PositionSource { - name: "nmea" - PluginParameter { name: "nmea.source"; value: "serial:/dev/ttyACM0" } -} -\endcode - -\section2 C++ - -\code -// text file -QVariantMap params; -params["nmea.source"] = "qrc:///nmealog.txt"; -QGeoPositionInfoSource *textPositionSource = QGeoPositionInfoSource::createSource("nmea", params, this); - -// socket -params["nmea.source"] = "socket://localhost:22222"; -QGeoPositionInfoSource *socketPositionSource = QGeoPositionInfoSource::createSource("nmea", params, this); - -// serial port -params["nmea.source"] = "serial:/dev/ttyACM0"; -QGeoPositionInfoSource *serialPositionSource = QGeoPositionInfoSource::createSource("nmea", params, this); -\endcode - -\note Once a PositionSource is created, it can't be reconfigured to use other -type of source data. - -\section1 Satellite information source usage example - -Apart from the position information, \b nmea plugin is also capable of providing -satellite information. For now it does not have any QML object, but can be -created directly from C++ code. - -\code -// serial port -QVariantMap parameters; -parameters["nmea.source"] = "serial:/dev/ttyUSB0"; -QGeoSatelliteInfoSource *serialSource = QGeoSatelliteInfoSource::createSource("nmea", parameters, this); - -// socket -parameters["nmea.source"] = "socket://localhost:22222"; -QGeoSatelliteInfoSource *socketSource = QGeoSatelliteInfoSource::createSource("nmea", parameters, this); -\endcode - -If you want to use \l QGeoSatelliteInfoSource to read file with NMEA stream, you -can also use additional parameter \c "nmea.satellite_info_simulation_interval". -This parameter is used to specify the playback rate (in milliseconds) for the -satellite info messages. The minimum allowed frequency is specified by -\l {QGeoSatelliteInfoSource::}{minimumUpdateInterval()}. If you specify a -smaller value, it will be ignored. If no value is specified, the default value -is \c {qMax(100, minimumUpdateInterval())}. -At runtime \l {QNmeaSatelliteInfoSource::setBackendProperty()} method can be -used to update this parameter. - -\code -// file -QVariantMap parameters; -parameters["nmea.source"] = "qrc:///nmealog.txt"; -parameters["nmea.satellite_info_simulation_interval"] = 1000; -QGeoSatelliteInfoSource *fileSource = QGeoSatelliteInfoSource::createSource("nmea", parameters, this); -\endcode - -This parameter is not applicable to position source because NMEA protocol -already has timestamps in position messages. These timestamps are used to -simulate the correct message rate while using \l QGeoPositionInfoSource with -file as a data source. - -\note Once a \l QGeoSatelliteInfoSource is created, it can't be reconfigured to -use other type of source data. - -*/ diff --git a/src/positioning/doc/src/qml-position.qdoc b/src/positioning/doc/src/qml-position.qdoc deleted file mode 100644 index 27e55583..00000000 --- a/src/positioning/doc/src/qml-position.qdoc +++ /dev/null @@ -1,112 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $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 -** 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 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$ -** -****************************************************************************/ - -/*! -\page location-positioning-qml.html - -\title Positioning (QML) - -\brief The Location Positioning API enables location positioning by means of -GPS or an NMEA data source. - -\section1 Location Positioning - -Location data involves a precisely specified position on the Earth's -surface \unicode {0x2014} as provided by a latitude-longitude coordinate -\unicode {0x2014} along with associated data, such as: - - \list - \li The date and time at which the position was reported - \li The velocity of the device that reported the position - \li The altitude of the reported position (height above sea level) - \li The bearing of the device in degrees, relative to true north - \endlist - -For more information see -\l {http://en.wikipedia.org/wiki/Geographic_coordinate}{Geographic Coordinate}. - -This data can be extracted through a variety of methods. One of the most -well known methods of positioning is GPS (Global Positioning System), a -publicly available system that uses radiowave signals received from -Earth-orbiting satellites to calculate the precise position and time of -the receiver. Another popular method is 'Cell Identifier Positioning', which uses -the cell identifier of the cell site that is currently serving the receiving -device to calculate its approximate location. These and other positioning -methods can all be used with the Location API; the only requirement for a -location data source within the API is that it provides a -latitude-longitude coordinate with a date/time value, with the option of -providing the other attributes listed above. - -\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 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 [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 -responsibility for validation of sensible values for these properties. These are exposed as -the \l {Position::latitudeValid}{latitudeValid}, \l {Position::longitudeValid}{longitudeValid}, -\l {Position::altitudeValid}{altitudeValid}, \l {Position::speedValid}{speedValid}, -\l {Position::horizontalAccuracyValid}{horizontalAccuracyValid}, and -\l {Position::verticalAccuracyValid}{verticalAccuracyValid} properties. - - -\section2 PositionSource Type - -We have a \l 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. -Perhaps instead of directly picking up GPS satellites it might be desirable to -do some testing using a datafile. - -The \l PositionSource type provides the developer with control, within the -limits allowed by the platform, of the source of the geographical data. -\l PositionSource supports multiple plugins, including an -\l {Qt Positioning NMEA plugin}{NMEA} plugin. - -\l {http://en.wikipedia.org/wiki/NMEA}{NMEA} is a common text-based -protocol for specifying navigational data. The \l PositionSource -\l {Qt Positioning NMEA plugin}{NMEA} plugin supports multiple data sources, -including raw file or TCP socket. The source will emit updates according to the -time stamp of each NMEA sentence to produce a "replay" of the recorded data. - -See the \l {Qt Positioning NMEA plugin}{plugin description} for usage examples. - - -\section2 GeoFlickr Example - -The \l{GeoFlickr (QML)}{GeoFlickr Example} uses the \l PositionSource to -download thumbnail images from Flickr relevant to the current location. - -*/ diff --git a/src/positioning/doc/src/qt6-changes.qdoc b/src/positioning/doc/src/qt6-changes.qdoc deleted file mode 100644 index ab53823b..00000000 --- a/src/positioning/doc/src/qt6-changes.qdoc +++ /dev/null @@ -1,233 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $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 -** 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 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$ -** -****************************************************************************/ - -/*! - \page qtpositioning-changes-qt6.html - \title Changes to Qt Positioning - \ingroup changes-qt-5-to-6 - \brief Migrate Qt Positioning to Qt 6. - - Qt 6 is a result of the conscious effort to make the framework more - efficient and easy to use. - - We try to maintain binary and source compatibility for all the public - APIs in each release. But some changes were inevitable in an effort to - make Qt a better framework. - - In this topic we summarize those changes in Qt Positioning, and provide - guidance to handle them. - - \section1 Breaking public API changes - - This section contains information about API changes that break source - compatibility. - - \section2 Rename QGeoPolygon::path() - - The \c QGeoPolygon::path() and \c QGeoPolygon::setPath() methods are renamed - to \l QGeoPolygon::perimeter() and \l QGeoPolygon::setPerimeter() - respectively. On the QML side the \l QGeoPolygon::perimeter property can be - used without any changes. - - \section2 Use \l QGeoShape for \l QGeoLocation bounding area - - The \l QGeoLocation class and its \l [QML] Location QML counterpart are - updated to use \l QGeoShape instead of \l QGeoRectangle for a bounding area. - - \section3 C++ - - The \c QGeoLocation::boundingBox() and \c QGeoLocation::setBoundingBox() - are replaced by \l QGeoLocation::boundingShape() and - \l QGeoLocation::setBoundingShape() respectively. A \l QGeoShape object - is now used as an underlying data storage. - - \section3 QML - - The \c QGeoLocation::boundingBox property is replaced by - \l QGeoLocation::boundingShape. This property is available since - QtPositioning 6.2, so make sure to update the import version in the QML - files. - - \code - import QtPositioning 6.2 - \endcode - - \section2 Remove QGeoShape::extendShape() - - The \c QGeoShape::extendShape() method was deprecated in Qt 5.9 and finally - removed in Qt 6. Use \l QGeoRectangle::extendRectangle() and - \l QGeoCircle::extendCircle() if you need this functionality for these - classes. - - \section2 Rename signal error to errorOccurred - - In Qt 5 multiple Qt Positioning classes had the \c error() signal, which was - clashing with the \c error() method. In Qt 6 we renamed these signals to - \c errorOccurred(). Specifically: - - \list - - \li \c QGeoAreaMonitorSource::error() is renamed to - \l QGeoAreaMonitorSource::errorOccurred(). - - \li \c QGeoPositionInfoSource::error() is renamed to - \l QGeoPositionInfoSource::errorOccurred(). - - \li \c QGeoSatelliteInfoSource::error() is renamed to - \l QGeoSatelliteInfoSource::errorOccurred(). - - \endlist - - \section2 Remove update timeout signals - - In Qt 5 \c {QGeoPositionInfoSource::updateTimeout()} and - \c {QGeoSatelliteInfoSource::requestTimeout()} signals were used to notify - about the cases when the current position or satellite information could - not be retrieved within specified timeout. These signals were removed in - Qt 6. The \c {errorOccurred()} signals with the new error types are - used instead. Specifically: - - \list - - \li \l QGeoPositionInfoSource uses an \l {QGeoPositionInfoSource::} - {errorOccurred()} signal with a new - \l QGeoPositionInfoSource::UpdateTimeoutError error code. - - \li \l QGeoSatelliteInfoSource uses an \l {QGeoSatelliteInfoSource::} - {errorOccurred()} signal with a new - \l QGeoSatelliteInfoSource::UpdateTimeoutError error code. - - \endlist - - Same changes apply to \l [QML] PositionSource QML object. The - \c {PositionSource::updateTimeout()} signal is removed. - \l [QML] {PositionSource::sourceError} property with a - \c {PositionSource.UpdateTimeoutError} is used instead. - - \section2 Redesign NMEA support - - In Qt 5 we had a \b serialnmea positioning plugin and a \c nmeaSource - property in \l [QML] {PositionSource} object. - - The plugin provided access to NMEA streams via serial port, while the QML - object was responsible for reading NMEA stream from TCP socket or local - file. - - In Qt 6 we joined all these features in the plugin, which is now renamed to - \b nmea. It is now capable of working with all three NMEA data sources: - serial port, TCP socket and local file. See \l {Qt Positioning NMEA plugin} - {plugin description} for more details. - - The \c nmeaSource property of \l [QML] {PositionSource} object is now - removed. - - \section1 Other API changes - - This section contains API improvements that do not break source - compatibility. However they might have an impact on the application logic, - so it is still useful to know about them. - - \section2 Reset errors properly - - In Qt 5 the errors for \l QGeoAreaMonitorSource, \l QGeoPositionInfoSource - and \l QGeoSatelliteInfoSource classes were never reset. This behavior is - not logical, as calling \c {startUpdates()}, \c {startMonitoring()} or - \c {requestUpdates()} on one of these classes or their subclasses - effectively means starting a new work sessions, which means that we should - not care about previous errors. Since Qt 6 we reset the error to \c NoError - once one of the aforementioned methods is called. - - \section2 Add \l QGeoAddress::streetNumber - - The \l QGeoAddress class is extended with \l {QGeoAddress::}{streetNumber} - property, which holds the information about street number, building name, or - anything else that might be used to distinguish one address from another. - Use \l {QGeoAddress::}{streetNumber()} and \l {QGeoAddress::} - {setStreetNumber()} to access this property from C++ code. - - The \l QGeoAddress::street now holds only the street name. - - Same applies to \l [QML] {Address} QML counterpart. The \l [QML] - {Address::street} property is now used only for street name, while the - \l [QML] {Address::streetNumber} property is used for other important - address details. - - \section2 Add timeout argument to \l [QML] {PositionSource::update()} - - The \c timeout is specified in milliseconds. If the \c timeout is zero - (the default value), it defaults to a reasonable timeout period as - appropriate for the source. - - \section2 Refactor \l QGeoSatelliteInfo, \l QGeoPositionInfo and \l QGeoAreaMonitorInfo classes - - These classes now use \l QExplicitlySharedDataPointer in their - implementation. It means that the classes implement copy-on-write. It makes - them cheap to copy, so that they can be passed by value. - - Another improvement is the addition of support for the efficient move - operations. - - \section1 Changes in Qt Positioning plugin implementation - - This section provides information about the changes in plugin interface. - - In Qt 5 for we had two versions of plugin interface: - - \list - - \li \c QGeoPositionInfoSourceFactory which provided the basic features. - \li \c QGeoPositionInfoSourceFactoryV2 which extended the base class with - the possibility to provide custom parameters for the created objects. - - \endlist - - In Qt 6 we merged these two implementations into one, leaving only the - \l QGeoPositionInfoSourceFactory class. Its methods now allow to pass - custom parameters. - - \note The interface \e identifier is updated to reflect the major version - update. Use \c {"org.qt-project.qt.position.sourcefactory/6.0"} in your - Qt Positioning plugins. - - Here is an example of plugin class declaration: - - \code - class MyPlugin : public QObject, public QGeoPositionInfoSourceFactory - { - Q_OBJECT - Q_PLUGIN_METADATA(IID "org.qt-project.qt.position.sourcefactory/6.0" - FILE "plugin.json") - Q_INTERFACES(QGeoPositionInfoSourceFactory) - - public: - QGeoPositionInfoSource *positionInfoSource(QObject *parent, const QVariantMap ¶meters) override; - QGeoSatelliteInfoSource *satelliteInfoSource(QObject *parent, const QVariantMap ¶meters) override; - QGeoAreaMonitorSource *areaMonitor(QObject *parent, const QVariantMap ¶meters) override; - }; - \endcode - -*/ diff --git a/src/positioning/doc/src/qtpositioning-android.qdoc b/src/positioning/doc/src/qtpositioning-android.qdoc deleted file mode 100644 index 1857574e..00000000 --- a/src/positioning/doc/src/qtpositioning-android.qdoc +++ /dev/null @@ -1,82 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $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 -** 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 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$ -** -****************************************************************************/ - -/*! -\page qtpositioning-android.html -\inmodule QtPositioning -\title Qt Positioning on Android -\brief Notes on using Qt Positioning on Android - -\section1 Using Qt Positioning from Android Services - -Using Qt Positioning from a service requires several extra actions to be taken, -depending on the Android version. The sections below give more details on -these actions. - -\note Since Android 8 (API level 26), the OS limits how frequently an -application can retrieve the user's current location while running in the -background. The application will normally be able to receive location updates -only a few times each hour. For more information, see -\l {Background Location Limits}. - -\section2 Using Foreground Service - -Since Android 8 (API level 26), the background service can be killed by the -Android OS when the application goes to the background. This normally happens -after around a minute of running in the background. To keep the location service -running, the service should be implemented as a \l {Foreground Service}. Such -service shows a status bar notification, which cannot be dismissed until the -service is stopped or removed from the foreground. This allows the user to be -always aware of the important background activities. - -\note Since Android 9 (API level 28), foreground services require a special -\c FOREGROUND_SERVICE permission. See the Android documentation for more -details on implementing foreground services. - -\section2 Use Background Location Permission - -Since Android 10 (API level 29), the service \e must request the -\l {ACCESS_BACKGROUND_LOCATION} permission. It should be added to the -\c AndroidManifest.xml file as follows: - -\badcode -<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> -\endcode - -\note Once the permission is added to \c {AndroidManifest.xml}, it is still -required to explicitly allow the constant access to the location services -for the application. To do it, one should navigate to \uicontrol Settings -> -\uicontrol {Apps}, select a proper application, open its permissions, and -specify the \uicontrol {Allow all the time} permission for Location -(see the screenshot below). - -\image permissions.png - -Check \l {Access Location in the Background} Android documentation for more -details. - -*/ diff --git a/src/positioning/doc/src/qtpositioning-examples.qdoc b/src/positioning/doc/src/qtpositioning-examples.qdoc deleted file mode 100644 index fbcc9a40..00000000 --- a/src/positioning/doc/src/qtpositioning-examples.qdoc +++ /dev/null @@ -1,38 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $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 -** 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 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$ -** -****************************************************************************/ - -/*! - \group qtpositioning-examples - \title Qt Positioning Examples - \brief Examples for the Qt Positioning module - \ingroup all-examples - \ingroup qtpositioning - - The list of \l {Qt Positioning} examples demonstrating how to use - Positioning API from C++ and QML. - -*/ diff --git a/src/positioning/doc/src/qtpositioning-plugins.qdoc b/src/positioning/doc/src/qtpositioning-plugins.qdoc deleted file mode 100644 index c75896f4..00000000 --- a/src/positioning/doc/src/qtpositioning-plugins.qdoc +++ /dev/null @@ -1,114 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $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 -** 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 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$ -** -****************************************************************************/ - -/*! -\page qtpositioning-plugins.html -\title Qt Positioning Plugins -\brief Default Plugins and Implementing Qt Positioning plugins - -Qt Positioning provides the majority of its functionality through plugins. -This document outlines how to develop a new position plugin. - -\section1 Default plugins -Some plugins already ship with Qt. These are: - -\table - \row - \li \b android - \li Wraps Android positioning subsystem. Available only on Android. - \row - \li \b corelocation - \li Wraps iOS and macOS positioning subsystems. Available only on Apple platforms supporting corelocation. - \row - \li \b geoclue2 - \li A \l {Qt Positioning GeoClue v2 plugin}{GeoClue v2} backend that - provides an interface to the GeoClue v2 D-Bus service. - \row - \li \b gypsy - \li A \l {Qt Positioning Gypsy plugin}{Gypsy} backend that provides - an interface to the Gypsy daemon. - \row - \li \b winrt - \li Wraps WinRT positioning subsystem. Available only on WinRT and Windows10. - \row - \li \b nmea - \li An \l {Qt Positioning NMEA plugin}{NMEA} backend that parses NMEA - streams from a GPS receiver to provide position updates. This plugin can - use serial port, socket or file as a source. - \row - \li \b positionpoll - \li A backend providing only area monitoring functionalities via polling on position updates. -\endtable - - -\section1 Plugin Description - -Each plugin is described by a json file. The json describes the plugins capabilities and -version. Below is an example of a json file used by the postionpoll plugin: - -\quotefile ../../../plugins/position/positionpoll/plugin.json - -The entries have the following meaning: - -\table - \header - \li Key - \li Description - \row - \li Keys - \li The unique name/key of the plugin. Each position plugin must have a unique name. - \row - \li Provider - \li The provider name of the services. Multiple plugins may have the same name. - In such cases the Version string will be used to further distinguish the plugins. - \row - \li Position - \li Set to \c true if the plugin implements a \l QGeoPositionInfoSource. - \row - \li Satellite - \li Set to \c true if the plugin implements a \l QGeoSatelliteInfoSource. - \row - \li Monitor - \li Set to \c true if the plugin implements a \l QGeoAreaMonitorSource. - \row - \li Priority - \li The plugin priority. If multiple plugins have the same provider name, the plugin - with the higest priority will be used. -\endtable - -\section1 Implementing Plugins - -A plugin implementer needs to subclass \l QGeoPositionInfoSourceFactory and override one or more of -its functions. If a plugin does not support a specific feature the function should return 0 or -utilize the default implementation. - -\list - \li \l QGeoPositionInfoSourceFactory::areaMonitor() - \li \l QGeoPositionInfoSourceFactory::positionInfoSource() - \li \l QGeoPositionInfoSourceFactory::satelliteInfoSource() -\endlist -*/ diff --git a/src/positioning/doc/src/qtpositioning-qml.qdoc b/src/positioning/doc/src/qtpositioning-qml.qdoc deleted file mode 100644 index 0c84484b..00000000 --- a/src/positioning/doc/src/qtpositioning-qml.qdoc +++ /dev/null @@ -1,71 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2018 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $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 -** 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 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$ -** -****************************************************************************/ - -/*! - \qmlmodule QtPositioning \QtVer - \title Qt Positioning QML Types - \ingroup qmlmodules - \brief Provides QML types for position information. - - \section1 Overview - - The identifying string for this module is \e QtPositioning. To use the QML - from this module, include the following import statement in the QML file: - - \qml \QtVer - import QtPositioning \1 - \endqml - - \section2 Positioning QML Concepts - - Position information can come from a variety of sources including - satellites, Wi-Fi, text files and so on. The position is described by the - latitude, longitude, and the altitude in meters. For more information, see - the Wikipedia page on - \l {http://en.wikipedia.org/wiki/Geographic_coordinate} - {Geographic Coordinates}. - - The QML position is stored in a \l {coordinate} which contains the - latitude, longitude and altitude of the device. The \l {QtPositioning::} - {Location} contains this \l {coordinate} and adds an address, and also has - a bounding box which defines the recommended viewing region when displaying - the location. - - Now that the device has a position, with regular updates the API can - determine the speed and heading of the device. It can also define a - box-shaped or circular region that triggers notifications when the device - either leaves or enters that region. - - More detailed information on retrieving the current position can be found - under \l {Positioning (QML)}{Location Positioning via QML}. - - \section1 Basic Types - - \annotatedlist qml-QtPositioning5-basictypes - - \section1 Alphabetical Listing of All QML Types -*/ diff --git a/src/positioning/doc/src/qtpositioning.qdoc b/src/positioning/doc/src/qtpositioning.qdoc deleted file mode 100644 index e4e7f8a4..00000000 --- a/src/positioning/doc/src/qtpositioning.qdoc +++ /dev/null @@ -1,153 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2019 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $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 -** 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 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$ -** -****************************************************************************/ - -/*! - \module QtPositioning - \title Qt Positioning C++ Classes - \ingroup modules - \qtcmakepackage Positioning - \qtvariable positioning - - \brief The Positioning module provides positioning information via QML and C++ interfaces. - - To load the Qt Positioning module, add the following statement to your .qml files - - \snippet doc_src_qtpositioning.qml import - - For C++ projects include the header appropriate for the current use case, - for example applications using routes may use - - \code - #include <QGeoCoordinate> - \endcode - - \include module-use.qdocinc using qt module - - \badcode - find_package(Qt6 COMPONENTS Positioning REQUIRED) - target_link_libraries(mytarget PRIVATE Qt6::Positioning) - \endcode - - \include module-use.qdocinc building with qmake - - \badcode - QT += positioning - \endcode - - See more in the \l{Qt Positioning}{Qt Positioning Overview}. - -*/ - - - -/*! -\page qtpositioning-index.html -\title Qt Positioning -\brief The Qt Positioning API provides positioning information via QML and C++ interfaces. -\ingroup technology-apis - -The Qt Positioning API provides positioning information via QML and C++ interfaces. - -Currently the API is supported on \l {Qt for Android}{Android}, -\l {Qt for iOS}{iOS}, \l {Qt for macOS}{\macos}, \l {Qt for Linux/X11}{Linux}, -and \l {Qt for Windows}{Windows} (with GPS receivers exposed as a serial port -providing NMEA sentences or using \c {Windows.Devices.Geolocation}). - -\section1 Overview - -The Qt Positioning API gives developers the ability to determine a position by -using a variety of possible sources, including satellite, or wifi, or text file, -and so on. That information can then be used to for example determine a position -on a map. In addition satellite information can be retrieved and area based monitoring -can be performed. - -\include module-use.qdocinc using qt module - -\badcode -find_package(Qt6 COMPONENTS Positioning REQUIRED) -target_link_libraries(mytarget PRIVATE Qt6::Positioning) -\endcode - -See also the \l {Build with CMake} overview. - -\include module-use.qdocinc building with qmake - -\badcode -QT += positioning -\endcode - -\section2 Getting Started - -To load the Qt Positioning module, add the following statement to your .qml files - -\snippet doc_src_qtpositioning.qml import - -For C++ projects include the header appropriate for the current use case, -for example applications using routes may use - -\code -#include <QGeoCoordinate> -\endcode - -\section1 Module Evolution - -\l {Changes to Qt Positioning} lists important changes in the module API and -functionality that were done for the Qt 6 series of Qt. - -\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 Articles and Guides - -\list - \li \l {Positioning (C++)} {Positioning introduction for C++} - \li \l {Positioning (QML)} {Positioning introduction for QML} - \li \l {Qt Positioning Plugins} - \li \l {Interfaces between C++ and QML Code in Qt Positioning} - \li \l {Qt Positioning on Android} -\endlist - -\section1 Reference - -\list - \li \l {Qt Positioning C++ Classes} - \li \l {Qt Positioning QML Types} -\endlist - -\section1 Examples - -\list - \li \l {Qt Positioning Examples} -\endlist - -*/ |