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

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
-------------

 - Added QGeoShape::center() function
 - Converted QGeoShape, QGeoCircle, QGeoRectangle & QGeoCoordinate to Q_GADGET.
   It simplifies the integration of the above classes into QML as the extensive
   QML value type wrapper conversion is implicitly done by Qt QML. The existing
   custom wrappers were removed.
 - Fixed Debug stream operators for QGeoAreaMonitorInfo, QGeoCoordinate,
   QGeoPositionInfo, QGeoSatelliteInfo & QGeoShape following a QDebug related
   change in Qt Base.
 - [QTBUG-44663] Added updateTimeout() signal to QML PositionSource type
 - [QTBUG-44983] Fixed broken build of qtlocation repo when using qmake -r
   on OS X

QtLocation
----------

 - First Technology Preview release of this module
