Qt 5.15.1 is a bug-fix release. It maintains both forward and backward compatibility (source and binary) with Qt 5.15.0. For more details, refer to the online documentation included in this distribution. The documentation is also available online: https://doc.qt.io/qt-5/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. **************************************************************************** * Important Behavior Changes * **************************************************************************** - QSharedPointer objects will now call custom deleters even when the pointer being tracked was null. This behavior is the same as std::shared_ptr. - Restored pre-5.15.0 behavior when converting from QVariant* to QJson* types. Unforeseen consequences of changes in 5.15.0 caused QByteArray data to be base64url-encoded; the handling of QRegularExpression was also unintentionally changed. These conversions are now reverted to the prior behavior. Additionally fixed QJsonValue::fromVariant conversions for NaN and infinities: they should always convert to QJsonValue::Null. **************************************************************************** * QtCore * **************************************************************************** - JSON * Fixed a regression from 5.14 that caused values of default-constructed QVariants in QVariantLists, QVariantMaps and QVariantHashes to disappear when converting to JSON via fromVariant{,List,Map,Hash}. - QCborMap * Fixed a bug that could cause the iterator returned from a failing key search with find() not to match end(). Now, every call to find() will detach in shared QCborMaps; to avoid this, use constFind() and constEnd(). - QFile: * moveToTrash now creates the trash folder on Linux as $XDG_DATA_HOME/Trash, as required by the freedesktop.org spec. * moveToTrash supports relative file paths on Windows. - QImage: * Fixed buffer overflow in XBM parser. * [oss-fuzz-23988] Fixed buffer overflow in XPM parser. - QJsonDocument: * Fixed a bug that caused QJsonDocument's equality operator to crash if one of the operands was default-constructed and the other wasn't. - QString: * Fixed quadratic worst-case complexity of remove(QString). The function now has linear complexity in all cases. - QTimeLine: * Deprecated QTimeLine's curveShape property in favor of the easingCurve property. - QXmlStreamReader: * [oss-fuzz-24347] Reduced memory consumption when handling huge input data. - mkspecs: * Explicitly enable float-divide-by-zero when configuring Qt with "-sanitize undefined". Before clang 9, it was implicitly enabled when -fsanitize=undefined was set. **************************************************************************** * QtGui * **************************************************************************** - QIcon: * [QTBUG-74252] If you call QIcon::setFallbackThemeName(), you should do it before the creation of the QGuiApplication; this now avoids a bug that resulted in the first loaded icons being empty. - HTML: * QTextDocument::toHtml() now exports letter and word spacing from the default format, if set, into the body tag. Such formatting can also be read back in. * [QTBUG-84981] Vertical alignment of images is now more compliant with the HTML standard: AlignBottom is the bottom of the line; AlignMiddle is between AlignTop and AlignBottom - Markdown: * [QTBUG-81306] QTextMarkdownImporter now correctly reads nested span formatting such as *italic ~~strikeout **bold `code` end**~~* including in link text and image alt text. The effects are mostly cumulative; however `code` blocks still completely override formatting. * [QTBUG-80603] QMarkdownWriter no longer tries to word-wrap code blocks; and code blocks nested in list items are formatted correctly. - Text: * Fixed a bug where glyphs would be clipped at very large sizes. **************************************************************************** * QtTestLib * **************************************************************************** - QCOMPARE: * QCOMPARE() now treats its values as equal when qFuzzyIsNull() is true for both of them. **************************************************************************** * QtWidgets * **************************************************************************** - QApplication: * Wheel events from a device that creates an event stream are correctly delivered to the widget that accepts the first wheel event in the stream. - QListView: * Moving selected items within a list view by drag'n'drop will maintain the selection of those items. - QMenu: * [QTBUG-84926] Fixed a regression that prevented pressing the mouse to open a menu, dragging over a menu item, and releasing to select it. * [QTBUG-76162] A submenu is always shown on its parent menu's screen. A text control's context menu is now always shown on the same screen. A menu on a QMenuBar can only be shown on the screen(s) where the menubar is visible. - QWidget: * setFocusProxy no longer moves focus away from a previously set focus proxy, restoring pre-Qt 5.13.1 behavior. **************************************************************************** * Platform-specific changes * **************************************************************************** - Android * [QTBUG-83089] Support setting mimetypes and and namefilters for Android native file dialog. - iOS * [QTBUG-83811] When text is selected using handles in a read-only control, it's now possible for the edit menu popover to be configured to have a Copy action instead of Paste. So far this is used in QtPDF. - Linux * QFileDialog will open directories through the portal if required version of xdg-desktop-portal is running on the system. - X11 * [QTBUG-83446] Fixed a drag-and-drop crash due to an invalid reply in QXcbDrag. * [QTBUG-56218] When keyboard modifiers change during drag-and-drop, a QDragMoveEvent is sent even if the mouse doesn't actually move, to allow updating the drop action and cursor. * [QTBUG-85275] Window geometry coordinates are now allowed to be up to 32767. * [QTBUG-25351] The new QT_QPA_SYSTEM_ICON_THEME variable can override the icon theme name. **************************************************************************** * Third-Party Code * **************************************************************************** - sqlite: * Upgraded to v3.32.1 * Upgraded to v3.32.3 - PCRE2 was updated to version 10.35. - libjpeg-turbo was updated to version 2.0.5 - Documented the use of Khronos headers under MIT license in Qt GUI (ANGLE).