summaryrefslogtreecommitdiffstats
path: root/dist/changes-5.7.0
blob: acdf243f53ba01c72befe0dbad52e89239318209 (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
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
Qt 5.7 introduces many new features and improvements along with bug fixes
over the 5.6.x series. Also, there is a change in the licensing terms.
For more details, refer to the online documentation included in this
distribution. The documentation is also available online:

  http://doc.qt.io/qt-5.7

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

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

  http://bugreports.qt.io/

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

This release contains all fixes included in the Qt 5.6.1 release.

****************************************************************************
*                          Important License Changes                       *
****************************************************************************

 - Qt is no longer available under LGPLv2.1. The libraries in this package
   are now available under the following licenses:
   * Commercial License
   * GNU General Public License v2.0 (LICENSE.GPL2) and later
   * GNU Lesser General Public License v3.0 (LICENSE.LGPL3)

   Note that a few Qt Libraries (currently Qt Charts and Qt Data
   Visualization) are available only under the Commercial License and GPL
   version 3.

 - Qt Tools are now available under the following licenses:
   * Commercial License
   * GNU General Public License 3.0 (LICENSE.GPL3) with exceptions
     described in the Qt Company GPL Exception 1.0 (LICENSE.GPL3-EXCEPT)

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

 - Starting with Qt 5.7, Qt requires a C++11 compiler with support for
   C++11 atomics. This affects user code too: Qt headers no longer compile
   with a C++98 compiler. The minimum compiler versions for this release
   are:
     * GCC 4.7
     * Clang 3.4 (found in XCode 5.1)
     * Microsoft Visual Studio 2013
 - Support for the following platforms was removed in this version:
     * Apple OS X 10.7 (Lion)
     * Microsoft Windows XP
     * Microsoft Windows Vista
     * Microsoft Windows Embedded Compact 7
     * Microsoft Windows Embedded Compact 2013
 - Support for DirectFB is no longer enabled by default, due to lack of
   development in upstream. To re-enable the platform plugin, pass the
   -directfb option to configure. If there is no renewed interest in this
   platform, the support will be removed in Qt 5.8.
 - Qt no longer ships any fonts.

 - QtGui:
   * [QTBUG-51962] When line height is specified in pixels, this is now
     interpreted as the minimum line height rather than an absolute line
     height to avoid overlaps. To get the old behavior, use the
     -qt-line-height-type property in CSS and set it to "fixed".
   * [QTBUG-46054] QFont::exactMatch() now returns false when the provided
     typeface is an alias.

 - QtWidgets:
   * [QTBUG-21217] QLineEdit will now accept certain shortcut override
     events even if it is read-only.

 - configure & build system:
   * Except on OS X, -system-harfbuzz is now the default.
   * A few obsolete options with no effect are not recognized any more.

****************************************************************************
*                          Deprecation Notice                              *
****************************************************************************

 - The following platforms or toolchains are deprecated and will be
   removed as of Qt 5.8:
   * Apple OS X 10.8 (Mountain Lion)

   Deprecated platforms and toolchains continue to work until removed.

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

QtCore
------

 - [QTBUG-50548] Added qAsConst().
 - Added qOverload() to select overloaded functions.
 - Added qHash(std::pair), defined in <QHashFunctions>.
 - Added qUtf16Printable().
 - QLocale data updated to CLDR v29

 - QDataStream:
   * [QTBUG-44418] Added startTransaction(), commitTransaction(),
     rollbackTransaction(), abortTransaction() functions to support read
     transactions.

 - QDebug:
   * QDebug can now output std::vector, std::list, std::map, and
     std::multimap.

 - QFlags:
   * [QTBUG-27100] Added setFlag method to set or unset a flag

 - QHash/QSet:
   * Added QHash::equal_range().
   * Added erase(const_iterator).

 - QIODevice:
   * Added support for devices with multiple streams.
   * [QTBUG-44418] Added startTransaction(), commitTransaction(),
     rollbackTransaction(), isTransactionStarted() functions to support
     read transactions.

 - QJsonObject:
   * Added value(), op[] const, find(), constFind(), contains() overloads
     taking QLatin1String.

 - QLocale:
   * Added special value for double conversion precision to get shortest
     accurate representation.
   * Added additional flags in QLocale::NumberOption that allow generating
     and parsing doubles in EcmaScript compliant format.
   * [QTBUG-46595] Added an overload for toCurrencyString() that allows the
     decimal precision to be specified.

 - QMutex:
   * Made the isRecursive() method be a const function so that it can be
     called in const QMutex objects too.

 - QObject:
   * [QTBUG-52542] If the compiler supports variadic templates, functors
     connected to signals will not be copied any more each time the signal is
     emitted. This is the behavior that was exhibited with C++98 compilers.

 - QReadWriteLock:
   * Optimized QReadWriteLock to be faster and take less memory.

 - QRect:
   * Fixed integer overflow in center(). This fixes the result for some
     corner-cases like a 1x1 rectangle at (INT_MIN, INT_MIN), for which the
     previous implementation could return anything (due to invoking
     undefined behavior), but commonly returned (0, 0).

 - QRect/QRectF:
   * Added transposed().

 - QSharedPointer:
   * Added support for debug printing via QDebug.

 - QStorageInfo:
   * [QTBUG-49498] Fixed a bug that caused QStorageInfo to report
     information for the wrong filesystem if there is a mounted filesystem
     at a path that is a prefix of the requested path (e.g., it would
     report "/usr" filesystem for "/usrfoo").

 - QString:
   * Added resize(int, QChar) overload.

 - QStringRef:
   * Added subscript operator.
   * Fixed relational operators against (const char*) to return the correct
     result.
   * Added reverse iterators, rbegin(), rend(), crbegin(), crend().

 - QUuid:
   * Added Objective-C NSUUID/CFUUIDRef converters.

 - QVariant:
   * [QTBUG-53384] Fixed QVariant::canConvert and conversion from integer
     types to enumeration types.

 - QVector:
   * clear() now preserves capacity. To shed capacity, call squeeze() or
     swap with a default-constructed QVector object, see the documentation
     for an example.

 - State Machine:
   * Added constructor overload that takes a pointer-to-member for the
     QSignalTransition.

QtDBus
------

 - QDBusArgument:
   * [QTBUG-53376] Deprecated relying on a streamable Base to stream a
     Derived without providing operator<</>>() for Derived. No diagnostic
     provided. Support will be removed in Qt 5.8.

QtGui
-----

 - QWheelEvent::phase() now returns NoScrollPhase with non-phase-aware mice.
   This is most mice and input devices except, for now, Apple's trackpads
   and Magic Mouse.  It is no longer necessary to set the
   QT_ENABLE_MOUSE_WHEEL_TRACKING environment variable to enable the fix for
   QTBUG-50199.
 - [QTBUG-35972] Added QWheelEvent::inverted() to enable detection of the
   "natural scrolling" system setting. This feature currently only works on
   OS X, though support for other operating systems is planned.

 - Image:
   * [QTBUG-50745] Fixed possible crash in QImage::pixel() for mono or
     indexed images.

 - QIcon:
   * Split fromTheme() in two different overloads, one of which will only
     lazily lookup the icons, in order to speed up startup of applications
     that initialize many icons that are not necessarily visible.
   * fromTheme gained the ability to use the GTK icon cache to speed up
     lookups.

 - QPixmapCache:
   * Added QPixmapCache::Key::isValid().

 - QRawFont:
   * Fixed kerning on advances in QRawFont for OS X and Windows.

 - Tablet support:
   * [QTBUG-47007][QTBUG-51618] A synthetic mouse event will no longer be
     sent after every QTabletEvent, only after those which are not accepted
     (as documented).

 - Text:
   * [QTBUG-35156] Added support for color font rendering with Freetype.
   * [QTBUG-52048] Added QTextOption::ShowDocumentTerminator flag.

QtNetwork
---------

 - QAuthenticator:
   * [QTBUG-53338] Fixed crash when comparing a initialized QAuthenticator
     with an uninitialized QAuthenticator.

QtWidgets
---------

 - Moved QGtkStyle to the qtstyleplugins repository.
 - [QTBUG-37580] Added the Qt::AA_UseStyleSheetPropagationInWidgetStyles
   attribute which enables font and palette propagation for Qt Style
   Sheets.
 - [QTBUG-48138] QPinchGesture on OS X now behaves like on other platforms:
   totalScaleFactor is the magnitude of the pinch and scaleFactor is the
   delta for the current event.

 - Item Views:
   * [QTBUG-50102] Item views scroll per pixel on OS X now.
   * [QTBUG-50102] QAbstractItemView::verticalScrollMode and
     QAbstractItemView::horizontalScrollMode are now resettable.

 - QAbstractItemView:
   * [QTBUG-7232] In ItemViews when scrollMode is set to scrollPerPixel, it
     is now possible to change the single step. Qt will automatically adjust
     the single step until setSingleStep is called.  When setSingleStep is
     called it will however respect that and stop doing automatic changes
     of the value. Calling setSingleStep(-1) will switch mode back to
     automatic adjusting.

 - QAbstractScrollArea, QTextEdit, QPlainTextEdit:
   * [QTBUG-52559] Changed focus to Qt::StrongFocus. That respects
     platforms' native guidelines.

 - QHeaderView:
   * [QTBUG-39010] Fixed some issues with restoring of section size after a
     section is no longer the last visible section (in stretchLastSection
     mode).
   * [QTBUG-50171] Fixed a repainting issue when items had been reordered.

 - QListWidget:
   * [QTBUG-15741] Fixed a bug that caused the default drop action to be
     ignored when using icon mode.

 - QTableView:
   * [QTBUG-50171] Fixed a selection bug when rows or columns were hidden.

 - Styles:
   * [QTBUG-50102] Added SH_ItemView_ScrollMode style hint.

 - Dialogs:
   * [QTBUG-51148] Fixed requesting a font from font dialog with a
     non-existent family name and/or pixel size when using GTK2 platform
     theme.

QTest
-----

 - Added a new logging mode that allow test-results to be parsed on-the-fly
   when using Jetbrains TeamCity as CI-server. This mode is enabled by
   using the -teamcity option on the command-line.

****************************************************************************
*                      Platform-specific Changes                           *
****************************************************************************

 - The Gtk+ platform theme has been ported to Gtk+ 3.
 - Dropped support for Windows CE.
 - Added support for INTEGRITY RTOS.

Android
-------

 - Support for Android API < 16 was removed.
 - [QTBUG-37221] Qt can now be used to easily create Android Services.
 - Allow the user to choose how much from the Android theme is extracted.

iOS
---

 - [QTBUG-35271] QBackingStore now uses the raster paint engine instead of
   the OpenGL paint engine, enabling improved antialiased drawing. In case
   of performance regressions, the old code path can be enabled by setting
   the window's surface type to QSurface::OpenGLSurface.

OS X
----

 - Support for OS X < 10.8 was removed.
 - [QTBUG-7000] QMacPrintEngine now really sets the printer resolution.
 - [QTBUG-32898] OS X now accepts trusted certificates from the login and
   system keychains.
 - [QTBUG-48953] Pasting text from Qt applications to Apple Mail now works.
 - [QTBUG-48953] "text/vcard" is now required as the mime type when
   placing vCards on the clipboard.
 - [QTBUG-50262] QStandardPaths now returns the correct display name for
   the download folder.

Windows
-------

 - [QTBUG-390][QTBUG-6917][QTBUG-9350][QTBUG-24619] Added method
   QProcess::setCreateProcessArgumentsModifier() to enable users to
   intercept and modify CreateProcess parameters.
 - Added support for color fonts (color emojis) when DirectWrite 2 is
   available.

 - Text:
   * [QTBUG-47141] Made it possible to disable antialiasing for text when
     drawing into images.
   * [QTBUG-18711] Fixed disabling hinting for application fonts, e.g. when
     automatic scaling by device pixel ratio is in effect.

XCB / X11
---------

 - [QTBUG-44964] It's now possible to unset AA_CompressHighFrequencyEvents
   to disable the new X event compression feature that was added in 5.6.0.
   This is a replacement for the WA_NoX11EventCompression flag in Qt 4.
 - [QTBUG-49071] Fixed failure to deliver focusIn event on hide/show with XCB
 - QMenuBar now uses the unified D-Bus AppMenu menubar when the desktop
   environment supports it.

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

moc
---

 - [QTBUG-53441] Fixed crash when processing files ending with \\\r.

configure & build system
------------------------

 - [QTBUG-35754] Static builds now embed QML resources into the libraries
   to make them self-contained.
 - [QTBUG-35886][Unix] Made it explicit that -fontconfig implies
   -system-freetype.
 - [QTBUG-43784][Unix] Fixed GLX not being enabled with -qt-xcb.
 - [QTBUG-45291][GCC] Enabled use of Qt with -Wzero-as-null-pointer-constant.
 - [Android@Windows] Fixed configure tests outside QtBase.
 - [Unix] Fixed config.log corruption with option -v.
 - [Unix] Fixed the MySQL configure test on RHEL 6.6.
 - [Android] Enabled building with newer SDKs than the minimal supported one.
 - QNX and Android builds on Windows use -system-zlib now.
 - Added support for "Canadian Cross Builds"; options -external-hostbindir
   and -host-option.
 - Added makespecs for DRIVE CX (Tegra X1), NVIDIA Jetson TK1, and i.MX7
   boards.
 - Qt now makes use of AVX512 instructions on Intel platforms.

qmake
-----

 - Specifying directories in RESOURCES now actually works.
 - Added -qtconf option to make it possible to use the same qmake binary
   with several builds of Qt.