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