Qt 5.12.2 is a bug-fix release. It maintains both forward and backward compatibility (source and binary) with Qt 5.12.0 through 5.12.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/index.html The Qt version 5.12 series is binary compatible with the 5.11.x series. Applications compiled for 5.11 will continue to run with 5.12. 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. **************************************************************************** * QtQml * **************************************************************************** - Important Behavior Changes: * The parameters passed to C++ functions from QML are now checked for compatibility with the expected arguments. If they cannot be converted, a warning is printed. In future versions of Qt a type error will be thrown in JavaScript and the function will not be invoked. * [QTBUG-73239] Removed revisions from the new Qt.labs.settings methods and properties that were introduced in 5.12. Qt.labs plugins are intended to always have revision 1.0 until they graduate. - QQmlApplicationEngine: * [QTBUG-73649] QQmlApplicationEngine connects quit() and exit() signals with queued connections to avoid problems with AutoConnection, when connecting to QCoreApplication slots. - [QTBUG-69340] QML cache files are not unnecessarily re-generated. - [QTBUG-71325] Fixed a crash in V4 string to number conversion on 32-bit platforms. - [QTBUG-72137] Fixed a crash in QML garbage collector when accessing other items from Component.onDestruction. - [QTBUG-72352] QML can be built with -no-feature-translation. - [QTBUG-72407] We now annotate stack traces when frames are elided through tail calls. - [QTBUG-72734] Fixed a crash in the parser on certain kinds of bad input. - [QTBUG-72858] Exception handlers are correctly scoped for try blocks and for "for ... in" loops. - [QTBUG-72908] QML can be built with -c++std=c++11 again. - [QTBUG-72972] QQmlMetaType deletes attached properties in its destructor to avoid a crash. - [QTBUG-73009] Fixed a crash with qt.qml.binding.removal.info=true. - [QTBUG-73013] If a signal sender is deleted during the handling of the signal in QML, the QML engine won't crash anymore. - [QTBUG-73152] Brought behavior of String.replace() in line with other JS engines: "x".replace("x", "$1") gives "$1" in both JSC and V8, as there are no captures that could be used as a replacement for $1. Two-digit captures ($nm) get applied if $nm captures exist. If there are less than nm but more than n captures available $n is replaced by the n'th capture and m is copied over verbatim. - [QTBUG-73425] Fixed allocation of large arrays at startup. - [QTBUG-73733] Fixed an access-after-delete crash in DelegateModel. - [QTBUG-73734] When a Q_GADGET type, marked as a primitive type with Q_DECLARE_METATYPE, is emitted with a signal, it can now be accessed in QML. - [QTBUG-73750] Fixed undefined Q_ENUM value in QML Connections object. - [QTBUG-73821] Fixed a failing assert on 32bit platforms. - The JIT compiler is disabled for the IPL32 (or X32) ABI. It did not work before. - The tail call optimization correctly counts method arguments on 32bit platforms now. - The JavaScript engine now tolerates UINT_MAX as array index. **************************************************************************** * QtQuick * **************************************************************************** - TextInput/security: * When the TextInput is used for password input, preallocate a buffer for the string that stores the entered value and zero-out the string on TextInput destruction to avoid leaking sensitive data to process memory - [QTBUG-63271] If a MouseArea sets itself invisible or disabled while handling a mouse press, it does not acquire the exclusive grab - [QTBUG-71887] TapHandler now consistently forgets touchpoints that occur outside its parent's bounds. This eliminates the warning "pointId is missing from current event, but was neither canceled nor released" when tapping quickly and having some of the taps fall out of bounds. (The warning still exists though, in case there are other scenarios where Handlers remember "wanting" certain touchpoints and then they go missing.) - [QTBUG-72822] PinchHandler now correctly holds its target in place when axes are disabled. - [QTBUG-71918] PointerHandlers are declared as direct children of Flickable (ListView, TableView etc.) now get the pointer events properly. - [QTBUG-42155] Canvas now handles switching between object and string based colors - [QTBUG-73113] Fixed a crash when reparenting QML Canvas items - [QTBUG-73013] Fixed a crash in QuickView on setSource while deleting the sender. - [QT3DS-1419] Improved quality of Qt 3D Studio text labels.