blob: 2c5af3b4d20a1b23410d3982c05fd61e4bf33d21 [file] [log] [blame]
/****************************************************************************
**
** Copyright (C) 2017 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 whatsnew59.html
\title What's New in Qt 5.9
\brief Lists the new features in Qt 5.9.
Qt 5.9 is a long-term support (LTS) release.
\section1 New Features in Qt 5.9
\section2 Qt Core Module
\list
\li Added the \c {qfloat16 f} and \c {qfloat16 &f} overload functions to
the QDataStream class for writing a floating point number to the
stream and reading it from the stream.
\li Made the QProcessEnvironment class available on iOS, tvOS, watchOS,
and VxWorks.
\li QRegularExpression now requires the PCRE2 library version 10.20, or
later. Support for the PCRE1 library was dropped. A copy of PCRE2
is shipped with Qt and will automatically be used on the platforms
that lack it.
\li Added the QOperatingSystemVersion class to provide convenient
access to the operating system and version.
\endlist
\section2 Qt GUI Module
\list
\li Made the QPainter class' GL engine functional with core profile
OpenGL contexts.
\li Added the QImage::reinterpretAsFormat() function to change the image
format without changing the data.
\li Added support for \e {compute shaders} in QOpenGLShader::ShaderType
and QOpenGLShaderProgram also with OpenGL ES 3.1 and newer.
\li Enabled stem-darkening and gamma-correction on OpenType fonts on
platforms that use FreeType, if supported.
\endlist
\section2 Qt Multimedia Module
Added the following QML properties:
\list
\li \l{CameraCapture::supportedResolutions}
{CameraCapture.supportedResolutions}
\li \l{CameraFlash::supportedModes}{CameraFlash.supportedModes}
\li \l{MediaPlayer::notifyInterval}{MediaPlayer.notifyInterval} (also
for the \l Audio and \l Video types)
\li \l{MediaPlayer::loops}{Video.loops}
\endlist
\section2 Qt Network Module
\list
\li Added the QNetworkAccessManager::addStrictTransportSecurityHosts()
function to support HSTS (HTTP Strict Transport Security) policies.
\li Added the QNetworkAccessManager::redirectPolicy() function and the
QNetworkRequest::RedirectPolicy enumeration to determine whether the
Network Access API should automatically follow a HTTP redirect
response.
\endlist
\section2 Qt QML Module
\list
\li Added support for ahead-of-time generation of QML type caches.
\endlist
\section2 Qt Quick Module
\list
\li Enabled caching OpenGL shader program binaries used by the Qt GUI
module (QPainter's GL paint engine) and the Qt Quick scenegraph on
disk to improve application-startup and view-initialization times.
\li Added an OpenVG backend for Qt Quick.
\li Enabled making window-screen associations directly from QML by using
\l {Window::screen}{Window.screen} and \l{Qt::application}
{Qt.application.screens}. This enables creating multi-screen aware
applications for desktop and embedded without involving C++ code.
\li Added a way to query information about the font actually used to
render a \l [QtQuick] Text type.
\li Added an image provider that can share decoded image data and memory
between processes.
\endlist
\section2 Qt Quick Controls 2 Module
\list
\li Introduced new QML types: \l DelayButton, \l ScrollView.
\li Added multi-touch support.
\li Made the \l ComboBox type editable.
\li Added the \l{Drawer::}{interactive} property for making a \l Drawer
type non-interactive and persistent.
\li Enabled live value updates (by default) for the \l Slider,
\l [QtQuickControls2] RangeSlider, and \l Dial types.
\li Added dedicated notification signals for user interaction:
AbstractButton::toggled(), Slider::moved(),
SpinBox::valueModified(), and so on.
\li Enabled incremental discrete scrolling with the \l ScrollBar type.
\li Added enabling and disabling the swipe for the \l SwipeDelegate
type. In addition, the swipe can now be opened programmatically.
\li Added support for the vertical orientation to the
\l {SwipeView::orientation}{SwipeView.orientation} property.
\endlist
\section2 Qt 3D Module
\list
\li Added rendering Qt Quick 2 scenes to a texture and interacting with
them within a 3D world.
\li Added a Technical Preview of a new animation subsystem that enables
non-blocking, keyframe animations on the threadpool and exporting
from animations from Blender.
\li Added Physics Based Rendering (PBR) material
(\l{Qt3DExtras::}{QMetalRoughMaterial} and
\l{Qt3DExtras::}{QTexturedMetalRoughMaterial}) to Qt3DExtras for
improved appearance when used with environment maps.
\li Added 3D text support to Qt3DExtras.
\li Added the LevelOfDetail type to control the representation of an
entity based on distance from the observer or size on the screen. It
comes with a convenience loader class that loads different QML
files.
\li Made the Mesh type plugin based. It comes with plugins for the
Wavefront OBJ, PLY and FBX formats and makes it easy to add other
formats.
\li Added distance field based 2D textured text that can be freely
rotated but is based on planar geometry.
\endlist
\section2 Qt Bluetooth Module
\list
\li Added Classic Bluetooth support for WinRT.
\li Added Bluetooth LE Peripheral support for Android.
\endlist
\section2 Qt Charts Module
\list
\li Added support for minor grid lines for logarithmic axes.
\li Added options for legend marker shapes to QLegend::MarkerShape.
\li Added support for adding more than one bar series to a chart.
\endlist
\section2 Qt Location Module
\list
\li Added support for rotating and tilting maps.
\li Added touch gestures for rotating and tilting maps.
\li Improved support for stacking multiple \l Map types.
\li Added the MapCopyrightNotice type to flexibly position the
copyrights of multiple map elements on top.
\li Enabled styling the HTML copyright using CSS.
\li Added support for handing the rendering of map items to the plugin.
\li Added the \e MapboxGL plugin that is based on the
\c mapbox-gl-native mapping engine.
\li Added the \l Map::fitViewportToVisibleMapItems() method to only
consider visible items when fitting the viewport.
\li Added the MapItemGroup type to combine multiple map items in a
separate QML file.
\li Added the \l{Map::fieldOfView}{Map.fieldOfView} property to control
the camera's field of view when the map is tilted.
\li Added the MapParameter type to expose and control plugin-specific
runtime functionality.
\endlist
\section2 Qt NFC Module
\list
\li Enabled using NFC when running as an Android service.
\li Added support for communicating with ISO-DEP, NFC-A, NFC-B, NFC-F,
and NFC-V tags or smartcards, such as the German eID card,
using QNearFieldTarget::sendCommand() on Android.
\endlist
\section2 Qt SerialBus Module
\list
\li Added the CAN FD Bitrate Switch (BRS) and Error State Indicator
(ESI) flags to QCanBusFrame (QCanBusFrame::hasBitrateSwitch() and
QCanBusFrame::hasErrorStateIndicator()).
\li Added QCanBusDeviceInfo for information about available CAN
interfaces.
\li Added a plugin to support SYS-TEC electronic CAN adapters on
Windows.
\endlist
\section2 Qt Virtual Keyboard Module
\list
\li Added support for selection handles for the dedicated (desktop)
keyboard.
\li Changed the behavior of the shift handler to only activate caps lock
if the shift key is double-clicked.
\li Added support for external keyboard layouts, which allows overriding
and exclusion of the built-in keyboard layouts.
\li Added a language selection popup for faster selection of the input
language.
\li Added support for the automatic selection of the only remaining word
in the suggestion list.
\li Made the word candidate list automatically hidden when inactive.
\li Added full screen input mode.
\endlist
\section2 Qt WebEngine Module
\list
\li Based on Chromium 56.
\li Switched internally to the new Chromium build-system GN.
\li Added loading with HTTP POST.
\li Added support for user scripts with QQuickWebEngineProfiles and for
using QQuickWebEngineUserScripts from C++.
\li DownloadItems now get a reason when they are interrupted or fail.
\endlist
\section2 Qt WebSockets Module
\list
\li Added support for handling external QTcpSocket objects.
\endlist
\section2 Embedded Platforms
\list
\li Added experimental DRM dumb buffer support to the \c linuxfb
platform plugin, to help devices that do not support the deprecated
\c fbdev model (or have problems with \c fbdev emulation).
\li Added support for filtering and prediction of touch events to the
\c evdevtouch plugin.
\endlist
\section1 New Modules
\list
\li \l {Qt Gamepad} - Enables Qt gaming applications to respond to
gamepad input.
\endlist
This module was previously released as a technology preview and is
now a fully supported Qt add-on module.
\section1 Technology Preview Modules
\list
\li \l {Qt Network Authorization} - Online authorization support with
OAuth protocol, versions 1 and 2.
\li \l {Qt Remote Objects} - Sharing QObject interfaces (signals, slots,
and properties) between processes or devices,
\li \l {Qt Speech} - Text to speech and speech recognition
functionality. Currently only the text to speech features are
released. Includes backends for several speech synthesizers on
Windows, Linux, macOS, and Android.
\endlist
\section1 Platform Changes
\list
\li Removed support for WinRT on Windows 8.1.
\li Debug builds on GCC platforms now use \c -Og optimizations by
default. This can be disabled with the configure flag
\c -no-optimize-debug.
\endlist
\section1 Deprecated Functionality
\list
\li Qt Script
\endlist
Deprecated modules are still included in Qt 5.9, but are considered for
removal in future releases.
\section1 List of API Changes
The pages below contain a list of API changes in Qt 5.9:
\list
\li \l{New Classes and Functions in Qt 5.9}
\li \l{Obsolete Classes}
\endlist
\section1 Additions to Other Qt 5 Releases
\list
\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 newclasses59.html
\title New Classes and Functions in Qt 5.9
\brief A list of new APIs in Qt 5.9.
This page contains a comprehensive list of all new classes and functions
introduced in Qt 5.9. Links to new APIs in previous Qt 5 releases are found
at the bottom of this page.
\sincelist 5.9
\section1 Additions to Other Qt 5 Releases
\list
\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
*/