blob: 2fa4173c2ec2edb3817771da1c6098478a133087 [file] [log] [blame]
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<T>
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().