summaryrefslogtreecommitdiff
path: root/src/positioning/doc/src/qt6-changes.qdoc
diff options
context:
space:
mode:
authorIvan Solovev <ivan.solovev@qt.io>2021-10-21 17:27:08 +0200
committerIvan Solovev <ivan.solovev@qt.io>2021-11-02 09:46:33 +0200
commit6db775f6d9d72cf8ee9d66333b8424e74be1e352 (patch)
tree0a293756b61619a91970d9368a0449b7bf922728 /src/positioning/doc/src/qt6-changes.qdoc
parent5a1f44c3d41febca8480c077bd4c34e5a3332cdc (diff)
downloadqtlocation-6.2.tar.gz
Remove QtPositioning module from qtlocation.git6.2.46.2.36.2.26.2
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/src/qt6-changes.qdoc')
-rw-r--r--src/positioning/doc/src/qt6-changes.qdoc233
1 files changed, 0 insertions, 233 deletions
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 &parameters) override;
- QGeoSatelliteInfoSource *satelliteInfoSource(QObject *parent, const QVariantMap &parameters) override;
- QGeoAreaMonitorSource *areaMonitor(QObject *parent, const QVariantMap &parameters) override;
- };
- \endcode
-
-*/