summaryrefslogtreecommitdiffstats
path: root/dist/changes-5.2.0
blob: 56997a11d4a29110970bfa4d3607fa622a243e0d (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
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
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.

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

 - Qt is now compiled with qreal typedef'ed to double on all
   platforms. qreal was a float on ARM chipsets before. This guarantees more
   consistent behavior between all platforms Qt supports, but is binary
   incompatible to Qt 5.1 on ARM. The old behavior can be restored by
   passing -qreal float to configure.
 - The supported date range in QDateTime has been reduced to about +/- 292
   million years, the range supported by the number of msecs since the Unix
   epoch of 1 Jan 1970 as stored in a qint64, and as able to be used in the
   setMSecsSinceEpoch() and toMSecsSinceEpoch() methods.

 - QUrl and QUrlQuery:
   * [QTBUG-31660] QUrl no longer considers all delimiter characters
     equivalent to their percent-encoded forms. Now, both classes always
     keep all delimiters exactly as they were in the original URL text.
   * [QTBUG-31660] QUrl no longer decodes %7B and %7D to "{" and "}" in the
     output of toString()
   * QUrl no longer supports QUrl::FullyDecoded mode in authority() and
     userInfo(), nor QUrl::DecodedMode in setAuthority() and setUserInfo().
   * [QTBUG-31945] QUrl no longer decodes %23 found in the fragment to "#"
     in the output of toString(QUrl::FullyEncoded) or toEncoded()
   * QUrl now defaults to decoded mode in the getters and setters for
     userName, password, host, topLevelDomain, path and fileName. This
     means a '%' in one of those fields is now returned (or set) as '%'
     rather than "%25". In the unlikely case where the former behavior was
     expected, pass PrettyDecoded to the getter and TolerantMode to the
     setter.
   * QUrl now normalizes the path given in setPath, removing ./ and ../ and
     duplicate slashes.

 - QWheelEvent has gained a "phase" attribute and may now be sent with
   zero delta() in order to indicate beginning and end of transient
   scrolling.

 - Mac OS X framework builds of Qt no longer contain a Unix-like include/
   directory; all headers are located in the frameworks. This may affect
   3rd party build systems not based on qmake or cmake.

****************************************************************************
*                   Platform deprecation notice                            *
****************************************************************************

 - The support for the old implementation of QAtomicInt and
   QAtomicPointer is deprecated in Qt 5.2 and will be removed in Qt
   5.3. Building with the following compilers or environments will not
   be possible in Qt 5.3 or the build will suffer greatly in
   performance, unless support is revived by writing new atomics code.
    * Green Hills compiler for INTEGRITY
    * Sun Studio compiler suite for Solaris
    * IBM Visual Age compiler suite for AIX
    * Kernel-mode VxWorks

   Developers interested in picking up support should contact the
   development mailing list at development@qt-project.org for more
   information. Note that those platforms are currently not tested. Most
   likely, they have further problems than just the atomics code.

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

QtCore
------

 - Added QCollator, a class to collate Unicode strings.
 - Added QCommandLineParser, a class to parse command lines.
 - Added QFileSelector, a class to select platform-specific file assets.
 - Added QLoggingCategory and related functions for logging
 - [QTBUG-23946] Fixed a bug that prevented Qt from being built in a
   namespace on Mac OS X.
 - Updated the locale database to CLDR 23.1
 - Added support for ARMv8 64-bit mode.

 - Metatype system (QMetaType & QVariant):
   * Qt now handles metatypes automatically for std::vector, std::list,
     std::pair and std::map
   * The metatype system now supports registering explicit conversion
     functions via QMetaType::registerConverter
   * The metatype system now supports iteration over a container type via
     QSequentialIterable and QAssociativeIterable
   * Registering the same type name twice will now print only a warning (as
     opposed to aborting the execution of the program)

 - Qt Containers:
   * In debug mode, the Qt containers will now verify whether the iterators
     passed to most mutating functions belong to the iterator in question.
   * Fixed a number of bugs that would modify shared containers when calling
     erase(), under corner-case conditions.

- QtAlgorithms
  With STL no longer being optional for building and using Qt, a number of parts
  of QtAlgorithms no longer make sense, and have therefore been deprecated.

  Replacements are available in the STL, and generally have much better
  performance, but are not instantly source-compatible in all cases. For
  instance, specialization of qLess or qSwap means that a direct port to
  std::sort from qSort may not be possible, as std::sort does not use any of
  them; a possible workaround is explicitly passing a qLess functor to
  std::sort:

      std::sort(container.begin(), container.end(), qLess<T>());

  The functions in QtAlgorithms that have been deprecated, along with their
  STL counterparts, are:
    - qBinaryFind (std::binary_search / std::lower_bound)
    - qCopy (std::copy)
    - qCopyBackward (std::copy_backward)
    - qEqual (std::equal)
    - qFill (std::fill)
    - qFind (std::find)
    - qCount (std::count)
    - qSort (std::sort)
    - qStableSort (std::stable_sort)
    - qLowerBound (std::lower_bound)
    - qUpperBound (std::upper_bound)
    - qLess (std::less)
    - qGreater (std::greater)

 - QByteArray:
   * Added QByteArray::Base64Url and QByteArray::OmitTrailingEquals flags
     for QByteArray::toBase64 and fromBase64.
   * [QTBUG-34694] Fixed a bug that would cause QByteArray to overflow some
     size calculations.

 - QCoreApplication:
   * [QTBUG-15379][QTBUG-30628] Fixed a bug that caused Qt to mis-parse a
     command-line argument like -DKEY=\"VALUE\" on Windows.

 - QDateTime:
   * [QTBUG-26161][QTBUG-29666] Fully implement support for Qt::TimeSpec of
     Qt::OffsetFromUTC, added new methods for offsetFromUTC(),
     toTimeSpec(), and toOffsetFromUTC().
   * Added convenience methods for fromMSecsSinceEpoch() and fromTime_t()
     to take time spec to be used in returned datetime.
   * Add method timeZoneAbbreviation() to return effective time zone
     abbreviation.
   * The debug datastream is now an ISO-like format instead of Qt::TextDate
   * The Standard Time to Daylight Time transition for Qt::LocalTime is now
     handled correctly. Any date set in the "missing" hour is now
     considered invalid. All date math results that fall into the missing
     hour will be automatically adjusted to a valid time in the following
     hour.
   * Added new method isDaylightTime() to return if the datetime is in
     Daylight Time or not.
   * Added support for a new Qt::TimeZone spec to be used with QTimeZone to
     define times in a specific time zone.
   * Added Qt::RFC2822Date format that can be passed to QDateTime and
     QLocale formatters and parsers.
   * Fixed a bug that caused QDate::toString() to return empty for dates
     with years beyond 9999.

 - QFileSystemWatcher:
   * [QTBUG-33211] Fixed a bug that caused QFileSystemWatcher to emit change
     notifications with the wrong path on Linux.

 - QJson:
   * [QTBUG-33229] The Writer and the Parser now fully accept non-character
     unicode points.
   * The Writer will no longer write inf, -inf and nan for infinites and NaN
     values, which resulted in parsing back as strings. Instead, it will now
     output null.
   * The Writer now emits numeric values with full numeric precision. This
     also allows QJson to support integer values with no loss of precision
     up to 2^53.

 - QJsonValue:
   * Added QJsonValue::toInt(). QJsonValue can store 32-bit signed integers
     with no loss of precision.

 - QObject:
   * New-style signal connections to functors, lambdas, and static functions
     now works with a receiver object. The connection will be removed when
     the either the sender or receiver objects are destroyed.

 - QPluginLoader:
   * QPluginLoader will no longer load the plugins on Mac OS X and iOS
     systems when scanning for valid plugins.
   * Added QPluginLoader::staticPlugins(), which returns the list of
     built-in plugins (linked to the executable and any loaded libraries).

 - QProcess:
   * [QTBUG-32958] Fixed a bug that would cause QProcess to crash if
     waitForStarted() were called after an unsuccessful start()
   * Added QProcess::nullDevice(), which returns the platform's "blackhole"
     device (/dev/null on Unix, NUL on Windows). This can be used with
     QProcess::setStandardOutputFile.
   * Added enum values QProcess::ForwardedOutputChannel and
     QProcess::ForwardedErrorChannel, which allow for more fine-grained
     control over which channel is forwarded and which one is captured.
   * Added QProcess::ForwardedInputChannel, which allows for stdin to be
     forwarded to this process's input.
   * [QTBUG-32979] On Unix, QProcess now correctly forwards the siginfo_t
     and context parameters of the signal handler to the previous handler.

 - QScopedPointer:
   * Added QScopedPointerDeleteLater, a new class that can be used as the
     second template to QScopedPointer and will call deleteLater() on the
     pointer when it goes out of scope.

 - QSocketNotifier:
   * Fixed a bug that caused socket notifiers not to be re-enabled after
     they had been activated on BlackBerry.

 - QStandardPaths:
   * QStandardPaths::enableTestMode is deprecated and is replaced by
     QStandardPaths::setTestModeEnabled.
   * Added QStandardPaths::GenericConfigLocation, which refers to a location
     where applications can store config files to be shared with other
     applications.

 - QThread:
   * Added an advisory interrupt mechanism (QThread::requestInterruption and
     QThread::isInterruptionRequested).

 - QThreadPool:
   * Added method clear() to remove any queued QRunnables.
   * Fixed a number of race conditions.

 - QTime:
   * [QTBUG-30250] When calling QTime::toString(Qt::TextDate) and
     QTime::toString(Qt::ISODate), milliseconds are now included in
     the returned string. This also applies to
     QDateTime::toString(Qt::TextDate) and
     QDateTime::toString(ISODate).
   * Added new methods fromMSecsSinceStartOfDay() to create a new QTime
     from an msecs value, and msecsSinceStartOfDay() to return the QTime as
     the number of msecs since the start of the day.

 - QTimeZone:
   * Added new QTimeZone class to support time tone calculations using the
     host platform time zone database and the Olsen time zone ID's.

 - QUrl:
   * [QTBUG-33229] QUrl now fully accepts non-character unicode points;
     they are encoded as percent characters; they can also be pretty
     decoded
   * Added QUrl::RemoveFilename flag which can be passed to path(),
     authority() and toString() and will cause the filename part of the path
     (the contents after the last '/') to be removed.
   * Added QUrl::fileName(), which returns just the filename part of the
     path.
   * Added QUrl::NormalizePathSegments flag, which will cause QUrl to
     remove "/./" or "/../" sequences as much as possible. It will not
     remove "/../" from the beginning of the path.
   * Added QUrl::adjusted(), which returns a new QUrl with certain parts of
     the original URL removed or normalized.
   * Added QUrl::matches(), which can be used to compare parts of two URLs
     or to compare two URLs after normalization.

 - QUtf8:
   * [QTBUG-33229] UTF-8 now accepts non-character unicode points; these
     are not replaced by the replacement character anymore

 - QVariant:
   * Fixed QVariant::canConvert with longlong
   * Variant containing enum types can now be converted to integer
   * [QTBUG-33981] Fixed a bug that would cause QPolygonF to be saved or
     loaded incorrectly in QDataStream.

QtDBus
------

 - Improved error handling so as to give more feedback to the developer when
   certain marshalling or demarshalling actions fail.
 - [QTBUG-27809] Fixed some race conditions related to delivering method
   reply deliveries.
 - Fixed a bug that made non-slot invokables not get listed in the
   auto-generated introspections.

QtDeclarative
-------------

 - ColorDialog:
   * Added currentColor property.

 - [QTBUG-32928] ShortcutOverride events now work for QQuickItem
   subclasses

QtGui
-----

 - Accessibility classes are now public allowing accessibility
   information for custom widgets/QQuickItems

 - Session Management:
   * [QTBUG-28228] The new QPlatformSessionManager class brings back
     the session management functionality. It allows the
     implementation of platform specific behavior related to session
     management. For platform that don't support this feature the
     default behavior has not changed.  Both X11 and Windows session
     management are supported.

 - QPolygonF:
   * When a QVariant holds a QPolygonF() then it will be correctly seen as
     a null QVariant.

 - QImage:
   * Added three byte-ordered RGBA8888 format that simplifies interaction
     with OpenGL and other technologies that internally using RGBA formats.

 - [QTBUG-27349] Reintroduced command line argument for positioning
   windows (-geometry on X11, -qwindowgeometry on other platforms)

 - [QTBUG-28832] Fixed regression from Qt 4 when using
   QTextOption::ShowLineAndParagraphSeparators.

QtNetwork
---------

 - API was added to store and resume TLS session tickets.
 - The minimum support openssl version has been increased to openssl
   1.0. The code to support older versions has not been removed, but is no
   longer supported.
 - An off-by-one error in NTLM proxy authentication has been fixed.
 - Various improvements to reduce the memory used by qtnetwork have been
   made.
 - Improved support for HTTP proxy authentication.
 - Support for preconnecting to servers before making HTTP and HTTPS
   connections. This allows for much reduced latency when the hosts to be
   connected to are known.

QtPrintSupport
--------------

 - QPrintDialog:
   * Added support for setting CUPS job options in the print dialog.
   * Added support for setting CUPS Banner pages in the print dialog.
   * Added support for setting CUPS Page Set (even/odd pages only) in the
     print dialog.
   * Added support for setting CUPS Pages Per Sheet and Pages Per Sheet
     Layout options
   * Added CUPS server-side print range support for apps that can't support
     print range option themselves

QtSql
-----

Changes in Qt 5.1.0 (missing from released changelog dist/changes-5.1.0)
 - [QTBUG-28088] Remove dependency of DB driver headers on qsqlcachedresult_p.h.
 - Deprecate QSqlError setters. The constructor is sufficient, since it has
   a parameter for each member variable.
 - Rename the SQL driver header files to _p.h (make private)
   The drivers were never public API. They were exposed by mistake in
   public headers. What's more, they have #include'd a private header
   (qsqlcachedresult_p.h) since at least Qt 4.5.1. That means no one used
   those headers in Qt 4 (private headers weren't installed then) and
   it's unlikely anyone did in 5.0.
 - ODBC: Implemented lastInsertId() for some ODBC compatible databases.
 - PSQL: Make lastInsertID work for tables without OIDs.
 - [QTBUG-14904] SQLITE: Fix for Sql query aliases with dots
 - [QTBUG-2192] ODBC: fix loss of milliseconds when binding QDateTime
 - [QTBUG-30076] PSQL: escape backslashes only when server requires it
   IMPORTANT: Applications that implemented their own workarounds must be
   updated to avoid misbehavior and SQL injection vulnerabilities.
 - [QTBUG-10569] ODBC: fixed QODBCResult::exec() return value for DELETE
   operations when no rows are affected.
 - ODBC: Fixed loss of column metadata on SQL_NO_DATA.
 - QSqlTableModel: expose methods for getting primary values.
 - ODBC: Fixed possible cause of spurious errors (commit af35ee291a1bbbc8)

Changes in Qt 5.2.0
 - [QTBUG-29261] IBASE: Construct a valid QTime when creating timestamps for
   iBase SQL driver.
 - [QTBUG-33389] PSQL: Format QDateTime following ISO8601.
 - Add QSQLITE_OPEN_URI option to QSQLITE driver

QtWidgets
---------

 - Added class QKeySequenceEdit.
 - Added QMaxCocoaViewContainer and QMacNativeWidget classes.
 - [QTBUG-1016] Added API to control tool tip timing via:
   * new QToolTip::showTip() overload
   * QWidget::toolTipDuration() property.
   * QStyle::SH_ToolTip_WakeUpDelay and SH_ToolTip_FallAsleepDelay
     style hints.
 - [QTBUG-30255] Fixed a bug where spans across empty cells in a grid
   layout got broken.
 - [QTBUG-31569] WA_QuitOnClose now works even if there are other
   windows that don't have it set.
 - [QTBUG-32788] Properly handles Qt::WidgetWithChildrenShortcut
   shortcuts in MDI subwindows now.
 - [QTBUG-33078] QWidget::setWindowOpacity() now works when called
   before QWidget::show().
 - [QTBUG-33104] Fixed a bug where layout items with a Preferred size
   policy would be treated as fixed size, if mixed with Expanding
   items having maximumSize set.
 - [QTBUG-33247] Changed accessible trees and tables to always expose
   hidden headers, instead of only exposing the visible headers.
 - [QTBUG-34007] Fixed a crash in tablet support.
 - Fixed a bug where the maximum size hint of a layout with spans was
   wrong.
 - Item delegates now cycle through all three states of tri-state
   checkboxes, the same way QCheckBox itself does.

 - QAbstractItemView:
   * [QTBUG-7232] In ItemViews scrollbars will now by default only
     scroll 1 pixel when scrollMode is set to scrollPerPixel. That is
     it will (when scrollMode is scrollPerPixel) do what is stated in
     the documentation, and no longer automatically adjust the
     scrollbar's singleStep. The user can now control that value.

 - QAbstractScrollArea:
   * QAbstractScrollArea now has a SizeAdjustPolicy. If it is set to
     AdjustToContents it will make use of the protected viewportSizeHint()
     virtual function. This function returns a suggested size based on
     contents. Note that although the viewportSizeHint() virtual function
     was reserved in 5.0, user code was not supposed to be overriding it
     (as the function was private and undocumented).  Code that was
     overriding viewportSizeHint() needs to be recompiled against 5.2 for
     this feature to work correctly.

 - QButtonGroup:
   * [QTBUG-14857] Added buttonToggled() signals.

 - QColorDialog:
   * Added a web color QLineEdit.
   * [QTBUG-14332] Added a screen color picker button.
   * [QTBUG-31998] Does no longer create widgets when using the
     platform dialog.
   * [QTBUG-32054] Fixed a bug with keyboard navigation.

 - QComboBox:
   * [QTBUG-31146] Fixed selection of items with identical text in
     popup completion.
   * Added currentData() convenience function which allows to retrieve
     the user data set for the current item.

 - QCompleter:
   * [QTBUG-3414] Added filterMode property.
   * The activated() signal now passes invalid indexes instead of
     random bogus ones when falling back to the completion prefix.

 - QDesktopWidget:
   * [QTBUG-32567] Fixed emission of workAreaResized() signal.

 - QDialogButtonBox:
   * Added a (StandardButtons,QWidget*) constructor.

 - QDockWidget:
   * [QTBUG-31044] The position of a dock widget is now kept when
     undocking.
   * [QTBUG-32260] Fixed a bug where visibilityChanged was signaled
     wrongly in certain multi-screen setups.

 - QFileDialog:
   * setDefaultSuffix() now removes leading dot characters.
   * Introduced DontUseCustomDirectoryIcons. This improves the file
     dialog performance under Windows for the case where there are
     lots of folders. Went from taking 60 seconds to 2 seconds, on a
     SDCard with 10k folders.
   * Added setMimeTypeFilters() for mimetype-based filtering, as an
     alternative to pattern matching.
   * Fixed removing of directories containing hidden or system files.
   * Added QUrl-based API for remote files.
   * [QTBUG-13182] Improved performance on Windows by
     + not resolving NTFS symlinks (15x speedup on pessimistic
       workloads) and
     + using extensions over calling GetFileAttributesEx() in certain
       cases.
   * [QTBUG-29403] Fixed potential crash in destructor of
     ~QFileInfoGather in threaded applications.
   * [QTBUG-34132] QFileDialog does no longer instantiate widgets if a
     native dialog will be used instead.  Therefore some accessors
     which previously returned unused objects will now return null.
     As before, you can set the DontUseNativeDialog option to ensure
     that widgets will be created and used instead.
   * [QTBUG-33039] Does no longer create widgets when using the
     platform dialog.

 - QFontComboBox:
   * [QTBUG-1573] Made QFontComboBox locale-sensitive.

 - QFontDialog:
   * Now has finer-grained control over the types of fonts listed,
     similar to what QFontComboBox already had.

 - QGestureManager
   * Now supports Mac OS X native gestures.

 - QGraphicsView etc
   * Fixed a crash in QGraphicsProxyWidget.
   * [QTBUG-8061] Allow handling of mouseDoubleClickEvent in
     QGraphicsItems.
   * [QTBUG-19036] Make QGraphicsScene::items(QPointF) work using
     Qt::{Contains,Intersets}ItemBoundingRect with items that contain
     the point in the bounding rectangle, but not their (custom)
     shape.
   * [QTBUG-29945] Fixed drop-shadow and blur effects when using a
     QGLWidget viewport.

 - QGroupBox:
   * [QTBUG-33610] The check indicator of a checkable group box is no
     longer clipped when using a small title font.

 - QHeaderView:
   * Reduced memory usage by 33%.
   * [QTBUG-4346] A maximumSize for sections has been introduced. The
     maximum section size is by default the largest possible section
     size which in Qt 5.2 has been limited to 1048575 pixels.
   * [QTBUG-32203] Fixed a painting bug involving hidden and reordered
     sections.

 - QInputDialog:
   * Added getMultiLineText static method.

 - QLayout:
   * Added replaceWidget() function.

 - QLineEdit:
   * [QTBUG-32061] The cursor is now positioned correctly in an empty
     line edit with placeholder text.
   * Keep placeholderText visible when focused, until text is added.
   * Context-menu actions now have icons.
   * Made it possible to add side widgets.
   * Made it possible to add a clear button commonly used for item
     view filtering as a side widget

 - QListView:
   * [QTBUG-1180] Dragging an item outside the QListView in icon mode
     no longer loses the icon. Also fixed a bug where under certain
     conditions code overriding QAbstractItemView::viewOptions() would
     not be called.
   * [QTBUG-21433] Fixed content size calculation when either
     horizontal or vertical scroll bar policy is always off.

 - QMacStyle:
   * [QTBUG-31668] Fixed a case where multiple auto-default button
     animations were running in parallel on OS X

 - QMainWindow:
   * Added takeCentalWidget() function.

 - QMenu:
   * Added QMenu::toNSMenu() conversion function (Mac only)
   * Added QMenu::setAsDockMenu() and qt_mac_set_doc_menu(QMenu *menu)
     functions (Mac only).
   * [QTBUG-31664] Moving the mouse over a menu separator now closes
     any open sub menus.

 - QMenuBar:
   * [QTBUG-32807] Menus now close again on second click.
   * Added QMenuBar::toNSMenu() conversion function (Mac only)

 - QMessageBox:
   * May use native message boxes on some platforms now.
   * setDetailedText() now works after show().
   * [QTBUG-2450] Added setCheckBox() function.
   * [QTBUG-6731] It is now possible to select some or all text from a
     QMessageBox and copy it to the clipboard.

 - QScrollBar:
   * Transient scrollbars are now properly shown when starting
     two-finger scrolling on OS X.

 - QSizePolicy:
   * Added a retainSizeWhenHidden attribute.

 - QSpinBox:
   * Values can now be displayed in different bases
     (cf. displayIntegerBase property)
   * [QTBUG-31602][QTBUG-34305] Fixed size calculation when
     stylesheets are used.

 - QSplashScreen:
   * Added message(), a getter for the currently displayed message.

 - QSplitter:
   * Now gets the default value of opaqueResize property from (new)
     QStyle::SH_Splitter_OpaqueResize styleHint.

 - QStyle:
   * Added SH_ToolTip_WakeUpDelay and SH_ToolTip_FallAsleepDelay.
   * Fixed SH_ItemView_ActivateItemOnSingleClick not being retrieved
     correctly from the platform theme.

 - QSystemTrayIcon:
   * [QTBUG-31762] Fixed position of system tray icon on Linux/X11
     (except Unity).
   * [QTBUG-33461] Increased the maximum length of a system tray
     tooltip on Windows to what it was in Qt 4.

 - QTableView:
   * [QTBUG-4206] resizeToContents will now adjust to actual contents
     and not just visible area. QHeaderView::setAutoResizePrecision()
     has been introduced to control how precise the autoResize should
     be.

 - QTextEdit:
   * Added placeholderText akin to QLineEdit.
   * Context-menu actions now have icons.

 - QToolTip:
   * Added new showText() overload taking a duration.

 - QTreeView:
   * Added setTreePosition() function.

 - QWidget:
   * Added window{Title,Icon,IconText}Changed() signals.
   * Added toolTipDuration property.

 - QWindowContainer:
   * [QTBUG-32177] Sets active window correctly now.
   * [QTBUG-34138] Will not create native child widgets any more.

 - QWindowsVistaStyle:
   * [QTBUG-26503] Does no longer draw inapplicable scroll bar
     grippers on Windows 8.

 - QWizard:
   * [QTBUG-26722] The default background pixmap works again on OS X.
   * [QTBUG-29924] Gave all buttons an objectName().

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


Android
-------

 - Project structure and deployment has changed with the introduction of
   androiddeployqt. Source and build files are no longer mixed, and the
   build files for the APK package should not be touched. Customizing
   the build files is possible. Read the documentation for androiddeployqt
   for more information.
 - Status bar visibility is now controlled by Qt, so the window state will
   override settings in the AndroidManifest.xml. The default is still to
   show the status bar (QWindow::showMaximized()). Use
   QWindow::showFullScreen() to hide it.
 - Implemented support for accessibility on Android.
 - Implemented support for native action bar backend for menu bars in
   Qt Quick Controls and Qt Widgets.
 - Implemented support for native popup menus and comboboxes in Qt Quick
   Controls.
 - Implemented support for native message boxes in Qt Widgets.
 - Several improvements to handling dialogs and multiple top-level
   windows in Qt Widgets.
 - Implemented automatic inclusion of necessary permissions in manifest
   when linking against Qt Multimedia.
 - Fixed crash on startup when running on Android 4.4.
 - Add requirement for Android SDK version 13 or higher for building
   Qt application. Note that this is for building only. The application
   can still be targeted for devices with SDK versions 9 and up.
 - Default to target SDK version 14 to disable overflow button in
   system navigation.
 - New module: Qt Android Extras. Contains convenience APIs for using
   JNI, and will in the future include support for Android-specific
   features which do not fit in a cross-platform API.
 - Implemented support for thread-affinity in qrand() functions.
 - Fixed several problems with predictive text in soft keyboard.
 - Made several improvements to stability.
 - Implemented support for camera and low-latency audio in Qt Multimedia.
 - Fixed driver-specific bugs in text rendering in Qt Quick 2.
 - Added preference in default manifest for installing applications to
   external storage if possible.
 - Fixed delivery of key press event for the Back key.
 - Fixed race condition when showing a window in full screen which would
   cause it to not be maximized.
 - Fixed input method hints.
 - Made font point sizes compatible with the interpretation of point
   sizes on iOS to ease sharing code between the two platforms.
 - Added support for QAmbientTemperatureSensor, QPressureSensor
   and QProximitySensor to Qt Sensors.
 - Removed dependency on Qt Widgets in default build of Qt Quick Controls.

OS X
----

 - Added QMaxCocoaViewContainer and QMacNativeWidget classes.
 - Qt for OS X is now identified by the macro Q_OS_OSX. This complements the
   existing Q_OS_DARWIN macro (which identifies the open source kernel and
   could identify non-Apple products) and Q_OS_MAC, which is defined for
   both OS X and iOS. The old macro Q_OS_MACX is now deprecated.
 - Qt no longer complains about new versions of OS X that haven't been
   released yet. This will allow Qt 5.2 and future versions to build on
   future versions yet to be released. Note that those versions are not
   supported until official announcement by the Qt Project.
 - Added a number of functions to QtCore to convert to and from
   CFString/NSString and QString, CFURL/NSURL and QUrl.
 - QGestureManager now supports Mac OS X native gestures.
 - Added QMenu::setAsDockMenu(), QMenu(Bar)::toNSMenu(),
   qt_mac_set_doc_menu() functions.
 - [QTBUG-26722] The QWizard default background pixmap works again.

BlackBerry
----------

 - Cover windows (aka active frames) are now supported. Cover windows must
   have the Qt::CoverWindow flag set. They are shown when the application
   is minimized.

Windows
-------

 - [QTBUG-33409][QTBUG-8764][QTBUG-10032] Fixed virtual key mapping on
   Windows.
 - QCoreApplication::arguments() changed the handling of single quotes, double quotes
   and the backslash character, in order to match what argv[] contains.
   In particular, single quotes are no longer removed from the argument string.
   (QTBUG-15379, QTBUG-30628)

X11
---

 - [QTBUG-31762] Fix position of system tray icon (except Unity)
 - [QTBUG-27349] Reintroduced command line argument for positioning
   windows (-geometry)

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

- configure

 * Added option to disable the QtMultimedia WMF backend
 * [Unix] Added option to build with gcov support
 * Added -extprefix option to support Qt installing into a different
   location than the on-device -prefix within the -sysroot.
 * [QTBUG-33584][Unix] Fixed parsing of -device-option with equal signs.

- cmake config files

 * [QTBUG-33145] Fixed usage of non-QtBase modules with Qt compiled from
   source tarballs.
 * [QTBUG-33223] Fixed header file location on multi-arch systems.
 * Added support for automatic packaging of Qt plugins with cpack.

- qmake

 * [QTBUG-491] Added saner approach to debug/release path rewriting.
 * Added the parseJson() function.
 * Added "osx" scope as an alias for "macx". Note that matching on the
   makespec is generally deprecated - use "linux", "gcc", etc.
 * Added support for .qmake.stash files which are really *just* caches.
 * [Xcode] Added support for QMAKE_PRE_LINK and QMAKE_POST_LINK.
 * [QTBUG-31129] Added installation of PDB files for dlltarget.
 * [QTBUG-28102] Added support for querying disabled Qt features.
 * Removed macx-clang-libc++* makespecs. libc++ is now handled automatically.
 * [QTBUG-32912][MSVS] Fixed moc not being run in case of DBUS_ADAPTORS or
   DBUS_INTERFACES being present.
 * [QTBUG-30644] Fixed unsatisfied requires() breaking recursive targets.
 * [QTBUG-31204] Fixed extra compilers not finding their inputs.
 * [QTBUG-32885][MSVS] Made it possible to disable debug information.
 * [QTBUG-33446][MSVS] Fixed generation of VS2010+ solution files.
 * [QTBUG-32375][MSVS] Fixed output directory of nested projects.
 * [QTBUG-34392][MSVS] Fixed /SAFESEH:NO with VS2010+.
 * [QTBUG-34357][MSVS] Fixed breakage with multiple VS versions in PATH.
 * [MSVS] Fixed sub-project dependency generation.

- moc
 * Porting moc to QCommandLineParser has changed one specific option in its
   command line handling: using the -f option without argument
   is not supported anymore (it wasn't necessary, since including the header
   file is the default behavior).