summaryrefslogtreecommitdiff
path: root/src/plugins/position/serialnmea/qnmeasatelliteinfosource.cpp
Commit message (Collapse)AuthorAgeFilesLines
* QtPositioning: move QNmeaSatelliteInfoSource to the libraryIvan Solovev2021-02-121-557/+0
| | | | | | | | | | - Move files from plugin to the library. - Add virtual methods, so that NMEA parsing can be overridden. - Add and update unit tests Task-number: QTBUG-90491 Change-Id: Ia2deb27c97c1552cd96832a47fe944bdc7638a07 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* QtPositioning: refactor QGeoSatelliteInfoIvan Solovev2021-02-091-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | The following changes were implemented for the class: - Use QExplicitlySharedDataPointer for private d-ptr. - Implement move-constructor and move-assignment operator. The moved-from object is left in partially-formed state. Such behavior is documented. - Use Q_DECLARE_SHARED to declare the typeinfo as Q_RELOCATABLE_TYPE and provide a free swap() overload. - Provide a qHash() overload. - Provide a QTest::toString() overload. All these changes are common pattern for Qt value classes. The benchmark shows that it results in slight performance drop while constructing a brand new object (most probably because of the overhead of QSharedData and QExplicitlySharedDataPointer), but also gives a comparable performance boost for copy constructor and copy assignment. And of course a significant performance boost on move-operations (which were just copy-operations previously). Other API calls didn't have any significant performance impact. Task-number: QTBUG-90491 Change-Id: I51ed7041c4b9ecd763f045abbb80df5e0dcde8f6 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QtPositioning: add QObjectPrivate base for private classesIvan Solovev2021-02-031-4/+4
| | | | | | | | | | Refactor private classes of QGeoAreaMonitorSource, QGeoPositionInfoSource and QGeoSatelliteInfoSource to inherit from QObjectPrivate. This will help us to introduce new QProperty system for these classes. Task-number: QTBUG-90491 Change-Id: I5774c8596372943ce595543c242c8e8c2405f647 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* QtPositioning: reset errors properlyIvan Solovev2021-01-291-1/+6
| | | | | | | | | | | | | Calling startUpdates(), startMonitoring() or requestUpdate() on QGeoPositionInfoSource/QGeoSatelliteInfoSource/QGeoAreaMonitorSource subclasses effectively means starting a new work session, which means that we should not care about the previous errors. This patch resets the errors to Error::NoError in all subclasses when calling these methods. Task-number: QTBUG-90491 Change-Id: Ia9cf0345e8c672d47814d8d0a865cd23541af61a Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* QtPositioning: remove QGeoSatelliteInfoSource::requestTimeout signalIvan Solovev2021-01-261-5/+5
| | | | | | | | | | | | | | | A new Error::UpdateTimeoutError enum value is introduced instead. An errorOccurred() signal with this value is used to notify about update timeouts. [ChangeLog][QtPositioning][Important Behavior Changes] Removed QGeoSatelliteInfoSource::requestTimeout() signal. Use QGeoSatelliteInfoSource::errorOccurred() with a new Error::UpdateTimeoutError value instead. Task-number: QTBUG-90491 Change-Id: I1ab8277896035234cb65a8ece9426b9fa9896f7b Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* QtPositioning: rename signal error() to errorOccurred()Ivan Solovev2021-01-251-1/+1
| | | | | | | | | | | | | Signal name was previouly clashing with the error() method. The new signal name is aligned with QtNetwork and QProcess [ChangeLog][QtPositioning][Important Behavior Changes] Rename signal error() to errorOccurred() in QGeoAreaMonitorSource, QGeoPositionInfoSource and QGeoSatelliteInfoSource Task-number: QTBUG-90491 Change-Id: I241322c6654e1c92e1a3c63a8958bcf96bf5f4f7 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Add missing overrideAlexander Volkov2020-06-291-1/+1
| | | | | Change-Id: Ieae01bc4669cdd503f97399c622989795a0ad734 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Add Satellite support to serialnmea pluginPaolo Angelelli2019-08-151-0/+558
This adds a new class, QNmeaSatelliteInfoSource, locally to the plugin, that behaves similarly to QNmeaPositionInfoSource in the way of handling the IODevice and producing the updates. Change-Id: Id594152dd70514974ac79c7757ce6f0da4631191 Fixes: QTBUG-59274 Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>