Qt 5.6 introduces many new features and improvements as well as bugfixes
over the 5.5.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.6 series is binary compatible with the 5.5.x series.
Applications compiled for 5.5 will continue to run with 5.6.

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.

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

QtPositioning
-------------

 - Removed Blackberry 10 support.
 - [QTBUG-40702] Removed dependency towards libgeoclue. The plugin uses the
   GeoClue DBus interface.
 - Enabled Position plugin for OS X. Previously only the plugin was only working
   for iOS.
 - [QTBUG-48082] Added QtSerialPort based NMEA position plugin for Windows.
 - Improved and fixed the WinRT position backend. Various changes on the WinRT
   platform caused the necessity for such and update.
 - Fixed endless requests towards Android's LocationManager when stopUpdates() was not
   called in pair with startUpdates().

QtLocation
----------

 - First stable release of the Qt Location API. The QML API changed significantly
   compared to the Qt 5.5 release. The changes are documented in the official
   module documentation under "API changes".
 - Improved the Flick and Pinch implementation for QML Map.
 - [QTBUG-44809] Fixed tile version handling
 - Fixed crash during Map.setVisibleRegion while no plugin has been set.
 - Improved error reporting in map, geocoding and routing model APIs.
 - QTBUG[36919] Added means to prevent stealing  of mouse/touch grabs on map.
 - Improved coordinate related animation handling. Previously an animation along
   the longitude always used a shortest path direction. Now it is possible to set
   the direction for the animation.
 - [QTBUG-46147] Fixed crash in QML Map element.
 - [QTBUG-44311] Fixed bouncing Map flick on zoom level 2.
 - [QTBUG-47020] & [QTBUG-47019] Improved Mouse and keyboard integration of QML Map
 - [QTBUG-46388] Fixed Pinch when no MouseArea overlaps QML Map element.
 - Fixed various unit test.
 - Fixed a variety of minor documentation issues.
 - Fixed dysfunctional tile cache for OSM plugin due to the server delivering JPEG
   file when PNG files were expected.
 - [QTBUG-41187] Unified the default tile cache location on disk.
 - Fixed crash in gesture area while receiving wheel events.
 - Fixed route requests with excluded areas for HERE plugin.
 - Added support for custom map background color.
 - Improved Map rendering performance throughout the QML API.
 - [QTBUG-49772] Fixed weatherinfo example due to missing appid handling for
   openweatermap.org.
 - [QTBUG-47292] Added ability to clear the map cache.
 - [QTBUG-50060] Improved performance of QML MapPolyline.
 - [QTBUG-50240] Fixed OSM routing to handle changed server status code for a
   successful route retrieval.
 - [QTBUG-50519] Fixed map in mapviewer example when displaying the minimap.
