This task is about doing some refactoring in QtPositioning.
Things to be considered for now:
- [Done] Remove QGeoPositionInfoSourceFactory in favor of QGeoPositionInfoSourceFactoryV2;
- [Done] Rename "org/qtproject/qt5" to "org/qtproject/qt" for android support (see
- [Done] Rename QGeoPolygon::setPath into setPerimeter;
- [Done] Change QGeoLocation::boundingBox into QGeoShape-based geometry;
- [Done] Remove deprecated QGeoShape::extendShape() method.
- [Done] Add timeout argument to QDeclarativePositionSource::update;
- [Done] error() signal and error() method clash. Rename the signal to errorOccurred();
- [Done] QGeoPositionInfoSource::updateTimeout(), QGeoSatelliteInfoSource::requestTimeout() should be replaced by a new Timeout enum value for the error() signal/state;
- [Done] Investigate the runtime behavior of the error state resetting. Currently qtPositioning source classes never reset. This may not be standard beahvior by Qt where startUpdates/requestUpdate() equivalent functions may cause resets.
- [Done] Consider using QObjectPrivate as private d pointer base type in [QGeoAreaMonitor|QGeoPositionInfo|QGeoSatelliteInfo]Source.
Consider updating QGeoAreaMonitorSource::requestUpdate to use std::function instead of const char * for the signal
- [Done] Validate geoclue/geoclue2/gypsy as appropriate backends for Linux (e.g. is geoclue still relevant or already replaced by geoclue2, any other framework of more relevance?)
- [Done] Find out, how to update the version of QML QtPositioning plugin correctly. Currently it will work only when doing "import QtPositioning" without specific version.
- [Done] Remove PositionSource.nmeaSource and move this to the serialnmea plugin.
- [Done] Rename serialnmea plugin into nmea plugin, and add generic IODevice support (bluetooth/network/file).
- [Done] Properly sanitize all public classes (remove virtuals, fix d-pointer subclassing, etc.).
- [Done] Consider adding a QSharedDataPointer to QGeoSatelliteInfo and QGeoPositionInfo.
- [Done] Add street number to QGeoAddress.
- [Done] Make sure that we do not export unneeded private symbols (grep for the include files and/or class names in qt5 repo).
- [Done] As a final step - write a porting guide with all API changes.
Update/Extend QGeoSatelliteInfo::SatelliteSystem with new known systems (e.g. Galileo, BeiDou...)(will be implemented as part of https://bugreports.qt.io/browse/QTBUG-91074)