Qt 5.8 introduces many new features and improvements as well as bugfixes over the 5.7.x series. 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.8 series is binary compatible with the 5.7.x series. Applications compiled for 5.7 will continue to run with 5.8. 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. **************************************************************************** * General * **************************************************************************** - [QTBUG-54982] Add qmlRegisterUncreatableMetaObject convenience function needed to register Q_NAMESPACE QMetaObjects. **************************************************************************** * Important Behavior Changes * **************************************************************************** - [QTBUG-52012] When the engine looks for QML modules / extension plugins in statically linked applications, the plugins are not instantiated in the qml loader thread anymore. For this to work however it is necessary for plugins to use Q_PLUGIN_METADATA(IID_QQmlExtensionInterface_iid) in their class declaration instead of hardcoding the interface id as a string literal. - A JS null value converted to a QVariant now has type QMetaType::Nullptr rather than QMetaType::VoidStar. - To improve the start-up time and reduce memory consumption, the QML engine attempts to cache the code and data structures generated during loading of .qml and .js files. Cache files are - if possible - written to disk in the directory next to the source file with the .qmlc/.jsc extension. If that is not possible, they are written to QStandardPaths::CacheLocation. **************************************************************************** * Library * **************************************************************************** QtQml ----- - [QTBUG-53412] Fix mapping of null JS values to null SQL values instead of empty strings. - [QTBUG-53794] Fix crash when using the "with" statement with an expression that throws an exception. - [QTBUG-54589] Fix assertion when deleting properties of JS objects - [QTBUG-54360] Added exit(int retCode) method to the Qt global object. An application can call Qt.exit to specify a return code of the engine. - QQmlXMLHttpRequest: * [QTBUG-38175] QQmlXMLHttpRequest now supports the PATCH method in HTTP requests. - Fix reading of enum properties from gadgets / value types when the enum was registered with qRegisterMetaType(). - Fixed support for using namespaces in property types, signal parameter names and list types - Fixed support for declaring default properties of type list QtQuick ------- - QQuickWindow: * The relevant child item is now sent a hover event when the window receives a QEnterEvent, making sure hovering is recognized without waiting for mouse movement. - [QTBUG-50298] Added Qt.application.font property. - QQuickWidget now properly repaints text on high-DPI screen changes. - [QTBUG-54238] qt.scenegraph.info logging category got renamed to qt.scenegraph.general. - ShaderEffect with OpenGL now supports reading GLSL shader sources from local files and from the resource system. Whenever a fragmentShader or vertexShader property is a valid such URL, the value is treated as a file specification instead of actual source code. - The threaded scene graph renderer does not sleep up to one vsync interval before the first frame anymore. - [QTBUG-48723] Added properties to access color values for the HSV and HSL color models to the basic QML color type. - MouseArea no longer thinks it's pressed when it does not accept the press event. When a press event is not accepted, MouseArea also no longer receives a cancel event. - Touch events are now delivered in a well defined order: New touch points are delivered first to items under the finger which was first touching the screen. Then to items that are under the second finger and finally to common ancestors. This means that items that are "on top" will get a chance to grab touch points before any items in the background. - [QTBUG-39888] Fix crash with QQuickItems created via JavaScript being garbage collected sometimes when they're not assigned to a window. - Drag: * [QTBUG-37366] Added imageSource property to attached Drag object: this allows drag sources to specify the pixmap to be drawn next to the mouse cursor when starting a drag and drop operation. - Important Behavior Changes: * [QTBUG-54133] QQuickWidget now follows the same behavior as QQuickWindow when it comes to the persistent scenegraph setting controlled by QQuickWindow::setPersistentSceneGraph(). In earlier releases the setting was ignored and the scenegraph was torn down on every hide event. This is not the case anymore. * [QTBUG-54133] QQuickWidget now behaves identically to QOpenGLWidget when it comes to handling window changes when reparenting the widget into a hierarchy belonging to another top-level widget. Previously the OpenGL context always got destroyed and recreated in order to ensure texture resource sharing with the new top-level widget. From now on this is only true when when AA_ShareOpenGLContexts it not set. - LayoutMirroring: * [QTBUG-55517] Made it possible to attach LayoutMirroring to a Window. - MouseArea: * [QTBUG-40475][QTBUG-42194][QTBUG-33982][QTBUG-42578][QTBUG-52537] Hover state is now updated once per frame. This means that MouseArea::containsMouse property will now be correct even if the mouse is not moving, but items move under the cursor. Likewise the mouse position properties and positionChanged signal will act as if the mouse had moved. - QQuickItem: * [QTBUG-31861] Fixed issue with mouse button events being sent even when they were disabled by setAcceptedMouseButtons. - QQuickWindow: * QQuickWindow::sendEvent() is deprecated. Use QCoreApplication::sendEvent() directly instead. - ShaderEffect: * Add new mesh type BorderImageMesh. BorderImageMesh provides an optimized way to use BorderImage-type images with ShaderEffect. - Text: * [QTBUG-52389] Fixed clipping of glyphs that extend beyond font's em square. * [QTBUG-54723] Fixed a performance regression when rendering a rich text item with scaled images. * [QTBUG-43133] Fixed placement of flowing text objects in the start of a right-to-left block. QML Elements ------------ - Added a LoggingCategory type and added support for it to the console object - Binding: * Add delayed property to Binding as a way to avoid potentially expensive or unexpected intermediate values. - Text, TextEdit, TextInput: * Added "hintingPreference" property - Platform Specific Changes: * [Windows][QTBUG-45321] Worked around an issue with fonts that have corrupt cmap tables. QtTest ------ - TestCase: * [QTBUG-19708] Added tryVerify() function to allow verification of asynchronous conditions that can't be tested using tryCompare().