diff --git a/dist/changes-5.3.0 b/dist/changes-5.3.0 index cb2c3608f0..ae837fc023 100644 --- a/dist/changes-5.3.0 +++ b/dist/changes-5.3.0 @@ -15,6 +15,50 @@ corresponding to tasks in the Qt Bug Tracker: Each of these identifiers can be entered in the bug tracker to obtain more information about a particular change. +**************************************************************************** +* Important Behavior Changes * +**************************************************************************** + + - SIMD support in CPUs: + * [QTBUG-30440] Qt no longer checks for support for the Neon FPU on + ARM platforms at runtime. Code optimized for Neon must be enabled + unconditionally at compile time by ensuring the compiler supports + Neon. You may need to edit your mkspec for that. + + * Qt now automatically generates code for processors supporting SSE2 + on i386 platforms. To disable this, pass the -no-sse2 option during + Qt configuration. Since this feature has been present on CPUs for + 10 years and since Qt no longer checks for runtime support for + SSE2, we strongly encourage users to leave the default setting on + for best performance. + - For Linux distributions that must retain support for CPUs without + SSE2, we recommend doing two builds of Qt and installing the + SSE2-enabled libraries in the LIBDIR/sse2 directory (specially + QtGui, QtQml and QtQuick libraries). Tools, plugins, and examples + are not affected. + - See discussion on the Qt development mailing list: + http://lists.qt-project.org/pipermail/development/2013-November/014085.html + + - SSL and security: + * The default set of ciphers used by QSslSocket has been changed to + exclude ciphers that are using key lengths smaller than 128 + bits. These ciphers are still available and can be enabled by + applications if required. + * [QTBUG-20666] Support for DH and ECDH key exchange cipher suites + when acting as an SSL server has been made possible. This change + means the you can now implement servers that offer forward-secrecy + using Qt. + * Running Qt applications that are setuid is no longer allowed by + default. If you really need to do this then you can call + QCoreApplication::setSetuidAllowed(true) before creating the + QCoreApplication instance. + + - UTF-8 decoding: + * The QString and QTextCodec UTF-8 decoder changed behavior slightly: + when it encounters invalid sequences, it will insert one + replacement character per byte that is invalid, instead of one + replacement character for the whole invalid length. + **************************************************************************** * Platform deprecation notice * **************************************************************************** @@ -24,17 +68,125 @@ information about a particular change. not tested, and most likely has issues that are not fully documented. **************************************************************************** -* Library * +* General * **************************************************************************** -QtWidgets ---------- + - Support for the following platforms has been removed, due to lack of + interest in updating support: INTEGRITY, VxWorks, Solaris on UltraSPARC + (with the Sun Studio compiler suite), AIX on POWER processors (with IBM + Visual Age compiler suite). + - Builtin command-line options such as -reverse, -session, -style + -etc. now all support double dash, e.g. --reverse, --session, + --style... + +**************************************************************************** +* Library * +**************************************************************************** QtCore ------ - Added QSignalBlocker, a RAII-style wrapper around QObject::blockSignals(). + - QLibraryInfo provides information on how Qt was built. + - Added class QMarginsF to support handling margins with floating-point + values. + + - Atomic support: + * Added more operations to the atomic classes, including operator T(), + operator=(T), operator++, operator--. For the QAtomicInteger, + bit-manipulation operations are also provided, both in operator and in + fetchAndXxxYyyyyy modes. + + - Event loop: + * [QTBUG-36611] QCoreApplication::hasPendingEvents and + QAbstractEventDispatcher::hasPendingEvents are now deprecated. Please + refer to the documentation for more information. + + - Logging: + * It is now possible for the qCDebug macros to be used in a printf + style. + * All qCDebug categories are enabled by default, except for Qt's own + categories. + * The logging framework can now be configured with an .ini file. + * Q_LOGGING_CATEGORY and Q_DECLARE_LOGGING_CATEGORY now return a const + object. + + - QByteArray: + * Added NSData/CDataRef converters for QByteArray. + + - QChar: + * Added JoiningType enum and joiningType() method that deprecates the + old QChar::Joining enum and joining() method. + + - QFileSelector: + * [QTBUG-35073] The identifier for OS X has been changed back to + 'osx' from 'mac', and 'mac' and 'darwin' have now been added as + selectors for Darwin OS (which is the base of both OS X and iOS). + + - QHash/QSet: + * Added qHash overloads for float, double and long double. + + - QJsonArray: + * Added convenience methods to QJsonArray for appending QJsonValues + + - QJsonValue: + * Added constructor to QJsonValue for const char * + * QJsonValue::fromVariant() will now convert single-precision Floats + into Doubles instead of Strings + + - QMargins: + * Added missing addition and subtraction operators. + + - QProcess: + * [QTBUG-26136] Added processId() to QProcess. This function will, + unlike pid(), return the actual process identifier on both Windows + and Unix. + + - QRect: + * Added QMargins subtraction operator. + + - QSettings: + * [QTBUG-9824][QTBUG-21062][QTBUG-22745] QSettings now returns the + correct value for isWritable() when using SystemScope settings. + + - QSortFilterProxyModel: + * [QTBUG-30662] Fixed sorting when a previously empty proxy model + becomes populated because of a change in the filter. + + - QStandardPaths: + * [QTBUG-34631] Added QStandardPaths implementation for Android. + + - QString: + * Added QLatin1String overload of contains() + * QString::toUcs4 now does not return invalid UCS-4 code units belonging + to the surrogate range (U+D800 to U+DFFF) when the QString contains + malformed UTF-16 data. Instead, U+FFFD is returned in place of the + malformed subsequence. + + - QTextCodec: + * Encoding a QString in UTF-32 will now replace malformed UTF-16 + subsequences in the string with the Unicode replacement character + (U+FFFD). + + - QVarLengthArray: + * Added the indexOf, lastIndexOf and contains functions to + QVarLengthArray. These functions make the class more similar to + QVector. + + - Windows: + * [QTBUG-35194] Now QStandardPaths::DownloadLocation returns the proper + path for Windows Vista and up + +QtDBus +------ + + - QtDBus adaptors now include the PropertiesChanged signal in + introspection data + + - QDBusServer: + * Added method to QDBusServer to allow anonymous client connections, + even if the connecting client is not authenticated as a user. QtGui ----- @@ -42,12 +194,313 @@ QtGui - Added setSwapInterval() to QSurfaceFormat. Platforms that support setting the swap interval are now defaulting to the value of 1, meaning vsync is enabled. + - [QTBUG-35220] Reading bmp images with alpha channel is now supported + - [QTBUG-36394] The main Embedded Linux platform plugins (eglfs, linuxfb, + kms) are changed to behave identically with regards to terminal keyboard + input: it is turned off by default on all of these platforms. If this + feature is not desired, it can be disabled by setting the environment + variable QT_QPA_ENABLE_TERMINAL_KEYBOARD. + - [QTBUG-36374] Mouse hotplugging is now fully supported in eglfs when + running on Embedded Linux systems with libudev support enabled. + - [QTBUG-36603] Windows Accessibility now handles the disabled state of + widgets correctly. + - Accessibility on Linux now reports the active state correctly. + - [QTBUG-36483] Qt builds on Windows can now be configured for dynamic + loading of the OpenGL implementation. This can be requested by passing + -opengl dynamic to configure. In this mode no modules will link to + opengl32.dll or Angle's libegl/libglesv2. Instead, QtGui will + dynamically choose between desktop and Angle during the first GL/EGL/WGL + call. This allows deploying applications with a single set of Qt + libraries with the ability of transparently falling back to Angle in + case the opengl32.dll is not suitable, due to missing graphics drivers + for example. + - Added class QPageLayout to support handling page layouts including the + page size, orientation and margins. + - [QTBUG-28813][QTBUG-29930][QTBUG-35836] Fixed regression in + arabic text rendering. + - [QTBUG-37332] GLES3 and desktop OpenGL are now fully supported with + EGL + - [QTBUG-36993] Native (that is, not distance field based) text + rendering is now functional on OpenGL 3.2+ core profiles too. + + - Accessibility: + * [QTBUG-37204] Implemented text attributes to enable VoiceOver to read + QTextEdit and QPlainTextEdit. + * Assistive apps such as VoiceOver can now set the focus on widgets + and controls. + + - QColor: + * Exported highly optimized methods for premultiply and unpremultiply of + QRgb values. + + - QFont: + * Added qHash overload for this class. + + - QGuiApplication: + * Restored support for -title command line argument on X11 and added + -qwindowtitle on all platforms. + + - QImage: + * Added rvalue-qualified overloads for mirrored(), rgbSwapped() and + convertToFormat(), allowing in-place conversion in some cases + + - QOpenGLFramebufferObject: + * [QTBUG-35881] Added takeTexture() for retrieving and detaching the + texture from the framebuffer object. + + - QPageSize: + * Added new QPageSize class to implement Adobe Postscript PPD standard + page sizes. This class supports the standard page sizes, names and + keys from the PPD standard, and provides convenient size and rect + conversion methods. + + - QPagedPaintDevice: + * [QTBUG-27685][QTBUG-25744] Paged paint devices such as QPrinter and + QPdfWriter now support all Postscript standard page sizes. + + - QPdfWriter: + * The QPdfWriter now supports setting the PDF orientation, layout and + resolution by using QPageSize and QPageLayout. + + - QTextLayout: + * [QTBUG-18060] Fixed visual cursor movement in bidirectional text. + + - QWindow: + * QWindow::icon() now defaults to the application icon, which can be set + with QGuiApplication::setWindowIcon(). + +QtNetwork +--------- + + - [QTBUG-18714] Added support for the SPDY protocol (version 3.0). + + - QNetworkReply: + * [QTBUG-30880] Added more (specific) HTTP status codes to NetworkError + enum. + + - QSslConfiguration: + * [QTBUG-33208] Added support for the Next Protocol Negotiation (NPN) + TLS extension. + +QtPrintSupport +-------------- + + - [QTBUG-29663] Made the Qt buildsystem automatically include the + necessary plugins so that static applications can print. + - CUPS 1.4 is now required for print support on Linux and other *nix + platforms. + + - QPrintPreviewDialog: + * [QTBUG-36561] Fixed initialization of QPrintPreviewDialog's image + resources for static builds. + + - QPrinter: + * QPrinter can now use QPageSize and QPageLayout in the public api to + control the page layout for a print job. + + - QPrinterInfo: + * [QTBUG-35248] Added new public api for isRemote(), state(), + defaultPageSize(), supportedPageSizes(), supportsCustomPageSizes(), + minimumPhysicalPageSize(), maximumPhysicalPageSize(), + supportedResolutions(), availablePrinterNames(), and + defaultPrinterName(). The use of availablePrinters() is discouraged + due to performance concerns. QtSql ----- - QSqlQuery::isNull(field) now correctly returns true for "no such field". - QSqlQuery::isNull(fieldname) is a new overload. - - QSQLITE: Empty database name now opens in-memory database. - - QSqlError: Now handles alphanumeric error codes. Used by QPSQL. - Old numeric code is deprecated. + - [QTBUG-12186] Fixed the order of values with positional binding in a + QSqlQuery + + - QSQLITE: + * Creating temporary databases is now possible + * Empty database name now opens in-memory database. + + - QSqlError + * Now handles alphanumeric error codes. Used by QPSQL. Old numeric + code is deprecated. + +QtTest +------ + + - Added test duration to xml output. When running tests with xml output a + new tag of the form + is added to each test function and the test as a + whole. + - Added a CSV logging mode that is suitable for importing benchmark + results into spreadsheets. This can be enabled by the -csv option on the + command-line. The CSV logging mode will not print test failures, debug + messages, warnings, etc. + - QtTest now prints an escaped version of QStrings that failed to compare + with QCOMPARE. That is, instead of converting non-printable characters + to question marks, QtTest will print the Unicode representation of the + character in question. + + - Windows: + * [QTBUG-35743] Use correct UTF-8 encoding for XML test results on + platforms with different console encoding. + +QtWidgets +--------- + + - Accessibility: + * Fixed QTextEdit not reporting newlines to accessibility frameworks and + add editable text interface. + + - QAbstractSpinBox: + * [QTBUG-5142] QSpinBox and QDoubleSpinBox widgets can now show the + group (thousands) separators. + + - QColorDialog: + * Ensured QColorDialog::DontUseNativeDialog is respected when showing + the dialog. + + - QDateEdit: + * [QTBUG-36692] Fixed incorrect appearance on OS X of QDateEdit with + calendarPopup enabled. + + - QDrag + * Fixed Drag and Drop driven by touch-synthesized mouse events on + Windows. + + - QListView: + * [QTBUG-4714] Fixed QListView ignoring the grid size for word + wrapping in icon mode + + - QMdiSubWindow: + * [QTBUG-9933][QTBUG-27274] Fixed setWindowFlags() for QMdiSubWindow. + + - QMenu: + * [QTBUG-20094] Enabled sloppy submenu mouse navigation. + * [QTBUG-36142] QMenu now correctly uses text color set by style + sheet for menu items on Windows. + * [QTBUG-36218] Fixed position of menu gutter on Windows when using a + custom widget action. + + - QPlainTextEdit: + * Added find method overload using QRegExp + + - QSpinBox: + * [QTBUG-3032] Fixed keyboard selection with multiple-character strings. + + - QScrollArea: + * [QTBUG-36314] The setting for click position is now respected on OS X. + + - QTextDocument: + * [QTBUG-33336] Added support for empty inline elements in block tags. + + - QTextEdit: + * Added find method overload using QRegExp + + - QWidget: + * [QTBUG-25831] Restored the Qt 4 behavior in the sequence of events + that are delivered to widget windows and their children when a + mouse double click happens: the second MouseButtonPress event from + Qt 5.0-5.2 is no longer sent. + * [QTBUG-33716] QWidgets embedded in QGraphicsProxyWidget are no longer + sent close events when the app is closed on OS X. + * [QTBUG-36178] Fixed an issue where stay-on-top widgets would cover + their own children on OS X. + + - QWizard: + * [QTBUG-7484] Added NoCancelButtonOnLastPage option. + * [QTBUG-36192] Fixed frame when using Vista style/MSVC2012. + + - Text support: + * [QTBUG-36444] Fixed off-by-one in the height of text background. + + - Windows: + * [QTBUG-21371][QTBUG-4397] QWidget::restoreGeometry() now restores + maximized/full screen widgets to the correct screen. + +**************************************************************************** +* Compiler Specific Changes * +**************************************************************************** + + - Variadic macros are now enabled more liberally for gcc, clang, icc. If + you have warnings (because you e.g. compile with -pedantic), disable + them by -Wno-variadic-macros. + +**************************************************************************** +* Platform Specific Changes * +**************************************************************************** + +Android +------- + + - [QTBUG-34781] Fixed regression in "make install" on library projects on + Android so they can be used inside subdirs projects again. + - [QTBUG-36074] Fixed crash on populating large combo boxes or menus. + - [QTBUG-36528] Fixed QDir::entryList() for assets scheme to no longer + skip the first file in the directory. + - [QTBUG-30652] It is now possible to define a splash screen which will be + visible until the first window is created. + - [QTBUG-33704] Sped up first time directory listing in assets by using + pregenerated entry list. + - [QTBUG-37738] Fixed font merging problem which caused e.g. missing + glyphs for Arabic numerals. + - [QTBUG-36025] Fixed a memory leak in the clipboard + + - Fonts: + * [QTBUG-36789] Fixed support for Arabic text. + +Linux +----- + + - Systems with systemd may now pass -journald to configure to send + logging output to journald. Logging will still be sent to stderr for + interactive applications (run from a tty) or with QT_NO_JOURNALD_LOG + set to a non-empty value. + +OS X +---- + + - [QTBUG-18980][QTBUG-38246] Use CoreText text shaping engine for + support of complex scripts. If required, the shaping engine used in + previous versions can be preferred by configuring Qt with + -no-harfbuzz. Alternatively, the QT_HARFBUZZ environment variable + could be set to "old". + +Windows +------- + + - Introduced experimental direct2d platform plugin for Windows. This + plugin shares most code with the current windows plugin, but + substitutes a direct2d-based paint engine for window backing stores + and pixmaps. + + - QtWidgets / QFileDialog: + * Handled the case of having trailing spaces in a filename correctly so + if the filename ends up being empty that the parent path is used + instead. + + - Windows Embedded: + * Fixed building issue when configuring Qt with -qtlibinfix + +X11 / XCB +--------- + + - Qt now supports XInput2 smooth scrolling events + +**************************************************************************** +* Tools * +**************************************************************************** + +moc +--- + + - [QTBUG-33668] Fixed passing -D of a macro defined to something more + complex than a single identifier. + + - QTBUG-36128: + * [QTBUG-36128] Fixed sign conversion warning in generated file. + +qdbus +----- + + - [QTBUG-36524] Fixed a bug that caused the qdbus tool to crash when + trying to display remote interfaces that had complex types without a + matching base Qt type. +