From 355f4228cfe16204cc9645b6788f9b31aef4cb10 Mon Sep 17 00:00:00 2001
From: Paul Wicking <paul.wicking@qt.io>
Date: Mon, 9 Apr 2018 13:48:57 +0200
Subject: [PATCH] Doc: Add What's new page for 5.11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Based on the wiki entries here:
https://wiki.qt.io/New_Features_in_Qt_5.11

Also added links to the new page from relevant pages, based on the
similar commit for version 5.9.

Task-number: QTBUG-67560
Change-Id: I927db8fec99fd9949534e54f0e3378af77f58a53
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
---
 doc/src/classes.qdoc              |   6 +-
 doc/src/qt5-intro.qdoc            |   1 +
 doc/src/whatsnew/whatsnew511.qdoc | 288 ++++++++++++++++++++++++++++++
 3 files changed, 292 insertions(+), 3 deletions(-)
 create mode 100644 doc/src/whatsnew/whatsnew511.qdoc

diff --git a/doc/src/classes.qdoc b/doc/src/classes.qdoc
index f8673115..8478bed8 100644
--- a/doc/src/classes.qdoc
+++ b/doc/src/classes.qdoc
@@ -58,7 +58,7 @@
     \li \l{All Namespaces}
     \li \l{All Classes by Module}
     \li \l{Obsolete Classes}
-    \li \l{New Classes and Functions in Qt 5.9}
+    \li \l{New Classes and Functions in Qt 5.11}
     \endlist
 
     For more reference pages including QML types, visit \l{Qt Reference Pages}.
@@ -82,7 +82,7 @@
     \li \l{All QML Types}
     \li \l{All QML APIs by Module}
     \li \l{Obsolete QML Types}
-    \li \l{New Classes and Functions in Qt 5.9}
+    \li \l{New Classes and Functions in Qt 5.11}
     \endlist
 
     For more reference pages including C++ APIs, visit \l{Qt Reference Pages}.
@@ -105,7 +105,7 @@
     \li \l{All QML Basic Types}
     \li \l{All QML APIs by Module}
     \li \l{Obsolete QML Types}
-    \li \l{New Classes and Functions in Qt 5.9}
+    \li \l{New Classes and Functions in Qt 5.11}
     \endlist
 
     For more reference pages including C++ APIs, visit \l{Qt Reference Pages}.
diff --git a/doc/src/qt5-intro.qdoc b/doc/src/qt5-intro.qdoc
index 4f249ab0..06c3bd9f 100644
--- a/doc/src/qt5-intro.qdoc
+++ b/doc/src/qt5-intro.qdoc
@@ -508,6 +508,7 @@
 
     \section1 Related Topics
     \list
+    \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}
diff --git a/doc/src/whatsnew/whatsnew511.qdoc b/doc/src/whatsnew/whatsnew511.qdoc
new file mode 100644
index 00000000..d821d7c4
--- /dev/null
+++ b/doc/src/whatsnew/whatsnew511.qdoc
@@ -0,0 +1,288 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 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 whatsnew511.html
+    \title What's New in Qt 5.11
+    \brief Lists the new features in Qt 5.11.
+
+    \section1 New Features in Qt 5.11
+
+    \section2 Qt Core Module
+    \list
+        \li Added \l{QIODevice::NewOnly} and \l {QIODevice::ExistingOnly}
+            \c OpenMode flags. When used with QFile, \c NewOnly instructs
+            \c open() to (atomically) return \c false if the file to open
+            exists. \c ExistingOnly instructs \c open() to (atomically) return
+            \c false if the file does not exist.
+        \li QFloat16 now has two methods for bulk conversion between \c float16
+            and \c float, using hardware SIMD acceleration if available at
+            runtime.
+        \li QVarLengthArray now has rvalue reference versions of prepend and
+            insert, and can hold movable-only datatypes such as
+            \c std::unique_ptr.
+        \li QVector now has rvalue reference versions of prepend and insert.
+        \li QUuid \c toString() and \c toByteArray() now take a parameter
+            specifying the generated format.
+        \li Updated Unicode support in QString, QChar, and
+            QTextBoundaryFinder to be compatible with Unicode 10.
+    \endlist
+
+    \section2 Qt Network Module
+    \list
+        \li ALPN (via Secure Transport) and thus HTTP/2 negotiation are now
+        supported on iOS (starting from version 11).
+        \li QNetworkRequest now has the \c Http2DirectAttribute to start a
+        connection in HTTP/2 without first negotiating.
+    \endlist
+
+    \section2 Qt QML Module
+    \list
+        \li The compiler pipeline is rewritten. We now directly generate byte code
+            from the AST, and store that as our intermediate representation.
+        \li Optimized handling of JS calls, bringing large improvements
+            especially when calling small functions.
+        \li Newly written byte code interpreter brings significant performance
+            improvements, at 80-90% of the JIT in Qt 5.10.
+        \li \c .qmlc files are now fully platform-independent and store byte
+            code instead of assembly.
+        \li New hotspot JIT that generates optimized assembly for byte code that
+            gets repeatedly executed.
+        \li \c {CONFIG += qmlcompiler} now also works in the open source version, by
+            embedding the generated byte code at compile time.
+    \endlist
+
+    \section2 Qt Quick Module
+    \list
+        \li Expanded support for loading compressed textures in Image element.
+            Now supports both \c .ktx and \c .pkm container file formats.
+    \endlist
+
+    \section2 Qt Quick Controls 2 Module
+    \list
+        \li AbstractButton
+        \list
+            \li Promoted the \l {AbstractButton::}{autoRepeat}
+                property from \l [QML] Button to \c AbstractButton.
+            \li Added \l {AbstractButton::}{autoRepeatDelay} and
+                \l {AbstractButton::}{autoRepeatInterval}
+                properties.
+            \li Added \c pressX and \c pressY properties to expose the press
+                point to QML.
+        \endlist
+
+        \li ButtonGroup
+        \list
+            \li Added a \c checkState property. It indicates the combined check
+                state of the entire group.
+        \endlist
+
+        \li CheckBox and CheckDelegate
+        \list
+            \li No longer force tristate to \c true when setting \c checkState
+                to \c Qt.PartiallyChecked. This allows presenting a partially
+                checked state without being interactively tri-state.
+            \li No longer consider partially checked as checked. This fixes
+                check state cycling for a non-tri-state checkbox so that it goes
+                from partially checked to fully checked state.
+            \li Made it possible to implement \c nextCheckState() in QML.
+        \endlist
+
+        \li ScrollBar and ScrollIndicator
+        \list
+            \li Added \c minimumSize, \c visualSize, and \c visualPosition
+                properties.
+        \endlist
+
+        \li SpinBox
+        \list
+            \li Added a \c displayText property to allow styles to create a
+                light binding to display the textual value instead of having
+                to call the \c textFromValue() JS-function.
+        \endlist
+    \endlist
+
+    \section2 Qt 3D Module
+    \list
+        \li Scrub through animations with the \c normalizedTime property of
+            QAbstractClipAnimator.
+        \li Issue arbitrary ray casts in world space or screen space.
+        \li Improved SIMD support.
+    \endlist
+
+    \section2 Qt Location Module
+    \list
+        \li New Qt.labs.location plugin containing experimental QML types.
+    \endlist
+
+    \section2 Qt WebEngine Module
+    \list
+        \li Updated to Chromium 65.
+        \li Embedded DevTools without using a port and separate browser.
+        \li Installable cookie filter.
+        \li Quota permissions.
+    \endlist
+
+    \section2 QDoc Documentation Generator
+    \list
+        \li QDoc now uses libclang for parsing C/C++ code.
+    \endlist
+
+    \section2 Qt Designer Tool
+    \list
+        \li Added support for ID-based translations.
+    \endlist
+
+    \section2 Qt GUI Module
+    \list
+        \li On Windows Desktop, the accessibility support was updated and
+            vastly improved. The implementation is now based on Microsoft UI
+            Automation (it was formerly based on Microsoft Active Accessibility).
+        \li Linux Printing now supports more CUPS options with the advanced tab
+            in QPrintPropertiesDialog, allowing many additional settings
+            (amongst them arbitrary page ranges).
+        \li Updated the Unicode bidirectional text algorithm to be compliant
+            with Unicode 10.
+    \endlist
+
+    \section2 Qt Widgets Module
+    \list
+        \li Added J2534 Pass-Thru CAN plugin for communication between a
+            computer and a vehicle.
+        \li Added description, serial number and channel to QCanBusDeviceInfo,
+            as far as supported by the various plugins.
+        \li Introduced categorized logging to the CAN bus module which can be
+            enabled by the \e "qt.canbus" and
+            \e "qt.canbus.plugins.<pluginname>" filters.
+        \li QCanBusFrame::isValid() now checks for invalid CAN FD payload
+            lengths. E.g. 24 is  a valid CAN FD payload length, but 28 is not.
+    \endlist
+
+    \section2 Qt Bluetooth Module
+    \list
+        \li Ported Bluetooth Low Energy Central role implementation to BlueZ's
+            DBus LE API (minimum version to enable is BlueZ 5.42).
+    \endlist
+
+    \section1 New Modules
+    No new modules were added in this version.
+
+    \section1 Platform Changes
+    \list
+        \li MSVC2013 support removed from the code base.
+        \li QNX 6.6 no longer supported (note: QNX 7 remains fully supported).
+        \li macOS 10.10 no longer supported.
+        \li Improved Accessibility support on Win32 by adopting the Windows UI
+            Automation framework.
+        \li XCB: Support for missing 'dead keys' such as dasia and diaeresis.
+
+        \li eglfs
+        \list
+            \li Added support for framebuffer formats other than XRGB8888
+                (RGB565, ARGB8888).
+            \li Added experimental screen cloning support (by scanning out the
+                same framebuffer on multiple displays).
+            \li Added support for operating with DRM render nodes
+                (/dev/dri/renderDnn) in a headless mode transparent to
+                applications.
+            \li Added a makespec for Renesas R-Car M3.
+            \li Added experimental backend for compositing Qt content with other
+                hardware layers via VSP2 on Renesas devices.
+        \endlist
+    \endlist
+
+    \section1 Technology Preview Modules
+    \list
+        \li Qt Remote Objects (TP3) - A module that allows you to easily share
+            QObject interfaces (Signals/Slots/Properties) between processes or
+            devices.
+        \li Qt WebGL Streaming Plugin (TP2) - Stream applications to browsers
+            over the network.
+    \endlist
+
+    \section1 Deprecated Modules
+    The following modules are part of the Qt 5.11 release, but are deprecated
+    and considered for removal in subsequent releases of Qt:
+
+    \list
+        \li Qt Script
+        \li Qt Quick Controls 1
+    \endlist
+
+    \section1 List of API Changes
+    The pages below contain a list of API changes in Qt 5.11:
+    \list
+    \li \l{New Classes and Functions in Qt 5.11}
+    \li \l{Obsolete Classes}
+    \endlist
+
+    \section1 Additions to Other Qt 5 Releases
+
+    \list
+        \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 newclasses511.html
+    \title New Classes and Functions in Qt 5.11
+    \brief A list of new APIs in Qt 5.11.
+
+    This page contains a comprehensive list of all new classes and functions
+    introduced in Qt 5.11. Links to new APIs in previous Qt 5 releases are found
+    at the bottom of this page.
+
+    \sincelist 5.11
+
+    \section1 Additions to Other Qt 5 Releases
+
+    \list
+        \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
+*/
+
-- 
GitLab