| 12
 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
 
 | Qt 5.13 introduces many new features and improvements as well as bugfixes
over the 5.12.x series. For more details, refer to the online documentation
included in this distribution. The documentation is also available online:
https://doc.qt.io/qt-5/index.html
The Qt version 5.13 series is binary compatible with the 5.12.x series.
Applications compiled for 5.12 will continue to run with 5.13.
Some of the changes listed in this file include issue tracking numbers
corresponding to tasks in the Qt Bug Tracker:
https://bugreports.qt.io/
Each of these identifiers can be entered in the bug tracker to obtain more
information about a particular change.
****************************************************************************
*                 Important Source Incompatible Changes                    *
****************************************************************************
 - Moc generated files include the standard <memory> header file now.
   A side effect of this is that code including the Moc output from within
   a namespace will fail to compile.
****************************************************************************
*                        Important Behavior Changes                        *
****************************************************************************
 - The Qt resource system now supports compressing content using the
   Zstandard (https://zstd.net) algorithm. Compared to zlib, it compresses
   better for the same CPU time, so this algorithm is the default.
   QResource::isCompressed() returns true for either compression algorithm.
   Use QResource::compressionAlgorithm() to find out which algorithm to
   decompress. QFile will automatically decompress using the correct
   algorithm.
 - QDataStream version bumped up to 19 to account for changes in the
   serialization of QFont.
 - [QTBUG-73048] Qt now enables by default warnings when using APIs
   marked as deprecated. It is possible to disable such warnings by
   defining the QT_NO_DEPRECATED_WARNINGS macro. The old
   QT_DEPRECATED_WARNINGS macro which was used to enable this warning
   now has no effect (warnings are automatically enabled).
****************************************************************************
*                             Third-Party Code                             *
****************************************************************************
 - Updated bundled SQLite to version 3.28.0.
 - [QTBUG-72623] Updated DNS public suffix list
 - [QTBUG-73883] libjpeg-turbo was updated to version 2.0.2
 - Bundled libpng was updated to version 1.6.37
****************************************************************************
*                        Platform-Specific Changes                         *
****************************************************************************
 - X11 / XCB:
   * [QTBUG-45375] QTabletEvent coordinates now come from AbsX/AbsY
     valuators in the X11 event, in more precise 32.32 fixed-point format,
     scaled to fit the virtual desktop. It's possible to revert to using
     the legacy 16.16-format event_x/event_y coordinates as in previous
     releases by setting the QT_XCB_TABLET_LEGACY_COORDINATES environment
     variable.
   * [plugins] platforminputcontexts now use libxkbcommon-compose APIs for
     compose key input, instead of Qt's own implementation.
 - Android
   * Increased the minimum supported Android version to Android 5.0
     (API level 21).
 - Windows
   * [QTBUG-47247][QTBUG-71855] Add a default setting for
     hasBorderInFullScreen in QtPlatformHeaders, QWindowsWindowFunctions
   * [QTBUG-57180] Removed confusing DirectWrite warning when loading
     bitmap fonts.
 - macOS
   * Accessibility: VoiceOver now reads all lines in multiline text
     components when navigating by lines.
****************************************************************************
*                                  Tools                                   *
****************************************************************************
 - configure & build system:
   * Added --linker=[bfg,lld,gold] configure flag.
   * The default OpenGL configuration changed from ANGLE to dynamic OpenGL.
   * Added -schannel option to enable Schannel support on Desktop Windows.
   * Added -coverage option for recording coverage data during execution
 - CMake
   * Added support for automatic linking of transitive dependencies in
     static builds
 - qmake
   * [QTBUG-53654] Introduced the variables WINDOWS_TARGET_PLATFORM_VERSION
     and WINDOWS_TARGET_PLATFORM_MIN_VERSION for overriding the default
     values of WindowsTargetPlatformVersion and
     WindowsTargetPlatformMinVersion in Visual Studio project files.
 - RCC now supports compressing content using the Zstandard
   (https://zstd.net) algorithm. Compared to zlib, it compresses better for
   the same CPU time, so this algorithm is the default. To go back to the
   previous algorithm, pass command-line option --compress-algo=zlib.
   Compression levels range from 1 (fastest, least compression) to 19
   (slowest, best compression). Level 0 tells the library to choose an
   implementation-defined default. The default compression level is
   "heuristic" (level -1): under this mode, RCC will attempt a very fast
   compression (level 1) and check if the file was sufficiently compressed.
   If it was, then RCC will compress again using an implementation-defined
   level.
****************************************************************************
*                                  QtCore                                  *
****************************************************************************
 - New class QConcatenateTablesProxyModel, to concatenate the rows from
   multiple source models.
 - New class QTransposeProxyModel to swap rows and columns of the source
   model.
 - Added macros Q_DISABLE_MOVE and Q_DISABLE_COPY_MOVE complementing
   Q_DISABLE_COPY.
 - Qt Containers and meta type system now use C++11 type traits
   (std::is_trivial, std::is_trivially_copyable and
   std::is_trivially_destructible) to detect the class of a type not
   explicitly set by Q_DECLARE_TYPEINFO. (Q_DECLARE_TYPEINFO is still
   needed for QList.)
 - QCommandLineParser:
   * [QTBUG-58490] The application name (if set in QCoreApplication) is now
     shown in error messages.
 - QDateTime:
   * [QTBUG-71030] Fixed race conditions in getting the local time zone. Qt now
     has a mutex lock around all calls to tzset() and mktime(). Application
     code should avoid calling those functions directly.
 - QFile:
   * Made QFile::copy() issue a filesystem-synchronization system call,
     which would make it less likely to result in incomplete or corrupt
     files if the system reboots or uncleanly shuts down soon after the
     function returns. New code is advised to use QSaveFile instead, which
     also allows display of a progress report while copying.
 - QFileInfo:
   * [QTBUG-63970][QTBUG-30401][QTBUG-20791] Fixed resolving of symbolic
     links to UNC shares on NTFS file systems.
 - QJsonArray:
   * [QTBUG-32793] Added cbegin() and cend() methods for compatibility with
     the Standard Library container concepts.
 - QJsonDocument:
   * [QTBUG-71445] Added the ability to stream QJsonDocument into and from
     QDataStream if it is contained in a QVariant.
 - QLocale:
   * Added support for Western Balochi, Ido, Lojban, Sicilian and
     Southern Kurdish.
   * [QTBUG-71445] Added a const overload for formattedDataSize().
   * [QTBUG-782] Added toLong() and toULong().
 - QMetaObject:
   * Non-copyable lambdas can now be used with invokeMethod(). For
     consistency reasons, the functor object is now always moved.
 - QMimeDatabase:
   * Added configure option -no-mimetype-database that tells Qt not to
     bundle its own copy of the XDG MIME database. If this option is
     passed, QMimeDatabase will only work if there's a system copy in
     $XDG_DATA_DIRS/mime. This option is useful for Linux distributions
     that ensure the data is always present.
 - QSettings:
   * Added QSettings(Scope...) constructor to avoid using #ifdef in Qt
     applications.
 - QStringListModel:
   * [QTBUG-69807] Implemented moveRows
 - QUrlQuery:
   * QUrlQuery now provides an initializer list constructor. It can be
     created using a list of key/value pairs.
 - QVector:
   * QVector no longer requires a default constructor for its template
     argument.
****************************************************************************
*                                 QtDBus                                   *
****************************************************************************
 - Matching namespace prefixes using QDBusServiceWatcher (instead of full
   service names) is now possible. For example, "com.example.backend1*"
   will match "com.example.backend1", "com.example.backend1.foo" and
   "com.example.backend1.foo.bar", but not "com.example.backend12".
****************************************************************************
*                                  QtGui                                   *
****************************************************************************
 - CSS:
   * Added support for HSL/HSLA colors.
   * Fix the range of the hue parameter when parsing a color given in HSL
     or HSV.
 - QFont:
   * Add setFamilies()/families() to support use of font families with
     commas and quotes in their name.
 - QImage:
   * [QTBUG-41176] Added support for 16-bit grayscale format.
   * A new method convertTo has been added to change the format of a QImage
     in place.
 - QPainterPath:
   * Added clear(), reserve(), capacity(). clear() removes allocated
     QPainterPath elements but preserves allocated memory, which can be
     useful for application with complex paths that are often recreated.
     reserve() and capacity() follow QVector semantics.
 - QWindow:
   * [QTBUG-67903][QTBUG-52944] QWindow::transientParent is now a property.
 - Text:
   * [QTBUG-60813] Deprecated QFont::lastResortFamily() and
     QFont::lastResortFont() which are not in use in Qt 5 and did not
     provide any useful information.
   * [QTBUG-22813] Added support for setting the font's style name in
     QTextCharFormat.
****************************************************************************
*                                QtNetwork                                 *
****************************************************************************
 - TLS (SSL):
   * Support for SSLv2 and SSLv3 sockets has been dropped, as per RFC 6176
     (2011) and RFC 7568 (2015).
   * The Schannel backend now supports ALPN and thus HTTP/2.
   * [QTBUG-62637] Added support for Schannel on Desktop Windows. To build
     Qt with Schannel support use '-schannel' during configure.
   * Added class QOcspResponse as a part of OCSP stapling support.
   * [QTBUG-12812][QTBUG-17158] Added OCSP-stapling support for OpenSSL
     backend
   * [QTBUG-71828][QTBUG-73289] Fixed SSL verification when connecting to IP
     address (no host name) if that IP address is listed in the certificate.
****************************************************************************
*                                QtTestLib                                 *
****************************************************************************
 - Added QTest::toString(const QModelIndex &idx)
 - Removed support for GPU_BLACKLIST files. Reimplementations or
   equivalents of QTEST_MAIN() should remove their uses of
   QTEST_ADD_GPU_BLACKLIST_SUPPORT and its _DEFS; they are still vacuously
   defined, but serve no remaining purpose and shall be undefined in due
   course.
****************************************************************************
*                                QtWidgets                                 *
****************************************************************************
 - QAbstractScrollArea:
   * [QTBUG-69120] QTableView/QTreeView, when reporting their
     viewportSizeHint(), now correctly take into account their scroll
     bars' visibility and visibilityPolicy.
 - QHeaderView:
   * dataChanged now respects the given roles to avoid useless
     recomputations.
 - QLabel:
   * Minor performance improvement when painting a label with an image.
 - QListWidget:
   * [QTBUG-69807] Implemented moveRows in model
   * [QTBUG-68977] Sped up handling of hidden items when working with large
     data sets.
 - QPlainTextEdit:
   * Added QRegularExpression find() method overload.
 - QTextEdit:
   * Added QRegularExpression find() method overload.
 - QTreeView:
   * Added expandRecursively() to expand all items below a given index.
 - QWidgetTextControlPrivate:
   * [QTBUG-69735] Moved cursor selection to start.
****************************************************************************
*                                  QtSql                                   *
****************************************************************************
 - SQLite:
   * [QTBUG-63498] The json1-extension for the SQLite3 plugin is now enabled
     by default.
 - PostgreSQL:
   * QSqlDatabase is now stricter about table names when used with record()
     and primaryIndex(). If the tablename was not quoted when it was
     created, then the table name passed to record() and primaryIndex()
     needs to be in lower case so that PostgreSQL is able to find it.
 |