1Qt 5.9 introduces many new features and improvements as well as bugfixes 2over the 5.8.x series. For more details, refer to the online documentation 3included in this distribution. The documentation is also available online: 4 5 http://doc.qt.io/qt-5/index.html 6 7The Qt version 5.9 series is binary compatible with the 5.8.x series. 8Applications compiled for 5.8 will continue to run with 5.9. 9 10Some of the changes listed in this file include issue tracking numbers 11corresponding to tasks in the Qt Bug Tracker: 12 13 https://bugreports.qt.io/ 14 15Each of these identifiers can be entered in the bug tracker to obtain more 16information about a particular change. 17 18**************************************************************************** 19* Important Behavior Changes * 20**************************************************************************** 21 22* qmlInfo now reports messages with a QtMsgType of QtInfoMsg instead of 23 QtWarningMsg. To continue to send warnings, callers should migrate to 24 the newly-introduced qmlWarning function. 25 26**************************************************************************** 27* Library * 28**************************************************************************** 29 30QtQml 31----- 32 33 - The garbage collector has been rewritten to provide better memory 34 consumption, and improved, more predictable performance for JavaScript code. 35 - Array.prototype.find and Array.prototype.findIndex from ES6 are now implemented. 36 - Introduced qmlRegisterModule() that can be used to make a certain module 37 version available, even if no types or revisions are registered for that 38 version. 39 - Introduced qmlDebug & qmlWarning functions to qqmlinfo.h, in addition to 40 the pre-existing qmlInfo function. As a side effect, QQmlError has also 41 gained messageType() and setMessageType(). 42 - [QTBUG-52013] Added QQmlEngine::offlineStorageDatabaseFilePath(dbName) 43 to allow getting the actual storage path for a particular database. 44 - [QTBUG-53091] Introduced Qt.application.displayName, to map the 45 QGuiApplication::applicationDisplayName property to QML. 46 - [QTBUG-45316] QML Settings has been fixed to handle JavaScript arrays. 47 48QtQuick 49------- 50 51 - Global: 52 * Improved stability of Animator's internals. 53 * [QTBUG-55496] Added a disk cache for OpenGL shaders to QtQuick. 54 * [QTBUG-58845] QWheelEvent delivered to all QQuickItems will now have a 55 correct global position. 56 * [QTBUG-57910] Touch events are now correctly ungrabbed if the touch event 57 was stolen by a parent item, such as a Flickable. 58 * [QTBUG-57098] Added Keys::shortcutOverride signal to allow prevention of 59 e.g. Shortcut from stealing key events. 60 * [QTBUG-56279] Added a shared memory image provider to conserve memory 61 when several processes use the same local image files. 62 63 - Window: 64 * [QTBUG-60232] Added QQuickWindow::sceneGraphBackend() to allow querying 65 which scene graph rendering backend is in use. 66 * [QTBUG-56115] Added a screen property to Window, which can be used to 67 declaratively associate a window with a specific screen. This is useful on 68 multi-screen embedded systems. Added Qt.application.screens as an array of 69 screens from which one can be chosen to assign to a Window. Added virtualX 70 and virtualY properties to Screen to enable querying the screen's position 71 within the virtual desktop. 72 73 - Items: 74 * [QTBUG-38515] Added horizontalOvershoot and verticalOvershoot 75 properties to Flickable, for use in implementing custom boundary actions and effects. 76 * [QTBUG-44762] Added a forceLayout method to Positioner types (Column, Row, 77 Flow, Grid) to force positioning of children to happen earlier. Additionally, 78 a positioningComplete signal has been added. 79 * [QTBUG-57203] Added TextInput::textEdited signal to distinguish user edits from 80 programmatical text changes. 81 * [QTBUG-42074][QTBUG-57003] Added support for characters in Private Use Area, 82 as well as zero-width joiners and zero-width non-joiners for TextInput and 83 TextEdit. 84 * [QTBUG-47662] Added MouseArea::pressAndHoldInterval to allow control over the 85 elapsed time before the pressAndHold signal is emitted. 86 * Item::grabToImage on an Image element will now work regardless of the 87 Image's sourceSize or cache properties. 88 * [QTBUG-52553][QTBUG-56501] Made it possible to enable horizontal 89 flicking in a vertical ListView, and vice versa. The only thing apps 90 must do is to specify the desired flick direction and the content 91 width (vertical ListView) or content height (horizontal ListView), 92 which is not calculated by ListView. 93 * Added Shortcut::sequences, to provide support for multiple different shortcut 94 sequences in a single Shortcut. 95 * Added rotation, ellipseDiameters and uniqueId properties to 96 MultiPointTouchArea.TouchPoint, and deprecated the area property. 97 A TouchPoint is now modeled as an ellipse centered on a point, 98 possibly rotated, depending on what the hardware and drivers support. 99 Android and the TUIO plugin support rotation and ellipseDiameters, for example. 100 The uniqueId is so far applicable only to the use of fiducials (tokens, 101 knobs or game pieces with hardware-based identification) on a TUIO touch surface. 102 103 - Accessibility: 104 * [QTBUG-58340] Fixed focus handling so that keyboard and VoiceOver's 105 virtual focus are in sync (QTBUG-58340). 106 107 - Text: 108 * Deprecated doLayout() in favor of forceLayout(), to improve consistency now 109 that more types (Positioners, Layouts, etc) have a forceLayout() method. 110 * [QTBUG-51133] Added fontInfo property to Text type, providing a way to 111 query properties of the actual font used for presenting the text. 112 * [QTBUG-58852] Text items with a renderType of Text.NativeRendering will no 113 longer stop rendering with a large number of characters. 114 115 116QtTest 117------ 118 119 - [QTBUG-23083] Added TestCase::touchEvent to support simulating touch events 120 in tests. 121 - [QTBUG-56361] Added createTemporaryObject() and createTemporaryQmlObject() 122 functions to ensure that dynamically created objects can be destroyed at the 123 end of each test function. 124