summaryrefslogtreecommitdiff
path: root/dist/changes-5.2.0
blob: fc6de1db3bb008ef3cad9e3350ffe0792b9f2d12 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
Qt 5.2 introduces many new features and improvements as well as bugfixes
over the 5.1.x series. For more details, refer to the online documentation
included in this distribution. The documentation is also available online:

  http://qt-project.org/doc/qt-5.2

The Qt version 5.2 series is binary compatible with the 5.1.x series.
Applications compiled for 5.1 will continue to run with 5.2.

Some of the changes listed in this file include issue tracking numbers
corresponding to tasks in the Qt Bug Tracker:

  http://bugreports.qt-project.org/

Each of these identifiers can be entered in the bug tracker to obtain more
information about a particular change.

****************************************************************************
*                           General                                        *
****************************************************************************

General Improvements
--------------------

Third party components
----------------------

****************************************************************************
*                   Important Behavior Changes                             *
****************************************************************************

 - QSGMaterialShader::compile() will not be called on all instances anymore.
   To enforce the old behavior, set the QSGMaterial::CustomCompilation flag.

 - QSGMaterialShader::activate() and QSGMaterialShader::deactivate() are
   no longer responsible for calling glEnableVertexAttribPointer(),
   glDisableVertexAttribPointer() and binding the shader program. This is
   now done by the renderer. Reimplementations of these functions which
   are not calling the baseclass will need to take this into account.

 - The scene graph now requires a call to QSGNode::markDirty() with the
   flag QSGNode::DirtySubtreeBlocked whenever the state of
   QSGNode::isSubtreeBlocked() is changed.

 - When assigning double precision floating point values to integer properties,
   the engine now truncates instead of rounding. This is consistent with the
   ECMAScript specification's way of converting doubles to ints.

 - Comparing value based types with the JS strictly equal operator will
   now behave similar to the corresponding C++ == operator. Ie. two
   QPoints exposed on the JS side will be strictly equal if their values
   are equal. This brings the behavior of value based types in JS closer
   to what one would expect and more inline with primitive values in 
   Javascript.

 - QTBUG-32838: Setting the model property of ListView, GridView or PathView to
   an empty model will now correctly reset currentIndex to -1. In prior versions
   currentIndex was set to 0 regardless of the actual number of rows in the model
   when the model property was changed after the view's initialization.

 - QtQuick.Window will now correctly use Window.AutomaticVisibility by
   default, analogous to QWindow::show(), resulting in eg. maximized
   windows by default on iOS/Android.

 - QtQuick.Window will now warn when setting conflicting visible and visibility
   properties, as this use-case is broken with the current QWindow implementation
   of the two properties.

****************************************************************************
*                          Library                                         *
****************************************************************************

QtQml
------
New types and properties in this version can be accessed using
"import QtQml 2.2".

- New class QQmlFileSelectors allows applying a QFileSelector to QML assets
  and types. One is automatically set on QQmlApplicationEngines from now on,
  plain QQmlEngines must set their own in order to be affected.

- QML Singletons can now be defined in QML using the "pragma Singleton"
  directive, combined with a singleton entry in a qmldir file.

- The Locale type (from Qt.local()) is now available from the QtQml import as
  well as from the QtQuick import.

- New qmlProtectModule function for preventing type injection into built-in
  QML modules.

- Qt.application gained several new members
    * enumeration "state" replaces boolean "active", so as to indicate more
      states than just active/inactive
    * strings "organization" and "domain" added, exposing those properties
      from QCoreApplication.

QtQuick
------
New types and properties in this version can be accessed using
"import QtQuick 2.2".

- New scene graph renderer should reduce state changes, number of draw calls,
  CPU->GPU bandwidth and generally improve performance.

- QTBUG-33993: There is now one render thread per window in QtQuick.

- Textures in the scene graph can now be entered into an atlas, facilitating
  in better batching in the renderer. Atlas textures are enabled by passing
  QQuickWindow::TextureCanUseAtlas to QQuickWindow::createTextureFromImage()

- New "Animator" types available for running QtQuick animations on the render
  thread. This allows certain animations to continue when the GUI thread is
  blocked.

- Text gained a hoveredLink signal.

- TextEdit gained an append method for easier programmatic text controls.

- TextInput gained an editingFinished signal.

- Drag and DropArea elements now handle drag'n'drop from other applications.

- Screen type gained a pixelDensity property, deprecating logicalPixelDensity,
  as logicalPixelDensity is less portable across some mobile platforms.

- QTBUG-34368: Click signals are no longer propagated to disabled MouseAreas

- QTBUG-33644: Windows created dynamically now respond appropriately when
  modality is set.

- QTBUG-33699: PathView now follows the same pattern as Flickable for
  grabbing the mouse.

- QTBUG-32078: qmlClearTypeRegistrations now works when using QtQuick.

- QTBUG-33112: Setting an items state too early no longer crashes.

- QTBUG-32920: Dragging a MouseArea nested in a Flickable now works with touch
  to mouse translation.

- QTBUG-32513: Crash fix when changing image source repeatedly.

- QTBUG-32750: Fix over-clipping text on smaller fonts.

****************************************************************************
*                          Database Drivers                                *
****************************************************************************


****************************************************************************
*                      Platform Specific Changes                           *
****************************************************************************


****************************************************************************
*                      Compiler Specific Changes                           *
****************************************************************************


****************************************************************************
*                          Tools                                           *
****************************************************************************

- qmltestrunner: qtest context property is deprecated. Use QTestRootObject
  from Qt.test.qtestroot instead.

****************************************************************************
*                          Plugins                                         *
****************************************************************************

- A new experimental QML Settings type provides means for applications to
  manage persistent settings in a platform-independent manner. The type is
  made available by importing the Qt.labs.settings 1.0 module. Note: types in
  the Qt.labs module are not guaranteed to remain compatible in future
  versions.

- Qt.labs.folderlistmodel FolderListModel type gained showFiles and
  showHidden properties in Qt.labs.folderlistmodel 2.1.

- QML-backed plugins, like QtQuick.Dialogs, now only deploy QML files in debug
  mode. In release mode QML files are built into the plugin and referenced via
  qrc URLs.

- New FontDialog and MessageDialog types available in QtQuick.Dialogs 1.1

- ColorDialog added currentColor property in QtQuick.Dialogs 1.1