Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package qt6-positioning for openSUSE:Factory 
checked in at 2024-10-17 18:37:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qt6-positioning (Old)
 and      /work/SRC/openSUSE:Factory/.qt6-positioning.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "qt6-positioning"

Thu Oct 17 18:37:47 2024 rev:25 rq:1207621 version:6.8.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/qt6-positioning/qt6-positioning.changes  
2024-10-03 18:02:12.102737698 +0200
+++ 
/work/SRC/openSUSE:Factory/.qt6-positioning.new.19354/qt6-positioning.changes   
    2024-10-17 18:37:50.622514505 +0200
@@ -1,0 +2,6 @@
+Tue Oct  8 09:29:47 UTC 2024 - Christophe Marin <christo...@krop.fr>
+
+- Update to 6.8.0:
+  * https://www.qt.io/blog/qt-6.8-released
+
+-------------------------------------------------------------------

Old:
----
  qtpositioning-everywhere-src-6.7.3.tar.xz

New:
----
  qtpositioning-everywhere-src-6.8.0.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ qt6-positioning.spec ++++++
--- /var/tmp/diff_new_pack.3GpbiT/_old  2024-10-17 18:37:51.682558707 +0200
+++ /var/tmp/diff_new_pack.3GpbiT/_new  2024-10-17 18:37:51.686558874 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package qt6-positioning
 #
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,8 +16,8 @@
 #
 
 
-%define real_version 6.7.3
-%define short_version 6.7
+%define real_version 6.8.0
+%define short_version 6.8
 %define tar_name qtpositioning-everywhere-src
 %define tar_suffix %{nil}
 #
@@ -27,7 +27,7 @@
 %endif
 #
 Name:           qt6-positioning%{?pkg_suffix}
-Version:        6.7.3
+Version:        6.8.0
 Release:        0
 Summary:        Qt 6 Positioning plugins and libraries
 License:        GPL-3.0-or-later

++++++ qtpositioning-everywhere-src-6.7.3.tar.xz -> 
qtpositioning-everywhere-src-6.8.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtpositioning-everywhere-src-6.7.3/.cmake.conf 
new/qtpositioning-everywhere-src-6.8.0/.cmake.conf
--- old/qtpositioning-everywhere-src-6.7.3/.cmake.conf  2024-09-19 
20:59:08.000000000 +0200
+++ new/qtpositioning-everywhere-src-6.8.0/.cmake.conf  2024-10-02 
16:25:44.000000000 +0200
@@ -1,4 +1,4 @@
-set(QT_REPO_MODULE_VERSION "6.7.3")
+set(QT_REPO_MODULE_VERSION "6.8.0")
 set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "alpha1")
 
 set(QT_EXTRA_INTERNAL_TARGET_DEFINES "QT_LEAN_HEADERS=1")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtpositioning-everywhere-src-6.7.3/.tag 
new/qtpositioning-everywhere-src-6.8.0/.tag
--- old/qtpositioning-everywhere-src-6.7.3/.tag 2024-09-19 20:59:08.000000000 
+0200
+++ new/qtpositioning-everywhere-src-6.8.0/.tag 2024-10-02 16:25:44.000000000 
+0200
@@ -1 +1 @@
-415babffd1cfcfec64a5e9a15c896d476c9331b6
+0a6e079b80de16c4cd329c031741c8edd6b8f49e
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/config.tests/gypsy/main.cpp 
new/qtpositioning-everywhere-src-6.8.0/config.tests/gypsy/main.cpp
--- old/qtpositioning-everywhere-src-6.7.3/config.tests/gypsy/main.cpp  
2024-09-19 20:59:08.000000000 +0200
+++ new/qtpositioning-everywhere-src-6.8.0/config.tests/gypsy/main.cpp  
2024-10-02 16:25:44.000000000 +0200
@@ -1,5 +1,5 @@
 // Copyright (C) 2016 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH 
Qt-GPL-exception-1.0
+// SPDX-License-Identifier: BSD-3-Clause
 
 #include <gypsy/gypsy-satellite.h>
 #include <gypsy/gypsy-control.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/config.tests/winrt/main.cpp 
new/qtpositioning-everywhere-src-6.8.0/config.tests/winrt/main.cpp
--- old/qtpositioning-everywhere-src-6.7.3/config.tests/winrt/main.cpp  
2024-09-19 20:59:08.000000000 +0200
+++ new/qtpositioning-everywhere-src-6.8.0/config.tests/winrt/main.cpp  
2024-10-02 16:25:44.000000000 +0200
@@ -1,5 +1,5 @@
 // Copyright (C) 2016 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH 
Qt-GPL-exception-1.0
+// SPDX-License-Identifier: BSD-3-Clause
 
 #include <functional>
 #include <windows.system.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtpositioning-everywhere-src-6.7.3/dependencies.yaml 
new/qtpositioning-everywhere-src-6.8.0/dependencies.yaml
--- old/qtpositioning-everywhere-src-6.7.3/dependencies.yaml    2024-09-19 
20:59:08.000000000 +0200
+++ new/qtpositioning-everywhere-src-6.8.0/dependencies.yaml    2024-10-02 
16:25:44.000000000 +0200
@@ -1,10 +1,10 @@
 dependencies:
   ../qtbase:
-    ref: 92b685784960eea6eb353688cf0edeb94d69c6cd
+    ref: b839e9b36db3a4e50dfb34521d8ef8de1fd01969
     required: true
   ../qtdeclarative:
-    ref: 34ffe0c15a9564fefcf01a738eb0bde370399959
+    ref: 2884c601242f030307a5acdca984b3aa0d34e064
     required: false
   ../qtserialport:
-    ref: 0b7a499e8a58c1e7b80d9beae86c10dbfedf5542
+    ref: fc0a965d5bada8296595fcefacebc235dccf1a75
     required: false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/examples/positioning/weatherinfo/doc/src/weatherinfo.qdoc
 
new/qtpositioning-everywhere-src-6.8.0/examples/positioning/weatherinfo/doc/src/weatherinfo.qdoc
--- 
old/qtpositioning-everywhere-src-6.7.3/examples/positioning/weatherinfo/doc/src/weatherinfo.qdoc
    2024-09-19 20:59:08.000000000 +0200
+++ 
new/qtpositioning-everywhere-src-6.8.0/examples/positioning/weatherinfo/doc/src/weatherinfo.qdoc
    2024-10-02 16:25:44.000000000 +0200
@@ -130,17 +130,4 @@
 
     \snippet weatherinfo/WeatherInfo.qml 3
     \snippet weatherinfo/WeatherInfo.qml 4
-
-    \section1 Files and Attributions
-
-    The example bundles the following images from Third-Party sources:
-
-    \table
-    \row
-        \li \l{weatherinfo-tango-icons}{Tango Icons}
-        \li Public Domain
-    \row
-        \li \l{weatherinfo-tango-weather-pack}{Tango Weather Icon Pack by 
Darkobra}
-        \li Public Domain
-    \endtable
 */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/3rdparty/poly2tri/qt_attribution.json
 
new/qtpositioning-everywhere-src-6.8.0/src/3rdparty/poly2tri/qt_attribution.json
--- 
old/qtpositioning-everywhere-src-6.7.3/src/3rdparty/poly2tri/qt_attribution.json
    2024-09-19 20:59:08.000000000 +0200
+++ 
new/qtpositioning-everywhere-src-6.8.0/src/3rdparty/poly2tri/qt_attribution.json
    2024-10-02 16:25:44.000000000 +0200
@@ -6,7 +6,7 @@
 
     "Description": "Poly2Tri is a sweepline constrained Delaunay Polygon 
Triangulation Library.",
     "Homepage": "https://github.com/greenm01/poly2tri";,
-    "Version": "commit 0be213d95f82471b95d96d0248a0490d0a934f9f",
+    "Version": "commit a922022da4c0d3a55b1d6b6d634219caea653053",
     "LicenseId": "BSD-3-Clause",
     "License": "BSD 3-clause \"New\" or \"Revised\" License",
     "LicenseFile": "LICENSE",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/3rdparty/poly2tri/sweep/sweep.cpp 
new/qtpositioning-everywhere-src-6.8.0/src/3rdparty/poly2tri/sweep/sweep.cpp
--- 
old/qtpositioning-everywhere-src-6.7.3/src/3rdparty/poly2tri/sweep/sweep.cpp    
    2024-09-19 20:59:08.000000000 +0200
+++ 
new/qtpositioning-everywhere-src-6.8.0/src/3rdparty/poly2tri/sweep/sweep.cpp    
    2024-10-02 16:25:44.000000000 +0200
@@ -252,6 +252,35 @@
 }
 
 // True if HoleAngle exceeds 90 degrees.
+// LargeHole_DontFill checks if the advancing front has a large hole.
+// A "Large hole" is a triangle formed by a sequence of points in the advancing
+// front where three neighbor points form a triangle.
+// And angle between left-top, bottom, and right-top points is more than 90 
degrees.
+// The first part of the algorithm reviews only three neighbor points, e.g. 
named A, B, C.
+// Additional part of this logic reviews a sequence of 5 points -
+// additionally reviews one point before and one after the sequence of three 
(A, B, C),
+// e.g. named X and Y.
+// In this case, angles are XBC and ABY and this if angles are negative or more
+// than 90 degrees LargeHole_DontFill returns true.
+// But there is a configuration when ABC has a negative angle but XBC or ABY 
is less
+// than 90 degrees and positive.
+// Then function LargeHole_DontFill return false and initiates filling.
+// This filling creates a triangle ABC and adds it to the advancing front.
+// But in the case when angle ABC is negative this triangle goes inside the 
advancing front
+// and can intersect previously created triangles.
+// This triangle leads to making wrong advancing front and problems in 
triangulation in the future.
+// Looks like such a triangle should not be created.
+// The simplest way to check and fix it is to check an angle ABC.
+// If it is negative LargeHole_DontFill should return true and
+// not initiate creating the ABC triangle in the advancing front.
+// X______A         Y
+//        \        /
+//         \      /
+//          \ B  /
+//           |  /
+//           | /
+//           |/
+//           C
 bool Sweep::LargeHole_DontFill(Node* node) {
 
   Node* nextNode = node->next;
@@ -259,6 +288,9 @@
   if (!AngleExceeds90Degrees(node->point, nextNode->point, prevNode->point))
           return false;
 
+  if (AngleIsNegative(node->point, nextNode->point, prevNode->point))
+          return true;
+
   // Check additional points on front.
   Node* next2Node = nextNode->next;
   // "..Plus.." because only want angles on same side as point being added.
@@ -273,6 +305,11 @@
   return true;
 }
 
+bool Sweep::AngleIsNegative(Point* origin, Point* pa, Point* pb) {
+    const double angle = Angle(*origin, *pa, *pb);
+    return angle < 0;
+}
+
 bool Sweep::AngleExceeds90Degrees(Point* origin, Point* pa, Point* pb) {
   double angle = Angle(*origin, *pa, *pb);
   bool exceeds90Degrees = ((angle > PI_div2) || (angle < -PI_div2));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/3rdparty/poly2tri/sweep/sweep.h 
new/qtpositioning-everywhere-src-6.8.0/src/3rdparty/poly2tri/sweep/sweep.h
--- old/qtpositioning-everywhere-src-6.7.3/src/3rdparty/poly2tri/sweep/sweep.h  
2024-09-19 20:59:08.000000000 +0200
+++ new/qtpositioning-everywhere-src-6.8.0/src/3rdparty/poly2tri/sweep/sweep.h  
2024-10-02 16:25:44.000000000 +0200
@@ -33,7 +33,7 @@
  * Zalik, B.(2008)'Sweep-line algorithm for constrained Delaunay 
triangulation',
  * International Journal of Geographical Information Science
  *
- * "FlipScan" Constrained Edge Algorithm invented by Thomas Åhlén, 
thah...@gmail.com
+ * "FlipScan" Constrained Edge Algorithm invented by Thomas Åhlén, 
thah...@gmail.com
  */
 
 #ifndef SWEEP_H
@@ -172,6 +172,7 @@
   // Decision-making about when to Fill hole.
   // Contributed by ToolmakerSteve2
   bool LargeHole_DontFill(Node* node);
+  bool AngleIsNegative(Point* origin, Point* pa, Point* pb);
   bool AngleExceeds90Degrees(Point* origin, Point* pa, Point* pb);
   bool AngleExceedsPlus90DegreesOrIsNegative(Point* origin, Point* pa, Point* 
pb);
   double Angle(Point& origin, Point& pa, Point& pb);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/plugins/position/android/jar/src/org/qtproject/qt/android/positioning/QtPositioning.java
 
new/qtpositioning-everywhere-src-6.8.0/src/plugins/position/android/jar/src/org/qtproject/qt/android/positioning/QtPositioning.java
--- 
old/qtpositioning-everywhere-src-6.7.3/src/plugins/position/android/jar/src/org/qtproject/qt/android/positioning/QtPositioning.java
 2024-09-19 20:59:08.000000000 +0200
+++ 
new/qtpositioning-everywhere-src-6.8.0/src/plugins/position/android/jar/src/org/qtproject/qt/android/positioning/QtPositioning.java
 2024-10-02 16:25:44.000000000 +0200
@@ -4,6 +4,7 @@
 package org.qtproject.qt.android.positioning;
 
 import android.content.Context;
+import android.location.altitude.AltitudeConverter;
 import android.location.GpsSatellite;
 import android.location.GpsStatus;
 import android.location.Location;
@@ -22,7 +23,7 @@
 
 import android.util.Log;
 
-public class QtPositioning implements LocationListener
+class QtPositioning implements LocationListener
 {
 
     private static final String TAG = "qt.positioning.android";
@@ -41,16 +42,16 @@
     */
     private int expectedProviders = 0;
 
-    public static final int QT_GPS_PROVIDER = 1;
-    public static final int QT_NETWORK_PROVIDER = 2;
+    static final int QT_GPS_PROVIDER = 1;
+    static final int QT_NETWORK_PROVIDER = 2;
 
     /* The following values must match the corresponding error enums in the Qt 
API*/
-    public static final int QT_ACCESS_ERROR = 0;
-    public static final int QT_CLOSED_ERROR = 1;
-    public static final int QT_POSITION_UNKNOWN_SOURCE_ERROR = 2;
-    public static final int QT_POSITION_NO_ERROR = 3;
-    public static final int QT_SATELLITE_NO_ERROR = 2;
-    public static final int QT_SATELLITE_UNKNOWN_SOURCE_ERROR = -1;
+    static final int QT_ACCESS_ERROR = 0;
+    static final int QT_CLOSED_ERROR = 1;
+    static final int QT_POSITION_UNKNOWN_SOURCE_ERROR = 2;
+    static final int QT_POSITION_NO_ERROR = 3;
+    static final int QT_SATELLITE_NO_ERROR = 2;
+    static final int QT_SATELLITE_UNKNOWN_SOURCE_ERROR = -1;
 
     /* True, if updates were caused by requestUpdate() */
     private boolean isSingleUpdate = false;
@@ -63,14 +64,20 @@
     private Location lastNetwork = null;
     /* If true this class acts as satellite signal monitor rather than 
location monitor */
     private boolean isSatelliteUpdate = false;
+    /* Try to convert the altitude to MSL or not */
+    private boolean useAltitudeConverter = false;
 
     private PositioningLooperBase looperThread;
 
     private boolean isLocationProvidersDisabledInvoked = false;
 
-    static public void setContext(Context context)
+    private static Context appContext = null;
+    private static AltitudeConverter altitudeConverter = null;
+
+    static void setContext(Context context)
     {
         try {
+            appContext = context;
             locationManager = 
(LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
         } catch(Exception e) {
             e.printStackTrace();
@@ -102,12 +109,28 @@
         return retList;
     }
 
-    static public Location lastKnownPosition(boolean fromSatelliteOnly)
+    static private void addMslAltitude(Location location)
+    {
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
+            if (altitudeConverter == null)
+                altitudeConverter = new AltitudeConverter();
+            try {
+                altitudeConverter.addMslAltitudeToLocation(appContext, 
location);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    static Location lastKnownPosition(boolean fromSatelliteOnly,
+                                             boolean useAltitudeConverter)
     {
         Location gps = null;
         Location network = null;
         try {
             gps = 
locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
+            if (useAltitudeConverter)
+                addMslAltitude(gps);
         } catch (Exception e) {
             // This can throw if we only use ACCESS_COARSE_LOCATION. However,
             // if we didn't set fromSatelliteOnly to true, that is not an 
error.
@@ -118,6 +141,8 @@
         if (!fromSatelliteOnly) {
             try {
                 network = 
locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
+                if (useAltitudeConverter)
+                    addMslAltitude(network);
             } catch(Exception e) {
                 e.printStackTrace();
                 network = null;
@@ -197,7 +222,8 @@
     }
 
 
-    static public int startUpdates(int androidClassKey, int locationProvider, 
int updateInterval)
+    static int startUpdates(int androidClassKey, int locationProvider, int 
updateInterval,
+                                   boolean useAltitudeConverter)
     {
         synchronized (m_syncObject) {
             try {
@@ -207,6 +233,7 @@
                 positioningListener.nativeClassReference = androidClassKey;
                 positioningListener.expectedProviders = locationProvider;
                 positioningListener.isSatelliteUpdate = false;
+                positioningListener.useAltitudeConverter = 
useAltitudeConverter;
 
                 if (updateInterval == 0)
                     updateInterval = 50; //don't update more often than once 
per 50ms
@@ -258,7 +285,7 @@
         }
     }
 
-    static public void stopUpdates(int androidClassKey)
+    static void stopUpdates(int androidClassKey)
     {
         synchronized (m_syncObject) {
             try {
@@ -271,7 +298,8 @@
         }
     }
 
-    static public int requestUpdate(int androidClassKey, int locationProvider, 
int timeout)
+    static int requestUpdate(int androidClassKey, int locationProvider, int 
timeout,
+                                    boolean useAltitudeConverter)
     {
         synchronized (m_syncObject) {
             try {
@@ -282,6 +310,7 @@
                 positioningListener.isSingleUpdate = true;
                 positioningListener.expectedProviders = locationProvider;
                 positioningListener.isSatelliteUpdate = false;
+                positioningListener.useAltitudeConverter = 
useAltitudeConverter;
 
                 if ((locationProvider & QT_GPS_PROVIDER) > 0) {
                     Log.d(TAG, "Single update using GPS");
@@ -328,7 +357,7 @@
         }
     }
 
-    static public int startSatelliteUpdates(int androidClassKey, int 
updateInterval, boolean isSingleRequest)
+    static int startSatelliteUpdates(int androidClassKey, int updateInterval, 
boolean isSingleRequest)
     {
         synchronized (m_syncObject) {
             try {
@@ -374,7 +403,7 @@
         }
     }
 
-    public QtPositioning()
+    QtPositioning()
     {
         // Use GpsStatus for API Level <= 23 (version M and below) and
         // GnssStatus for other API levels.
@@ -384,7 +413,7 @@
             looperThread = new PositioningLooperGnss();
     }
 
-    public Looper looper()
+    Looper looper()
     {
         return looperThread.looper();
     }
@@ -429,6 +458,7 @@
             looperRunning = false;
         }
 
+        @Override
         public void run()
         {
             Looper.prepare();
@@ -447,24 +477,24 @@
             }
         }
 
-        public void quitLooper()
+        void quitLooper()
         {
             if (isSatelliteLooper)
                 removeSatelliteInfoListener();
             looper().quit();
         }
 
-        public synchronized boolean isReady()
+        synchronized boolean isReady()
         {
             return looperRunning;
         }
 
-        public void isSatelliteListener(boolean isListener)
+        void isSatelliteListener(boolean isListener)
         {
             isSatelliteLooper = isListener;
         }
 
-        public Looper looper()
+        Looper looper()
         {
             return posLooper;
         }
@@ -501,7 +531,7 @@
 
                     ArrayList<GpsSatellite> list = new 
ArrayList<GpsSatellite>();
                     while (it.hasNext()) {
-                        GpsSatellite sat = (GpsSatellite) it.next();
+                        GpsSatellite sat = it.next();
                         list.add(sat);
                     }
                     GpsSatellite[] sats = list.toArray(new 
GpsSatellite[list.size()]);
@@ -551,11 +581,11 @@
         }
     }
 
-    public static native void positionUpdated(Location update, int 
androidClassKey, boolean isSingleUpdate);
-    public static native void locationProvidersDisabled(int androidClassKey);
-    public static native void locationProvidersChanged(int androidClassKey);
-    public static native void satelliteGpsUpdated(Object[] update, int 
androidClassKey, boolean isSingleUpdate);
-    public static native void satelliteGnssUpdated(GnssStatus update, int 
androidClassKey, boolean isSingleUpdate);
+    static native void positionUpdated(Location update, int androidClassKey, 
boolean isSingleUpdate);
+    static native void locationProvidersDisabled(int androidClassKey);
+    static native void locationProvidersChanged(int androidClassKey);
+    static native void satelliteGpsUpdated(Object[] update, int 
androidClassKey, boolean isSingleUpdate);
+    static native void satelliteGnssUpdated(GnssStatus update, int 
androidClassKey, boolean isSingleUpdate);
 
     @Override
     public void onLocationChanged(Location location) {
@@ -563,6 +593,9 @@
         if (location == null)
             return;
 
+        if (useAltitudeConverter)
+            addMslAltitude(location);
+
         if (isSatelliteUpdate) //we are a QGeoSatelliteInfoSource -> ignore
             return;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/plugins/position/android/src/jnipositioning.cpp
 
new/qtpositioning-everywhere-src-6.8.0/src/plugins/position/android/src/jnipositioning.cpp
--- 
old/qtpositioning-everywhere-src-6.7.3/src/plugins/position/android/src/jnipositioning.cpp
  2024-09-19 20:59:08.000000000 +0200
+++ 
new/qtpositioning-everywhere-src-6.8.0/src/plugins/position/android/src/jnipositioning.cpp
  2024-10-02 16:25:44.000000000 +0200
@@ -240,6 +240,16 @@
             if (!qFuzzyIsNull(value))
                 coordinate.setAltitude(value);
         }
+        // MSL altitude, available in API Level 34+.
+        // It will be available only if we requested it when starting updates.
+        if (QNativeInterface::QAndroidApplication::sdkVersion() >= 34) {
+            attributeExists = jniObject.callMethod<jboolean>("hasMslAltitude");
+            if (attributeExists) {
+                const jdouble value = 
jniObject.callMethod<jdouble>("getMslAltitudeMeters");
+                if (!qFuzzyIsNull(value))
+                    coordinate.setAltitude(value);
+            }
+        }
 
         info.setCoordinate(coordinate);
 
@@ -420,7 +430,8 @@
         return sats;
     }
 
-    QGeoPositionInfo lastKnownPosition(bool 
fromSatellitePositioningMethodsOnly)
+    QGeoPositionInfo lastKnownPosition(bool 
fromSatellitePositioningMethodsOnly,
+                                       bool useAltitudeConverter)
     {
         QJniEnvironment env;
         if (!env.jniEnv())
@@ -434,7 +445,8 @@
             return {};
 
         QJniObject locationObj = QJniObject::callStaticMethod<jobject>(
-                positioningClass(), lastKnownPositionMethodId, 
fromSatellitePositioningMethodsOnly);
+                positioningClass(), lastKnownPositionMethodId, 
fromSatellitePositioningMethodsOnly,
+                useAltitudeConverter);
         jobject location = locationObj.object();
         if (location == nullptr)
             return QGeoPositionInfo();
@@ -483,7 +495,7 @@
             int errorCode = QJniObject::callStaticMethod<jint>(
                     positioningClass(), startUpdatesMethodId, androidClassKey,
                     positioningMethodToInt(preferredMethods),
-                    source->updateInterval());
+                    source->updateInterval(), source->useAltitudeConverter());
             switch (errorCode) {
             case 0:
             case 1:
@@ -522,7 +534,7 @@
             int errorCode = QJniObject::callStaticMethod<jint>(
                     positioningClass(), requestUpdateMethodId, androidClassKey,
                     positioningMethodToInt(preferredMethods),
-                    timeout);
+                    timeout, source->useAltitudeConverter());
             switch (errorCode) {
             case 0:
             case 1:
@@ -728,10 +740,12 @@
 
     GET_AND_CHECK_STATIC_METHOD(providerListMethodId, "providerList", 
jintArray);
     GET_AND_CHECK_STATIC_METHOD(lastKnownPositionMethodId, "lastKnownPosition",
-                                QtJniTypes::Location, bool);
-    GET_AND_CHECK_STATIC_METHOD(startUpdatesMethodId, "startUpdates", jint, 
jint, jint, jint);
+                                QtJniTypes::Location, bool, bool);
+    GET_AND_CHECK_STATIC_METHOD(startUpdatesMethodId, "startUpdates", jint, 
jint, jint, jint,
+                                bool);
     GET_AND_CHECK_STATIC_METHOD(stopUpdatesMethodId, "stopUpdates", void, 
jint);
-    GET_AND_CHECK_STATIC_METHOD(requestUpdateMethodId, "requestUpdate", jint, 
jint, jint, jint);
+    GET_AND_CHECK_STATIC_METHOD(requestUpdateMethodId, "requestUpdate", jint, 
jint, jint, jint,
+                                bool);
     GET_AND_CHECK_STATIC_METHOD(startSatelliteUpdatesMethodId, 
"startSatelliteUpdates",
                                 jint, jint, jint, bool);
 
@@ -747,6 +761,9 @@
 
     __android_log_print(ANDROID_LOG_INFO, logTag, "Positioning start");
 
+    const auto context = QNativeInterface::QAndroidApplication::context();
+    QtJniTypes::QtPositioning::callStaticMethod<void>("setContext", context);
+
     if (!registerNatives()) {
         __android_log_print(ANDROID_LOG_FATAL, logTag, "registerNatives() 
failed");
         return -1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/plugins/position/android/src/jnipositioning.h
 
new/qtpositioning-everywhere-src-6.8.0/src/plugins/position/android/src/jnipositioning.h
--- 
old/qtpositioning-everywhere-src-6.7.3/src/plugins/position/android/src/jnipositioning.h
    2024-09-19 20:59:08.000000000 +0200
+++ 
new/qtpositioning-everywhere-src-6.8.0/src/plugins/position/android/src/jnipositioning.h
    2024-10-02 16:25:44.000000000 +0200
@@ -13,7 +13,8 @@
     void unregisterPositionInfoSource(int key);
 
     QGeoPositionInfoSource::PositioningMethods availableProviders();
-    QGeoPositionInfo lastKnownPosition(bool 
fromSatellitePositioningMethodsOnly);
+    QGeoPositionInfo lastKnownPosition(bool 
fromSatellitePositioningMethodsOnly,
+                                       bool useAltitudeConverter);
 
     QGeoPositionInfoSource::Error startUpdates(int androidClassKey);
     void stopUpdates(int androidClassKey);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/plugins/position/android/src/positionfactory_android.cpp
 
new/qtpositioning-everywhere-src-6.8.0/src/plugins/position/android/src/positionfactory_android.cpp
--- 
old/qtpositioning-everywhere-src-6.7.3/src/plugins/position/android/src/positionfactory_android.cpp
 2024-09-19 20:59:08.000000000 +0200
+++ 
new/qtpositioning-everywhere-src-6.8.0/src/plugins/position/android/src/positionfactory_android.cpp
 2024-10-02 16:25:44.000000000 +0200
@@ -7,8 +7,7 @@
 
 QGeoPositionInfoSource 
*QGeoPositionInfoSourceFactoryAndroid::positionInfoSource(QObject *parent, 
const QVariantMap &parameters)
 {
-    Q_UNUSED(parameters)
-    QGeoPositionInfoSourceAndroid *src = new 
QGeoPositionInfoSourceAndroid(parent);
+    QGeoPositionInfoSourceAndroid *src = new 
QGeoPositionInfoSourceAndroid(parameters, parent);
     return src;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/plugins/position/android/src/qgeopositioninfosource_android.cpp
 
new/qtpositioning-everywhere-src-6.8.0/src/plugins/position/android/src/qgeopositioninfosource_android.cpp
--- 
old/qtpositioning-everywhere-src-6.7.3/src/plugins/position/android/src/qgeopositioninfosource_android.cpp
  2024-09-19 20:59:08.000000000 +0200
+++ 
new/qtpositioning-everywhere-src-6.8.0/src/plugins/position/android/src/qgeopositioninfosource_android.cpp
  2024-10-02 16:25:44.000000000 +0200
@@ -4,16 +4,24 @@
 #include "qgeopositioninfosource_android_p.h"
 #include "jnipositioning.h"
 #include <QGeoPositionInfo>
+#include <QVariantMap>
+
+using namespace Qt::StringLiterals;
 
 static constexpr int kUpdateFromColdStart = 2 * 60 * 1000;
 static constexpr int kRegularUpdatesTimerInterval = 30 * 1000;
 
-QGeoPositionInfoSourceAndroid::QGeoPositionInfoSourceAndroid(QObject *parent) :
+static constexpr auto kUseAltitudeConverter = "useMslAltitude"_L1;
+
+QGeoPositionInfoSourceAndroid::QGeoPositionInfoSourceAndroid(const QVariantMap 
&parameters,
+                                                             QObject *parent) :
     QGeoPositionInfoSource(parent)
 {
     androidClassKeyForUpdate = 
AndroidPositioning::registerPositionInfoSource(this);
     androidClassKeyForSingleRequest = 
AndroidPositioning::registerPositionInfoSource(this);
 
+    parseParameters(parameters);
+
     //by default use all methods
     setPreferredPositioningMethods(AllPositioningMethods);
 
@@ -55,7 +63,8 @@
 
 QGeoPositionInfo QGeoPositionInfoSourceAndroid::lastKnownPosition(bool 
fromSatellitePositioningMethodsOnly) const
 {
-    return 
AndroidPositioning::lastKnownPosition(fromSatellitePositioningMethodsOnly);
+    return 
AndroidPositioning::lastKnownPosition(fromSatellitePositioningMethodsOnly,
+                                                 useAltitudeConverter());
 }
 
 QGeoPositionInfoSource::PositioningMethods 
QGeoPositionInfoSourceAndroid::supportedPositioningMethods() const
@@ -84,6 +93,11 @@
     return m_error;
 }
 
+bool QGeoPositionInfoSourceAndroid::useAltitudeConverter() const
+{
+    return m_useAltitudeConverter;
+}
+
 void QGeoPositionInfoSourceAndroid::setError(Error error)
 {
     m_error = error;
@@ -91,6 +105,11 @@
         emit QGeoPositionInfoSource::errorOccurred(m_error);
 }
 
+void QGeoPositionInfoSourceAndroid::parseParameters(const QVariantMap 
&parameters)
+{
+    m_useAltitudeConverter = parameters.value(kUseAltitudeConverter, 
false).toBool();
+}
+
 void QGeoPositionInfoSourceAndroid::startUpdates()
 {
     if (updatesRunning)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/plugins/position/android/src/qgeopositioninfosource_android_p.h
 
new/qtpositioning-everywhere-src-6.8.0/src/plugins/position/android/src/qgeopositioninfosource_android_p.h
--- 
old/qtpositioning-everywhere-src-6.7.3/src/plugins/position/android/src/qgeopositioninfosource_android_p.h
  2024-09-19 20:59:08.000000000 +0200
+++ 
new/qtpositioning-everywhere-src-6.8.0/src/plugins/position/android/src/qgeopositioninfosource_android_p.h
  2024-10-02 16:25:44.000000000 +0200
@@ -22,7 +22,7 @@
 {
     Q_OBJECT
 public:
-    QGeoPositionInfoSourceAndroid(QObject *parent = 0);
+    QGeoPositionInfoSourceAndroid(const QVariantMap &parameters, QObject 
*parent = 0);
     ~QGeoPositionInfoSourceAndroid();
 
     // From QGeoPositionInfoSource
@@ -33,6 +33,8 @@
     int minimumUpdateInterval() const override;
     Error error() const override;
 
+    bool useAltitudeConverter() const;
+
 public Q_SLOTS:
     virtual void startUpdates() override;
     virtual void stopUpdates() override;
@@ -51,6 +53,7 @@
 private:
     void reconfigureRunningSystem();
     void setError(Error error);
+    void parseParameters(const QVariantMap &parameters);
 
     bool updatesRunning = false;
     int androidClassKeyForUpdate;
@@ -61,6 +64,7 @@
     QTimer m_regularUpdatesTimer;
     qint64 m_lastUpdateTime = 0;
     bool m_regularUpdatesErrorRaised = false;
+    bool m_useAltitudeConverter = false;
 };
 
 #endif // QGEOPOSITIONINFOSOURCE_ANDROID_P_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/positioning/CMakeLists.txt 
new/qtpositioning-everywhere-src-6.8.0/src/positioning/CMakeLists.txt
--- old/qtpositioning-everywhere-src-6.7.3/src/positioning/CMakeLists.txt       
2024-09-19 20:59:08.000000000 +0200
+++ new/qtpositioning-everywhere-src-6.8.0/src/positioning/CMakeLists.txt       
2024-10-02 16:25:44.000000000 +0200
@@ -45,15 +45,13 @@
         Qt::Core
     PRIVATE_MODULE_INTERFACE
         Qt::CorePrivate
-    GENERATE_CPP_EXPORTS
-    GENERATE_PRIVATE_CPP_EXPORTS
     DEFINES
         QT_NO_CONTEXTLESS_CONNECT
 )
 
 if(ANDROID)
     set_property(TARGET Positioning APPEND PROPERTY 
QT_ANDROID_BUNDLED_JAR_DEPENDENCIES
-        
jar/Qt${QtLocation_VERSION_MAJOR}AndroidPositioning.jar:org.qtproject.qt.android.positioning.QtPositioning
 # special case
+        jar/Qt${QtLocation_VERSION_MAJOR}AndroidPositioning.jar
     )
     set_property(TARGET Positioning APPEND PROPERTY QT_ANDROID_LIB_DEPENDENCIES
         
${INSTALL_PLUGINSDIR}/position/libplugins_position_qtposition_android.so
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/positioning/doc/src/plugins/android.qdoc
 
new/qtpositioning-everywhere-src-6.8.0/src/positioning/doc/src/plugins/android.qdoc
--- 
old/qtpositioning-everywhere-src-6.7.3/src/positioning/doc/src/plugins/android.qdoc
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtpositioning-everywhere-src-6.8.0/src/positioning/doc/src/plugins/android.qdoc
 2024-10-02 16:25:44.000000000 +0200
@@ -0,0 +1,99 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR 
GFDL-1.3-no-invariants-only
+
+/*!
+
+\page position-plugin-android.html
+\title Qt Positioning Android plugin
+\ingroup QtPositioning-plugins
+
+\brief Wraps Android positioning subsystem.
+
+\section1 Overview
+
+The Qt Positioning Android plugin wraps native Android APIs and provides
+access to positioning and satellite information.
+
+The plugin can be loaded by using the provider name \b android.
+
+\section1 Parameters
+
+The following table lists parameters that \e can be passed to the Android
+plugin.
+
+\table
+\header
+    \li Parameter
+    \li Description
+\row
+    \li useMslAltitude
+    \li The parameter is introduced in Qt 6.8. It determines if the plugin will
+        try to provide an altitude above Mean Sea Level (MSL). The default 
value
+        is \c false, which means that it provides the altitude in WGS84 format.
+        This parameter is only relevant for Android 14 and later. See
+        \l {Altitude Conversion} section for more details.
+\endtable
+
+\section2 Altitude conversion
+
+Android traditionally provides altitude above the World Geodetic System 1984
+(WGS84) reference ellipsoid. However, starting from Android 14, a new
+\l 
{https://developer.android.com/reference/android/location/altitude/AltitudeConverter}
+{AltitudeConverter} class was introduced. This class allows to convert the
+WGS84 altitude into \e {altitude above Mean Sea Level (MSL)} format.
+
+If the \c {useMslAltitude} plugin parameter is set to \c {true}, and the
+application is running on \b {Android 14} or later, the
+\l QGeoCoordinate::altitude component of \l QGeoPositionInfo objects retrieved
+during position updates will contain the MSL altitude.
+
+\note According to the Android
+\l 
{https://developer.android.com/reference/android/location/altitude/AltitudeConverter#addMslAltitudeToLocation(android.content.Context,%20android.location.Location)}
+{documentation}, the conversion to the MSL altitude \e may take several 
seconds.
+It means that \l {QGeoPositionInfoSource::}{lastKnownPosition()} requests \e 
may
+execute longer when this feature is enabled, because the method is synchronous.
+Other position update requests are not affected.
+
+\section1 Examples
+
+The following examples show how to create an \b android \l PositionSource from
+C++ and QML.
+
+\section2 QML
+
+The following snippet creates a \l PositionSource with no parameters. The
+altitude will be reported in WGS84 format.
+
+\qml
+PositionSource {
+    name: "android"
+}
+\endqml
+
+The next snippet explicitly adds the \c {useMslAltitude} \l PluginParameter
+and sets its value to \c true. This \l PositionSource will report the altitude
+in MSL format.
+
+\qml
+PositionSource {
+    name: "android"
+    PluginParameter {
+        name: "useMslAltitude"
+        value: true
+    }
+}
+\endqml
+
+\section2 C++
+
+The following snippet shows how to use C++ to create a
+\l {QGeoPositionInfoSource}{position source} which reports the altitude in MSL
+format.
+
+\code
+QVariantMap params;
+params["useMslAltitude"] = true;
+QGeoPositionInfoSource *positionSource = 
QGeoPositionInfoSource::createSource("android", params, this);
+\endcode
+
+*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/positioning/doc/src/qtpositioning-plugins.qdoc
 
new/qtpositioning-everywhere-src-6.8.0/src/positioning/doc/src/qtpositioning-plugins.qdoc
--- 
old/qtpositioning-everywhere-src-6.7.3/src/positioning/doc/src/qtpositioning-plugins.qdoc
   2024-09-19 20:59:08.000000000 +0200
+++ 
new/qtpositioning-everywhere-src-6.8.0/src/positioning/doc/src/qtpositioning-plugins.qdoc
   2024-10-02 16:25:44.000000000 +0200
@@ -15,7 +15,8 @@
 \table
     \row
         \li \b android
-        \li Wraps Android positioning subsystem. Available only on Android.
+        \li Wraps \l {Qt Positioning Android plugin}{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.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/positioning/qclipperutils_p.h 
new/qtpositioning-everywhere-src-6.8.0/src/positioning/qclipperutils_p.h
--- old/qtpositioning-everywhere-src-6.7.3/src/positioning/qclipperutils_p.h    
2024-09-19 20:59:08.000000000 +0200
+++ new/qtpositioning-everywhere-src-6.8.0/src/positioning/qclipperutils_p.h    
2024-10-02 16:25:44.000000000 +0200
@@ -36,7 +36,7 @@
 */
 
 class QClipperUtilsPrivate;
-class Q_POSITIONING_PRIVATE_EXPORT QClipperUtils
+class Q_POSITIONING_EXPORT QClipperUtils
 {
 public:
     QClipperUtils();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/positioning/qdoublematrix4x4_p.h 
new/qtpositioning-everywhere-src-6.8.0/src/positioning/qdoublematrix4x4_p.h
--- old/qtpositioning-everywhere-src-6.7.3/src/positioning/qdoublematrix4x4_p.h 
2024-09-19 20:59:08.000000000 +0200
+++ new/qtpositioning-everywhere-src-6.8.0/src/positioning/qdoublematrix4x4_p.h 
2024-10-02 16:25:44.000000000 +0200
@@ -29,7 +29,7 @@
  * Some methods have been removed.
  */
 
-class Q_POSITIONING_PRIVATE_EXPORT QDoubleMatrix4x4
+class Q_POSITIONING_EXPORT QDoubleMatrix4x4
 {
 public:
     inline QDoubleMatrix4x4() { setToIdentity(); }
@@ -78,7 +78,7 @@
     friend QPointF operator*(const QDoubleMatrix4x4& matrix, const QPointF& 
point);
     friend QDoubleMatrix4x4 operator*(double factor, const QDoubleMatrix4x4& 
matrix);
     friend QDoubleMatrix4x4 operator*(const QDoubleMatrix4x4& matrix, double 
factor);
-    friend Q_POSITIONING_PRIVATE_EXPORT QDoubleMatrix4x4 operator/(const 
QDoubleMatrix4x4& matrix, double divisor);
+    friend Q_POSITIONING_EXPORT QDoubleMatrix4x4 operator/(const 
QDoubleMatrix4x4& matrix, double divisor);
 
     friend inline bool qFuzzyCompare(const QDoubleMatrix4x4& m1, const 
QDoubleMatrix4x4& m2);
 
@@ -124,7 +124,7 @@
     void optimize();
 
 #ifndef QT_NO_DEBUG_STREAM
-    friend Q_POSITIONING_PRIVATE_EXPORT QDebug operator<<(QDebug dbg, const 
QDoubleMatrix4x4 &m);
+    friend Q_POSITIONING_EXPORT QDebug operator<<(QDebug dbg, const 
QDoubleMatrix4x4 &m);
 #endif
 
 private:
@@ -179,7 +179,7 @@
     return m[aColumn][aRow];
 }
 
-Q_POSITIONING_PRIVATE_EXPORT QDoubleMatrix4x4 operator/(const 
QDoubleMatrix4x4& matrix, double divisor);
+Q_POSITIONING_EXPORT QDoubleMatrix4x4 operator/(const QDoubleMatrix4x4& 
matrix, double divisor);
 
 inline bool QDoubleMatrix4x4::isAffine() const
 {
@@ -896,12 +896,12 @@
 }
 
 #ifndef QT_NO_DEBUG_STREAM
-Q_POSITIONING_PRIVATE_EXPORT QDebug operator<<(QDebug dbg, const 
QDoubleMatrix4x4 &m);
+Q_POSITIONING_EXPORT QDebug operator<<(QDebug dbg, const QDoubleMatrix4x4 &m);
 #endif
 
 #ifndef QT_NO_DATASTREAM
-Q_POSITIONING_PRIVATE_EXPORT QDataStream &operator<<(QDataStream &, const 
QDoubleMatrix4x4 &);
-Q_POSITIONING_PRIVATE_EXPORT QDataStream &operator>>(QDataStream &, 
QDoubleMatrix4x4 &);
+Q_POSITIONING_EXPORT QDataStream &operator<<(QDataStream &, const 
QDoubleMatrix4x4 &);
+Q_POSITIONING_EXPORT QDataStream &operator>>(QDataStream &, QDoubleMatrix4x4 
&);
 #endif
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/positioning/qdoublevector2d_p.h 
new/qtpositioning-everywhere-src-6.8.0/src/positioning/qdoublevector2d_p.h
--- old/qtpositioning-everywhere-src-6.7.3/src/positioning/qdoublevector2d_p.h  
2024-09-19 20:59:08.000000000 +0200
+++ new/qtpositioning-everywhere-src-6.8.0/src/positioning/qdoublevector2d_p.h  
2024-10-02 16:25:44.000000000 +0200
@@ -27,7 +27,7 @@
 
 class QDoubleVector3D;
 
-class Q_POSITIONING_PRIVATE_EXPORT QDoubleVector2D
+class Q_POSITIONING_EXPORT QDoubleVector2D
 {
 public:
     Q_DECL_CONSTEXPR inline QDoubleVector2D();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/positioning/qdoublevector3d_p.h 
new/qtpositioning-everywhere-src-6.8.0/src/positioning/qdoublevector3d_p.h
--- old/qtpositioning-everywhere-src-6.7.3/src/positioning/qdoublevector3d_p.h  
2024-09-19 20:59:08.000000000 +0200
+++ new/qtpositioning-everywhere-src-6.8.0/src/positioning/qdoublevector3d_p.h  
2024-10-02 16:25:44.000000000 +0200
@@ -25,7 +25,7 @@
 
 QT_BEGIN_NAMESPACE
 
-class Q_POSITIONING_PRIVATE_EXPORT QDoubleVector3D
+class Q_POSITIONING_EXPORT QDoubleVector3D
 {
 public:
     Q_DECL_CONSTEXPR inline QDoubleVector3D();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/positioning/qgeocoordinateobject_p.h 
new/qtpositioning-everywhere-src-6.8.0/src/positioning/qgeocoordinateobject_p.h
--- 
old/qtpositioning-everywhere-src-6.7.3/src/positioning/qgeocoordinateobject_p.h 
    2024-09-19 20:59:08.000000000 +0200
+++ 
new/qtpositioning-everywhere-src-6.8.0/src/positioning/qgeocoordinateobject_p.h 
    2024-10-02 16:25:44.000000000 +0200
@@ -23,7 +23,7 @@
 
 QT_BEGIN_NAMESPACE
 
-class Q_POSITIONING_PRIVATE_EXPORT QGeoCoordinateObject : public QObject
+class Q_POSITIONING_EXPORT QGeoCoordinateObject : public QObject
 {
     Q_OBJECT
     Q_PROPERTY(QGeoCoordinate coordinate READ coordinate WRITE setCoordinate 
NOTIFY
@@ -58,6 +58,6 @@
 QT_END_NAMESPACE
 
 QT_DECL_METATYPE_EXTERN_TAGGED(QGeoCoordinateObject*, QGeoCoordinateObject_ptr,
-                               Q_POSITIONING_PRIVATE_EXPORT)
+                               Q_POSITIONING_EXPORT)
 
 #endif // QGEOCOORDINATEOBJECT_P_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/positioning/qgeopath_p.h 
new/qtpositioning-everywhere-src-6.8.0/src/positioning/qgeopath_p.h
--- old/qtpositioning-everywhere-src-6.7.3/src/positioning/qgeopath_p.h 
2024-09-19 20:59:08.000000000 +0200
+++ new/qtpositioning-everywhere-src-6.8.0/src/positioning/qgeopath_p.h 
2024-10-02 16:25:44.000000000 +0200
@@ -133,7 +133,7 @@
 }
 
 // Lazy by default. Eager, within the module, used only in 
MapItems/MapObjectsQSG
-class Q_POSITIONING_PRIVATE_EXPORT QGeoPathPrivate : public QGeoShapePrivate
+class Q_POSITIONING_EXPORT QGeoPathPrivate : public QGeoShapePrivate
 {
 public:
     QGeoPathPrivate();
@@ -179,7 +179,7 @@
     bool m_bboxDirty = false;
 };
 
-class Q_POSITIONING_PRIVATE_EXPORT QGeoPathPrivateEager : public 
QGeoPathPrivate
+class Q_POSITIONING_EXPORT QGeoPathPrivateEager : public QGeoPathPrivate
 {
 public:
     QGeoPathPrivateEager();
@@ -207,7 +207,7 @@
 };
 
 // This is a mean of creating a QGeoPathPrivateEager and injecting it into 
QGeoPaths via operator=
-class Q_POSITIONING_PRIVATE_EXPORT QGeoPathEager : public QGeoPath
+class Q_POSITIONING_EXPORT QGeoPathEager : public QGeoPath
 {
     Q_GADGET
 public:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/positioning/qgeopolygon_p.h 
new/qtpositioning-everywhere-src-6.8.0/src/positioning/qgeopolygon_p.h
--- old/qtpositioning-everywhere-src-6.7.3/src/positioning/qgeopolygon_p.h      
2024-09-19 20:59:08.000000000 +0200
+++ new/qtpositioning-everywhere-src-6.8.0/src/positioning/qgeopolygon_p.h      
2024-10-02 16:25:44.000000000 +0200
@@ -21,7 +21,7 @@
 
 QT_BEGIN_NAMESPACE
 
-class Q_POSITIONING_PRIVATE_EXPORT QGeoPolygonPrivate : public QGeoPathPrivate
+class Q_POSITIONING_EXPORT QGeoPolygonPrivate : public QGeoPathPrivate
 {
 public:
     QGeoPolygonPrivate();
@@ -54,7 +54,7 @@
     QClipperUtils m_clipperWrapper;
 };
 
-class Q_POSITIONING_PRIVATE_EXPORT QGeoPolygonPrivateEager : public 
QGeoPolygonPrivate
+class Q_POSITIONING_EXPORT QGeoPolygonPrivateEager : public QGeoPolygonPrivate
 {
 public:
     QGeoPolygonPrivateEager();
@@ -84,7 +84,7 @@
 };
 
 // This is a mean of creating a QGeoPolygonPrivateEager and injecting it into 
QGeoPolygons via operator=
-class Q_POSITIONING_PRIVATE_EXPORT QGeoPolygonEager : public QGeoPolygon
+class Q_POSITIONING_EXPORT QGeoPolygonEager : public QGeoPolygon
 {
     Q_GADGET
 public:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/positioning/qlocationutils_p.h 
new/qtpositioning-everywhere-src-6.8.0/src/positioning/qlocationutils_p.h
--- old/qtpositioning-everywhere-src-6.7.3/src/positioning/qlocationutils_p.h   
2024-09-19 20:59:08.000000000 +0200
+++ new/qtpositioning-everywhere-src-6.8.0/src/positioning/qlocationutils_p.h   
2024-10-02 16:25:44.000000000 +0200
@@ -31,7 +31,7 @@
 
 class QGeoPositionInfo;
 class QGeoSatelliteInfo;
-class Q_POSITIONING_PRIVATE_EXPORT QLocationUtils
+class Q_POSITIONING_EXPORT QLocationUtils
 {
 public:
     enum CardinalDirection {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/positioning/qpositioningglobal_p.h 
new/qtpositioning-everywhere-src-6.8.0/src/positioning/qpositioningglobal_p.h
--- 
old/qtpositioning-everywhere-src-6.7.3/src/positioning/qpositioningglobal_p.h   
    2024-09-19 20:59:08.000000000 +0200
+++ 
new/qtpositioning-everywhere-src-6.8.0/src/positioning/qpositioningglobal_p.h   
    2024-10-02 16:25:44.000000000 +0200
@@ -15,7 +15,6 @@
 //
 
 #include "qpositioningglobal.h"
-#include <QtPositioning/private/qtpositioningexports_p.h>
 
 #endif // QPOSITIONINGGLOBAL_P_H
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/positioning/qwebmercator_p.h 
new/qtpositioning-everywhere-src-6.8.0/src/positioning/qwebmercator_p.h
--- old/qtpositioning-everywhere-src-6.7.3/src/positioning/qwebmercator_p.h     
2024-09-19 20:59:08.000000000 +0200
+++ new/qtpositioning-everywhere-src-6.8.0/src/positioning/qwebmercator_p.h     
2024-10-02 16:25:44.000000000 +0200
@@ -23,7 +23,7 @@
 class QGeoCoordinate;
 class QDoubleVector2D;
 
-class Q_POSITIONING_PRIVATE_EXPORT QWebMercator
+class Q_POSITIONING_EXPORT QWebMercator
 {
 public:
     static QDoubleVector2D coordToMercator(const QGeoCoordinate &coord);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/positioningquick/CMakeLists.txt 
new/qtpositioning-everywhere-src-6.8.0/src/positioningquick/CMakeLists.txt
--- old/qtpositioning-everywhere-src-6.7.3/src/positioningquick/CMakeLists.txt  
2024-09-19 20:59:08.000000000 +0200
+++ new/qtpositioning-everywhere-src-6.8.0/src/positioningquick/CMakeLists.txt  
2024-10-02 16:25:44.000000000 +0200
@@ -40,8 +40,6 @@
     PRIVATE_MODULE_INTERFACE
         Qt::PositioningPrivate
         Qt::QuickPrivate
-    GENERATE_CPP_EXPORTS
-    GENERATE_PRIVATE_CPP_EXPORTS
 )
 
 qt_internal_extend_target(positioningquickplugin
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/positioningquick/locationsingleton_p.h
 
new/qtpositioning-everywhere-src-6.8.0/src/positioningquick/locationsingleton_p.h
--- 
old/qtpositioning-everywhere-src-6.7.3/src/positioningquick/locationsingleton_p.h
   2024-09-19 20:59:08.000000000 +0200
+++ 
new/qtpositioning-everywhere-src-6.8.0/src/positioningquick/locationsingleton_p.h
   2024-10-02 16:25:44.000000000 +0200
@@ -31,7 +31,7 @@
 
 QT_BEGIN_NAMESPACE
 
-class Q_POSITIONINGQUICK_PRIVATE_EXPORT LocationSingleton : public QObject
+class Q_POSITIONINGQUICK_EXPORT LocationSingleton : public QObject
 {
     Q_OBJECT
     QML_NAMED_ELEMENT(QtPositioning)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/positioningquick/qdeclarativegeoaddress_p.h
 
new/qtpositioning-everywhere-src-6.8.0/src/positioningquick/qdeclarativegeoaddress_p.h
--- 
old/qtpositioning-everywhere-src-6.7.3/src/positioningquick/qdeclarativegeoaddress_p.h
      2024-09-19 20:59:08.000000000 +0200
+++ 
new/qtpositioning-everywhere-src-6.8.0/src/positioningquick/qdeclarativegeoaddress_p.h
      2024-10-02 16:25:44.000000000 +0200
@@ -22,7 +22,7 @@
 
 QT_BEGIN_NAMESPACE
 
-class Q_POSITIONINGQUICK_PRIVATE_EXPORT QDeclarativeGeoAddress : public QObject
+class Q_POSITIONINGQUICK_EXPORT QDeclarativeGeoAddress : public QObject
 {
     Q_OBJECT
     QML_NAMED_ELEMENT(Address)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/positioningquick/qdeclarativegeolocation_p.h
 
new/qtpositioning-everywhere-src-6.8.0/src/positioningquick/qdeclarativegeolocation_p.h
--- 
old/qtpositioning-everywhere-src-6.7.3/src/positioningquick/qdeclarativegeolocation_p.h
     2024-09-19 20:59:08.000000000 +0200
+++ 
new/qtpositioning-everywhere-src-6.8.0/src/positioningquick/qdeclarativegeolocation_p.h
     2024-10-02 16:25:44.000000000 +0200
@@ -25,7 +25,7 @@
 
 QT_BEGIN_NAMESPACE
 
-class Q_POSITIONINGQUICK_PRIVATE_EXPORT QDeclarativeGeoLocation : public 
QObject
+class Q_POSITIONINGQUICK_EXPORT QDeclarativeGeoLocation : public QObject
 {
     Q_OBJECT
     QML_NAMED_ELEMENT(Location)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/positioningquick/qdeclarativepluginparameter_p.h
 
new/qtpositioning-everywhere-src-6.8.0/src/positioningquick/qdeclarativepluginparameter_p.h
--- 
old/qtpositioning-everywhere-src-6.7.3/src/positioningquick/qdeclarativepluginparameter_p.h
 2024-09-19 20:59:08.000000000 +0200
+++ 
new/qtpositioning-everywhere-src-6.8.0/src/positioningquick/qdeclarativepluginparameter_p.h
 2024-10-02 16:25:44.000000000 +0200
@@ -24,7 +24,7 @@
 
 QT_BEGIN_NAMESPACE
 
-class Q_POSITIONINGQUICK_PRIVATE_EXPORT QDeclarativePluginParameter : public 
QObject
+class Q_POSITIONINGQUICK_EXPORT QDeclarativePluginParameter : public QObject
 {
     Q_OBJECT
     QML_NAMED_ELEMENT(PluginParameter)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/positioningquick/qdeclarativeposition.cpp
 
new/qtpositioning-everywhere-src-6.8.0/src/positioningquick/qdeclarativeposition.cpp
--- 
old/qtpositioning-everywhere-src-6.7.3/src/positioningquick/qdeclarativeposition.cpp
        2024-09-19 20:59:08.000000000 +0200
+++ 
new/qtpositioning-everywhere-src-6.8.0/src/positioningquick/qdeclarativeposition.cpp
        2024-10-02 16:25:44.000000000 +0200
@@ -12,7 +12,7 @@
 
 /*!
     \qmltype Position
-    //! \instantiates QDeclarativePosition
+    //! \nativetype QDeclarativePosition
     \inqmlmodule QtPositioning
     \since 5.2
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/positioningquick/qdeclarativeposition_p.h
 
new/qtpositioning-everywhere-src-6.8.0/src/positioningquick/qdeclarativeposition_p.h
--- 
old/qtpositioning-everywhere-src-6.7.3/src/positioningquick/qdeclarativeposition_p.h
        2024-09-19 20:59:08.000000000 +0200
+++ 
new/qtpositioning-everywhere-src-6.8.0/src/positioningquick/qdeclarativeposition_p.h
        2024-10-02 16:25:44.000000000 +0200
@@ -25,7 +25,7 @@
 
 QT_BEGIN_NAMESPACE
 
-class Q_POSITIONINGQUICK_PRIVATE_EXPORT QDeclarativePosition : public QObject
+class Q_POSITIONINGQUICK_EXPORT QDeclarativePosition : public QObject
 {
     Q_OBJECT
     QML_NAMED_ELEMENT(Position)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/positioningquick/qdeclarativepositionsource.cpp
 
new/qtpositioning-everywhere-src-6.8.0/src/positioningquick/qdeclarativepositionsource.cpp
--- 
old/qtpositioning-everywhere-src-6.7.3/src/positioningquick/qdeclarativepositionsource.cpp
  2024-09-19 20:59:08.000000000 +0200
+++ 
new/qtpositioning-everywhere-src-6.8.0/src/positioningquick/qdeclarativepositionsource.cpp
  2024-10-02 16:25:44.000000000 +0200
@@ -16,7 +16,7 @@
 
 /*!
     \qmltype PositionSource
-    //! \instantiates QDeclarativePositionSource
+    //! \nativetype QDeclarativePositionSource
     \inqmlmodule QtPositioning
     \since 5.2
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/positioningquick/qdeclarativepositionsource_p.h
 
new/qtpositioning-everywhere-src-6.8.0/src/positioningquick/qdeclarativepositionsource_p.h
--- 
old/qtpositioning-everywhere-src-6.7.3/src/positioningquick/qdeclarativepositionsource_p.h
  2024-09-19 20:59:08.000000000 +0200
+++ 
new/qtpositioning-everywhere-src-6.8.0/src/positioningquick/qdeclarativepositionsource_p.h
  2024-10-02 16:25:44.000000000 +0200
@@ -29,7 +29,7 @@
 class QFile;
 class QTcpSocket;
 
-class Q_POSITIONINGQUICK_PRIVATE_EXPORT QDeclarativePositionSource : public 
QObject, public QQmlParserStatus
+class Q_POSITIONINGQUICK_EXPORT QDeclarativePositionSource : public QObject, 
public QQmlParserStatus
 {
     Q_OBJECT
     QML_NAMED_ELEMENT(PositionSource)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/positioningquick/qdeclarativesatellitesource_p.h
 
new/qtpositioning-everywhere-src-6.8.0/src/positioningquick/qdeclarativesatellitesource_p.h
--- 
old/qtpositioning-everywhere-src-6.7.3/src/positioningquick/qdeclarativesatellitesource_p.h
 2024-09-19 20:59:08.000000000 +0200
+++ 
new/qtpositioning-everywhere-src-6.8.0/src/positioningquick/qdeclarativesatellitesource_p.h
 2024-10-02 16:25:44.000000000 +0200
@@ -27,7 +27,7 @@
 
 QT_BEGIN_NAMESPACE
 
-class Q_POSITIONINGQUICK_PRIVATE_EXPORT QDeclarativeSatelliteSource : public 
QObject, public QQmlParserStatus
+class Q_POSITIONINGQUICK_EXPORT QDeclarativeSatelliteSource : public QObject, 
public QQmlParserStatus
 {
     Q_OBJECT
     QML_NAMED_ELEMENT(SatelliteSource)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/positioningquick/qpositioningquickglobal_p.h
 
new/qtpositioning-everywhere-src-6.8.0/src/positioningquick/qpositioningquickglobal_p.h
--- 
old/qtpositioning-everywhere-src-6.7.3/src/positioningquick/qpositioningquickglobal_p.h
     2024-09-19 20:59:08.000000000 +0200
+++ 
new/qtpositioning-everywhere-src-6.8.0/src/positioningquick/qpositioningquickglobal_p.h
     2024-10-02 16:25:44.000000000 +0200
@@ -15,11 +15,10 @@
 //
 
 #include "qpositioningquickglobal.h"
-#include <QtPositioningQuick/private/qtpositioningquickexports_p.h>
 
 QT_BEGIN_NAMESPACE
 
-void Q_POSITIONINGQUICK_PRIVATE_EXPORT qml_register_types_QtPositioning();
+void Q_POSITIONINGQUICK_EXPORT qml_register_types_QtPositioning();
 
 QT_END_NAMESPACE
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/src/positioningquick/qquickgeocoordinateanimation_p.h
 
new/qtpositioning-everywhere-src-6.8.0/src/positioningquick/qquickgeocoordinateanimation_p.h
--- 
old/qtpositioning-everywhere-src-6.7.3/src/positioningquick/qquickgeocoordinateanimation_p.h
        2024-09-19 20:59:08.000000000 +0200
+++ 
new/qtpositioning-everywhere-src-6.8.0/src/positioningquick/qquickgeocoordinateanimation_p.h
        2024-10-02 16:25:44.000000000 +0200
@@ -23,7 +23,7 @@
 
 class QQuickGeoCoordinateAnimationPrivate;
 
-class Q_POSITIONINGQUICK_PRIVATE_EXPORT QQuickGeoCoordinateAnimation : public 
QQuickPropertyAnimation
+class Q_POSITIONINGQUICK_EXPORT QQuickGeoCoordinateAnimation : public 
QQuickPropertyAnimation
 {
     Q_OBJECT
     QML_NAMED_ELEMENT(CoordinateAnimation)
@@ -59,7 +59,7 @@
     void directionChanged();
 };
 
-QVariant Q_POSITIONINGQUICK_PRIVATE_EXPORT q_coordinateInterpolator(const 
QGeoCoordinate &from, const QGeoCoordinate &to, qreal progress);
+QVariant Q_POSITIONINGQUICK_EXPORT q_coordinateInterpolator(const 
QGeoCoordinate &from, const QGeoCoordinate &to, qreal progress);
 
 QT_END_NAMESPACE
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtpositioning-everywhere-src-6.7.3/tests/auto/qgeocoordinate/tst_qgeocoordinate.cpp
 
new/qtpositioning-everywhere-src-6.8.0/tests/auto/qgeocoordinate/tst_qgeocoordinate.cpp
--- 
old/qtpositioning-everywhere-src-6.7.3/tests/auto/qgeocoordinate/tst_qgeocoordinate.cpp
     2024-09-19 20:59:08.000000000 +0200
+++ 
new/qtpositioning-everywhere-src-6.8.0/tests/auto/qgeocoordinate/tst_qgeocoordinate.cpp
     2024-10-02 16:25:44.000000000 +0200
@@ -758,7 +758,7 @@
                 << QString("-27%1 28' 3.3\", 153%1 1' 40.4\", 
28.2341m").arg(DEGREES_SYMB);
         QTest::newRow("SE with alt, dms, hemisphere, 28.2341m")
                 << southEastWithAlt << 
QGeoCoordinate::DegreesMinutesSecondsWithHemisphere
-                << QString("27%1 28' 3.3\" S, 153%1 1' 40.4\" E, 
28.2341m").arg(DEGREES_SYMB);;
+                << QString("27%1 28' 3.3\" S, 153%1 1' 40.4\" E, 
28.2341m").arg(DEGREES_SYMB);
 
         QTest::newRow("NW, dd, no hemisphere")
                 << northWest << QGeoCoordinate::Degrees

Reply via email to