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

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.

This release contains all fixes included in the Qt 5.6.2 release.

****************************************************************************
*                   Important Behavior Changes                             *
****************************************************************************

 - [QTBUG-45031] The NSURLConnection backend of QNetworkAccessManager has
   been removed, since SecureTransport is the default SSL backend on iOS
   and is enabled by default. This means that building with -no-openssl
   -no-securetransport will no longer provide SSL capabilities on iOS.

 - QtCore / QDataStream:
   * [QTBUG-54022] Incomplete reads of Qt containers are now handled same
     way as for primitive types, meaning that previous errors are latched.

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

QtCore
------

 - QLockFile:
   * Fixed permissions on lock files on Unix to allow for adjustments via
     umask.

 - QMimeType:
   * [QTBUG-50776] QMimeType::comment() now uses the default locale rather
     than system locale, so that applications can control which language is
     being used.

 - QUrl:
   * QUrl::resolved() no longer treats a URL with a scheme as a relative URL
     if it matches this URL's scheme. For now it still treats "file:name.txt"
     as relative for compatibility, but be warned that in Qt 5.8 it will no
     longer consider those to be relative. Both isRelative() and RFC 3986 say
     that such URLs are not relative, so starting from Qt 5.8, resolved() will
     return them as is.

 - QXmlStreamReader:
   * Fixed a bug in the XML parser that prevented to load XML that
     contained invalid characters for XML 1.0.

 - QXmlStreamWriter:
   * Fixed a bug that prevented the generation of valid XML files when
     using encoding with 8 bit per character but not ASCII compatible.
     QXMLStreamWriter generated XML markup using always ASCII in this case.

QtGui
-----

 - QGuiApplication:
   * [QTBUG-51703] Fixed a bug that would cause QGuiApplication::sync() to
     be left undefined for Qt builds without session management support.

 - QIconLoaderEngine:
   * Fixed theme lookup for scalable entries

 - QTextDocument:
   * [QTBUG-48182] Fixed a bug that would return a wrong position when
     searching backward from the end of the document.

 - Text:
   * [QTBUG-49452] Fixed a performance regression in Freetype engine that
     was introduced in Qt 5.5.
   * [QTBUG-53911] Fixed a crash that could happen if you were doing many
     different text layouts with different fonts and superscript or
     subscript alignment.
   * [QTBUG-42033] Fixed bug where a QTextLayout with
     ShowLineAndParagraphSeparators would modify the layout's input string.
   * [QTBUG-54180] Fixed performance regression when rapidly switching
     between a large set of fonts.

QtNetwork
---------

- QSslSocket:
   * [QTBUG-55170] Fixed a bug in SecureTransport backend that would cause
     a memory usage growth in case 'readBufferMaxSize' is set.
   * [QTBUG-52975] Fixed a bug in SecureTransport backend where transmit
     was using invalid SSL context and reporting (incorrectly) some irrelevant
     errors as a result.

QtSql
-----

 - [QTBUG-53969][QTBUG-53237] Fixed QSqlQuery::prepare value truncation
   error when using UNSIGNED values in a MySQL database.

QtWidgets
---------

 - QAbstractItemDelegate:
   * [QTBUG-16469] Show localized detailed tooltips and "What's this?"
     texts.

 - QTreeView:
   * [QTBUG-52793] Fixed a key navigation bug when the columns were
     reordered.

****************************************************************************
*                      Platform-specific Changes                           *
****************************************************************************

Android
-------

 - [QTBUG-50724] Added support for clang compiler
 - [QTBUG-53511] Fixed CJK font resolution on Android 7.

FreeBSD
-------

 - The freebsd-g++ mkspec was moved back and no longer requires the
   "unsupported/" prefix, matching the FreeBSD ports tree, as FreeBSD 9.3
   still defaults to using GCC. Users of GCC that did not previously use
   the ports patch will need to adapt their build scripts and drop the
   "unsupported/" prefix.

Linux
-----

- [QTBUG-54733] It is now possible to opt out from installing signal
  handlers when running with eglfs and linuxfb by setting the
  QT_QPA_NO_SIGNAL_HANDLER environment variable to a non-zero value.
- [QTBUG-55140] xcb with EGL and OpenGL ES, as well as eglfs with the
  eglfs_x11 backend, are now supported on DRIVE CX boards when using the
  linux-drive-cx-g++ device spec.


Windows
-------

 - [QTBUG-41186] QWindow::fromWinId() may return 0 when passing invalid
   window handles.
 - [QTBUG-55595] Fixed crash when loading color fonts from data.
 - [QTBUG-55097] Fixed rendering Adobe/Mozilla format color fonts with
   other colors than black after Windows 10 Anniversary update.
 - [QTBUG-54494] Fixed stretch when combined with either no or vertical
   hinting preference or a device pixel ratio different from 1.
 - [QTBUG-51024] Fixed height of text bounding box when using no or
   vertical hinting preference, or when the device pixel ratio is
   different from 1.

****************************************************************************
*                                Tools                                     *
****************************************************************************

configure & build system
------------------------

 - [QTBUG-35886][QTBUG-51417] Fixed Fontconfig vs. system FreeType
   configuration.
 - [QTBUG-43784][X11] Fixed detection of GLX with -qt-xcb.
 - [QTBUG-51534][Windows] The configure.exe bootstrapping now prefers
   cl over clang-cl, to avoid header incompatibility problems.
 - [QTBUG-52940] Fixed missing plugins.qmltypes files in static builds.
 - [QTBUG-52951] Fixed dynamic library support detection for platforms
   without libdl.
 - [QTBUG-53038] Fixed running of configure tests outside qtbase when
   cross compiling on Windows (for example for Android).
 - [QTBUG-53312] The flags supplied by the configure -D/-I/-L/-l options
   are now applied after Qt's own flags. This helps in some cases when
   the provided paths contain files which conflict with the Qt build.
 - [QTBUG-53926] Fixed linkage of QML plugins in static prefix builds.
 - [QTBUG-55011][Unix] Fixed -no-pkg-config being ignored by some
   configure tests, which led to build failures later on.
 - Fixed configure tests outside qtbase when $MAKEFLAGS contains the
   -i flag.
 - [Android] Some unused plugins are not built anymore.
 - [MinGW] Added support for -separate-debug-info.
 - [Unix] Added configure -no-opengles3 option.
 - [Unix] Fixed MySQL detection/use on RHEL 6.6.

qmake
-----

 - [QTBUG-41830] Fixed nested custom functions inheriting their callers'
   arguments.
 - [QTBUG-53895][MSVC] Started using separate PDB files for compiling
   and linking.
 - [QTBUG-54036][Darwin] Fixed installation of debug symbols.
 - [QTBUG-54299] Various QMAKE_EXTRA_COMPILERS' .depends entries are now
   appended to rather than overwritten.
 - [QTBUG-54346][MSys/Apple] Fixed detection of QMAKE_DEFAULT_{INC,LIB}DIRS.
 - [QTBUG-54550] Fixed access to freed memory in $$absolute_path().
 - [QTBUG-54674] The obsolete -target xp is now properly rejected.
 - [QTBUG-55183][nmake] _WINDLL is now automatically defined when building
   a DLL, consistently with Visual Studio.
 - [QTBUG-55505] Fixed build of projects with spaces in the source or build
   path against static builds of Qt.
 - [QTBUG-55649][QTBUG-55915][Xcode] Fixed support for Xcode 8.
 - [QTBUG-56162][MinGW] Fixed -release -force-debug-info missing both
   optimization and debug info.
 - Fixed several cases where the error() function would not abort qmake.
 - Interrupting a command run via system() will now abort qmake as well.
 - The packagesExist() function will now warn when used when Qt was
   configured with -no-pkg-config.
 - [Android] The default compiler flags were adjusted to match newer
   NDK versions.
 - [Darwin] Fixed detection of QMAKE_DEFAULT_INCDIRS.
 - [Darwin][make] Added support for building Xcode asset catalogs.
