From 0792943d59eaa41f5e04b6ccaf39322eb8657f2a Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 18 Nov 2014 21:30:45 -0800 Subject: Update the ChangeLog for 5.4.0 for the rest of qtbase Change-Id: I255892a9c84a8d873195f9440f9c1808cbe2b5a8 Reviewed-by: Oswald Buddenhagen --- dist/changes-5.4.0 | 443 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 437 insertions(+), 6 deletions(-) diff --git a/dist/changes-5.4.0 b/dist/changes-5.4.0 index 614f57afe2..f989904484 100644 --- a/dist/changes-5.4.0 +++ b/dist/changes-5.4.0 @@ -16,26 +16,398 @@ Each of these identifiers can be entered in the bug tracker to obtain more information about a particular change. **************************************************************************** -* Library * +* Deprecation Notice * **************************************************************************** + - The Q_COMPILER_xxx macros for C++14 compiler features introduced in Qt + 5.3 are deprecated and will not be updated for new compilers either. + User code should be changed to use the macros from Standing Document 6 + instead: + http://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations. + This does not affect C++11 feature macros. + +**************************************************************************** +* Important Behavior Changes * +**************************************************************************** + + - QExplicitelySharedDataPointer's copy constructor which performs a + static_cast from "X *" to "T *" (when constructing a + QExplicitlySharedDataPointer from a QExplicitlySharedDataPointer) + doesn't perform a static_cast from "X *" to "T *" any more. Instead, an + implicit cast is now performed. This change will break compilation of code + that relied on the downcast (i.e. cast towards a more derived type) of the + templated type when copy constructing a QExplicitelySharedDataPointer + object. Please refer to the class documentation for more information about + this issue and a workaround to keep old code compiling. + - QImageReader now automatically rotates JPEG images according to Exif + orientation + - [QTBUG-18980] HarfBuzz-NG is now the default shaper on all platforms. + This results in a better shaping results for various languages, better + performance, and lower memory consumption. + - [QTBUG-41858] Changed QStringRef::right() to be consistent with + QString::right(). The function now returns the N right-most characters, + like the documentation already claimed. + - The mutable Java-style iterators like QListMutableIterator and + QHashMutableIterator no longer set the parent container to unsharable + mode. If you create a copy of the container being iterated on after the + iterator, any changes done with the iterator might affect the copy too. + + - Logging (including qDebug and qWarning): + * Support for the deprecated environment variables QT_NO_JOURNALD_LOG + and QT_ANDROID_PLAIN_LOG has been removed. Instead, set + QT_LOGGING_TO_CONSOLE to 1 to force logging to the console (stderr). + Set that variable to 0 to force logging to the system-specific event + log (if any). + * [QTCREATORBUG-12564] Log output will now go to the system log (if + support for it was compiled into Qt) if the application has no + controlling terminal or console window. Set QT_LOGGING_TO_CONSOLE to 1 + to force logging to go to stderr. + + - QSettings: + * [QTBUG-41812] QSettings::value() now returns an invalid QVariant when + passing an empty key. The code path ran into an assert, which was only + noticeable in debug builds. + * [QTBUG-21739] The locking mechanism inside QSettings has changed + and is no longer compatible with the one of previous versions of + Qt. There might be corruption if two applications running different + versions of Qt are writing to the same config file at the same + time. You must also now have write permissions in the directory + containing the settings file in order to write settings. + +**************************************************************************** +* Library * +**************************************************************************** + +QtConcurrent +------------ + + - [QTBUG-17220] run() now optionally takes as its first argument the + QThreadPool to run the task on. + QtCore ------ - Added QEnableSharedFromThis, a class that allows obtaining a QSharedPointer for an object already managed by a shared pointer. + - Added qHashBits() to aid implementing qHash() overloads for custom + types. + - Added new QByteArrayList class. + - Added QStorageInfo class to retrive information about mounted volumes + and drives + + - Logging: + * QT_MESSAGE_PATTERN can include a backtrace using %{backtrace} + * Added QtMsgType argument to QLoggingCategory constructor and + Q_LOGGING_CATEGORY macro that controls the default category + configuration. + * File, line, function information are not recorded anymore for logging + statements in release builds. Set QT_MESSAGELOGCONTEXT explicitly to + enable recording in all configurations. + + - QAbstractProxyModel: + * [QTBUG-39549] QAbstractProxyModel now forwards the drop-related API. + + - QByteArray: + * Added convenience methods to convert directly to and from std::string. + * Fixed a bug that would cause QByteArray to stop converting toUpper or + toLower at the first embedded null character. + + - QCommandLineParser: + * Added addOptions() method. + + - QElapsedTimer: + * Is no longer a POD; its default constructor now initializes the object to + an invalid QElapsedTimer + + - QFlags: + * [QTBUG-39786] Added initializer_list constructor + + - QFuture: + * [QTBUG-17220] Can now be used with any QThreadPool, not just + globalInstance(). + + - QPair: + * Can now be used in C++11 constexpr contexts. + + - QSaveFile: + * Now follows symbolic links when writing to a link instead of + replacing the link with the contents. + + - QSettings: + * [QTBUG-21739] Fixed data loss while writing the config to the disk + fails. + + - QStandardPaths: + * [QTBUG-38483] QStandardPaths now has new enumeration values + AppDataLocation, AppLocalDataLocation to be able to differentiate + between roaming and local paths on the Windows operating system. + DataLocation is deprecated in favor of AppDataLocation. + + - QString: + * QString can now split a string to a list of QStringRef. + * Added the QStringRef::split() function + + - QTextStream: + * QTextStream now uses group separators when writing floating-point + numbers when the locale is not the C locale. The old behavior can be + restored by setting QLocale::OmitGroupSeparator on the locale. + + - QTimer: + * [QTBUG-26406] Implemented new style connect syntax, including + functors, in QTimer::singleShot + + - QUrl: + * QUrl::fromLocalFile now returns an empty URL if the input string is + empty. + + - QVariant: + * [QTBUG-40363] Fixed ordered comparison between QVariants that do not + match but produce identical toString output. + + - QVector: + * Added removeOne() and removeAll() for QList compatibility. + + - QWeakPointer: + * Added lock() method for std::weak_ptr compatibility. + * Added member-swap function. + + - QtJson: + * [QTBUG-26606] QJsonArray and QJsonObject now supports C++11 + initializer lists. + + - QtMath: + * Introduced qNextPowerOfTwo methods. + +QtDBus +------ + + - Blocking calls that take a long time will now generate a warning. The + time taken may be tuned using the environment variables + Q_DBUS_BLOCKING_CALL_MAIN_THREAD_WARNING_MS and + Q_DBUS_BLOCKING_CALL_OTHER_THREAD_WARNING_MS. The value represents (in + milliseconds) how long before a blocking call is warned about. A value + below zero disables the warning, a value of zero will warn about all + blocking calls. + +QtGui +----- + + - Added QPixelFormat class. + - [QTBUG-38168] QtGui's OpenGL headers are now automatically including the + highest available header (gl31.h, gl3.h or gl2.h) in OpenGL ES builds. + - [QTBUG-36483] Dynamic OpenGL implementation loading is now supported on + Windows. This requires Qt to be configured with -opengl dynamic. + - [QTBUG-39583] Keymaps are now changeable at runtime when using eglfs. + - [QTBUG-40841] environment variable QT_DBL_CLICK_DIST customizes the + amount of movement allowed when detecting a double click. + + - Clipboard: + * [QTBUG-41852] Fixed a memory leak in setMimeData() when the platform + plugin did not support the requested mode. + + - Painting: + *[QTBUG-41413] Fixed some very rare cases of mismatched raster modes + in QPainter. + + - QEvent: + * [QTBUG-38858] The debug output for events has been significantly + improved. + + - QFont: + * [QTBUG-22814][QTBUG-22946] QFont now serializes its data properly, + without any data loss. + + - QGuiApplication: + * Add support for -icon command line argument on X11, add -qwindowicon + on all platforms. + * Added QGuiApplication::screenRemoved signal to inform that a screen + has been removed, before Qt reacts to it. + + - QImage: + * [QTBUG-25998] Added support for 10-bit per color channel image + formats. + + - QOpenGLBuffer: + * [QTBUG-38168] Added QOpenGLBuffer::mapBufferRange(). + + - QOpenGLFramebufferObject: + * Introduced an argument to QOpenGLFramebufferObject::toImage() to save + mirroring the result. + * Added support 10-bit per color channels formats as the internal + framebuffer format, making it possible to render in that precision. + + - QOpenGLTextureCache: + * Added support for uploading common QImage formats directly to OpenGL, + if supported by the OpenGL implementation. + + - QPicture: + * [QTBUG-20578] QPicture now serializes its data properly by also + accounting for QDataStream versions greater than Qt 4.5. + + - Tablet support: + * [QTBUG-39458] Added buttons to QTabletEvent + - Text: + * [QTBUG-41372] Fixed regression when rendering Uchen text in WebKit + on Windows. + * Fixed use of uninitialized memory in the FreeType font engine + +QtNetwork +--------- + + - QNetworkAccessManager: + * Fixed behavior of upload QIODevice that generate data on readyRead() + for HTTP PUT/POST + + - QSsl: + * QSsl::SecureProtocols now also excludes SSLv3 + + - QSslCertificate: + * Can now be used as a key in QSet/QHash. + + - QSslError: + * Can now be used in QSet/QHash. + + - QSslSocket: + * [QTBUG-28471] Added support for finding the version of SSL/TLS in + use by a connection. + * Added accessors for the version of OpenSSL used at build-time. This + will help when debugging problems caused by a mismatch with the + run-time version. + * [QTBUG-1565] Support for loading PKCS#12 bundles was added. These are + often used to conveniently transport keys and certificates, + particularly when making use of client certificates. + +QtPrintSupport +-------------- + + - QPrinter: + * [QTBUG-11332] Added duplex support for Windows and OS X. QtSql ----- - - qsql ibase: fix memory corruption due to LONG being 4 bytes in firebird. - - QSqlDriver::dbmsType(): New method reports DBMS type. Especially useful when using ODBC. + - ibase: Fixed memory corruption due to LONG being 4 bytes in firebird. + + - QSqlDriver: + * Add support for determining DBMS type from SQL driver using + QSqlDriver::dbmsType() + +QtTest +------ + + - Tests now output build information. + +QtWidgets +--------- + + - All widgets with a setReadOnly method now send a ReadOnlyChange event + (e.g., for app-specific palette changes) + - [QTBUG-32888] Accessibility for widgets is now included in the widget + library instead of being a separate plugin. For static builds this means + that libqtaccessiblewidgets is no longer required. + + - QComboBox: + * [QTBUG-33537] Fixed positions of items when QComboBox is set as + editable in Fusion style. + * [QTBUG-33537] Fixed updating appearance of popup menu when changing + the editable state of the combo box. + + - QDialog / Windows: + * [QTBUG-2027] Dialogs can now be menuless. + + - QGraphicsScene: + * Added the minimumRenderSize property which can be used to speed up + rendering by not painting items smaller than a give size. + * The removal of items when using the linear index is now more + efficient. + + - QLayout: + * [QTBUG-37673] Widgets and dialogs containing layouts with + heightForWidth (such as a label with word wrap) will no longer get a + minimum size of 0x0. + + - QLineEdit: + * [QTBUG-40287] The signal textEdited() is now emitted when the user + clicks the clear button created by setClearButtonEnabled() as well. + + - QMainWindow: + * [QTBUG-40410] Dock widgets will now be resized properly when the + central widget has a fixed size. + + - QPlainTextEdit: + * [QTBUG-36415] Fixed a crash when using full width selections and + issuing a complex undo command chain which removes and inserts an + empty block in one go. + * [QTBUG-40347] Fixed a possible divide by zero crash when font metrics + were missing for the font. + + - QTabBar: + * Added changeCurrentOnDrag property. + + - QTableView / QTableWidget: + * [QTBUG-29239] currentIndex() now reflects the top left cell when in a + span. + + - QTreeView: + * Indentation is now style-dependent by default. + * Added resetIndentation(). + + - Styles: + * Allow overriding standardIcon() in a proxy style **************************************************************************** * Platform Specific Changes * **************************************************************************** +Android +------- + + - [QTBUG-36019] Enable using native style also when Ministro deployment + mechanism is not in use. + - [QTBUG-29069] Release all windows when the application is suspended. + - Added Gradle support to build the APK. + - [QTBUG-39688] Back key no longer kills the application when no window is + visible. + - [QTBUG-41365] Default open-source license for Qt for Android is now + LGPLv3. For compatibility with the LGPLv2.1 license, add + "-no-android-style-assets" to your configuration. + - [QTBUG-32399] Input panels are now hidden when focus changes to an object + that does not accept input. + - [QTBUG-41854] Added support for QClipboard::clear() + - [QTBUG-41852] Fixed memory leak in QClipboard::setMimeData() + - [QTBUG-41817] QClipboard::mimeData() now returns an empty object instead + of null pointer from QClipboard when clipboard is empty for consistency + with other platforms. + + - Important Behavior Changes: + * [QTBUG-36274] The main event loop is now stopped when the app is + suspended + +iOS +--- + + - [QTBUG-39097] Accessibility was added to the iOS platform port. This + enables Qt applications to be read by VoiceOver on iOS devices. + - [QTBUG-42276] Fixed path to QStandardPaths::DataLocation. Until now, + DataLocation was pointing to the Document directory. With this patch, + it will return the more accurate Library/Application Support. + Applications making use of DataLocation should move these data to the + new location. This can be done using the path provided by + DocumentLocation as the source path. + +Linux/XCB +--------- + + - [QTBUG-35832] Fixed transparency of tray icons in cases where there + is no alpha channel or system tray visual. + - environment variables QT_XCB_DEBUG_XINPUT and + QT_XCB_DEBUG_XINPUT_DEVICES are deprecated and replaced with logging + categories qt.qpa.events.input and qt.qpa.devices respectively + - [QTBUG-39572] Wacom touch devices are not mistaken for additional + graphics tablets any more. + + OS X ---- @@ -43,17 +415,51 @@ OS X - OS X 10.10 is now supported. - QMacStyle has been updated with better OS 10.10 support. - The Qt binary packages are now configured with C++11 enabled. + - [QTBUG-41208] Fixed detection of writing system support in fonts for + some scripts such as Mkhedruli. + - [QTBUG-41192] Fixed menu item shortcuts without keyboard modifiers. + - [QTBUG-31301] Drag-and-drop QMimeData requests are now delayed until + drop time. + - [QTBUG-10899] Added support for ApplicationState + capability. Application can now detect when an application states + have changed as well when the dock icon has been clicked. + + - Fonts: + * [QTBUG-40986][QTBUG-40549] Fixed missing glyph box shown in place of + some uncommon Unicode code points. Windows ------- - - [QTBUG-38259] Changed configure defaults so that Qt5Core does not - link against ICU libraries anymore. Pass '-icu' to enable it. + - [QTBUG-38259] Changed configure defaults so that Qt5Core does not link + against ICU libraries anymore. Pass '-icu' to enable it. + - [QTBUG-35432][QTBUG-23687] Command line parsing on Windows now uses + the WinAPI function CommandLineToArgvW() to exactly match the quoting + behavior used by the majority of applications. + + - Fonts: + * [QTBUG-41783] Fix off-by-one in font descent when using the + DirectWrite font engine. + * [QTBUG-39961] Set default fallback font to MS Shell Dlg 2 instead of + Arial. + +**************************************************************************** +* Compiler Specific Changes * +**************************************************************************** + + - Release builds with Microsoft Visual Studio 2013 now enable the + standard-conforming C and C++ strict string behavior. This option will + be enabled in all builds with future Visual Studio versions. + Non-conforming code should be fixed for maximum portability and + correctness. See http://msdn.microsoft.com/en-us/library/dn449508.aspx + for more information. **************************************************************************** -* Tools * +* Tools * **************************************************************************** + - [QTBUG-30900] The obsolete findtr script was removed. + configure & build system ------------------------ @@ -66,6 +472,12 @@ configure & build system from a pre-existing Qt installation. - [QTBUG-41267] Fixed parallelized (jom) -debug-and-release builds. +moc +--- + + - Fixed "zero as null pointer constant" warnings in moc's generated + code. + qmake ----- @@ -86,3 +498,22 @@ qmake - QMAKE_EXTRA_COMPILERS' commands and depend_command are no longer mangled. Use $$shell_path() and $$shell_quote() to prepare the commands correctly. - Added link-time optimization support for Clang, GCC and ICC. CONFIG+=ltgc. + +rcc +--- + + - rcc now supports an optional, two-pass compilation that improves build + times for large resource bundles. This feature can be enabled by adding + "CONFIG += resources_big" to your .pro file. Note that this feature may + interfere with builds that enable link-time code generation or other + optimization techniques. + +**************************************************************************** +* Third-party libraries * +**************************************************************************** + + - ANGLE has been upgraded to version 2.1, bringing partial support for + OpenGL ES3 over Direct3D 11, numerous bug fixes, and several new vendor + extensions. + - [QTBUG-40649][QTBUG-40658][QTBUG-41031][QTBUG-41081][QTBUG-41308][QTBUG- + 41563] ANGLE updated to 2.1~f8602ad91e4f -- cgit v1.2.3