summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Remove QtPositioning module from qtlocation.git6.2.46.2.36.2.26.2Ivan Solovev2021-11-02207-41628/+4
| | | | | | | | | | | | | | | 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)
* Doc: Correct a broken link about GPS's accuracyLuca Di Sera2021-09-131-1/+1
| | | | | | | | | | | | | | | | | | The site containing the link has been down since at least 2017 and its author seems to be enjoying his retirement. As it is not expected that the site will be online again or that its content will be moved to a different location, the link was substituted with one from Internet Archive's The Wayback Machine. To ease the reading of the paragraph, the `\l` command was given a link-text argument referencing the content of the website page. Task-number: QTBUG-96127 Change-Id: I3ee26fa3bac795ae03a202c3de0e6c157b4ee074 Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit 6cbe16ea9760871c55fb5152e78228c8362bcd5d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QGeoCoordinateAnimation: fix shortest path interpolationIvan Solovev2021-08-312-2/+2
| | | | | | | | | | | | | | | Inspired by CodeChecker warning about dead code. Fix some copy-paste issues which could lead to incorrect shortest path estimation when it crosses the -180/180 degree line. As a drive-by: remove the unneeded initialization of a variable, that is anyway initialized later. Just to silence another CodeChecker warning. Change-Id: I9ebd5900a5ca331ef5846a06cf6415a2f1093400 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 5042f54a13899242fa508be7c6531b479236bfc3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CoordinateAnimation: fix direction interpolationIvan Solovev2021-08-311-2/+2
| | | | | | | | | | | | | | | | | | The interpolation for the West and East directions were actually confused. When the CoordinateAnimaion.East direction was selected, the interpolation was done in West direction and vice versa. This patch fixes the issue. [ChangeLog][CoordinateAnimation][Important Behavior Change] The value of direction property for CoordinateAnimation is now handled correctly. Previously the values were confused, so specifying CoordinateAnimation.East direction was actually leading to moving West and vice versa. Change-Id: I8e73fc4ad5cabd80bca38c624c70919e54c55127 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 965c80c5db88dd94b666228d432b226c496c9d30) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Update attribution files for clip2tri and poly2triIvan Solovev2021-08-123-6/+6
| | | | | | | | | | | | | | | | Update the qdoc modules in the attribution files, so that they get listed under the common licenses page. Update homepage for poly2tri, because the old page is no longer available. As a drive-by: fix authors page encoding for poly2tri. Task-number: QTBUG-94418 Change-Id: Ifb0488f1f88010932a14e1e18d03551d8b5a2efe Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit ea889dc636f134516a236c653a579a609fc0aea6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Update clipper to version 6.4.2Ivan Solovev2021-08-123-21/+28
| | | | | | | | | | | Also update the qdoc module in attribution file, so that it is listed on the licenses page. Task-number: QTBUG-94418 Change-Id: I101c577854141d00a4d43da25009769cc94c2ac7 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit cbe3f64048fa0ad31e0ff4b95bc4324e4e849242) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix static buildIvan Solovev2021-08-1012-30/+23
| | | | | | | | | | | | | | This patch fixes the "Bundled_Clip2Tri not found" error during static QtPositioning build. Fix backend plugins so that they get automatically linked in static build. Fixes: QTBUG-95582 Change-Id: Iea31c23a055689d9b8f6471345558b330795f597 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 5c91b37a5b592c4c062f4386d83653c2170d1c07) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CMake: Use renamed qt6_add_plugin PLUGIN_TYPE optionAlexandru Croitor2021-08-107-7/+7
| | | | | | | | Task-number: QTBUG-95170 Change-Id: I041d949a1b5d3097f756befb1d03ed3734665f82 Reviewed-by: Kai Koehne <kai.koehne@qt.io> (cherry picked from commit 3dd6e04c7f4d9304aa22737d5610293adbd5995f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CMake: Don't give plugins PUBLIC usage requirements part 2Li Xinwei2021-08-064-5/+4
| | | | | | | | | | Amends bc9ddc25379b969b8e751a192ba66093a7b7dbc2 Task-number: QTBUG-90819 Change-Id: I91d61a86d7ea79b371de7586b3406bd3b3d3c66b Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit de3961f6da9fa3fe32ecb97714dee02be006080e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix qdoc warningsIvan Solovev2021-08-029-78/+11
| | | | | | | | | | This patch fixes the qdoc warnings that were introduced during previous refactoring and documentation rewrites. Change-Id: I3bd32141cc37720abd40738f09d0c08152e8b9d2 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit de07b53c5a8f6de7559ec2ada0efbaf5bec69e61) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Gypsy plugin: introduce plugin parametersIvan Solovev2021-08-023-21/+58
| | | | | | | | | | | | | | | | | | | Previously the plugin was taking the device name from a hardcoded path in the GConf parameters. This patch adds the possibility to specify the device in two ways: * use 'gconfKey' parameter to specify the GConf key, that should be used to extract the device name; * use 'deviceName' parameter to specify the device name directly. If none of these parameters is specified, the old behavior is used, i.e. the plugin uses the hardcoded GConf key to try to extract the device name. Task-number: QTBUG-74995 Change-Id: I7c911630a2d367310e62764a1660171a6856e27b Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit cac741dd3a13bb724b9e16877ea5b3b404e0ad1f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Gypsy plugin: add documentationIvan Solovev2021-08-023-1/+122
| | | | | | | | | | This patch adds a separate documentation page for the Gypsy plugin. Task-number: QTBUG-74995 Change-Id: Id07d9ebee60de98ad780cb015a7278d74e68f0d9 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 289bd144e0916cd2a643214874005c40285dce97) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Gypsy plugin: add satellite identifier and satellite system informationIvan Solovev2021-07-301-0/+17
| | | | | | | | | | | | | Gypsy daemon provides the satellite_id of the available satellites, but this information was never used before. We can also try to determine the satellite system based on the satellite identifier. Task-number: QTBUG-74995 Change-Id: I7eba052034ddb7b64d91a81381d136bf9f2ddeca Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 1267b9321d590daa1f0a91fd050ec11caced849d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* GeoClue v2: do not use env variables and update docsIvan Solovev2021-07-306-14/+123
| | | | | | | | | | | | | | There is no need in using the environment variable to set the desktop id parameter. This patch introduces parsing of the desktop id parameter from the provided plugin parameters. It also introduces a separate page with the plugin documentation. Task-number: QTBUG-74995 Change-Id: Ie59e2410709dc9517b305f0b490d35c6718ce9ba Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 9a6f7a2d31829b541b688b68cff85ffaa1ee2d1c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QtPositioning: add CMake info to class documentationIvan Solovev2021-07-301-0/+1
| | | | | | | | Fixes: QTBUG-94898 Change-Id: If6916b84976bac35a5553686d5d79ea9f7ca11af Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 0ab2fe51bb68ef7c1503fc5aa9880421421bd6dc) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QGeoCoordinate: fix toString() conversionIvan Solovev2021-07-291-24/+23
| | | | | | | | | | | | | | | | | | | Applying qRound() to check if the minutes/seconds should overflow was not the right solution in some cases. It could lead to incorrect overflows, and so - to wrong conversion results. The actual logic of overflow is related to the behavior of QString::number. This patch fixes the logic and also introduces some minor optimizations. After overflow, the minutes or seconds value is always 0.0, because the actual minutes/seconds value is always in range [0; 60). This allows us to get rid of some checks. Fixes: QTBUG-95221 Change-Id: Ie3dcb6cef226b04c43dd973c09c4ae297c583f3b Reviewed-by: Alex Blasche <alexander.blasche@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit 15f06eca6a5085ce14d2eb0b743c5a06365068ea) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QGeoPositionInfo: extend docs for attributesIvan Solovev2021-07-281-0/+8
| | | | | | | | | | | | Add the description of Position Accuracy - a 3D accuracy value. Qt does not provide it directly, but it can be calculated based on horizontal and vertical accuracy values. Task-number: QTBUG-64694 Change-Id: Ic043b2d3a8198fc3ec77f0c5af1ff83934a47044 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 1efdfa7e810e7eb86b2cde3151a6291666dc3e35) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Use private permission API on AndroidTor Arne Vestbø2021-07-282-9/+11
| | | | | | | | | | | The public permission API is being postponed until 6.3, for now, we can use the private API. Change-Id: I02f94402e6fe3f3eecf24526438a5c7ff06399b5 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit fceff8428479d1c7e5136b98368d9bd119f162a6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QGeoLocation: add qHash overloadIvan Solovev2021-07-282-1/+20
| | | | | | | | | Task-number: QTBUG-95163 Change-Id: I6b867a27095c26dbc803609b7d0da6d23cd46249 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 71bed5569c615a84fe91d3a55bb84fc8010c5d5a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QGeoAddress: add qHash overloadIvan Solovev2021-07-272-1/+22
| | | | | | | | Task-number: QTBUG-95163 Change-Id: I837faa1ae9ebcfb0fba170dbfcc0dbd5be2d8fc2 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 0340246d54f8fa402e97c31ad04c16e8f92fdbc0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add qHash overloads to QGeoShape hierarchyIvan Solovev2021-07-2711-0/+49
| | | | | | | | | | | | | | This patch adds qHash overloads to QGeoShape hierarchy, allowing to use the classes as keys in QHash. Note that the actual qHash overload is required only for the base type. All the derived classes are correctly hashed using the virtual method in private d_ptr. Task-number: QTBUG-95163 Change-Id: I186f9d396e698187ebf0363d96c19e324db10905 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit cc6d520ee633d15b18724e3b7e6ecff25570dd0d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QGeoLocation: support move operationsIvan Solovev2021-07-222-2/+31
| | | | | | | | | | | Add move-constructor and move-assignment operator, as well as a swap method. Specialize the type as shared using Q_DECLARE_SHARED. Task-number: QTBUG-95163 Change-Id: Idcb42414b3d60526e7cd55ea3ead53324c7cbc58 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 90d252f97c24d342eda3f1e62dc4c52fbd200067) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QGeoCoordinate: support move operationsIvan Solovev2021-07-222-1/+32
| | | | | | | | | | | Add move-constructor and move-assignment operator, as well as a swap method. Specialize the type as shared using Q_DECLARE_SHARED. Task-number: QTBUG-95163 Change-Id: Ie5e3bd319f9386c7e864122994a5dbcf0fb81240 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit f30b06cd5dbbbbc8a724c279b36d4e09e74e2346) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QGeoAddress: support move operationsIvan Solovev2021-07-192-1/+33
| | | | | | | | | | | Add move-constructor and move-assignment operator, as well as a swap method. Specialize the type as shared using Q_DECLARE_SHARED. Task-number: QTBUG-95163 Change-Id: I6ed041c54c9979d90b475c1d98806b5912220fc2 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit e0d480ea4b86caf3e076ef98496dc4ba601550e5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QtPositioning: convert streaming operators to hidden friendsIvan Solovev2021-07-1910-70/+116
| | | | | | | | | | | | | | | | This patch changes all streaming operators in QtPositioning to hidden friends, so that they can be found only by ADL and do not pollute the global namespace. It also updates couple of tests to make sure that we cover the streaming operators with test cases. Task-number: QTBUG-95163 Change-Id: Ie78b31301d9fb6f658e82114d9637b197e72710a Reviewed-by: Alex Blasche <alexander.blasche@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit 2bf5bf8caf01311eac9218a31af27f82bfc063d6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QtPositioning: make comparison operators hidden friendsIvan Solovev2021-07-1922-213/+225
| | | | | | | | | | | | | | | | | | | This patch changes all comparison operators in QtPositioning to hidden friends, so that they can be found only by ADL and do not pollute the global namespace. Note that the comparison operators are removed from the QGeoShape's child classes. Only the friend operators for the base QGeoShape class itself are implemented. The ADL will manage to correctly detect these operators, and then the virtual methods of the private d-pointers will be called. Task-number: QTBUG-95163 Change-Id: Ice348a8a219395b0470cd0202b1fcc6673d575e2 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 4fc52ffe0b236f7f15841d881102f8b485d50df7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QGeoAreaMonitorSource: add virtual methods to toggle custom propertiesIvan Solovev2021-07-192-0/+34
| | | | | | | | | | | | [ChangeLog][QtPositioning][QGeoAreaMonitorSource] Add virtual methods to set and get custom parameters. Helps to configure and control backend-specific behavior at runtime. Task-number: QTBUG-95163 Change-Id: I77bac8336ec6c7398a98047c8b557e3480106ce4 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit d454e6131c5fd74826e87ca9b72315e3b883ee30) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QGeoShape: fix serialization of QGeoPolygon and QGeoPathIvan Solovev2021-07-191-5/+8
| | | | | | | | | | | | | | | | | There were two problems: 1. The deserialization method was still assuming that QList uses int to index the elements, so it tried to extract the polygon and path size as int, while it was serialized as qsizetype. 2. The QGeoPath didn't serialize and deserialize its width - it was simply lost. This patch fixes both problems and adds some unit-tests to cover these cases. Change-Id: If0ac87731b4481fde6b91e71fb121b3e916b0bfe Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit b7fa0a29ff70dd3316941cf9ec9936d7c1a8434c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QtPositioning: add GnssStatus support for android pluginIvan Solovev2021-07-152-31/+235
| | | | | | | | | | | | | | | | | | | | | This commit adds support for GnssStatus and GnssStatus.Callback API to detect satellite info changes since API Level 24. Note that we also need to retain the old GpsStatus API, because we support API Level 23 as well. This commit introduces an abstract PositioningLooperBase class on the Java side, and creates different subclasses for each of the APIs. Only one subclass is instantiated at each run, depending on the OS version. As a drive-by: removed an unused LocationManager variable during PositioningLooper refactoring. Fixes: QTBUG-92965 Change-Id: I8af1c37d99b75fc9ad27b77b1befa4e1f8626803 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit dd4200e16b49224ad2ff0f39415cddf165561b79) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Use logging category for android plugin outputIvan Solovev2021-07-152-12/+18
| | | | | | | | | | Also update the Java log tag to match the logging category name. Change-Id: I4ec7a1eabfd7a04918a858f3101c6fb708d34292 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit e8b9e113e35ce3c1795d73ae56a9005b5048ebd4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Revert "QtPositioning: add virtual destructor to QGeoShape"Ivan Solovev2021-07-141-1/+1
| | | | | | | | | | | This reverts commit 55739ad4128fc70ca9045fba08e8d0f7b52e28c2. As shown by the API review, it's not a good idea to have a polymorphic copiable class. Change-Id: I4aad974c9c4617711ef314acd1ace9fc4756b549 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit b1bc3ef2900233f5e4f98055c2c40cc54232894f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QtPositioning: emit missing UpdateTimeoutError during regular updatesIvan Solovev2021-07-142-9/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | The documentation tells that UpdateTimeoutError will be raised if the plugin determines that it fails to provide regular updates. This was not implemented for Android plugin so far. This patch adds such feature. However, there is no straightforward way to find out that the Android OS is not able to provide location updates. For example, analyzing satellite info is not the correct approach, because the OS also uses network information to provide the location. As a result, the only reasonable way is to actually detect that there were no location updates within a certain period of time. This is the approach that is implemented in this patch. The period is calculated based on the selected updateInterval() plus some constant. The constant is large enough for the Android OS to start providing updates under normal conditions. Apart from that, the error is raised immediately when the required location providers are disabled. Fixes: QTBUG-36854 Change-Id: I14e8e95e721efd7fbb09d8d9a6e984f80f7249cc Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit d0351428c74dd9f6d9544ca8bdf442317e1976e8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QGeoSatelliteInfo: extend docs for satelliteIdentifier()Ivan Solovev2021-07-141-9/+35
| | | | | | | | | Fixes: QTBUG-47503 Change-Id: I8cfcad2614ec76f990a7cd1a885bf69b70823a8c Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit aa02046dfe9c8c160ab872701aab5c7b768f73c2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QtPositioning: fix provider disabled notificationsIvan Solovev2021-07-141-6/+12
| | | | | | | | | | | | | | | | When starting the location updates, we register the same location listener for multiple location providers (GPS & network). As a result, the onProviderDisabled() callback is called multiple times, and we might report too many "Closed" errors. This patch fixes the logic by introducing an additional flag to track that the native C++ callback was already invoked. Drive-by: fix some code formatting. Change-Id: Ie8e93ae77eb1c9cf9044bf3a35b22c37e9f2a8aa Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 6015afc28d828466c8fc9f783ff9ac63f7579e71) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add warning messages when elements count exceeds INT_MAXIvan Solovev2021-07-142-6/+30
| | | | | | | | | | | | | | | | | | | | | Since Qt 6 we use qsizetype for indexing in QList. This means that all the APIs should be changed accordingly. However, QML still has only an int type. As a result, some APIs have a risk of overflowing and returning incorrect indexes when used from QML. In QtPositioning such classes are QGeoPath and QGeoPolygon. Considering that in the real usecases it's very unlikely that someone will ever add more than std::numeric_limits<int>::max() elements to the path or polygon, this patch just adds warning messages for such cases. As a drive-by: refactor QGeoPolygon::addHole() so that one overload of this method calls another to avoid code duplication. Change-Id: Ib8167f729a70ec511c964ea98fa8f8400a56bb1f Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 22aad092552dbcd8cfd3dc085109199e2c53914e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CMake: Don't give plugins PUBLIC usage requirementsJoerg Bornemann2021-07-063-3/+2
| | | | | | | | | | | | | | | | | | | | | The pro2cmake.py conversion script faithfully reproduced the .pro files for the plugins, which specified the libraries as public. But in CMake, the implications of this are that public usage requirements should then be propagated to consumers. We don't expect any consumers, since a plugin is created as a MODULE library in CMake, so for Windows we don't even have an import library to link with. The only exception to this is for static builds where plugins are created as STATIC libraries instead, but only in certain controlled situations do we then link to plugins. Even then, usage requirements are not expected to propagate to the consumers, so these relationships should always be specified as private. Task-number: QTBUG-90819 Change-Id: I7db09e5cc0f0e7179d2d6da2acf3c1eadc02f8e2 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit bc9ddc25379b969b8e751a192ba66093a7b7dbc2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* AndroidPositioning: remove dead codeIvan Solovev2021-07-021-5/+0
| | | | | | | | | | This patch removes a static variable, which is a leftover from a refactoring. It does nothing and can be safely removed. Change-Id: I45db422532ccff0bdcf86c836a2b7d5b94042058 Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io> (cherry picked from commit 30a0b679e05688dbbc6f8e109528c924a5c523bf) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QtPositioning: extend Android docsIvan Solovev2021-06-236-2/+149
| | | | | | | | | | This patch extends the docs to mention some Android-specific topics Task-number: QTBUG-71396 Change-Id: I8f0757a896faeee279cfa0f16a940fe5e66df3a9 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit 81b8ffc7514eddebb8d89d4ded0bee385fd43abf) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QtPositioning: support background location requestsIvan Solovev2021-06-231-9/+24
| | | | | | | | | | | | | | | | Once running as a service, the application can only check for the existing permissions, but not request them. Previously positioning Android plugin was not handling this case correctly. This patch fixes it. Now when the code is running from a service, we only check for the required permission. Task-number: QTBUG-71396 Change-Id: Ica147a362e90624dd1a9c1c11f0ff3577991f433 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit 2bc885ee2d3deba7567b96214d5361ed7a3f8af4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QtPositioning: fix doc missing directory warningsIvan Solovev2021-06-141-2/+0
| | | | | | | | | | | | This commit amends fd1baad7d3663cf54cb593a0fff74d1da9279c29. After refactoring the QML plugin part, the docs config was not able to find the removed directories and generated warnings. This patch adjusts the paths in the config. Change-Id: Iff581b900aaab2fabe950e78655decadd3ffa7da Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 74049b0250679b35ead74aeff6e3a4a3979df4a1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Adjust QtLocation's QML parts to CMake API changesFabian Kosmale2021-06-057-60/+13
| | | | | | | Pending on those changes getting merged Change-Id: If5bcc263e0c5db0bf8e23a1b65d69c990997aec9 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Geoclue2: reorder type declaration macrosIvan Solovev2021-06-011-2/+2
| | | | | | | | | This patch reorders the calls to Q_DECLARE_TYPEINFO and Q_DECLARE_METATYPE to unblock the submodule update. Task-number: QTBUG-94124 Change-Id: I624cb5ca8632af7dedad74bb7513a022bb85d7f4 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Update qHash signatureKai Köhne2021-05-272-4/+3
| | | | | | | | | qHash in Qt 6 should use size_t Change-Id: Idbf4a8bf17d476aad91fc64fef3d0e753c05df18 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* QGeoAreaMonitorPolling: fix connection check logicIvan Solovev2021-05-202-22/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | QGeoAreaMonitorPolling class overrides QObject::connectNotify() and QObject::disconnectNotify() to check, if it has any connected objects and decide, if it needs to start/stop position monitoring. Previously it used QObject::isSignalConnected() to perform the check. However this method locks a QObject's mutex, so it's not safe to call it from QObject::disconnectNotify(), because the latter is called from a QObject's destructor, which is also locking a QObject's mutex. Both locks use signalSlotLock static method from qobject.cpp to determine, which mutex to lock. The selection is made based on the object's address. At some rare case this can lead to selecting the same mutex. And as a result we get a deadlock, when trying to lock the same mutex for the second time. This patch updates the logic of the overridden methods in QGeoAreaMonitorPolling. They do not use the QObject::isSignalConnected() method, but implement a custom solution to track the number of connections. This solution requires synchronization, because connectNotify() and disconnectNotify() can be triggered from different threads. Fixes: QTBUG-93420 Fixes: QTBUG-91434 Change-Id: I45ba03e238edc136f1bb42ca6b11a528ab5c22e8 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* PositionSource: improve documentationIvan Solovev2021-05-181-1/+74
| | | | | | | | | | This patch extends the documentation to explain the correct ways of using the 'active' bindable property, and the start() and stop() methods. Change-Id: I098a0673fec1ae5584e9af829c81f06abb0ddb96 Reviewed-by: Juha Vuolle <juha.vuolle@insta.fi> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* QDeclarativePositionSource: add active property bindingIvan Solovev2021-05-172-25/+75
| | | | | | | | | This patch introduces binding support for "active" property Task-number: QTBUG-89874 Change-Id: Idcfba6012743b43e168a423e8adf7eee3ec94ace Reviewed-by: Juha Vuolle <juha.vuolle@insta.fi> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* QDeclarativePositionSource: add property bindingsIvan Solovev2021-05-174-44/+137
| | | | | | | | | | | | | | | | | This commit ports most of the properties in QDeclarativePositionSource to new property system. * "active" property will be corever in the next patch. * "updateInterval" and "preferredPositioningMethods" properties are not converted to bindables because they have custom getters and setters, which makes the code for porting them complicated and adds memory overhead. However these properties are normally set once and not updated, so there is no real benefit from converting them. Task-number: QTBUG-89874 Change-Id: If087405c4515725ba304dd18a880cb25fbad20c0 Reviewed-by: Juha Vuolle <juha.vuolle@insta.fi> Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* QtPositioning: use new permissions API in android pluginIvan Solovev2021-05-173-32/+17
| | | | | | | | | | | | This patch introduces the usage of the new public permissions API. It allows to remove the dependency on the private JNI-related headers. As a drive-by: do a small clean-up for the included headers. Task-number: QTBUG-92475 Change-Id: I9e3580903c68361b160da86e4fe117d46da250e1 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* QGeoPositionInfoSource: add property bindingsIvan Solovev2021-05-123-27/+66
| | | | | | | | | | | Also introduced a couple of documentation fixes Task-number: QTBUG-89874 Change-Id: Icb902784378cf2847c6a5dab23dbf1acbb228e8a Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Juha Vuolle <juha.vuolle@insta.fi> Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* QDeclarativeGeoLocation: add property bindingsIvan Solovev2021-05-102-27/+66
| | | | | | | | | | Signals of QDeclarativeGeoLocation class are removed because they were only needed for QML. With the new bindable properties we do not need them any more. Task-number: QTBUG-89874 Change-Id: I084fbde129d0bf3a1d7ad496f7fa25274593989f Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>