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

For more details, refer to the online documentation included in this
distribution. The documentation is also available online:

  https://doc.qt.io/qt-5.15/index.html

The Qt version 5.15 series is binary compatible with the 5.14.x series.
Applications compiled for 5.14 will continue to run with 5.15.

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

QtCore
------

 - QJsonObject:
   * [QTBUG-86873] Fixed sorting in QJsonObject when parsing UTF-8 JSON text
     so that searching works afterwards.

 - QLocale:
   * [QTBUG-74287] Fixed locale look-up when language is unspecified.
   * [QTBUG-84669] Fixed QLocale::findLocaleDataById().
   * [QTBUG-86306] Fixed incorrect guessing of the UTC time zone when the
     system timezone name is unrecognized.

 - QMimeDatabase:
   * [QTBUG-85436] Fixed handling of glob-deleteall in QMimeDatabase.

 - QStringView:
   * [QTBUG-86516] A couple of methods have been added to QStringView that make
     it easier to write code that is portable between Qt 5.15 and Qt 6. Those
     include QStringView::split(), QStringView::count(), number conversion
     methods (QStringView::toInt() and friends). A couple of overloads taking
     QStringView have been added to QRegularExpression (match() and
     globalMatch()) and QString (append(), prepend(), insert() and
     localeAwareCompare()).

 - QThreadPool:
   * [QTBUG-87092] Fixed a race condition in QThreadPool::clear().

 - QUrl:
   * [QTBUG-86277] Changed QUrl::fromLocalFile() to accept Windows UNC paths
     whose hostname component is not a valid Internet hostname. This makes QUrl
     able to accept extended-length paths (\\?\), device namespace (\\.\),
     WSL (\\wsl$), etc.

 - QVector:
   * [QTBUG-86392] Fixed a BC break in QVector's QArrayDataPointerRef constructor.

 - Network:
   * [QTBUG-85901] QNetworkRequest FollowRedirectsAttribute is now deprecated.
   * [QTBUG-85902] Fixed a crash in HTTP/2 when handling Remote Disconnected.
   * [QTBUG-85123] QAuthenticator now tries to get credentials before using GSSAPI.
   * [QTBUG-85902] If QNAM asks for HTTP/2 or 1.1 and the server doesn't list either,
     we now try to connect using HTTP/1(.1) just in case, to keep compatibility.
   * [QTBUG-86418] Huffman compression now handles QByteArray's elements as
     unsigned char to avoid an HTTP/2 crash when using unicode in an http header.

QtGui
-----

 - Image formats:
   * [QTBUG-87320] Fixed a crash in QImage conversions still ongoing on shutdown.
   * [QTBUG-86702] Fixed a gif read error.
   * [QTBUG-86691] Fixed an XPM read error caused by off-by-one in overflow check.
   * [QTBUG-85193] SVG now allows smooth curve stroking of very wide lines.

 - Input:
   * [QTBUG-86207] We now ignore mouse events where globalPos contains NaN
     to avoid a crash.
   * [QTBUG-86253] Fixed a touch->mouse synthesis bug that caused widgets
     to get stuck in pressed state.

 - QPainter:
   * [oss-fuzz-24615] Fixed a heap-buffer-overflow.
   * [QTBUG-84267] Fixed a crash in QIcc::fromIccProfile.

 - QScreen:
   * [QTBUG-76902] QScreen now emits geometryChanged() when the logical DPI changes
     so as to resize widgets and fonts after moving to a screen with different DPI.

 - Text and fonts:
   * [QTBUG-85016] Fixed a potential crash when rendering text with an empty font
     database.
   * [QTBUG-87267] We now fall back to using the family when doing an exact match
     so that QFont::exactMatch() returns true for installed fonts.
   * [QTBUG-85560] Fixed rendering unicode characters using a fallback font.
   * [oss-fuzz-24702] QTextDocument's HTML parser now avoids an integer overflow that
     resulted in extreme values for font pixelsize.

QWidgets
--------

 - QCalendarWidget:
   * [QTBUG-86307] The calendar widget now shows the year correctly after editing.

 - QComboBox:
   * [QTBUG-86580] QComboBox::currentText() now returns an empty string rather than
     placeholderText if the text is empty.

 - QGraphicsScene:
   * [QTBUG-87174] Fixed a bug in the initialization of BSP trees to increase
     the performance of QGraphicsScenes with non quadratic scene rectangles.

 - QMenu:
   * [QTBUG-77833] We now close popups on windowWillMiniaturize notification
     so that context menus are not left visible when a window is minimized.

 - QSpinBox:
   * [QTBUG-86483] QSpinBox now avoids emitting valueChanged twice if the
     application's handler takes longer than the press'n'hold timer.

 - Dialogs:
   * [QTBUG-87483] QFontDialog::selectedFont() is now correct at the time
     the accepted signal is emitted.
   * [QTBUG-10561] Fixed a reentrancy problem with processEvents() in
     QProgressDialog::setValue() when using Qt::WindowModal with setValue()
     connected to a signal in another thread using Qt::QueuedConnection.

 - Item views:
   * [QTBUG-86268] Fixed QTable/TreeView sortByColumn() when it's already sorted.
   * [QTBUG-86166] Clipboard copy is now possible with more data types that can
     be converted to strings.
   * [QTBUG-85366] QTreeView now fetches as many nested entries from the model
     as can fit into the view by by repeatedly calling canFetchMore() and
     fetchMore() if necessary.
   * [QTBUG-87057] Item views no longer allow CopyAction for InternalMove views,
     and no longer lose items during drag-and-drop if a model only allows
     MoveAction and doesn't override moveRows().
   * [QTBUG-83313] Fixed CaseSensitivity handling for QRegularExpression in
     QSortFilterProxyModel.

 - Styles:
   * [QTBUG-86411] Fixed a bug in Fusion that was adding unnecessary padding to
     a groupbox without a title or indicator.
   * [QTBUG-86587] Fixed QPushButton hit testing when a QStyleSheetStyle adds padding.

QtSQL
-----

 - sqlite:
   * Upgraded to v3.33.0

 - PostgreSQL:
   * [QTBUG-84356] QSqlDriver::subscribeToNotification() is no longer lost
     if the PostgreSQL server restarts.

 - Interbase:
   * [QTBUG-83409] We now correctly read/write arrays to Interbase.
   * [QTBUG-83152] Interbase now handles EXECUTE BLOCK statements correctly.

QtXML
-----

 - [QTBUG-86547] Fixed a double deletion in QDomAttr::setNodeValue().

Third-Party Code
----------------

 - Fixed copyright information for "XCB-XInput".

 - Changed license text of "PCRE2 - Stack-less Just-In-Time Compiler"
   component. The documentation (incorrectly) included the generic PCRE2
   license so far.

 - Fix aggregated copyright information of TinyCBOR component to reflect the
   years in the individual source files. Note that this is not same as the
   Copyright year in the upstream MIT license text.

 - Changed classification of the wintab license from "Custom" to
   "LCS-Telegraphics License"

****************************************************************************
*                        Platform-specific changes                         *
****************************************************************************

Windows
-------

 - [QTBUG-84786] Fixed an issue with fonts selected using typographic names.
 - [QTBUG-86344] Fixed pixelation on Vista style after focus/activation
   with fractional scale factors.
 - [QTBUG-86344] Vista Style: Fix pixelated arrow of QCommandLinkButton by
   letting QIcon do the scaling.
 - [QTBUG-85981] QEventDispatcherWin32::processEvents() is synchronized with
   QCoreApplication to handle queued connections in nested loops properly.

Android
-------

 - [QTBUG-83916] Fixed a crash in tooltips caused by lack of cursor support.
 - [QTBUG-69155] Fixed expose events after window resize.
 - [QTBUG-87066] It's now possible to build Android exampls on Windows with cmake.
 - [QTBUG-86282] The configure options -android-javac-source and -android-javac-target
   can now be used to set the javac version numbers.
 - [QTBUG-86282] Gradle builds can now use java 8 features.
 - [QTBUG-86674] Gradle builds are allowed to run using JVM daemon, which
   improves build time similar to a normal Gradle build in Android Studio.
 - [QTBUG-85399] Fixed running 'make apk' in a qmake project when using
   a shadow non-prefix build.
 - [QTBUG-86394] QNetworkInterface no longer uses Netlink on
   Android 11 because of SELinux rules that block the RTM_GETLINK requests.
 - [QTBUG-79094] Qt can now be built with JDK version >=12.
 - [QTBUG-85399] Fixed building apps when Qt is configured with one ABI.

Linux
-----

 - Fixed an issue that would cause debugging a Qt application that uses
   QProcess to confuse both gdb and lldb if the Linux kernel was version 5.4 or
   higher. Behavior outside of a debugging session was not affected.
 - [QTBUG-83806] Fixed double pixel-ratio scaling
   which was causing excessively large icons to be sent over D-Bus.
 - [QTBUG-87143] Fixed a crash in QXdgDesktopPortalFileDialog
 - [QTBUG-86287] Fixed static builds: xcb-image depends on add xcb-util.
 - [QTBUG-86383] Fixed uninitialized values in QXcbDrag::handleDrop()
 - [QTBUG-67928] On xcb, if Xft.dpi is not set and we attempt to determine
   logical DPI using virtual desktop size / virtual desktop physical size,
   this fallback is now restricted to 96 and higher.
 - [QTBUG-86170] Fixed QLabel::setPixmap() truncation on high dpi screens.
 - [QTBUG-81723] Fixed flushing of native subwindows when connected to the
   X display over the network.

VNC
---

 - [QTBUG-85006] When a client connects, the initial mouse cursor
   state is now correct.

WebAssembly
-----------

 - [QTBUG-86620] Fixed XMLHttpRequest status code.

macOS
-----

 - [QTBUG-71939][QTCREATORBUG-24665] Partially fixed drag-and-drop.
 - [QTBUG-69608] Added native virtual key codes to modifier keys.
 - [QTBUG-85105] We now handle NSEvent*MouseDragged in QCocoaWindow::startSystemMove()
   to fix QWindow::startSystemMove() with QML DragHandler.
 - [QTBUG-85915] Fixed a crash when opening a QComboBox multiple times
   after moving application windows from one screen to another.
 - [QTBUG-86191] Fixed QLocale::system().standaloneMonthName() on system locale.

iOS
---

 - [QTBUG-86718] Fixed the build on Xcode 12 by passing -arch to clang
   running configure tests.

INTEGRITY
---------

 - [QTBUG-86210] Fixed the build by manually initializing TextureOp and BufferOp.

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

rcc
---

 - [QTBUG-86675] rcc output now generates deterministic output for directories.

qmake
-----

 - [QTBUG-86675] qmake now creates deterministic results.
 - [QTBUG-86062] qmake now supports multiple /MERGE:from=to options in the
   MSVC generator.
