Qt 5.7 introduces many new features and improvements along with bug fixes
over the 5.6.x series. Also, there is a change in the licensing terms.
For more details, refer to the online documentation included in this
distribution. The documentation is also available online:

  http://doc.qt.io/qt-5.7

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:

  http://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.1 release.

****************************************************************************
*                          Important License Changes                       *
****************************************************************************

 - Qt is no longer available under LGPLv2.1. The libraries in this package
   are now available under the following licenses:
   * Commercial License
   * GNU General Public License v2.0 (LICENSE.GPL2) and later
   * GNU Lesser General Public License v3.0 (LICENSE.LGPL3)

   Note that a few Qt Libraries (currently Qt Charts and Qt Data
   Visualization) are available only under the Commercial License and GPL
   version 3.

 - Qt Tools are now available under the following licenses:
   * Commercial License
   * GNU General Public License 3.0 (LICENSE.GPL3) with exceptions
     described in the Qt Company GPL Exception 1.0 (LICENSE.GPL3-EXCEPT)

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

 - Starting with Qt 5.7, Qt requires a C++11 compiler with support for
   C++11 atomics. This affects user code too: Qt headers no longer compile
   with a C++98 compiler. The minimum compiler versions for this release
   are:
     * GCC 4.7
     * Clang 3.4 (found in XCode 5.1)
     * Microsoft Visual Studio 2013
 - Support for the following platforms was removed in this version:
     * Apple OS X 10.7 (Lion)
     * Microsoft Windows XP
     * Microsoft Windows Vista
     * Microsoft Windows Embedded Compact 7
     * Microsoft Windows Embedded Compact 2013
 - Support for DirectFB is no longer enabled by default, due to lack of
   development in upstream. To re-enable the platform plugin, pass the
   -directfb option to configure. If there is no renewed interest in this
   platform, the support will be removed in Qt 5.8.
 - Qt no longer ships any fonts.

 - QtGui:
   * [QTBUG-51962] When line height is specified in pixels, this is now
     interpreted as the minimum line height rather than an absolute line
     height to avoid overlaps. To get the old behavior, use the
     -qt-line-height-type property in CSS and set it to "fixed".
   * [QTBUG-46054] QFont::exactMatch() now returns false when the provided
     typeface is an alias.

 - QtWidgets:
   * [QTBUG-21217] QLineEdit will now accept certain shortcut override
     events even if it is read-only.

 - configure & build system:
   * Except on OS X, -system-harfbuzz is now the default.
   * A few obsolete options with no effect are not recognized any more.

****************************************************************************
*                          Deprecation Notice                              *
****************************************************************************

 - The following platforms or toolchains are deprecated and will be
   removed as of Qt 5.8:
   * Apple OS X 10.8 (Mountain Lion)

   Deprecated platforms and toolchains continue to work until removed.

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

QtCore
------

 - [QTBUG-50548] Added qAsConst().
 - Added qOverload() to select overloaded functions.
 - Added qHash(std::pair), defined in <QHashFunctions>.
 - Added qUtf16Printable().
 - QLocale data updated to CLDR v29

 - QDataStream:
   * [QTBUG-44418] Added startTransaction(), commitTransaction(),
     rollbackTransaction(), abortTransaction() functions to support read
     transactions.

 - QDebug:
   * QDebug can now output std::vector, std::list, std::map, and
     std::multimap.

 - QFlags:
   * [QTBUG-27100] Added setFlag method to set or unset a flag

 - QHash/QSet:
   * Added QHash::equal_range().
   * Added erase(const_iterator).

 - QIODevice:
   * Added support for devices with multiple streams.
   * [QTBUG-44418] Added startTransaction(), commitTransaction(),
     rollbackTransaction(), isTransactionStarted() functions to support
     read transactions.

 - QJsonObject:
   * Added value(), op[] const, find(), constFind(), contains() overloads
     taking QLatin1String.

 - QLocale:
   * Added special value for double conversion precision to get shortest
     accurate representation.
   * Added additional flags in QLocale::NumberOption that allow generating
     and parsing doubles in EcmaScript compliant format.
   * [QTBUG-46595] Added an overload for toCurrencyString() that allows the
     decimal precision to be specified.

 - QMutex:
   * Made the isRecursive() method be a const function so that it can be
     called in const QMutex objects too.

 - QObject:
   * [QTBUG-52542] If the compiler supports variadic templates, functors
     connected to signals will not be copied any more each time the signal is
     emitted. This is the behavior that was exhibited with C++98 compilers.

 - QReadWriteLock:
   * Optimized QReadWriteLock to be faster and take less memory.

 - QRect:
   * Fixed integer overflow in center(). This fixes the result for some
     corner-cases like a 1x1 rectangle at (INT_MIN, INT_MIN), for which the
     previous implementation could return anything (due to invoking
     undefined behavior), but commonly returned (0, 0).

 - QRect/QRectF:
   * Added transposed().

 - QSharedPointer:
   * Added support for debug printing via QDebug.

 - QStorageInfo:
   * [QTBUG-49498] Fixed a bug that caused QStorageInfo to report
     information for the wrong filesystem if there is a mounted filesystem
     at a path that is a prefix of the requested path (e.g., it would
     report "/usr" filesystem for "/usrfoo").

 - QString:
   * Added resize(int, QChar) overload.

 - QStringRef:
   * Added subscript operator.
   * Fixed relational operators against (const char*) to return the correct
     result.
   * Added reverse iterators, rbegin(), rend(), crbegin(), crend().

 - QUuid:
   * Added Objective-C NSUUID/CFUUIDRef converters.

 - QVariant:
   * [QTBUG-53384] Fixed QVariant::canConvert and conversion from integer
     types to enumeration types.

 - QVector:
   * clear() now preserves capacity. To shed capacity, call squeeze() or
     swap with a default-constructed QVector object, see the documentation
     for an example.

 - State Machine:
   * Added constructor overload that takes a pointer-to-member for the
     QSignalTransition.

QtDBus
------

 - QDBusArgument:
   * [QTBUG-53376] Deprecated relying on a streamable Base to stream a
     Derived without providing operator<</>>() for Derived. No diagnostic
     provided. Support will be removed in Qt 5.8.

QtGui
-----

 - QWheelEvent::phase() now returns NoScrollPhase with non-phase-aware mice.
   This is most mice and input devices except, for now, Apple's trackpads
   and Magic Mouse.  It is no longer necessary to set the
   QT_ENABLE_MOUSE_WHEEL_TRACKING environment variable to enable the fix for
   QTBUG-50199.
 - [QTBUG-35972] Added QWheelEvent::inverted() to enable detection of the
   "natural scrolling" system setting. This feature currently only works on
   OS X, though support for other operating systems is planned.

 - Image:
   * [QTBUG-50745] Fixed possible crash in QImage::pixel() for mono or
     indexed images.

 - QIcon:
   * Split fromTheme() in two different overloads, one of which will only
     lazily lookup the icons, in order to speed up startup of applications
     that initialize many icons that are not necessarily visible.
   * fromTheme gained the ability to use the GTK icon cache to speed up
     lookups.

 - QPixmapCache:
   * Added QPixmapCache::Key::isValid().

 - QRawFont:
   * Fixed kerning on advances in QRawFont for OS X and Windows.

 - Tablet support:
   * [QTBUG-47007][QTBUG-51618] A synthetic mouse event will no longer be
     sent after every QTabletEvent, only after those which are not accepted
     (as documented).

 - Text:
   * [QTBUG-35156] Added support for color font rendering with Freetype.
   * [QTBUG-52048] Added QTextOption::ShowDocumentTerminator flag.

QtNetwork
---------

 - QAuthenticator:
   * [QTBUG-53338] Fixed crash when comparing a initialized QAuthenticator
     with an uninitialized QAuthenticator.

QtWidgets
---------

 - Moved QGtkStyle to the qtstyleplugins repository.
 - [QTBUG-37580] Added the Qt::AA_UseStyleSheetPropagationInWidgetStyles
   attribute which enables font and palette propagation for Qt Style
   Sheets.
 - [QTBUG-48138] QPinchGesture on OS X now behaves like on other platforms:
   totalScaleFactor is the magnitude of the pinch and scaleFactor is the
   delta for the current event.

 - Item Views:
   * [QTBUG-50102] Item views scroll per pixel on OS X now.
   * [QTBUG-50102] QAbstractItemView::verticalScrollMode and
     QAbstractItemView::horizontalScrollMode are now resettable.

 - QAbstractItemView:
   * [QTBUG-7232] In ItemViews when scrollMode is set to scrollPerPixel, it
     is now possible to change the single step. Qt will automatically adjust
     the single step until setSingleStep is called.  When setSingleStep is
     called it will however respect that and stop doing automatic changes
     of the value. Calling setSingleStep(-1) will switch mode back to
     automatic adjusting.

 - QAbstractScrollArea, QTextEdit, QPlainTextEdit:
   * [QTBUG-52559] Changed focus to Qt::StrongFocus. That respects
     platforms' native guidelines.

 - QHeaderView:
   * [QTBUG-39010] Fixed some issues with restoring of section size after a
     section is no longer the last visible section (in stretchLastSection
     mode).
   * [QTBUG-50171] Fixed a repainting issue when items had been reordered.

 - QListWidget:
   * [QTBUG-15741] Fixed a bug that caused the default drop action to be
     ignored when using icon mode.

 - QTableView:
   * [QTBUG-50171] Fixed a selection bug when rows or columns were hidden.

 - Styles:
   * [QTBUG-50102] Added SH_ItemView_ScrollMode style hint.

 - Dialogs:
   * [QTBUG-51148] Fixed requesting a font from font dialog with a
     non-existent family name and/or pixel size when using GTK2 platform
     theme.

QTest
-----

 - Added a new logging mode that allow test-results to be parsed on-the-fly
   when using Jetbrains TeamCity as CI-server. This mode is enabled by
   using the -teamcity option on the command-line.

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

 - The Gtk+ platform theme has been ported to Gtk+ 3.
 - Dropped support for Windows CE.
 - Added support for INTEGRITY RTOS.

Android
-------

 - Support for Android API < 16 was removed.
 - [QTBUG-37221] Qt can now be used to easily create Android Services.
 - Allow the user to choose how much from the Android theme is extracted.

iOS
---

 - [QTBUG-35271] QBackingStore now uses the raster paint engine instead of
   the OpenGL paint engine, enabling improved antialiased drawing. In case
   of performance regressions, the old code path can be enabled by setting
   the window's surface type to QSurface::OpenGLSurface.

OS X
----

 - Support for OS X < 10.8 was removed.
 - [QTBUG-7000] QMacPrintEngine now really sets the printer resolution.
 - [QTBUG-32898] OS X now accepts trusted certificates from the login and
   system keychains.
 - [QTBUG-48953] Pasting text from Qt applications to Apple Mail now works.
 - [QTBUG-48953] "text/vcard" is now required as the mime type when
   placing vCards on the clipboard.
 - [QTBUG-50262] QStandardPaths now returns the correct display name for
   the download folder.

Windows
-------

 - [QTBUG-390][QTBUG-6917][QTBUG-9350][QTBUG-24619] Added method
   QProcess::setCreateProcessArgumentsModifier() to enable users to
   intercept and modify CreateProcess parameters.
 - Added support for color fonts (color emojis) when DirectWrite 2 is
   available.

 - Text:
   * [QTBUG-47141] Made it possible to disable antialiasing for text when
     drawing into images.
   * [QTBUG-18711] Fixed disabling hinting for application fonts, e.g. when
     automatic scaling by device pixel ratio is in effect.

XCB / X11
---------

 - [QTBUG-44964] It's now possible to unset AA_CompressHighFrequencyEvents
   to disable the new X event compression feature that was added in 5.6.0.
   This is a replacement for the WA_NoX11EventCompression flag in Qt 4.
 - [QTBUG-49071] Fixed failure to deliver focusIn event on hide/show with XCB
 - QMenuBar now uses the unified D-Bus AppMenu menubar when the desktop
   environment supports it.

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

moc
---

 - [QTBUG-53441] Fixed crash when processing files ending with \\\r.

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

 - [QTBUG-35754] Static builds now embed QML resources into the libraries
   to make them self-contained.
 - [QTBUG-35886][Unix] Made it explicit that -fontconfig implies
   -system-freetype.
 - [QTBUG-43784][Unix] Fixed GLX not being enabled with -qt-xcb.
 - [QTBUG-45291][GCC] Enabled use of Qt with -Wzero-as-null-pointer-constant.
 - [Android@Windows] Fixed configure tests outside QtBase.
 - [Unix] Fixed config.log corruption with option -v.
 - [Unix] Fixed the MySQL configure test on RHEL 6.6.
 - [Android] Enabled building with newer SDKs than the minimal supported one.
 - QNX and Android builds on Windows use -system-zlib now.
 - Added support for "Canadian Cross Builds"; options -external-hostbindir
   and -host-option.
 - Added makespecs for DRIVE CX (Tegra X1), NVIDIA Jetson TK1, and i.MX7
   boards.
 - Qt now makes use of AVX512 instructions on Intel platforms.

qmake
-----

 - Specifying directories in RESOURCES now actually works.
 - Added -qtconf option to make it possible to use the same qmake binary
   with several builds of Qt.
