Qt 5.9 introduces many new features and improvements as well as bugfixes
over the 5.8.x series. For more details, refer to the online documentation
included in this distribution. The documentation is also available online:

http://doc.qt.io/qt-5/index.html

The Qt version 5.9 series is binary compatible with the 5.8.x series.
Applications compiled for 5.8 will continue to run with 5.9.

Some of the changes listed in this file include issue tracking numbers
corresponding to tasks in the Qt Bug Tracker:

https://bugreports.qt.io/

Each of these identifiers can be entered in the bug tracker to obtain more
information about a particular change.

****************************************************************************
*                           General                                        *
****************************************************************************

Third-Party Code
----------------

 - Added Mapbox GL Native as a third-party component to
   src/3rdparty/mapbox-gl-native.

****************************************************************************
*                           Library                                        *
****************************************************************************

QtLocation
-----------

 - Added boundingGeoRectangle to QGeoShape to return a geographical bounding
   box in form of a QGeoRectangle.
 - Added QGeoPath as a new geo shape.
 - Added a new QML type, MapParameter, to control plugin-specific map features
   at runtime.
 - Deprecated QGeoShape::extendShape.
 - Renamed the QGeoProjection class into QWebMercator.
 - Added new private API, QGeoProjection, for the coordinate <-> screen projection
   conversion, removing it from QGeoTiledMapScene.
 - Moved CacheAreas enum from QGeoFileTileCache into QAbstractGeoTileCache.
 - Map.zoomLevel now always refers to a normalized tile size of 256x256 pixels.
   Conversions to/from different tile sizes are performed internally by QGeoMap.
 - Added clipping support to Clip2Tri 3rd party library through clipper, to protect Qt from
   clipper invocations that throw.
 - Updated clipper lib to version 6.4.
 - QGeoProjectionWebMercator now uses a projection matrix to project to item position.
 - [QTBUG-58124] Fixed a bug on destruction of the OSM plugin causing segfault.
 - Added rotation, tilt and field of view properties to QDeclarativeGeoMap.
 - Changed map items to be always positioned/wrapped based on their geo left bound.
 - Changed the Map items opacity ramp values from 2.0 -> 3.0 to 1.5 -> 2.5.
 - QDeclarativeGeoMap::setVisibleRegion now handles QGeoPath as well.
 - Map Items geo data is now managed by a contained QGeoShape, which also handles geographical
   transformations such as translations.
 - Moved the declarative implementation from imports/ into location/declarativemaps and
   location/declarativeplaces, privately exporting the classes.
 - QQuickGeoMapGestureArea now correctly works with tilted/rotated maps.
 - Added two new gestures to QQuickGeoMapGestureArea, two fingers rotation and two fingers tilting.
 - Added the infrastructure to allow a QGeoMap to be responsible for drawing map items.
 - Added a new QML type, MapCopyrightNotice, backed by the now exposed QDeclarativeGeoMapCopyrightNotice.
 - MapCopyrightNotice can now be styled using CSS.
 - Added a new plugin, MapboxGL, based on the mapbox-gl-native 3rd party library.
 - The MapboxGL plugin now ships with a built-in development token.
 - Added a new QML type, MapItemGroup, to group multiple map items in a new meta map item.
 - Added the new mapItemOpacity method to QGeoMapItemBase, to account for the opacity of a MapItemGroup too.
 - Added the new fitViewportToVisibleMapItems method to QDeclarativeGeoMap.
 - Adapted mapviewer example to enable changing tilting/rotation/FoV.
 - QGeoTiledMap now uses anisotropic filtering when available.
 - Unblacklisted some previously blacklisted autotests now fixed in qtdeclarative.
 - Blacklisted flick autotests on windows due to platform-induced flakiness.
 - Added support to the MapboxGL plugin to natively renders map polylines, polygons and rectangles.
 - Added support to the MapboxGL plugin to render both via FBO and via QSGRenderNode.
 - QGeoCameraCapabilities are now specific to a QGeoMapType, and not any longer fixed to a plugin.
 - DevicePixelRatio is now considered before enabling mipmapping so that mipmapping remains off if
   tiles do not need to be minificated.
 - Changed QGeoTiledMap default FoV from 90 to 45 degrees.
 - [QTBUG-59417] Fixed QGeoTiledMapScene viewing frustum calculation.
 - Added a new mapReady signal to QDeclarativeGeoMap to notify when the map becomes ready.
 - Added ICU support to MapboxGL plugin, depending on its availability.
 - [QTBUG-58821] Removed dependency on QtWidgets.
 - Added a new plugin, itemsoverlay, to provide a transparent canvas to add only map items.
 - MapQuickItem now correctly tilts and rotates when the zoomLevel property is set.
 - [QTBUG-59259] Increased QGeoCoordinate debug operator precision.
 - Improved the mapviewer example, also using QtQuick.Controls2 sliders.
 - QtPositioning now also compiler-optimized when building in release.
 - [QTBUG-59503] Flick autotests skipped on windows.
 - [QTBUG-59479] Mercator-projected qgeocoordinates in map items are now cached.
 - Removed pathPropertyChanged() from Polyline,Polygon.
 - [QTBUG-23659] Enabled overzooming tiles in qgeotiledmapscene.
 - [QTBUG-59416] keepTouchGrab now considered when handing mouse events in QDeclarativeGeoMap.
 - Tile formats now proactively converted to ARGB32_Premultiplied.
 - Added possibility to disable prefetching.
 - Added parameter to control prefetching in tile-based geoservice plugins.
 - Disabled warnings in third-party code.
 - Improved flicking behavior of QQuickGeoMapGestureArea.
 - [QTBUG-60021] Map update now triggered after initialization.
 - QGeoMap pointers now protected with QPointer.
 - QtLocation now marked as warning-free.
 - [QTBUG-58801] Fixed copyright notice not showing before map type is changed.
 - Added overzoomEnabled to QGeoCameraCapabilities.
 - Various fixes for building with various QtLite configurations.
 - QGeoTileFetcher::handleReply now virtual.
 - [QTBUG-60266] declarative_ui autotests disabled for boot2qt.


****************************************************************************
*                      Platform Specific Changes                           *
****************************************************************************

iOS
---

 - [QTBUG-52014][QTBUG-59275]  Allow background updates if such capability
   is present in infoDict.


WinRT
-----

 - [QTBUG-57288] Remove support for WinRT 8.1 and Windows Phone 8.1.
 - [QTBUG-60299] Added error handling for GeoPositionInfoSource creation.


Android
-------

 - [QTBUG-59010] Added guard against unprotected javaVM pointer usage.
 - [QTBUG-59158] UTC flag for Android position timestamps now set.
