Revision control

++ Qt 5.3 introduces many new features and improvements as well as bugfixes
++ over the 5.2.x series. For more details, refer to the online documentation
++ included in this distribution. The documentation is also available online:
++
++
++ The Qt version 5.3 series is binary compatible with the 5.2.x series.
++ Applications compiled for 5.2 will continue to run with 5.3.
++
++ Some of the changes listed in this file include issue tracking numbers
++ 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:
++
++ - 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 *
++ ****************************************************************************
++
++ - The support for deployment on OS X 10.6 (Snow Leopard) is deprecated
++ in Qt 5.3, and will be removed in Qt 5.4. The platform is currently
++ not tested, and most likely has issues that are not fully documented.
++
++ ****************************************************************************
++ * General *
++ ****************************************************************************
++
++ - 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.
++ - The setSharable() and isSharable() functions in Qt containers has
++ been deprecated and will be removed in Qt 6. New applications should
++ not use this feature, while old applications that may be using this
++ (undocumented) feature should port away from it.
++
++ - 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
++ -----
++
++ - 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.
++ - The function QOpenGLShaderProgram::create() has been added. It is can
++ be used to force immediate allocation of the program's id.
++ - QFont::setRawName() and QFont::rawName() were deprecated.
++
++ - 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
++ --------------
++
++ - 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
++ -----
++
++ - QSqlError:
++ * Now handles alphanumeric error codes. Used by QPSQL. Old numeric
++ code is deprecated.
++
++ - QSqlQuery:
++ * isNull(field) now correctly returns true for "no such field".
++ * isNull(fieldname) is a new overload.
++ * [QTBUG-12186] Fixed order of values with positional binding.
++
++ - QSqlTableModel:
++ * [QTBUG-38509] Fix failure to refresh in selectRow()
++
++ - QIBASE:
++ * [QTBUG-37508] Fix QByteArray memory corruption in QIBaseDriver::open().
++ * Support for prepared queries in numRowsAffected().
++
++ - QODBC:
++ * [QTBUG-37831] Fix access of tmpStorage in QODBCResult::exec().
++
++ - QSQLITE:
++ * Creating temporary databases is now possible
++ * Empty database name now opens in-memory database.
++
++ QtTest
++ ------
++
++ - Added test duration to xml output. When running tests with xml output a
++ new tag of the form
++ <duration msecs="123"/> 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-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.
++
++ iOS
++ ---
++
++ - Support for input methods added.
++ - Support for word completion and spell checking added.
++ - Support for QClipboard added.
++ - "Hide keyboard" gesture added.
++ - Keyboard input is now sendt as input method events instead of key events.
++
++ 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.
++
++ configure & build system
++ ------------------------
++
++ - Configure's -separate-debug-info option is now checked more strictly.
++ - Added configure [-no]-imf options for QNX.
++ - Added unsupported linux-libc++-clang and freebsd-clang mkspecs.
++ - Numerous configuration-specific build fixes.
++
++ qmake
++ -----
++
++ - QTPLUGIN will now be automatically populated with the plugins that are
++ typically needed by the used Qt modules.
++ - qmake will not create dependencies on system headers any more, provided it
++ detects the system include paths.
++ - Added DISTCLEAN_DEPS variable analogous to CLEAN_DEPS.
++ - Added function $$getenv() which is equivalent to using the $$() expansion,
++ but permits various qmake meta characters in the name.
++ - [MacOS] QMAKE_BUNDLEID_PREFIX is now recognized by the Makefile generator.
++ - [QTBUG-29939][MSVC2012+] Added Windows XP target support.
++ - [QTBUG-35570][VS2012+] Fixed bad ProgramDataBaseFileName.
++ - [QTBUG-38066][VS2010+] Fixed version suffix being appended to applications.
++ - [QTBUG-31185][VS] The PlatformToolset environment variable is now honored.
++ - [QTBUG-34781][Android] Fixed regression in "make install" on library projects
++ so they can be used inside subdirs projects again.
++ - [QTBUG-37113] Fixed creation of excessively long relative paths, which
++ would lead to errors with MSVC. Note that this does not fix all such cases.
++
++ qlalr
++ -----
++
++ - (Re-)added to Qt base. Added corresponding qmake feature file.
++ Caveat: the generated files are not scanned for dependencies.