Qt 5.7.1 is a bug-fix release. It maintains both forward and backward
compatibility (source and binary) with Qt 5.7.0.

Qt 5.7.1 contains a merge from Qt 5.6.2 and all changes in Qt 5.6.2 are
also in Qt 5.7.1. For more see changes-5.6.2.

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.7 series is binary compatible with the 5.6.x series.
Applications compiled for 5.6 will continue to run with 5.7.

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

QtLocation
----------

- [QTBUG-55535] Fixed map polygon not working correctly when zooming.
- [QTBUG-55964] Fixed rendering of polylines and polygons at the edge
  of the map.
- [QTBUG-52610] Fixed incorrect map polyline drawing.
- [QTBUG-52076] Fixed crashes on tessellation of self-intersecting
  GeoPolygons.
- [QTBUG-52030] Fixed that map's center and zoom were not initialized when
  used in a layout.
- [QTBUG-52514] Fixed not working MapPolygon inside Repeater.
- [QTBUG-53128] Fixed map objects moving incorrectly on map resize.
- [QTBUG-52075] Fixed losing map item focus while dragging.

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

- [QTBUG-54506] Fixed unneeded dependency on Activity for Android Platform.
