summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntti Kokko <antti.kokko@qt.io>2017-11-08 13:06:46 +0200
committerLars Knoll <lars.knoll@qt.io>2017-11-22 11:18:51 +0000
commit42005951defded6cd1a9a60582b29f58c78fea9e (patch)
treedd7176b6fea64cc54db0765760b9181dcfcf2c7e
parent0817e2a81ec1b0fc1e5cd7ed9473177c75dc6f1e (diff)
downloadqtbase-42005951defded6cd1a9a60582b29f58c78fea9e.tar.gz
Add changes file for Qt 5.10.0
Change-Id: I66bfe7a8897c7b2b4986a12dec37229e0ad82755 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
-rw-r--r--dist/changes-5.10.0564
1 files changed, 564 insertions, 0 deletions
diff --git a/dist/changes-5.10.0 b/dist/changes-5.10.0
new file mode 100644
index 0000000000..b76f51543b
--- /dev/null
+++ b/dist/changes-5.10.0
@@ -0,0 +1,564 @@
+Qt 5.10 introduces many new features and improvements as well as bugfixes
+over the 5.9.x series. For more details, refer to the online documentation
+included in this distribution. The documentation is also available online:
+
+http://doc.qt.io/qt-5/index.html
+
+The Qt version 5.10 series is binary compatible with the 5.9.x series.
+Applications compiled for 5.9 will continue to run with 5.10.
+
+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 Behavior Changes *
+****************************************************************************
+
+ - [QTBUG-60857] The names of the roles returned by
+ QSqlQueryModel::roleNames now only include a name for the
+ Qt::DisplayRole. Previously all the roles names of QSqlQueryModel were
+ returned.
+ - QFileInfo on empty strings now behaves like the default-constructed
+ QFileInfo. Notably, path() will now be the empty string too, instead of
+ ".", which means absoluteFilePath() is no longer the current working
+ directory.
+
+ - QTemporaryFile:
+ * rename() no longer attempts to do block copying, as that usually
+ indicates a mistake in the user's code. Instead, either create the
+ temporary file in the same directory as the new name to be, or use
+ QSaveFile.
+ * On Linux, QTemporaryFile will attempt to create unnamed temporary
+ files. If that succeeds, open() will return true but exists() will be
+ false. If you call fileName() or any function that calls it,
+ QTemporaryFile will give the file a name, so most applications will
+ not see a difference.
+
+ - Windows:
+ * [QTBUG-62662] On Windows, a drag & drop operation of local file URIs,
+ like QListView items backed by a QFileSystemModel, will result in the
+ attachment or opening of the files by the target application, instead
+ of the creation of hyperlinks.
+
+****************************************************************************
+* General Notes *
+****************************************************************************
+
+Deprecation Notice
+------------------
+
+ - Starting with Qt 5.10, IPv6 support is mandatory for all platforms.
+ Systems without proper IPv6 support, such as the getaddrinfo() function
+ or the proper socket address structures, will not be able to build
+ QtNetwork anymore.
+
+ - QSignalMapper is now marked as deprecated.
+
+Potentially Source-Incompatible Changes
+---------------------------------------
+
+ - QByteArray:
+ * qbytearray.h no longer includes qstring.h. In particular, this means
+ that in order to use QStringBuilder with QByteArray, you need to
+ include both qbytearray.h and qstring.h now (or <QByteArray> and
+ <QString>, resp.).
+
+ - QStaticText:
+ * The QStaticText(const QString &) constructor is now explicit.
+
+Third-Party Code
+----------------
+
+ - PCRE2 has been updated to version 10.30.
+ - Replaced bundled libjpeg by libjpeg-turbo 1.5.2
+ - Improve documentation about Freetype 2 licenses.
+ - Sqlite was updated to version 3.20.1
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+QtCore
+------
+
+ - Added qHash(QStringView).
+ - [QTBUG-37253] Added QMetaObject::invokeMethod() overloads for function
+ pointers.
+ - [QTBUG-41006] Added qEnvironmentVariable, which returns the value of an
+ environment variable in a QString, while qgetenv continues to be used to
+ return it in a QByteArray. For Unix, since most environment variables
+ seem to contain path names, qEnvironmentVariable will do the same as
+ QFile::decodeName, which means NFC/NFD conversion on Apple OSes.
+ - [QTBUG-62915] qAddPostRoutine() and qRemovePostRoutine() are now
+ thread-safe.
+
+ - Containers:
+ * Added an STL-like iterator to go through QHash/QMap returning both the
+ key and the value of the element pointed to. That lets QHash/QMap
+ interoperate better with stl's algorithms like std::set_union.
+
+ - JSON:
+ * QJsonArray, QJsonDocument, QJsonObject and QJsonValue now have move
+ operations and a swap() member function.
+
+ - Logging:
+ * If you set QT_FATAL_WARNINGS to a number n > 1, Qt will stop the
+ application on that n-th warning, instead of on the first. For the
+ sake of compatibility with previous versions, if the variable is set
+ to any non-empty and non-numeric value, Qt will understand it as "stop
+ on first warning".
+
+ - QByteArray:
+ * Added shrink_to_fit() for compatibility with the Standard Library. This
+ function does the same as squeeze().
+
+ - QChar:
+ * Added constructors from char16_t and, on Windows, wchar_t.
+
+ - QCoreApplication:
+ * [QTBUG-57095] Calling QCoreApplication::translate() is now
+ thread-safe.
+
+ - QCryptographicHash:
+ * [QTBUG-59770] In order to preserve compatibility with earlier versions
+ of Qt, QCryptographicHash is now able to calculate Keccak message
+ digests. Please see the release notes for Qt 5.9.2 for more details.
+
+ - QDate/QTime/QDateTime:
+ * Added toString() overloads taking the format as a QStringView.
+ * [QTBUG-22833] Added support for parsing of time-zones.
+
+ - QDebug:
+ * Added streaming of QStringViews.
+
+ - QFile:
+ * [QTBUG-984] Added fileTime() and setFileTime().
+
+ - QFileInfo:
+ * [QTBUG-984] Added fileTime().
+ * Deprecated created() because it could return one of three different
+ file times depending on the OS and filesystem type, without the
+ ability to determine which one is which. It is replaced by
+ metadataChangeTime() and birthTime().
+ * Added QFileInfo::metadataChangeTime(), which returns the time the
+ file's metadata was last changed, if it is known, and falling back to
+ the same value as lastModified() otherwise. On Unix systems, this
+ corresponds to the file's ctime.
+ * Added QFileInfo::birthTime(), which returns the file's birth time if
+ it is known, an invalid QDateTime otherwise. This function is
+ supported on Windows and on some Unix systems.
+
+ - QIODevice:
+ * Added skip() method to improve performance in read operations.
+
+ - QLatin1String:
+ * Added isEmpty(), isNull().
+ * Added iterators, {c,}{r,}{begin,end}().
+ * Added chopped(), chop(), truncate().
+ * Added startsWith(), endsWith().
+ * Added a constructor taking two pointers, complementing the constructor
+ that takes a pointer and a length.
+ * Added trimmed() function.
+
+ - QLocale:
+ * Added toString(QDate/QTime/QDateTime) overloads taking the format
+ string as a QStringView.
+ * Added QLocale::formattedDataSize() for formatting quantities of bytes
+ as kB, MB, GB etc.
+
+ - QLockFile:
+ * Fixed a bug that would cause QLockFile to mis-identify valid lock
+ files as stale if the application name was set with
+ QCoreApplication::setApplicationName().
+
+ - QMimeType:
+ * Add Q_GADGET, so that QML applications can make use of QMimeType's
+ properties and methods.
+
+ - QObject:
+ * [QTBUG-60339] Added connect() support for move-only function objects.
+
+ - QProcess:
+ * [QTBUG-2058][QTBUG-2284][QTBUG-37656][QTBUG-52405][QTBUG-57687] Added
+ non-static QProcess::startDetached to support more features for
+ detached processes.
+ * [QTBUG-2284] Added the ability to set a custom process environment for
+ detached processes.
+ * [QTBUG-52405] Added the ability to specify native arguments for
+ detached processes on Windows.
+ * [QTBUG-2058][QTBUG-37656] Added support for standard channel
+ redirection using setStandard{Input|Output|Error}File to
+ QProcess::startDetached.
+
+ - QSaveFile:
+ * [QTBUG-47379] Saving to Alternate Data Streams on NTFS on Windows is
+ now possible, but requires setDirectWriteFallback(true).
+
+ - QSemaphore:
+ * Added a new RAII class, QSemaphoreReleaser, to reliably perform
+ release() calls.
+
+ - QSettings:
+ * [QTBUG-47379] Added setAtomicSyncRequired(), which allows one to use
+ QSettings with config files in unwriteable directories or in Alternate
+ Data Streams on NTFS on Windows. This used to work before Qt 5.4, but
+ remains a non-default behavior due to the potential of data
+ corruption.
+
+ - QSortFilterProxyModel:
+ * QSortFilterProxyModel now does not emit an unnecessary layoutChanged()
+ following a model reset.
+
+ - QStandardPaths:
+ * On Windows, QStandardPaths now also looks into
+ "<APPDIR>/data/<APPNAME>" for non-generic paths.
+
+ - QString:
+ * Added arg(QStringView), arg(QLatin1String) overloads.
+ * Added shrink_to_fit(), for compatibility with the Standard
+ Library. This function does the same as squeeze().
+
+ - QString/QStringRef:
+ * Added startsWith(), endsWith() overloads taking QStringView.
+
+ - QString/QStringRef/QByteArray:
+ * Added chopped(n), a const version of chop(n).
+
+ - QString/QStringRef/QByteArray/QLatin1String:
+ * Added front() and back() for STL compatibility.
+
+ - QStringBuilder:
+ * Added support for (non-const) char*.
+
+ - QStringList:
+ * Added contains(QLatin1String) overload.
+
+ - QStringRef:
+ * trimmed() now returns an empty string-ref for an empty input. Before,
+ it would return a null one.
+
+ - QStringView:
+ * New class, superseding const QString and QStringRef as function
+ parameters, accepting a wide variety of UTF-16 string data sources,
+ e.g. u"string", std::u16string{,_view}, and, on Windows, L"string",
+ std::wstring{,_view} without converting to QString first.
+
+ - QTemporaryDir:
+ * The class now supports the "XXXXXX" replacement token anywhere in the
+ template, not just at the end. This behavior is similar to what
+ QTemporaryFile supports.
+
+ - QTextCodec:
+ * Added fromUnicode() and canEncode() overloads taking QStringView.
+
+ - QTextEncoder:
+ * Added fromUnicode() overload taking QStringView.
+
+ - QThread:
+ * Added the QThread::create() function.
+ * An exception escaping from QThread::run() will now result in immediate
+ and abnormal program termination. The same applies if an exception
+ leaves a slot connected directly to the QThread::started() or
+ QThread::finished() signals.
+
+ - QUuid:
+ * Added fromString(QStringView/QLatin1String).
+
+ - QVariant:
+ * QVariants containing pointers will now return true on isNull() if the
+ contained pointer is null.
+
+ - QVarLengthArray:
+ * Added shrink_to_fit(), for compatibility with the Standard Library.
+
+ - QVector:
+ * Added shrink_to_fit(), for compatibility with the Standard Library.
+
+ - QVersionNumber:
+ * Added QStringView and QLatin1String overloads of fromString().
+
+ - QtGlobal:
+ * Q_ASSERT() and Q_ASSERT_X() now always expand to expressions of type
+ void that are usable in constexpr contexts. This makes them usable in
+ both C++11 and C++14 constexpr functions and in comma expressions.
+
+QtGui
+-----
+
+ - [QTBUG-55981] Added support for rendering to QWindow via the Vulkan
+ graphics API.
+ - [QTBUG-55981] Added QVulkanWindow, a convenience subclass of QWindow.
+ - Added support for the OpenGL ES 3.2 API in QOpenGLExtraFunctions
+ - [QTBUG-50987] Added support for requesting OpenGL windows with
+ sRGB-capable default framebuffers. While this is implicit on some
+ platforms, QSurfaceFormat now has the necessary flags to request such
+ windows in a cross-platform manner.
+ - High DPI variants of 9-patch images can now be loaded using the
+ following syntax: "foo@2x.9.png"
+ - It's now possible to retrieve the screen at a given point via
+ QGuiApplication::screenAt().
+
+ - Important Behvior Changes:
+ * [QTBUG-56848][QTCREATORBUG-17683] Changed CSS line-height property
+ with multiplier to follow CSS spec
+
+ - Tablet support:
+ * [QTBUG-44964] If the application attribute AA_CompressTabletEvents is
+ set in addition to AA_CompressHighFrequencyEvents, even the
+ QTabletEvents will be compressed (only on the X11 platform so far).
+ AA_CompressHighFrequencyEvents does not enable compression of tablet
+ events by itself, because paint applications typically need to process
+ all possible tablet events in order to draw the smoothest curves.
+
+ - QPA:
+ * [QTBUG-57608] QWindowSystemInterfacePrivate::handleGeometryChange no
+ longer takes the old geometry as an argument.
+
+ - QImage:
+ * QImages can now use more than 2GByte of pixel data.
+
+ - QCursor:
+ * Added equality operators.
+
+ - QImageWriter:
+ * Add QImageWriter::InvalidImageError to communicate invalid attempts to
+ write a bad QImage (for instance, a null QImage).
+
+ - QMovie:
+ * Added lastError and lastErrorString accessors, as a convenience over
+ connecting to the error() signal.
+
+ - QWindow:
+ * setMask() no longer requires the window to be created to have an
+ effect; it can be set at any time.
+
+ - Text:
+ * [QTBUG-56728] Added QFont::PreferNoShaping style strategy to support
+ improvements to performance at the expense of some cosmetic font
+ features.
+
+ - Windows:
+ * [QTBUG-55967] Native menus have been implemented.
+ * A native system tray icon is now available for SystemTrayIcon.
+
+QtNetwork
+---------
+
+ - [QTBUG-56102] QSslSocket can now use a temporary keychain on macOS.
+ - Fixed a proxy-authentication issue, after a wrong password has been used,
+ when supplying the right password.
+
+ - HTTP/2:
+ * [QTBUG-61397] In case of clear text HTTP/2 we now initiate a required
+ protocol upgrade procedure instead of 'H2Direct' connection.
+
+ - QHostInfo:
+ * Added swap() and move operator.
+
+ - QLocalServer:
+ * [QTBUG-55043] Added a function to retrieve the socket descriptor.
+
+ - QNetworkAccessManager:
+ * [QTBUG-63075] Added support for HTTP status 308.
+
+ - QNetworkInterface:
+ * [QTBUG-51922] Changed allAddresses() to not include addresses found in
+ inactive interfaces, matching the user expectations of this function.
+ If those addresses are needed for some purpose, the application can
+ call allInterfaces() and obtain the addresses in each interface.
+
+ - QNetworkProxy:
+ * [QTBUG-45495] Setting of network proxies is now supported on UWP.
+ * [QTBUG-45495] UWP now supports proxies using SOCKS5.
+ * The functions related to QNetworkConfiguration are deprecated. They've
+ performed no action since Qt 5.0, so code using them can safely stop
+ doing so.
+
+ - QSslSocket:
+ * [QTBUG-52905] Added OpenSSL 1.1 backend.
+
+QtSql
+-----
+
+ - QSqlError:
+ * Added swap().
+
+ - SQLite:
+ * Named placeholder can now be used. If compiling Qt by hand and using
+ system libraries, this feature requires at least SQLite 3.3.11.
+ * [QTBUG-18084] Added QSQLITE_ENABLE_REGEXP connect option for the SQLite
+ backend. If set, a Qt based regexp() implementation is provided
+ allowing use of REGEXP in SQL statements.
+
+QtTest
+------
+
+ - [QTBUG-53381] Added keySequence() function.
+
+ - QCOMPARE:
+ * Can now be used for mixed-type comparisons.
+ * Now outputs contents of QPair and std::pair on failure.
+ * Now supports printing QStringViews in case of test failures.
+
+QtWidgets
+---------
+
+ - The windowsxp style is no longer available as a separate style, because
+ it did not (and cannot) actually provide an XP-style appearance on
+ currently supported Qt platforms.
+ - Added AA_DisableWindowContextHelpButton attribute. Setting this
+ attribute globally prevents the automatic "What's this" button on
+ dialogs on Windows (WindowsContextHelpButtonHint).
+ - [QTBUG-56860] Fixed widget losing focus after showing menu second time.
+ - [QTBUG-47185][QTBUG-61280] QOpenGLWidget is now able to render and
+ return its content via grabFramebuffer(), QWidget::grab() or
+ QWidget::render() even when the widget has not been made visible.
+ - [QTBUG-10907] When tabbing to a widget with focus proxy, focus will now
+ be given to the proxy rather than just being ignored.
+
+ - ItemViews:
+ * Made it easier to drop above and below items.
+
+ - QAbstractItemView/QTreeWidget/QTableWidget/QListWidget:
+ * [QTBUG-61139] Added isPersistentEditorOpen().
+
+ - QDockWidget:
+ * When QMainWindow::GrouppedDragging and QMainWindow::AllowNestedDocks
+ are both enabled, floating dock widgets now have the ability to be
+ dropped together side by side.
+ * [QTBUG-63526] Fixed an issue in QDockWidgets where the widget would
+ not resize despite showing a resize cursor.
+
+ - QFusionStyle:
+ * The default palette used by the platform-agnostic Fusion style has
+ been desaturated. Previously the window background color, and other
+ colors derived from it, were brown shades. Now these colors are
+ neutral gray that fit better on any desktop.
+
+ - QInputDialog:
+ * [QTBUG-17547] Added setDoubleStep to enable changing of the step
+ amount for getDouble().
+
+ - QLineEdit:
+ * Added selectionEnd(), selectionLength(), complementing
+ selectionStart().
+
+ - QOpenGLWidget:
+ * [QTBUG-50987] Added support for specifying custom internal texture
+ formats in QOpenGLWidget in order to make it possible to have the
+ widget backed by an sRGB-capable framebuffer.
+
+ - QSplashScreen:
+ * All constructors now implicitly set Qt::FramelessWindowHint, not just
+ the (pixmap, flags) one.
+
+ - QWidget:
+ * [QTBUG-10907] QWidget::setTabOrder() will now preserve the local tab
+ order inside a widget if it has a focus proxy set to an inner child.
+
+ - Styles:
+ * Added SH_Widget_Animation_Duration style hint which supersedes
+ SH_Widget_Animate, which is now deprecated.
+
+ - Text:
+ * Introduced tabStopDistance property in QTextOption, QTextEdit and
+ QPlainTextEdit as replacement for the inconsistently named tabStop and
+ tabStopWidth properties. QTextOption::tabStop, QTextEdit::tabStopWidth
+ and QPlainTextEdit::tabStopWidth are now deprecated.
+
+****************************************************************************
+* Platform-specific Changes *
+****************************************************************************
+
+ - [QTBUG-60268] Input context is now supported with the offscreen platform.
+
+Android
+-------
+
+ - QtLoader: Enabled loading shared libraries from /system/lib or a custom
+ path specified with the android.app.system_libs_prefix metadata variable in
+ AndroidManifest.xml. This supports deploying Qt apps as Android system
+ apps.
+ - [QTBUG-58060] Android dialogs now have more appropriate button layouts,
+ with affirmative actions on the right.
+ - [QTBUG-59175] QWidget::createWindowContainer() is now supported on
+ Android for embedding OpenGL-based QWindows into widget UIs.
+
+iOS
+---
+
+ - [QTBUG-59403] Support added for using the input panel as a trackpad
+ using two-finger swipe.
+ - The minimum deployment target for applications is now iOS 10.0.
+
+Linux
+-----
+
+ - XInput device property changes are now detected at runtime (no
+ application restart required).
+ - [QTBUG-60513][QTBUG-29278][QTBUG-43768][QTBUG-18380] The _NET_WORKAREA
+ atom is used for calculating QScreen::availableGeometry() only on systems
+ with one monitor. In all other cases QScreen::availableGeometry() is
+ equal to QScreen::geometry(). To restore the legacy behavior with
+ untrustworthy values in QScreen::availableGeometry() set
+ QT_RELY_ON_NET_WORKAREA_ATOM=1 in the environment.
+ - The QT_XCB_NO_XI2_MOUSE environment variable is deprecated and will be
+ removed in Qt 6. If your application relies on behavior set by
+ QT_XCB_NO_XI2_MOUSE, it should be updated accordingly.
+
+ - Pointer event delivery on X11 is now done starting from XInput version
+ 2.0 (when available) instead of 2.2. XInput support can be disabled by
+ setting QT_XCB_NO_XI2=1 in the environment; note that doing so will also
+ disable tablet and touch support.
+
+ - Qt uses the statx(2) system call for obtaining file information on
+ kernels 4.12 and later. Some older container systems install system call
+ protection rules that do not include this system call. If you experience
+ problems running Qt applications inside containers (such as the report of
+ a file not existing when it does), ensure the statx(2) is allowed in the
+ container configuration.
+
+ - Linux/XCB:
+ * Added screen product information from EDID.
+
+ - eglfs/KMS:
+ * Screen modes, including current and preferred ones, are now listed.
+ * Added screen product information from EDID.
+
+Windows
+-------
+
+ - Accessibility:
+ * MinGW builds now support IAccessible2.
+
+ - Fonts:
+ * [QTBUG-62176] Some key fonts, such as Calibri, were being detected as
+ bitmap fonts and not rendered correctly in Qt Quick. This has now been
+ fixed.
+
+****************************************************************************
+* Tools *
+****************************************************************************
+
+moc
+---
+
+ - moc now supports NOTIFY signals of parent classes in Q_PROPERTY
+
+qmake
+-----
+
+ - If you use CONFIG+=qmltestcase with no SOURCES, 'make check' will now
+ run qmltestrunner for you.
+
+uic
+---
+
+ - Old images embedded in ui files, imported from Qt 3, are now ignored.
+ uic will now behave consistently with Qt Designer - both will ignore
+ them.