blob: 51190d08d5e9dd4fbf28b49fc8b8d09d319bcb73 [file] [log] [blame]
/****************************************************************************
**
** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
** $QT_END_LICENSE$
**
****************************************************************************/
/*!
\page whatsnew515.html
\title What's New in Qt 5.15
\brief Lists the new features in Qt 5.15.
\section1 New Features in Qt 5.15
\section2 Qt 3D Module
\list
\li Improved profiling and troubleshooting support.
\li QSortPolicy: introduced a uniform mode to control whether uniform
minification needs to be performed or not.
\li QMouseDevice: introduced a \l {Qt3DInput::QMouseDevice::}
{updateAxesContinuously} property.
\li Isolated the OpenGL renderer as a plugin.
\endlist
\section2 Qt Core Module
\list
\li Introduced QFile::moveToTrash() to provide a cross-platform API for
moving files to the trash/recycling bin on Windows, \macos, and Linux
desktops. This implements the \l {https://specifications.freedesktop.org/trash-spec/trashspec-1.0.html}
{freedesktop.org specification}.
\li Introduced QFileInfo::isJunction() to detect whether a file system
entry is a Windows NTFS junction.
\li QRunnable instances can now be created from \c std::function without
having to subclass QRunnable.
\li QThreadPool::start() and \l {QThreadPool::}{tryStart}() can now take
\c std::function and thereby also anonymous lambda functions as
arguments.
\li Added static template QDebug::toString() function, which streams the
given object into a QDebug instance that operates on a string, and
then returns that string. This is useful for cases where you need the
textual representation of an object for debugging, but cannot use
\c {operator<<}, such as when passing a failure message to QVERIFY2().
\endlist
\section2 Qt GUI Module
\list
\li QColorSpace setters can now operate on invalid color spaces, making it
possible to set \l {QColorSpace::}{primaries} and
\l {QColorSpace::transferFunction()}{transfer function} independently.
\li Implemented multi-threading support for many QImage scaling and
conversion methods.
\endlist
\section2 Qt Multimedia Module
\list
\li Deprecated all plugin APIs.
\li Deprecated QMediaService and QMediaControl.
\li Introduced reverse playback for GStreamer.
\li Introduced rendering to multiple surfaces.
\li Introduced QVideoWidget::videoSurface(),
QGraphicsVideoItem::videoSurface(), and
QDeclarativeVideoOutput::videoSurface().
\li \l [QML] MediaPlayer QML type: Introduced a \l [QML] {MediaPlayer::}
{videoOutput} property.
\li Introduced QVideoFrame::image().
\li GStreamer camerabin: React to changes in \c notify::zoom and
\c notify::max-zoom properties.
\endlist
\section2 Qt Network Module
\list
\li OpenSSL backend: Added support for a new session ticket mechanism
introduced by the TLS 1.3 protocol.
\li Implemented timeouts for downloads and uploads with QNetworkRequest
and QNetworkAccessManager.
\li Increased the minimum supported version of OpenSSL to 1.1.
\endlist
\section2 Qt QML Module
\list
\li Introduced inline components; multiple QML components can be declared
in the same file.
\li Introduced required properties.
\li Added a declarative way of registering types to QML.
\li \e qmllint now has a better understanding of the code and warns about
deprecated QML features.
\li Added the \e qmlformat tool to automatically format any QML file
according to the \l {QML Coding Conventions}.
\li Added support for the \l {https://github.com/tc39/proposal-nullish-coalescing}
{Nullish Coalescing Operator}.
\li Added a \c colorspace property on image nodes, making it possible to
read color spaces and transform images into a specific color space.
\endlist
\section2 Qt Quick Module
\list
\li Added a \l [QML] PathText type which can be used together with Qt
Quick Shapes to render text as geometry, without relying on distance
fields or pre-rendered textures. This is useful for rendering large
font sizes which would otherwise consume a lot of texture memory.
\li Added a \l [QML] {Image::sourceClipRect}{Image.sourceClipRect}
property to request the image plugin to render a portion of an image
source.
\li Added a \c cursorShape property to pointer handlers. Most pointer
handlers (for example DragHandler) will change the cursor when in
active state. HoverHandler will change the cursor when the mouse is
hovering over the Item that contains the handler.
\li Added support for Metal on iOS for the opt-in preview of the
\e {Graphics API Independent Rendering Architecture}.
\endlist
\section2 Qt Quick Controls Module
\list
\li Added HorizontalHeaderView and VerticalHeaderView to display header data
in a TableView, with support for flicking synchronization and multiple
styles: \e default, \e fusion, \e imagine, \e material, and \e universal.
\li Added a \l [QML] {ComboBox::}{selectTextByMouse} property to ComboBox.
\endlist
\section2 Qt WebEngine Module
\list
\li Updated to Chromium 80.
\li Switched to use a sandboxed network service.
\li Introduced a new API for reading the subprocess ID of a page or a view.
\li Introduced a \l [QML] {WebEngineHistory::clear()}{WebEngineHistory.clear}()
method.
\endlist
\section2 Tools
\list
\li QDoc can now generate DocBook.
\li QDoc now generates output for C++ class and function template parameters.
\li QDoc now generates correct output for scoped enums (enum classes).
\endlist
\section1 Platform Changes
\b Android
\list
\li Introduced the use of Android's native file dialog by default for open
(file, multiple files, directory) and save operations.
\endlist
\b Wayland
\list
\li Introduced experimental support for Vulkan on the client side.
\endlist
\b {Embedded Linux (eglfs)}
\list
\li \c eglfs_viv backend: Added support for Vulkan, via VK_KHR_display, on
NXP i.MX8 based devices.
\endlist
\section1 New Modules
\b {Qt Quick 3D}
\list
\li Introduced post-processing effects.
\li Introduced a custom geometry API (C++ meshes).
\li Introduced Quaternions API for Node rotations.
\li Switched to use a right-handed coordinate system (previously right or
left).
\li Improved support for Qt Quick 2D in 3D scenes.
\li Added support for spot lights.
\li Performance improvements.
\endlist
\b {Qt Lottie}
\list
\li Introduced a \e Bodymovin JSON renderer for Adobe After Effects
animations.
\li Performance and stability improvements.
\endlist
\b {Qt PDF}
\list
\li Based on a version of \e Pdfium that is shared with Qt WebEngine.
\li Available on the same platforms as Qt WebEngine, and also on iOS.
\endlist
\section1 Deprecated Modules
To help preparing for the transition to Qt 6, numerous classes and member
functions that will be removed from Qt 6.0 have been marked as deprecated
in the Qt 5.15 release. Unless you define QT_NO_DEPRECATED_WARNINGS in your
project, you will get compiler warnings for code that uses any deprecated
APIs. Those warnings will explain which API to use instead. To disable any
deprecated APIs completely, use the QT_DISABLE_DEPRECATED_BEFORE macro.
The following modules are part of Qt 5.15 release, but are deprecated and
considered for removal in subsequent releases of Qt:
\list
\li Qt Script
\li Qt Quick Controls 1
\li Qt XML Patterns
\endlist
\section1 List of API Changes
The pages below contain a list of API changes in Qt 5.15:
\list
\li \l{New Classes and Functions in Qt 5.15}
\li \l{Obsolete Classes}
\endlist
\section1 Additions to Other Qt 5 Releases
\list
\li \l{What's New in Qt 5.14}
\li \l{What's New in Qt 5.13}
\li \l{What's New in Qt 5.12}
\li \l{What's New in Qt 5.11}
\li \l{What's New in Qt 5.10}
\li \l{What's New in Qt 5.9}
\li \l{What's New in Qt 5.8}
\li \l{What's New in Qt 5.7}
\li \l{What's New in Qt 5.6}
\li \l{What's New in Qt 5.5}
\li \l{What's New in Qt 5.4}
\li \l{What's New in Qt 5.3}
\li \l{What's New in Qt 5.2}
\li \l{What's New in Qt 5.1}
\li \l{What's New in Qt 5.0}
\endlist
*/
/*!
\page newclasses515.html
\title New Classes and Functions in Qt 5.15
\brief A list of new APIs in Qt 5.15.
This page contains a comprehensive list of all new classes and functions
introduced in Qt 5.15. Links to new APIs in previous Qt 5 releases are found
at the bottom of this page.
\sincelist 5.15
\section1 Additions to Other Qt 5 Releases
\list
\li \l{What's New in Qt 5.14}
\li \l{What's New in Qt 5.13}
\li \l{What's New in Qt 5.12}
\li \l{What's New in Qt 5.11}
\li \l{What's New in Qt 5.10}
\li \l{What's New in Qt 5.9}
\li \l{What's New in Qt 5.8}
\li \l{What's New in Qt 5.7}
\li \l{What's New in Qt 5.6}
\li \l{What's New in Qt 5.5}
\li \l{What's New in Qt 5.4}
\li \l{What's New in Qt 5.3}
\li \l{What's New in Qt 5.2}
\li \l{What's New in Qt 5.1}
\li \l{What's New in Qt 5.0}
\endlist
*/