blob: f053185ec68c404d7e9458c67fb7900e43301e61 [file] [log] [blame]
/****************************************************************************
**
** Copyright (C) 2019 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 whatsnew514.html
\title What's New in Qt 5.14
\brief Lists the new features in Qt 5.14.
\section1 New Features in Qt 5.14
\section2 Qt 3D Module
\list
\li Overhauled the threading architecture. This includes the
removal of the aspect thread.
\li Overhauled the frontend/backend node sync.
\li Enabled QTransform to have access to the world matrix.
\li Introduced Scene3DView.
\li Scene3D is now in sync with QtQuick, and can render as an
underlay without an FBO.
\endlist
\section2 Qt Bluetooth Module
\list
\li Introduced a new, optional Win32 backend with support for Windows 7
and 8. This backend is not built by default, nor is it part of the
pre-built packages.
\li QLowEnergyController: Introduced
\l {QLowEnergyController::}{AuthorizationError}.
\li Added the ability to include multiple manufacturer data entries per
manufacturer ID.
\endlist
\section2 Qt Core Module
\list
\li Added support in QCalendar for calendars other than Gregorian, by
implementation of suitable backends.
\li Added backends to implement the Gregorian, Jalali (Persian), Islamic
Civil, Milankovic, and Julian calendars. We look forward to other
contributions.
\li Added QColorConstants, a namespace providing constexpr QColor
instances that don't cost any runtime overhead.
\endlist
\section2 Qt GUI Module
\list
\li Updated High-DPI support:
\list
\li Introduced non-integer scale factors (for example, a scale factor of
150%) that applications can opt-in to use. Use
QGuiApplication::highDpiScaleFactorRoundingPolicy or
QT_SCALE_FACTOR_ROUNDING_POLICY to set the rounding policy.
\li Added the QT_ENABLE_HIGHDPI_SCALING environment variable, enabling
high-DPI scaling based on display DPI. This replaces
QT_AUTO_SCREEN_SCALE_FACTOR (now deprecated), and corresponds to
the Qt::AA_EnableHighDpiScaling application attribute.
\li Added cross-platform support for the QT_FONT_DPI environment
variable, for the purpose of developing and testing with specific
DPI values.
\endlist
\li Added color-space support for images; reading and writing color-spaces
from JPEG, PNG, WebP and TIFF images, and performing color-space
transformation on images.
\li Improvements to QTextDocument and QTextTable styling:
\list
\li Added per-edge border styling via QTextTableCellFormat.
\li Added border-collapse mode.
\li Added support for (partial) HTML table style import and export.
\endlist
\li Added support for reading and writing Markdown format to QTextDocument,
as an alternative to HTML.
\endlist
\section2 Qt Multimedia Module
\list
\li Added QVideoFrame::Format_YUV422P.
\li Introduced support for the GStreamer OpenGL plugin.
\endlist
\section2 Qt Network Module
\list
\li Introduced the HTTP/2 Configuration API.
\li Introduced network connectivity monitoring.
\li Added support for SPNEGO/Negotiate proxy authentication
to QAuthenticator. This requires KRB5 GSSAPI to work.
\endlist
\section2 Qt QML Module
\list
\li Added qmlRegisterSingletonInstance() function. This allows to expose a
QObject as a singleton to QML, without having to create a factory
function as required by qmlRegisterSingletonType(). It is meant as a
type safe replacement of setContextProperty() in common usages.
\li Added qmlRegisterAnonymousType() as a replacement for
qmlRegisterType(). It allows to specify the URI and major version,
which enables better tooling support.
\li Added an experimental -U option to \c qmllint. When set, access to
unqualified identifiers generates warnings.
\endlist
\section2 Qt Quick Module
\list
\li Added a preview of the graphics API independent scenegraph
renderer as an opt-in feature. This allows running qualifying Qt Quick
applications on top of Vulkan, Metal, or Direct3D 11, instead of OpenGL.
Currently supported platforms:
\list
\li Windows 10 (Direct3D)
\li Linux with X11/xcb (Vulkan)
\li \macos (Metal or Vulkan with MoltenVK)
\li Android 7.0+ (Vulkan)
\endlist
\li Added support for the Markdown format (including CommonMark and GitHub
dialects) to \l [QML] Text and \l [QML] TextEdit as an alternative to
HTML. This includes the GitHub checklist extension, allowing to toggle
checkboxes in a TextEdit.
\li Switched \l [QML] TextEdit to use an \e {I-beam cursor} by default, and
a \e {pointing-hand cursor} when hovering over a checkbox or a link.
Default cursors can be overridden.
\li Added \l [QML] WheelHandler, an event handler for the mouse wheel, and
optionally for emulated mouse wheel events coming from a trackpad.
\li Added BoundaryRule in Qt.labs.animation: a PropertyValueInterceptor that
restricts the range of values a numeric property can have, applies
"resistance" when overshooting a value, and provides the ability to
animate it back to its normal range. It's particularly useful in
combination with WheelHandler, providing physics similar to
\l [QML] Flickable.
\li Added \e currentFrame and \e frameCount properties to \l [QML] Image
and \l [QML] BorderImage, just as \l [QML] AnimatedImage has;
for example, this allows choosing an individual icon from an .ICO file
that contains multiple icons.
\li Added \l [QML] PathPolyline and \l [QML] PathMultiline as additional
ways of drawing and/or filling arbitrary polygons and sets of polygons
with Qt Quick Shapes.
\endlist
\section2 Qt Serial Bus Module
\list
\li Added operators to compare QCanBusDevice::Filter for equality or
inequality.
\li Added the QCanBusDevice::OperationError and QCanBusDevice::TimeoutError
codes to signal operation and timeout errors.
\li Added the QCanBusDevice::busStatus() function to query the bus status
from the CAN bus device.
\li Added the QCanBusDevice::resetController() function to release the CAN
controller from bus off state.
\li SocketCAN: Added the configuration parameter QCanBusDevice::ProtocolKey
to use another protocol inside the protocol family PF_CAN.
\li SocketCAN: If \c libsocketcan is available, the CAN bus bitrate can be
retrieved and set at runtime.
\li PeakCAN: Added support for PCAN-USB devices on \macos by using the
\e MacCAN library.
\li Exposed the underlying QIODevice used for Modbus communication. This
enables, for example, setting the serial port hardware flow control
(RTS/CTS).
\endlist
\section2 Qt Test Module
\list
\li Introduced \c initMain() function to perform any initialization that
must happen before QApplication exists.
\endlist
\section2 Qt WebEngine Module
\list
\li Updated to Chromium 77.
\li Added a new API to control the life-cycle of QWebEnginePage.
\endlist
\section2 Qt Widgets Module
\list
\li Added support for the Markdown format (including CommonMark and GitHub
dialects) to QTextEdit and QTextBrowser as an alternative to HTML.
This includes the GitHub checklist extension, allowing to toggle
checkboxes if the widget is editable. QTextBrowser::setSource() detects
Markdown based on the file extension.
\endlist
\section1 Platform Changes
\b Android
\list
\li Android now requires NDKr20+.
\li Added multi-ABI build in one go. By default, all Android supported ABIs
(arm64-v8a, armeabi-v7a, x86_64, x86) are built. ANDROID_ABIS qmake
variable can be used for selecting specific ABIs.
\li Added support for the new AAB package format, which allows Google Play
deployment of a single application bundle containing binaries for all
supported ABIs.
\endlist
\section1 New Modules
\list
\li \l {Qt Quick Timeline} - Enables keyframe-based animations and
parameterization.
\endlist
\section1 Technology Preview Modules
\list
\li \l {Qt Quick 3D} - A high-level API for creating 3D content for user
interfaces from Qt Quick.
\endlist
\section1 Qt for Automation Modules
\b {Qt KNX}
\list
\li Extended support for KNXnet/IP Core V2 (discovery, tunneling, routing,
and security).
\endlist
\b {Qt MQTT}
\list
\li Added support for using QSslConfiguration when creating encrypted
connections.
\li Added \e autoKeepAlive property to enable manual connectivity checks.
\endlist
\b {Qt OPC UA}
\list
\li Added GDS client support as a technology preview.
\li Updated the 3rd-party open62541 implementation to version 1.0.
\endlist
\b {Qt CoAP}
\list
\li This module is now out of technology preview status.
\endlist
\section1 Deprecated Modules
The following modules are part of Qt 5.14 release, but are deprecated and
considered for removal in subsequent releases of Qt:
\list
\li Qt Script
\li Qt Quick Controls 1
\li Qt XmlPatterns
\endlist
\section1 List of API Changes
The pages below contain a list of API changes in Qt 5.14:
\list
\li \l{New Classes and Functions in Qt 5.14}
\li \l{Obsolete Classes}
\endlist
\section1 Additions to Other Qt 5 Releases
\list
\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 newclasses514.html
\title New Classes and Functions in Qt 5.14
\brief A list of new APIs in Qt 5.14.
This page contains a comprehensive list of all new classes and functions
introduced in Qt 5.14. Links to new APIs in previous Qt 5 releases are found
at the bottom of this page.
\sincelist 5.14
\section1 Additions to Other Qt 5 Releases
\list
\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
*/