Add Extras modules porting guide

Pick-to: 6.2
Task-number: QTBUG-83251
Task-number: QTBUG-84382
Task-number: QTBUG-89564
Task-number: QTBUG-93629
Task-number: QTBUG-93633
Change-Id: I3b56cb19459814a0ebfd00195a9856fb742d1288
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
This commit is contained in:
Tor Arne Vestbø 2021-07-15 14:13:20 +02:00
parent 85f7e1dcf5
commit 47fe7bccc9
3 changed files with 174 additions and 4 deletions

View File

@ -74,6 +74,9 @@ macro.qtver = "$QT_VER"
macro.qtmajorversion = "$QT_VER"
macro.qtmajorversion.match = "^(\\d+)"
macro.qt5 = "\\l{https://doc.qt.io/qt-5/\1}{\2}"
macro.qtbug = "\\l{https://bugreports.qt.io/browse/\1}{\1}"
# Config to enable YouTube links in the offline documentation
{HTML.extraimages,qhp.QtDoc.extraFiles} += images/wPcVlP_wrew.jpg

167
doc/src/extras-changes.qdoc Normal file
View File

@ -0,0 +1,167 @@
/****************************************************************************
**
** Copyright (C) 2021 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 extras-changes-qt6.html
\title Changes to Qt Extras Modules
\brief Migrate away from Extras Modules
\ingroup changes-qt-5-to-6
Qt 6 is a result of the conscious effort to make the framework more
efficient and easy to use.
We try to maintain binary and source compatibility for all the public
APIs in each release. But some changes were inevitable in an effort to
make Qt a better framework.
One of those changes was to remove the platform-specific Extras modules,
to ensure a cohesive cross-platform story and future for Qt 6. Most of the
the functionality offered by these modules are replaced by a similar functionality
in other Qt modules. This guide summarizes those alternatives, and provides guidance
for the cases where Qt does not offer a replacement API.
\section1 Changes to Qt Mac Extras
\section2 QtMac namespace
Most members of the QtMac namespace have \qt5{qtmac-obsolete.html}
{explicit replacements}. The \qt5{qtmac-obsolete.html#fromCGImageRef}
{\c QtMac::fromCGImageRef} function has been removed due to lack of
known clients of the API.
\section2 QMacPasteboardMime
The \qt5{qmacpasteboardmime.html}{\c QMacPasteboardMime} class has been
removed due to warranting a cross-platform solution. See \qtbug QTBUG-93632
for details.
\section2 QMacToolBar
The \qt5{qmactoolbar.html}{\c QMacToolBar} and \qt5{qmactoolbaritem.html}
{\c QMacToolBarItem} classes have been removed. Use QToolBar as a replacement.
\section1 Changes to Qt Windows Extras
\section2 QtWin namespace
Many members of the QtWin namespace have \qt5{qtwin-obsolete.html}
{explicit replacements}. To use these replacements with Qt Widgets
or Qt Quick, operate on the QWindow representation of the relevant
widget or control.
The remaining functions have been removed:
\section3 errorStringFromHresult
Only used internally in WinExtras. No other known clients of the API.
\section3 colorizationColor/isCompositionOpaque
Concept exists on other platforms (tint/accent color). Warrants new
cross-platform API, for example a new QPalette role or platform theme
property.
\section3 setWindowFlip3DPolicy
Windows 7 feature. No longer supported in Windows 10.
\section3 extendFrameIntoClientArea
Similar functionality exists on other platforms. Warrants cross-platform
QWindow API to control the relationship between the client area and the non-client area
(frame/titlebar). See \qtbug QTBUG-94010 for details.
\section3 enableBlurBehind
Deprecated as of Windows 8.
\section3 taskbarActivateTab and taskbar(Add/Delete)Tab
No known clients of the API.
\section2 QWinMime
The \qt5{qwinmime.html}{\c QWinMime} class has been removed due to
warranting a cross-platform solution. See \qtbug QTBUG-93632 for details.
\section2 QWinJumpList
The \qt5{qwinjumplist.html}{\c QWinJumpList}, \qt5{qwinjumplistcategory.html}
{\c QWinJumpListCategory}, and \qt5{qwinjumplistitem.html}{\c QWinJumpListItem}
classes have been removed due to warranting a cross-platform solution.
See \qtbug QTBUG-94007 for details.
\section2 QWinTaskbarButton
The \qt5{qwintaskbarbutton.html}{\c QWinTaskbarButton} and \qt5{qwintaskbarprogress.html}
{\c QWinTaskbarProgress} classes have been removed due to warranting a cross-platform
solution. See \qtbug QTBUG-94009 and \qtbug QTBUG-94008 for details.
\section2 QWinThumbnailToolBar
The \qt5{qwinthumbnailtoolbar.html}{\c QWinThumbnailToolBar} and
\qt5{qwinthumbnailtoolbarbutton.html}{\c QWinThumbnailToolBarButton}
classes have been removed due to lack of known clients of the API.
\section1 Changes to Qt X11 Extras
The \qt5{qx11info.html}{\c QX11Info} class has been removed.
Clients that still rely on the functionality can include the private
header \c {<QtGui/private/qtx11extras_p.h>} as a stopgap solution.
To enable private headers use \c {QT += core-private} with \c qmake,
or add a project dependency to \c Qt::CorePrivate with \c CMake.
\section1 Changes to Qt Android Extras
Key functionality from the module has been brought over to other
Qt modules.
Clients that still rely on missing functionality can include the private
header \c {<QtGui/private/qtandroidextras_p.h>} as a stopgap solution.
To enable private headers use \c {QT += core-private} with \c qmake,
or add a project dependency to \c Qt::CorePrivate with \c CMake.
\section2 QAndroidJniObject and QAndroidJniEnvironment
The \qt5{qandroidjniobject.html}{\c QAndroidJniObject} and
\qt5{qandroidjnienvironment.html}{\c QAndroidJniEnvironment}
classes have been replaced by \l QJniObject and \l QJniEnvironment
respectively.
The \qt5{qandroidjniexceptioncleaner.html}{\c QAndroidJniExceptionCleaner}
class is no longer needed. See QJniEnvironment::checkAndClearExceptions()
for a replacement.
\section2 QtAndroid namespace
Many members of the QtAndroid namespace have replacements in the
\l QAndroidApplication native interface.
The permission request APIs have been replaced by the cross-platform
\l QCoreApplication::requestPermission() API.
*/

View File

@ -69,7 +69,7 @@
\row
\li Qt Android Extras
\li \c androidextras
\li
\li See \l {Changes to Extras Modules}
\row
\li Qt Bluetooth
\li \c bluetooth
@ -93,7 +93,7 @@
\row
\li Qt Mac Extras
\li \c macextras
\li
\li See \l {Changes to Extras Modules}
\row
\li Qt Multimedia
\li \c multimedia
@ -168,11 +168,11 @@
\row
\li Qt Windows Extras
\li \c winextras
\li
\li See \l {Changes to Extras Modules}
\row
\li Qt X11 Extras
\li \c x11extras
\li
\li See \l {Changes to Extras Modules}
\row
\li Qt XML Patterns
\li \c xmlpatterns