Repository.mk                             |    2 
 RepositoryExternal.mk                     |   29 ++++++
 config_host.mk.in                         |    5 +
 config_host/config_vclplug.h.in           |    2 
 configure.ac                              |  136 +++++++++++++++++++++++++++++-
 solenv/gbuild/CppunitTest.mk              |    1 
 vcl/CustomTarget_qt6_moc.mk               |   39 ++++++++
 vcl/Library_vcl.mk                        |    1 
 vcl/Library_vclplug_qt5.mk                |    2 
 vcl/Library_vclplug_qt6.mk                |  124 +++++++++++++++++++++++++++
 vcl/Module_vcl.mk                         |   13 ++
 vcl/inc/qt5/QtData.hxx                    |    2 
 vcl/inc/qt5/QtFilePicker.hxx              |    2 
 vcl/inc/qt5/QtFontFace.hxx                |    6 -
 vcl/inc/qt5/QtFrame.hxx                   |    9 +
 vcl/inc/qt5/QtInstance.hxx                |    6 -
 vcl/inc/qt5/QtSvpGraphics.hxx             |    2 
 vcl/inc/qt5/QtTransferable.hxx            |    4 
 vcl/inc/qt6/QtAccessibleEventListener.hxx |   12 ++
 vcl/inc/qt6/QtAccessibleWidget.hxx        |   12 ++
 vcl/inc/qt6/QtBitmap.hxx                  |   12 ++
 vcl/inc/qt6/QtClipboard.hxx               |   12 ++
 vcl/inc/qt6/QtData.hxx                    |   12 ++
 vcl/inc/qt6/QtDragAndDrop.hxx             |   12 ++
 vcl/inc/qt6/QtFilePicker.hxx              |   12 ++
 vcl/inc/qt6/QtFont.hxx                    |   12 ++
 vcl/inc/qt6/QtFontFace.hxx                |   12 ++
 vcl/inc/qt6/QtFrame.hxx                   |   12 ++
 vcl/inc/qt6/QtGraphics.hxx                |   12 ++
 vcl/inc/qt6/QtGraphicsBase.hxx            |   12 ++
 vcl/inc/qt6/QtGraphics_Controls.hxx       |   12 ++
 vcl/inc/qt6/QtInstance.hxx                |   12 ++
 vcl/inc/qt6/QtMainWindow.hxx              |   12 ++
 vcl/inc/qt6/QtMenu.hxx                    |   12 ++
 vcl/inc/qt6/QtObject.hxx                  |   12 ++
 vcl/inc/qt6/QtOpenGLContext.hxx           |   12 ++
 vcl/inc/qt6/QtPainter.hxx                 |   12 ++
 vcl/inc/qt6/QtPrinter.hxx                 |   12 ++
 vcl/inc/qt6/QtSvpGraphics.hxx             |   12 ++
 vcl/inc/qt6/QtSvpSurface.hxx              |   12 ++
 vcl/inc/qt6/QtSystem.hxx                  |   12 ++
 vcl/inc/qt6/QtTimer.hxx                   |   12 ++
 vcl/inc/qt6/QtTools.hxx                   |   12 ++
 vcl/inc/qt6/QtTransferable.hxx            |   12 ++
 vcl/inc/qt6/QtVirtualDevice.hxx           |   12 ++
 vcl/inc/qt6/QtWidget.hxx                  |   12 ++
 vcl/inc/qt6/QtXAccessible.hxx             |   12 ++
 vcl/inc/vclpluginapi.h                    |    6 -
 vcl/qt5/QtFrame.cxx                       |   34 +++++--
 vcl/qt5/QtInstance.cxx                    |   11 +-
 vcl/qt5/QtMenu.cxx                        |    6 +
 vcl/qt5/QtTransferable.cxx                |    4 
 vcl/qt5/QtWidget.cxx                      |    6 -
 vcl/qt6/QtAccessibleEventListener.cxx     |   12 ++
 vcl/qt6/QtAccessibleWidget.cxx            |   12 ++
 vcl/qt6/QtBitmap.cxx                      |   12 ++
 vcl/qt6/QtClipboard.cxx                   |   12 ++
 vcl/qt6/QtData.cxx                        |   12 ++
 vcl/qt6/QtDragAndDrop.cxx                 |   12 ++
 vcl/qt6/QtFilePicker.cxx                  |   12 ++
 vcl/qt6/QtFont.cxx                        |   12 ++
 vcl/qt6/QtFontFace.cxx                    |   12 ++
 vcl/qt6/QtFrame.cxx                       |   12 ++
 vcl/qt6/QtGraphics.cxx                    |   12 ++
 vcl/qt6/QtGraphics_Controls.cxx           |   12 ++
 vcl/qt6/QtGraphics_GDI.cxx                |   12 ++
 vcl/qt6/QtGraphics_Text.cxx               |   12 ++
 vcl/qt6/QtInstance.cxx                    |   12 ++
 vcl/qt6/QtInstance_Print.cxx              |   12 ++
 vcl/qt6/QtMainWindow.cxx                  |   12 ++
 vcl/qt6/QtMenu.cxx                        |   12 ++
 vcl/qt6/QtObject.cxx                      |   12 ++
 vcl/qt6/QtOpenGLContext.cxx               |   12 ++
 vcl/qt6/QtPainter.cxx                     |   12 ++
 vcl/qt6/QtPrinter.cxx                     |   12 ++
 vcl/qt6/QtSvpGraphics.cxx                 |   12 ++
 vcl/qt6/QtSvpSurface.cxx                  |   12 ++
 vcl/qt6/QtSvpVirtualDevice.hxx            |   12 ++
 vcl/qt6/QtSystem.cxx                      |   12 ++
 vcl/qt6/QtTimer.cxx                       |   12 ++
 vcl/qt6/QtTools.cxx                       |   12 ++
 vcl/qt6/QtTransferable.cxx                |   12 ++
 vcl/qt6/QtVirtualDevice.cxx               |   12 ++
 vcl/qt6/QtWidget.cxx                      |   12 ++
 vcl/qt6/QtXAccessible.cxx                 |   12 ++
 85 files changed, 1152 insertions(+), 32 deletions(-)

New commits:
commit 88d57cf241209ffec9eaed3e523942ab51af6db6
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Wed Sep 29 11:09:51 2021 +0200
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Wed Sep 29 13:50:58 2021 +0200

    qt6: Add a qt6 VCL plugin
    
    This adds a new "qt6" VCL plugin based on Qt 6.
    
    Building the plugin is enabled by autogen option '--enable-qt6'
    (and optionally setting 'QT6DIR' as needed).
    
    Use the 'SAL_USE_VCLPLUGIN=qt6' environment variable
    before running LO to select this VCL plugin.
    
    Taking qt6 into account at all relevant places certainly
    still requires follow-up changes, but
    this builds and runs with a self-compiled
    qtbase from the 'dev' git branch as of commit
    3ce0672143d2eb3c3809f82998a4d71c5800d77a.
    I didn't see anything obviously broken
    in a quick run, but didn't test much.
    
    This reuses and shares the qt5 VCL plugin code;
    the qt6 headers and sources for now just
    '#include' the qt5 ones.
    
    Version checks are used for the code places that
    need different handling to be built against Qt 6.
    
    The build system parts in this commit were mostly done by
    copying the qt5 equivalents, then adapting as needed.
    
    Some notes on things I came across while porting
    to qt6:
    
    1) At least in my self-compiled Qt versions,
    'moc' (the meta-object compiler) is located
    in the 'libexec' subdirectory in 'QT6DIR', while the
    Qt 5 equivalent is located in the "bin" subdirectory
    of 'QT5DIR', so the configure.ac check uses the former.
    
    2) moc does not process classes from the included headers.
    Since the headers in 'vcl/inc/qt6' just '#include' the ones
    from 'vcl/inc/qt5', running moc on the qt6 headers doesn't work,
    so moc is currently run on the qt5 headers for qt6 as well
    (s. 'vcl/CustomTarget_qt6_moc.mk').
    That will have to be adapted in case the qt6 VCL plugin
    uses "own" headers instead of just including the qt5 ones
    at some point.
    
    3) QX11Extras has been removed from Qt 6.
    [1] says:
    
    > Changes to Qt X11 Extras
    >
    > The QX11Info class has been removed.
    >
    > Clients that still rely on the functionality can include the private
    > header <QtGui/private/qtx11extras_p.h> as a stopgap solution. To enable
    > private headers use QT += core-private with qmake, or add a project
    > dependency to Qt::CorePrivate with CMake.
    
    I didn't take any closer look, just dropped the use of
    QtX11Extras for qt6 for now.
    
    4) XCB_ICCCM is no longer needed.
    It is only used in qt5 to workaround a Qt bug fixed in Qt 5.12, s.
    
        commit fe2baf9e84e0ca9aeaa683e37076f57fa3f38dca
        Author: Jan-Marek Glogowski <jan-marek.glogow...@extern.cib.de>
        Date:   Tue Dec 3 08:32:58 2019 +0100
    
            Qt5 fix missing XCB_ICCCM_WM_HINT_WINDOW_GROUP
    
    5) X11-specific code is still used for key modifier handling.
    Therefore, still check for the XCB headers when 'USING_X11'
    is set in configure.ac, and use a 'QT6_USING_X11' define
    (as qt5 uses 'QT5_USING_X11').
    
    6) There's currently no Qt 6 video sink for GStreamer.
    As of today, qt-gstreamer is unmaintained and there is no Qt 6 version.
    The project's README [2] says:
    
    > 0. Maintenance Notice
    > ---------------------
    >
    > This code is unmaintained. You can use it at your own risk.
    >
    > If you want to integrate video display in your QML-based UI,
    > you should consider using 'qmlglsink', from gst-plugins-good.
    > This is a well supported video sink that uses the generic
    > gstreamer-gl stack and is in many ways superior to 'qtquick2videosink'
    > that is provided by qt-gstreamer. You can use this code as an example:
    > 
https://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/tests/examples/qt/qmlsink
    >
    > If you are not interested in using QML in your UI, then you
    > may use one of the other elements provided by this module
    > (see below). If you do that, it would be helpful to let us
    > know that this code is still useful to you. We may consider
    > adding these elements in one of the core gstreamer modules.
    >
    > If you are here for the Qt-style bindings, I'm sorry to disappoint you.
    > The alternative is to use the C API, or the GStreamermm C++ API.
    > Qt-style bindings are cool, but unfortunately they are very hard
    > to maintain because they are written by hand. If you are interested
    > in continuing this project, you are welcome to implement a
    > generator for them, probably based on GObject-Introspection.
    > I am happy to provide directions if you want to pursue such a thing.
    
    Therefore, the Qt video sink handling is qt5-only and the
    corresponding handling for GOBJECT (used for the GStreamer
    video sink handling) was not taken over for qt6.
    
    This presumably means that video playback in Impress presentations
    does not work when using qt6 with they Qt Wayland plugin,
    s. tdf#125219 for the corresponding bug for qt5/kf5.
    (I did not build the qtwayland module to actually test this, though.
    Video playback with the Qt xcb plugin in a Wayland session works.)
    
    [1] https://doc-snapshots.qt.io/qt6-dev/extras-changes-qt6.html
    [2] https://cgit.freedesktop.org/gstreamer/qt-gstreamer/tree/README
    
    Change-Id: Ib105ccfb2c3630ec5d5403793a3cd9ba31d85bdf
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122808
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/Repository.mk b/Repository.mk
index 9aacc0dba7fb..541d06377fb6 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -294,6 +294,7 @@ $(eval $(call 
gb_Helper_register_libraries_for_install,OOOLIBS,kde, \
        $(if $(USING_X11), \
         $(if $(ENABLE_KF5),vclplug_kf5) \
         $(if $(ENABLE_QT5),vclplug_qt5) \
+        $(if $(ENABLE_QT6),vclplug_qt6) \
         $(if $(ENABLE_GTK3_KDE5),vclplug_gtk3_kde5) \
        ) \
 ))
@@ -306,6 +307,7 @@ endif
 ifeq ($(OS),HAIKU)
 $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,haiku, \
     $(if $(ENABLE_QT5),vclplug_qt5) \
+    $(if $(ENABLE_QT6),vclplug_qt6) \
     $(if $(ENABLE_KF5),vclplug_kf5) \
 ))
 endif
diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index 3f645e08ec2a..4c45caa7e746 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -3152,6 +3152,33 @@ endef
 
 endif # ENABLE_QT5
 
+ifeq ($(ENABLE_QT6),TRUE)
+
+define gb_LinkTarget__use_qt6
+$(call gb_LinkTarget_set_include,$(1),\
+       $(subst -isystem/,-isystem /,$(filter -I% -isystem%,$(subst -isystem 
/,-isystem/,$(QT6_CFLAGS)))) \
+       $$(INCLUDE) \
+)
+
+$(call gb_LinkTarget_add_defs,$(1),\
+       $(filter-out -I% -isystem%,$(subst -isystem /,-isystem/,$(QT6_CFLAGS))) 
\
+)
+
+$(call gb_LinkTarget_add_libs,$(1),\
+       $(QT6_LIBS) \
+)
+
+endef
+
+else # !ENABLE_QT6
+
+define gb_LinkTarget__use_qt6
+
+endef
+
+endif # ENABLE_QT6
+
+
 # PYTHON
 # extra python_headers external because pyuno wrapper must not link python
 ifneq ($(SYSTEM_PYTHON),)
@@ -4282,4 +4309,4 @@ endef
 endif # SYSTEM_CUCKOO
 
 
-# vim: set noet sw=4 ts=4:
\ No newline at end of file
+# vim: set noet sw=4 ts=4:
diff --git a/config_host.mk.in b/config_host.mk.in
index 6ee6ad45f00f..d84d5df0ac57 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -189,6 +189,7 @@ export ENABLE_PDFIMPORT=@ENABLE_PDFIMPORT@
 export ENABLE_PDFIUM=@ENABLE_PDFIUM@
 export ENABLE_POPPLER=@ENABLE_POPPLER@
 export ENABLE_QT5=@ENABLE_QT5@
+export ENABLE_QT6=@ENABLE_QT6@
 export ENABLE_KF5=@ENABLE_KF5@
 export ENABLE_GTK3_KDE5=@ENABLE_GTK3_KDE5@
 export ENABLE_RANDR=@ENABLE_RANDR@
@@ -432,6 +433,7 @@ export MDDS_LIBS=$(gb_SPACE)@MDDS_LIBS@
 export MERGELIBS=@MERGELIBS@
 export ML_EXE=@ML_EXE@
 export MOC5=@MOC5@
+export MOC6=@MOC6@
 export MPL_SUBSET=@MPL_SUBSET@
 export MSGFMT=@MSGFMT@
 export MSGUNIQ=@MSGUNIQ@
@@ -528,6 +530,9 @@ export QT5_GOBJECT_CFLAGS=$(gb_SPACE)@QT5_GOBJECT_CFLAGS@
 export QT5_GOBJECT_LIBS=$(gb_SPACE)@QT5_GOBJECT_LIBS@
 export QT5_HAVE_GOBJECT=@QT5_HAVE_GOBJECT@
 export QT5_PLATFORMS_SRCDIR=@QT5_PLATFORMS_SRCDIR@
+export QT6_CFLAGS=$(gb_SPACE)@QT6_CFLAGS@
+export QT6_LIBS=$(gb_SPACE)@QT6_LIBS@
+export QT6_PLATFORMS_SRCDIR=@QT6_PLATFORMS_SRCDIR@
 export QXP_CFLAGS=$(gb_SPACE)@QXP_CFLAGS@
 export QXP_LIBS=$(gb_SPACE)@QXP_LIBS@
 export RANLIB=@RANLIB@
diff --git a/config_host/config_vclplug.h.in b/config_host/config_vclplug.h.in
index db0c7a8be201..794139606e29 100644
--- a/config_host/config_vclplug.h.in
+++ b/config_host/config_vclplug.h.in
@@ -20,6 +20,7 @@ Settings about which desktops have support enabled.
 #define ENABLE_HEADLESS 0
 #define ENABLE_KF5 0
 #define ENABLE_QT5 0
+#define ENABLE_QT6 0
 
 /**
  * Additional settings for the plugins
@@ -28,5 +29,6 @@ Settings about which desktops have support enabled.
 #define QT5_HAVE_GOBJECT 0
 #define QT5_USING_X11 0
 #define QT5_HAVE_XCB_ICCCM 0
+#define QT6_USING_X11 0
 
 #endif
diff --git a/configure.ac b/configure.ac
index 932ea2bb1240..346a01168b52 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1136,6 +1136,7 @@ test "${test_gtk3+set}" = set || test_gtk3="$using_x11"
 test "${test_gtk4+set}" = set || test_gtk4="$using_x11"
 test "${test_kf5+set}" = set || test_kf5="$using_x11"
 # don't handle test_qt5, so it can disable test_kf5 later
+test "${test_qt6+set}" = set || test_qt6="$using_x11"
 test "${test_randr+set}" = set || test_randr="$using_x11"
 test "${test_xrender+set}" = set || test_xrender="$using_x11"
 test "${using_headless_plugin+set}" = set || 
using_headless_plugin="$using_freetype_fontconfig"
@@ -1163,6 +1164,7 @@ disable_x11_tests()
     test_gtk4=no
     test_kf5=no
     test_qt5=no
+    test_qt6=no
     test_randr=no
     test_xrender=no
 }
@@ -1668,6 +1670,12 @@ AC_ARG_ENABLE(qt5,
          available.]),
 ,)
 
+AC_ARG_ENABLE(qt6,
+    AS_HELP_STRING([--enable-qt6],
+        [Determines whether to use Qt6 vclplug on platforms where Qt6 is
+         available.]),
+,)
+
 AC_ARG_ENABLE(kf5,
     AS_HELP_STRING([--enable-kf5],
         [Determines whether to use Qt5/KF5 vclplug on platforms where Qt5 and
@@ -11580,6 +11588,15 @@ if test "x$enable_qt5" = "xyes"; then
 fi
 AC_SUBST(ENABLE_QT5)
 
+ENABLE_QT6=""
+if test "x$enable_qt6" = "xyes"; then
+    ENABLE_QT6="TRUE"
+    AC_DEFINE(ENABLE_QT6)
+    R="$R qt6"
+fi
+AC_SUBST(ENABLE_QT6)
+
+
 ENABLE_KF5=""
 if test "x$enable_kf5" = "xyes"; then
     ENABLE_KF5="TRUE"
@@ -12721,7 +12738,7 @@ AC_SUBST(ENABLE_SCRIPTING_JAVASCRIPT)
 AC_SUBST(SYSTEM_RHINO)
 AC_SUBST(RHINO_JAR)
 
-# This is only used in Qt5/KF5 checks to determine if /usr/lib64
+# This is only used in Qt5/Qt6/KF5 checks to determine if /usr/lib64
 # paths should be added to library search path. So lets put all 64-bit
 # platforms there.
 supports_multilib=
@@ -12882,6 +12899,123 @@ AC_SUBST(QT5_GOBJECT_LIBS)
 AC_SUBST(QT5_HAVE_GOBJECT)
 AC_SUBST(QT5_PLATFORMS_SRCDIR)
 
+dnl ===================================================================
+dnl QT6 Integration
+dnl ===================================================================
+
+QT6_CFLAGS=""
+QT6_LIBS=""
+QMAKE6="qmake"
+MOC6="moc"
+QT6_PLATFORMS_SRCDIR=""
+if test \( "$test_qt6" = "yes" -a "$ENABLE_QT6" = "TRUE" \)
+then
+    qt6_incdirs="$QT6INC /usr/include/qt6 /usr/include $x_includes"
+    qt6_libdirs="$QT6LIB /usr/lib/qt6 /usr/lib $x_libraries"
+
+    if test -n "$supports_multilib"; then
+        qt6_libdirs="$qt6_libdirs /usr/lib64/qt6 /usr/lib64/qt /usr/lib64"
+    fi
+
+    qt6_test_include="QtWidgets/qapplication.h"
+    if test "$_os" = "Emscripten"; then
+        qt6_test_library="libQt6Widgets.a"
+    else
+        qt6_test_library="libQt6Widgets.so"
+    fi
+
+    dnl Check for qmake6
+    if test -n "$QT6DIR"; then
+        AC_PATH_PROG(QMAKE6, [qmake], no, [$QT6DIR/bin])
+    else
+        AC_PATH_PROGS(QMAKE6, [qmake-qt6 qmake], no)
+    fi
+    if test "$QMAKE6" = "no"; then
+        AC_MSG_ERROR([Qmake not found.  Please specify the root of your Qt6 
installation by exporting QT6DIR before running "configure".])
+    else
+        qmake6_test_ver="`$QMAKE6 -v 2>&1 | $SED -n -e 's/^Using Qt version 
\(6\.[[0-9.]]\+\).*$/\1/p'`"
+        if test -z "$qmake6_test_ver"; then
+            AC_MSG_ERROR([Wrong qmake for Qt6 found. Please specify the root 
of your Qt6 installation by exporting QT6DIR before running "configure".])
+        fi
+        AC_MSG_NOTICE([Detected Qt6 version: $qmake6_test_ver])
+    fi
+
+    qt6_incdirs="`$QMAKE6 -query QT_INSTALL_HEADERS` $qt6_incdirs"
+    qt6_libdirs="`$QMAKE6 -query QT_INSTALL_LIBS` $qt6_libdirs"
+    qt6_platformsdir="`$QMAKE6 -query QT_INSTALL_PLUGINS`/platforms"
+    QT6_PLATFORMS_SRCDIR="$qt6_platformsdir"
+
+    AC_MSG_CHECKING([for Qt6 headers])
+    qt6_incdir="no"
+    for inc_dir in $qt6_incdirs; do
+        if test -r "$inc_dir/$qt6_test_include"; then
+            qt6_incdir="$inc_dir"
+            break
+        fi
+    done
+    AC_MSG_RESULT([$qt6_incdir])
+    if test "x$qt6_incdir" = "xno"; then
+        AC_MSG_ERROR([Qt6 headers not found.  Please specify the root of your 
Qt6 installation by exporting QT6DIR before running "configure".])
+    fi
+    # check for scenario: qt6-qtbase-devel-*.86_64 installed but host is i686
+    AC_LANG_PUSH([C++])
+    save_CPPFLAGS=$CPPFLAGS
+    CPPFLAGS="${CPPFLAGS} -I${qt6_incdir}"
+    AC_CHECK_HEADER(QtCore/qconfig.h, [],
+        [AC_MSG_ERROR(qconfig.h header not found.)], [])
+    CPPFLAGS=$save_CPPFLAGS
+    AC_LANG_POP([C++])
+
+    AC_MSG_CHECKING([for Qt6 libraries])
+    qt6_libdir="no"
+    for lib_dir in $qt6_libdirs; do
+        if test -r "$lib_dir/$qt6_test_library"; then
+            qt6_libdir="$lib_dir"
+            break
+        fi
+    done
+    AC_MSG_RESULT([$qt6_libdir])
+    if test "x$qt6_libdir" = "xno"; then
+        AC_MSG_ERROR([Qt6 libraries not found.  Please specify the root of 
your Qt6 installation by exporting QT6DIR before running "configure".])
+    fi
+
+    if test "$_os" = "Emscripten"; then
+        if test ! -f "$QT6_PLATFORMS_SRCDIR"/wasm_shell.html ; then
+            
QT6_PLATFORMS_SRCDIR="${QT6_PLATFORMS_SRCDIR/plugins/src\/plugins}/wasm"
+        fi
+        if test ! -f "${qt6_platformsdir}"/libqwasm.a -o ! -f 
"$QT6_PLATFORMS_SRCDIR"/wasm_shell.html; then
+            AC_MSG_ERROR([No Qt6 WASM QPA plugin found in ${qt6_platformsdir} 
or ${QT6_PLATFORMS_SRCDIR}])
+        fi
+    fi
+
+    QT6_CFLAGS="-I$qt6_incdir -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT 
-DQT_NO_VERSION_TAGGING"
+    QT6_CFLAGS=$(printf '%s' "$QT6_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
+    QT6_LIBS="-L$qt6_libdir -lQt6Core -lQt6Gui -lQt6Widgets -lQt6Network"
+    if test "$_os" = "Emscripten"; then
+        QT6_LIBS="$QT6_LIBS -lqtpcre2 -lQt6EventDispatcherSupport 
-lQt6FontDatabaseSupport -L${qt6_platformsdir} -lqwasm"
+    fi
+
+    if test "$USING_X11" = TRUE; then
+        PKG_CHECK_MODULES(QT6_XCB,[xcb],,[AC_MSG_ERROR([XCB not found, which 
is needed for key modifier handling in X11.])])
+        QT6_CFLAGS="$QT6_CFLAGS $QT6_XCB_CFLAGS"
+        QT6_LIBS="$QT6_LIBS $QT6_XCB_LIBS"
+        QT6_USING_X11=1
+        AC_DEFINE(QT6_USING_X11)
+    fi
+
+    dnl Check for Meta Object Compiler
+
+    AC_PATH_PROGS( MOC6, [moc-qt6 moc], no, [`dirname 
$qt6_libdir`/libexec:$QT6DIR/libexec:$PATH])
+    if test "$MOC6" = "no"; then
+        AC_MSG_ERROR([Qt Meta Object Compiler not found.  Please specify
+the root of your Qt installation by exporting QT6DIR before running 
"configure".])
+    fi
+fi
+AC_SUBST(QT6_CFLAGS)
+AC_SUBST(QT6_LIBS)
+AC_SUBST(MOC6)
+AC_SUBST(QT6_PLATFORMS_SRCDIR)
+
 dnl ===================================================================
 dnl KF5 Integration
 dnl ===================================================================
diff --git a/solenv/gbuild/CppunitTest.mk b/solenv/gbuild/CppunitTest.mk
index ce6437bf07bd..895cb3edca49 100644
--- a/solenv/gbuild/CppunitTest.mk
+++ b/solenv/gbuild/CppunitTest.mk
@@ -238,6 +238,7 @@ $(call gb_CppunitTest_get_target,$(1)) : $(if $(filter 
$(2),$(true)),, \
         $(if $(ENABLE_GTK3),$(call gb_Library_get_target,vclplug_gtk3)) \
         $(if $(ENABLE_GTK4),$(call gb_Library_get_target,vclplug_gtk4)) \
         $(if $(ENABLE_QT5),$(call gb_Library_get_target,vclplug_qt5)) \
+        $(if $(ENABLE_QT6),$(call gb_Library_get_target,vclplug_qt6)) \
         )
 else ifeq ($(OS),MACOSX)
 $(call gb_CppunitTest_get_target,$(1)): $(call 
gb_Library_get_target,vclplug_osx)
diff --git a/vcl/CustomTarget_qt6_moc.mk b/vcl/CustomTarget_qt6_moc.mk
new file mode 100644
index 000000000000..9badd7592e92
--- /dev/null
+++ b/vcl/CustomTarget_qt6_moc.mk
@@ -0,0 +1,39 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_CustomTarget_CustomTarget,vcl/qt6))
+
+$(call gb_CustomTarget_get_target,vcl/qt6) : \
+       $(call gb_CustomTarget_get_workdir,vcl/qt6)/QtAccessibleWidget.moc \
+       $(call gb_CustomTarget_get_workdir,vcl/qt6)/QtClipboard.moc \
+       $(call gb_CustomTarget_get_workdir,vcl/qt6)/QtFilePicker.moc \
+       $(call gb_CustomTarget_get_workdir,vcl/qt6)/QtFrame.moc \
+       $(call gb_CustomTarget_get_workdir,vcl/qt6)/QtInstance.moc \
+       $(call gb_CustomTarget_get_workdir,vcl/qt6)/QtMainWindow.moc \
+       $(call gb_CustomTarget_get_workdir,vcl/qt6)/QtMenu.moc \
+       $(call gb_CustomTarget_get_workdir,vcl/qt6)/QtObject.moc \
+       $(call gb_CustomTarget_get_workdir,vcl/qt6)/QtTimer.moc \
+       $(call gb_CustomTarget_get_workdir,vcl/qt6)/QtWidget.moc \
+       $(call gb_CustomTarget_get_workdir,vcl/qt6)/QtXAccessible.moc \
+
+# For now, the headers in vcl/inc/qt6 just '#include' the ones
+# in 'vcl/inc/qt5'.
+# Since moc does not process classes from the included headers,
+# it needs to be run on the headers in the qt5 dir.
+# That will have to be adapted in case the qt6 VCL plugin
+# uses "own" headers
+$(call gb_CustomTarget_get_workdir,vcl/qt6)/%.moc : \
+               $(SRCDIR)/vcl/inc/qt5/%.hxx \
+               | $(call gb_CustomTarget_get_workdir,vcl/qt6)/.dir
+       $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),MOC,1)
+       $(call gb_Trace_StartRange,$(subst $(WORKDIR)/,,$@),MOC)
+       $(MOC6) $< -o $@
+       $(call gb_Trace_EndRange,$(subst $(WORKDIR)/,,$@),MOC)
+
+# vim: set noet sw=4:
diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk
index 1470c0e1f08f..d67f87d3fb9b 100644
--- a/vcl/Library_vcl.mk
+++ b/vcl/Library_vcl.mk
@@ -659,6 +659,7 @@ $(eval $(call gb_Library_add_libs,vcl,\
 
 $(eval $(call gb_Library_add_exception_objects,vcl, \
     $(if $(or $(ENABLE_QT5),$(ENABLE_KF5)),vcl/source/app/salplug) \
+    $(if $(ENABLE_QT6),vcl/source/app/salplug) \
 ))
 
 $(eval $(call gb_Library_use_externals,vcl,\
diff --git a/vcl/Library_vclplug_qt6.mk b/vcl/Library_vclplug_qt6.mk
new file mode 100644
index 000000000000..8845da72d604
--- /dev/null
+++ b/vcl/Library_vclplug_qt6.mk
@@ -0,0 +1,124 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This file incorporates work covered by the following license notice:
+#
+#   Licensed to the Apache Software Foundation (ASF) under one or more
+#   contributor license agreements. See the NOTICE file distributed
+#   with this work for additional information regarding copyright
+#   ownership. The ASF licenses this file to you under the Apache
+#   License, Version 2.0 (the "License"); you may not use this file
+#   except in compliance with the License. You may obtain a copy of
+#   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+#
+
+$(eval $(call gb_Library_Library,vclplug_qt6))
+
+$(eval $(call gb_Library_use_custom_headers,vclplug_qt6,vcl/qt6))
+
+$(eval $(call gb_Library_set_include,vclplug_qt6,\
+    $$(INCLUDE) \
+    -I$(SRCDIR)/vcl/inc \
+    -I$(SRCDIR)/vcl/inc/qt6 \
+))
+
+$(eval $(call gb_Library_add_defs,vclplug_qt6,\
+    -DVCLPLUG_QT_IMPLEMENTATION \
+    -DVCL_INTERNALS \
+))
+
+$(eval $(call gb_Library_use_sdk_api,vclplug_qt6))
+
+$(eval $(call gb_Library_use_libraries,vclplug_qt6,\
+    vcl \
+    tl \
+    utl \
+    sot \
+    ucbhelper \
+    basegfx \
+    comphelper \
+    cppuhelper \
+    i18nlangtag \
+    i18nutil \
+    $(if $(ENABLE_JAVA), \
+        jvmaccess) \
+    cppu \
+    sal \
+    salhelper \
+))
+
+$(eval $(call gb_Library_use_externals,vclplug_qt6,\
+    boost_headers \
+    cairo \
+    epoxy \
+    graphite \
+    harfbuzz \
+    icu_headers \
+    icuuc \
+    qt6 \
+))
+
+ifneq ($(QT6_HAVE_GOBJECT),)
+$(eval $(call gb_Library_add_cxxflags,vclplug_qt6,\
+    $(QT6_GOBJECT_CFLAGS) \
+))
+$(eval $(call gb_Library_add_libs,vclplug_qt6,\
+    $(QT6_GOBJECT_LIBS) \
+))
+endif
+
+$(eval $(call gb_Library_add_exception_objects,vclplug_qt6,\
+    vcl/qt6/QtAccessibleEventListener \
+    vcl/qt6/QtAccessibleWidget \
+    vcl/qt6/QtBitmap \
+    vcl/qt6/QtClipboard \
+    vcl/qt6/QtData \
+    vcl/qt6/QtDragAndDrop \
+    vcl/qt6/QtFilePicker \
+    vcl/qt6/QtFont \
+    vcl/qt6/QtFontFace \
+    vcl/qt6/QtFrame \
+    vcl/qt6/QtGraphics \
+    vcl/qt6/QtGraphics_Controls \
+    vcl/qt6/QtGraphics_GDI \
+    vcl/qt6/QtGraphics_Text \
+    vcl/qt6/QtInstance \
+    vcl/qt6/QtInstance_Print \
+    vcl/qt6/QtMainWindow \
+    vcl/qt6/QtMenu \
+    vcl/qt6/QtObject \
+    vcl/qt6/QtOpenGLContext \
+    vcl/qt6/QtPainter \
+    vcl/qt6/QtPrinter \
+    vcl/qt6/QtSvpGraphics \
+    vcl/qt6/QtSvpSurface \
+    vcl/qt6/QtSystem \
+    vcl/qt6/QtTimer \
+    vcl/qt6/QtTools \
+    vcl/qt6/QtTransferable \
+    vcl/qt6/QtVirtualDevice \
+    vcl/qt6/QtWidget \
+    vcl/qt6/QtXAccessible \
+))
+
+ifeq ($(OS),LINUX)
+$(eval $(call gb_Library_add_libs,vclplug_qt6,\
+       -lm \
+       -ldl \
+))
+endif
+
+# Workaround for clang+icecream (clang's -frewrite-includes
+# doesn't handle Qt6's QT_HAS_INCLUDE that Qt6 uses for <chrono>).
+ifeq ($(COM_IS_CLANG),TRUE)
+$(eval $(call gb_Library_add_cxxflags,vclplug_qt6, \
+    -include chrono \
+))
+endif
+
+# vim: set noet sw=4 ts=4:
diff --git a/vcl/Module_vcl.mk b/vcl/Module_vcl.mk
index 00d7e8deef63..f85bac2f1cb7 100644
--- a/vcl/Module_vcl.mk
+++ b/vcl/Module_vcl.mk
@@ -89,6 +89,12 @@ $(eval $(call gb_Module_add_targets,vcl,\
     Library_vclplug_qt5 \
 ))
 endif
+ifneq ($(ENABLE_QT6),)
+$(eval $(call gb_Module_add_targets,vcl,\
+    CustomTarget_qt6_moc \
+    Library_vclplug_qt6 \
+))
+endif
 ifneq ($(ENABLE_GTK3_KDE5),)
 $(eval $(call gb_Module_add_targets,vcl,\
     CustomTarget_gtk3_kde5_moc \
@@ -119,6 +125,13 @@ $(eval $(call gb_Module_add_targets,vcl,\
     Library_vclplug_qt5 \
 ))
 endif
+ifneq ($(ENABLE_QT6),)
+$(eval $(call gb_Module_add_targets,vcl,\
+    CustomTarget_qt6_moc \
+    Library_vclplug_qt6 \
+))
+endif
+
 ifneq ($(ENABLE_KF5),)
 $(eval $(call gb_Module_add_targets,vcl,\
     CustomTarget_kf5_moc \
diff --git a/vcl/inc/qt5/QtFrame.hxx b/vcl/inc/qt5/QtFrame.hxx
index d2265229e267..23c92d7e1da3 100644
--- a/vcl/inc/qt5/QtFrame.hxx
+++ b/vcl/inc/qt5/QtFrame.hxx
@@ -32,7 +32,7 @@
 
 #include <QtCore/QObject>
 
-#if QT5_USING_X11
+#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) && QT5_USING_X11
 #include <unx/screensaverinhibitor.hxx>
 // any better way to get rid of the X11 / Qt type clashes?
 #undef Bool
@@ -100,8 +100,11 @@ class VCLPLUG_QT_PUBLIC QtFrame : public QObject, public 
SalFrame
     sal_uInt32 m_nRestoreScreen;
     QRect m_aRestoreGeometry;
 
-#if QT5_USING_X11
+#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) && QT5_USING_X11
     ScreenSaverInhibitor m_ScreenSaverInhibitor;
+#endif
+#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0) && QT5_USING_X11)                  
                    \
+    || (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) && QT6_USING_X11)
     ModKeyFlags m_nKeyModifiers;
 #endif
 
diff --git a/vcl/inc/qt5/QtTransferable.hxx b/vcl/inc/qt5/QtTransferable.hxx
index 8a4410535359..f2997089c037 100644
--- a/vcl/inc/qt5/QtTransferable.hxx
+++ b/vcl/inc/qt5/QtTransferable.hxx
@@ -108,7 +108,11 @@ class QtMimeData final : public QMimeData
     mutable bool m_bHaveUTF8;
     mutable QStringList m_aMimeTypeList;
 
+#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
     QVariant retrieveData(const QString& mimeType, QVariant::Type type) const 
override;
+#else
+    QVariant retrieveData(const QString& mimeType, QMetaType type) const 
override;
+#endif
 
 public:
     explicit QtMimeData(const 
css::uno::Reference<css::datatransfer::XTransferable>& aContents);
diff --git a/vcl/inc/qt6/QtAccessibleEventListener.hxx 
b/vcl/inc/qt6/QtAccessibleEventListener.hxx
new file mode 100644
index 000000000000..7f67ea9fe937
--- /dev/null
+++ b/vcl/inc/qt6/QtAccessibleEventListener.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtAccessibleEventListener.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtAccessibleWidget.hxx 
b/vcl/inc/qt6/QtAccessibleWidget.hxx
new file mode 100644
index 000000000000..937012308d17
--- /dev/null
+++ b/vcl/inc/qt6/QtAccessibleWidget.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtAccessibleWidget.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtBitmap.hxx b/vcl/inc/qt6/QtBitmap.hxx
new file mode 100644
index 000000000000..78332058e33f
--- /dev/null
+++ b/vcl/inc/qt6/QtBitmap.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtBitmap.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtClipboard.hxx b/vcl/inc/qt6/QtClipboard.hxx
new file mode 100644
index 000000000000..0f3b718b880a
--- /dev/null
+++ b/vcl/inc/qt6/QtClipboard.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtClipboard.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtData.hxx b/vcl/inc/qt6/QtData.hxx
new file mode 100644
index 000000000000..827f3b6af615
--- /dev/null
+++ b/vcl/inc/qt6/QtData.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtData.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtDragAndDrop.hxx b/vcl/inc/qt6/QtDragAndDrop.hxx
new file mode 100644
index 000000000000..9f8056d9cf71
--- /dev/null
+++ b/vcl/inc/qt6/QtDragAndDrop.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtDragAndDrop.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtFilePicker.hxx b/vcl/inc/qt6/QtFilePicker.hxx
new file mode 100644
index 000000000000..20a3f6d5cea1
--- /dev/null
+++ b/vcl/inc/qt6/QtFilePicker.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtFilePicker.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtFont.hxx b/vcl/inc/qt6/QtFont.hxx
new file mode 100644
index 000000000000..a477a46bbe57
--- /dev/null
+++ b/vcl/inc/qt6/QtFont.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtFont.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtFontFace.hxx b/vcl/inc/qt6/QtFontFace.hxx
new file mode 100644
index 000000000000..875fa0812758
--- /dev/null
+++ b/vcl/inc/qt6/QtFontFace.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtFontFace.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtFrame.hxx b/vcl/inc/qt6/QtFrame.hxx
new file mode 100644
index 000000000000..6b6bae498c55
--- /dev/null
+++ b/vcl/inc/qt6/QtFrame.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtFrame.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtGraphics.hxx b/vcl/inc/qt6/QtGraphics.hxx
new file mode 100644
index 000000000000..91e080807581
--- /dev/null
+++ b/vcl/inc/qt6/QtGraphics.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtGraphics.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtGraphicsBase.hxx b/vcl/inc/qt6/QtGraphicsBase.hxx
new file mode 100644
index 000000000000..31bcfc32429e
--- /dev/null
+++ b/vcl/inc/qt6/QtGraphicsBase.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtGraphicsBase.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtGraphics_Controls.hxx 
b/vcl/inc/qt6/QtGraphics_Controls.hxx
new file mode 100644
index 000000000000..9601a2ace451
--- /dev/null
+++ b/vcl/inc/qt6/QtGraphics_Controls.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtGraphics_Controls.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtInstance.hxx b/vcl/inc/qt6/QtInstance.hxx
new file mode 100644
index 000000000000..65eec7db3288
--- /dev/null
+++ b/vcl/inc/qt6/QtInstance.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtInstance.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtMainWindow.hxx b/vcl/inc/qt6/QtMainWindow.hxx
new file mode 100644
index 000000000000..bef22b2b6142
--- /dev/null
+++ b/vcl/inc/qt6/QtMainWindow.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtMainWindow.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtMenu.hxx b/vcl/inc/qt6/QtMenu.hxx
new file mode 100644
index 000000000000..42df15e37bbd
--- /dev/null
+++ b/vcl/inc/qt6/QtMenu.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtMenu.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtObject.hxx b/vcl/inc/qt6/QtObject.hxx
new file mode 100644
index 000000000000..b4a7f5121241
--- /dev/null
+++ b/vcl/inc/qt6/QtObject.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtObject.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtOpenGLContext.hxx b/vcl/inc/qt6/QtOpenGLContext.hxx
new file mode 100644
index 000000000000..1a82e2dba405
--- /dev/null
+++ b/vcl/inc/qt6/QtOpenGLContext.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtOpenGLContext.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtPainter.hxx b/vcl/inc/qt6/QtPainter.hxx
new file mode 100644
index 000000000000..791d633355ed
--- /dev/null
+++ b/vcl/inc/qt6/QtPainter.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtPainter.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtPrinter.hxx b/vcl/inc/qt6/QtPrinter.hxx
new file mode 100644
index 000000000000..f9caeb40fcbf
--- /dev/null
+++ b/vcl/inc/qt6/QtPrinter.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtPrinter.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtSvpGraphics.hxx b/vcl/inc/qt6/QtSvpGraphics.hxx
new file mode 100644
index 000000000000..ab002c09b9a6
--- /dev/null
+++ b/vcl/inc/qt6/QtSvpGraphics.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtSvpGraphics.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtSvpSurface.hxx b/vcl/inc/qt6/QtSvpSurface.hxx
new file mode 100644
index 000000000000..952bb4de553f
--- /dev/null
+++ b/vcl/inc/qt6/QtSvpSurface.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtSvpSurface.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtSystem.hxx b/vcl/inc/qt6/QtSystem.hxx
new file mode 100644
index 000000000000..1a91f678a250
--- /dev/null
+++ b/vcl/inc/qt6/QtSystem.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtSystem.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtTimer.hxx b/vcl/inc/qt6/QtTimer.hxx
new file mode 100644
index 000000000000..9ef6563ebcdf
--- /dev/null
+++ b/vcl/inc/qt6/QtTimer.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtTimer.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtTools.hxx b/vcl/inc/qt6/QtTools.hxx
new file mode 100644
index 000000000000..e6078fb14314
--- /dev/null
+++ b/vcl/inc/qt6/QtTools.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtTools.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtTransferable.hxx b/vcl/inc/qt6/QtTransferable.hxx
new file mode 100644
index 000000000000..f3cd0a9107a6
--- /dev/null
+++ b/vcl/inc/qt6/QtTransferable.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtTransferable.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtVirtualDevice.hxx b/vcl/inc/qt6/QtVirtualDevice.hxx
new file mode 100644
index 000000000000..3e57fb2b032a
--- /dev/null
+++ b/vcl/inc/qt6/QtVirtualDevice.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtVirtualDevice.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtWidget.hxx b/vcl/inc/qt6/QtWidget.hxx
new file mode 100644
index 000000000000..486af7c19fcf
--- /dev/null
+++ b/vcl/inc/qt6/QtWidget.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtWidget.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt6/QtXAccessible.hxx b/vcl/inc/qt6/QtXAccessible.hxx
new file mode 100644
index 000000000000..e591a7764782
--- /dev/null
+++ b/vcl/inc/qt6/QtXAccessible.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtXAccessible.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt5/QtFrame.cxx b/vcl/qt5/QtFrame.cxx
index 23a051e75862..60e83ce1a423 100644
--- a/vcl/qt5/QtFrame.cxx
+++ b/vcl/qt5/QtFrame.cxx
@@ -51,7 +51,7 @@
 #include <QtWidgets/QMenuBar>
 #include <QtWidgets/QMainWindow>
 
-#if QT5_USING_X11
+#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) && QT5_USING_X11
 #include <QtX11Extras/QX11Info>
 #include <xcb/xproto.h>
 #if QT5_HAVE_XCB_ICCCM
@@ -68,7 +68,7 @@
 #include <cairo.h>
 #include <headless/svpgdi.hxx>
 
-#if QT5_USING_X11 && QT5_HAVE_XCB_ICCCM
+#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) && QT5_USING_X11 && 
QT5_HAVE_XCB_ICCCM
 static bool g_bNeedsWmHintsWindowGroup = true;
 static xcb_atom_t g_aXcbClientLeaderAtom = 0;
 #endif
@@ -115,7 +115,8 @@ QtFrame::QtFrame(QtFrame* pParent, SalFrameStyleFlags 
nStyle, bool bUseCairo)
     , m_bDefaultPos(true)
     , m_bFullScreen(false)
     , m_bFullScreenSpanAll(false)
-#if QT5_USING_X11
+#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0) && QT5_USING_X11)                  
                    \
+    || (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) && QT6_USING_X11)
     , m_nKeyModifiers(ModKeyFlags::NONE)
 #endif
     , m_nInputLanguage(LANGUAGE_DONTKNOW)
@@ -217,7 +218,7 @@ QtFrame::QtFrame(QtFrame* pParent, SalFrameStyleFlags 
nStyle, bool bUseCairo)
 
 void QtFrame::fixICCCMwindowGroup()
 {
-#if QT5_USING_X11 && QT5_HAVE_XCB_ICCCM
+#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) && QT5_USING_X11 && 
QT5_HAVE_XCB_ICCCM
     // older Qt5 just sets WM_CLIENT_LEADER, but not the 
XCB_ICCCM_WM_HINT_WINDOW_GROUP
     // see Qt commit 0de4b326d8 ("xcb: fix issue with dialogs hidden by other 
windows")
     // or QTBUG-46626. So LO has to set this itself to help some WMs.
@@ -739,7 +740,7 @@ void QtFrame::StartPresentation(bool bStart)
 {
 // meh - so there's no Qt platform independent solution
 // 
https://forum.qt.io/topic/38504/solved-qdialog-in-fullscreen-disable-os-screensaver
-#if QT5_USING_X11
+#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) && QT5_USING_X11
     std::optional<unsigned int> aRootWindow;
     std::optional<Display*> aDisplay;
 
@@ -1256,7 +1257,7 @@ void QtFrame::SetScreenNumber(unsigned int nScreen)
 
 void QtFrame::SetApplicationID(const OUString& rWMClass)
 {
-#if QT5_USING_X11
+#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) && QT5_USING_X11
     if (QGuiApplication::platformName() != "xcb" || !m_pTopLevel)
         return;
 
@@ -1323,11 +1324,14 @@ lcl_getXTransferable(const QMimeData* pMimeData)
 static sal_Int8 lcl_getUserDropAction(const QDropEvent* pEvent, const sal_Int8 
nSourceActions,
                                       const QMimeData* pMimeData)
 {
-    // we completely ignore all proposals by the Qt event, as they don't
-    // match at all with the preferred LO DnD actions.
-
-    // check the key modifiers to detect a user-overridden DnD action
+// we completely ignore all proposals by the Qt event, as they don't
+// match at all with the preferred LO DnD actions.
+// check the key modifiers to detect a user-overridden DnD action
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+    const Qt::KeyboardModifiers eKeyMod = pEvent->modifiers();
+#else
     const Qt::KeyboardModifiers eKeyMod = pEvent->keyboardModifiers();
+#endif
     sal_Int8 nUserDropAction = 0;
     if ((eKeyMod & Qt::ShiftModifier) && !(eKeyMod & Qt::ControlModifier))
         nUserDropAction = css::datatransfer::dnd::DNDConstants::ACTION_MOVE;
@@ -1366,7 +1370,12 @@ void QtFrame::handleDragMove(QDragMoveEvent* pEvent)
     const sal_Int8 nSourceActions = 
toVclDropActions(pEvent->possibleActions());
     const QMimeData* pMimeData = pEvent->mimeData();
     const sal_Int8 nUserDropAction = lcl_getUserDropAction(pEvent, 
nSourceActions, pMimeData);
+
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+    const Point aPos = toPoint(pEvent->position().toPoint() * 
devicePixelRatioF());
+#else
     const Point aPos = toPoint(pEvent->pos() * devicePixelRatioF());
+#endif
 
     css::datatransfer::dnd::DropTargetDragEnterEvent aEvent;
     aEvent.Source = 
static_cast<css::datatransfer::dnd::XDropTarget*>(m_pDropTarget);
@@ -1404,7 +1413,12 @@ void QtFrame::handleDrop(QDropEvent* pEvent)
     const sal_Int8 nSourceActions = 
toVclDropActions(pEvent->possibleActions());
     const sal_Int8 nUserDropAction
         = lcl_getUserDropAction(pEvent, nSourceActions, pEvent->mimeData());
+
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+    const Point aPos = toPoint(pEvent->position().toPoint() * 
devicePixelRatioF());
+#else
     const Point aPos = toPoint(pEvent->pos() * devicePixelRatioF());
+#endif
 
     css::datatransfer::dnd::DropTargetDropEvent aEvent;
     aEvent.Source = 
static_cast<css::datatransfer::dnd::XDropTarget*>(m_pDropTarget);
diff --git a/vcl/qt5/QtInstance.cxx b/vcl/qt5/QtInstance.cxx
index f641dda8e9ef..730e722754c9 100644
--- a/vcl/qt5/QtInstance.cxx
+++ b/vcl/qt5/QtInstance.cxx
@@ -48,7 +48,9 @@
 #include <comphelper/flagguard.hxx>
 #include <sal/log.hxx>
 #include <osl/process.h>
+#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) && ENABLE_GSTREAMER_1_0 && 
QT5_HAVE_GOBJECT
 #include <unx/gstsink.hxx>
+#endif
 #include <headless/svpbmp.hxx>
 
 #include <mutex>
@@ -564,7 +566,8 @@ void QtInstance::UpdateStyle(bool bFontsChanged)
 
 void* QtInstance::CreateGStreamerSink(const SystemChildWindow* pWindow)
 {
-#if ENABLE_GSTREAMER_1_0 && QT5_HAVE_GOBJECT
+// As of 2021-09, qt-gstreamer is unmaintained and there is no Qt 6 video sink
+#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) && ENABLE_GSTREAMER_1_0 && 
QT5_HAVE_GOBJECT
     auto pSymbol = gstElementFactoryNameSymbol();
     if (!pSymbol)
         return nullptr;
@@ -654,9 +657,13 @@ void QtInstance::MoveFakeCmdlineArgs(std::unique_ptr<char* 
[]>& rFakeArgv,
 
 std::unique_ptr<QApplication> QtInstance::CreateQApplication(int& nArgc, 
char** pArgv)
 {
+#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
+    // for Qt 6, setting Qt::AA_EnableHighDpiScaling and 
Qt::AA_UseHighDpiPixmaps
+    // is deprecated, they're always enabled
     QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
     // for scaled icons in the native menus
     QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
+#endif
 
     FreeableCStr session_manager;
     if (getenv("SESSION_MANAGER") != nullptr)
diff --git a/vcl/qt5/QtMenu.cxx b/vcl/qt5/QtMenu.cxx
index 6ba35daa0429..c6224b137665 100644
--- a/vcl/qt5/QtMenu.cxx
+++ b/vcl/qt5/QtMenu.cxx
@@ -14,6 +14,12 @@
 #include <QtInstance.hxx>
 #include <QtMainWindow.hxx>
 
+#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
+#include <QtWidgets/QActionGroup>
+#else
+#include <QtGui/QActionGroup>
+#endif
+
 #include <QtWidgets/QMenuBar>
 #include <QtWidgets/QPushButton>
 
diff --git a/vcl/qt5/QtTransferable.cxx b/vcl/qt5/QtTransferable.cxx
index cf92f57ab47b..60cd195f4ddc 100644
--- a/vcl/qt5/QtTransferable.cxx
+++ b/vcl/qt5/QtTransferable.cxx
@@ -274,7 +274,11 @@ QStringList QtMimeData::formats() const
     return m_aMimeTypeList;
 }
 
+#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
 QVariant QtMimeData::retrieveData(const QString& mimeType, QVariant::Type) 
const
+#else
+QVariant QtMimeData::retrieveData(const QString& mimeType, QMetaType) const
+#endif
 {
     if (!hasFormat(mimeType))
         return QVariant();
diff --git a/vcl/qt5/QtWidget.cxx b/vcl/qt5/QtWidget.cxx
index 12e101d48224..7c40ea1c4baf 100644
--- a/vcl/qt5/QtWidget.cxx
+++ b/vcl/qt5/QtWidget.cxx
@@ -53,7 +53,8 @@
 #include <com/sun/star/accessibility/XAccessibleContext.hpp>
 #include <com/sun/star/accessibility/XAccessibleEditableText.hpp>
 
-#if QT5_USING_X11
+#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0) && QT5_USING_X11)                  
                    \
+    || (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) && QT6_USING_X11)
 #define XK_MISCELLANY
 #include <X11/keysymdef.h>
 #endif
@@ -460,7 +461,8 @@ bool QtWidget::handleKeyEvent(QtFrame& rFrame, const 
QWidget& rWidget, QKeyEvent
         aModEvt.mbDown = eState == ButtonKeyState::Pressed;
         aModEvt.mnModKeyCode = ModKeyFlags::NONE;
 
-#if QT5_USING_X11
+#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0) && QT5_USING_X11)                  
                    \
+    || (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) && QT6_USING_X11)
         if (QGuiApplication::platformName() == "xcb")
         {
             // pressing just the ctrl key leads to a keysym of XK_Control but
diff --git a/vcl/qt6/QtAccessibleEventListener.cxx 
b/vcl/qt6/QtAccessibleEventListener.cxx
new file mode 100644
index 000000000000..9a0c401af63b
--- /dev/null
+++ b/vcl/qt6/QtAccessibleEventListener.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtAccessibleEventListener.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtAccessibleWidget.cxx b/vcl/qt6/QtAccessibleWidget.cxx
new file mode 100644
index 000000000000..c850d63118b0
--- /dev/null
+++ b/vcl/qt6/QtAccessibleWidget.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtAccessibleWidget.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtBitmap.cxx b/vcl/qt6/QtBitmap.cxx
new file mode 100644
index 000000000000..fe82d077d8e8
--- /dev/null
+++ b/vcl/qt6/QtBitmap.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtBitmap.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtClipboard.cxx b/vcl/qt6/QtClipboard.cxx
new file mode 100644
index 000000000000..b5ed788e71bd
--- /dev/null
+++ b/vcl/qt6/QtClipboard.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtClipboard.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtData.cxx b/vcl/qt6/QtData.cxx
new file mode 100644
index 000000000000..73035751aa6f
--- /dev/null
+++ b/vcl/qt6/QtData.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtData.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtDragAndDrop.cxx b/vcl/qt6/QtDragAndDrop.cxx
new file mode 100644
index 000000000000..7c30624019ed
--- /dev/null
+++ b/vcl/qt6/QtDragAndDrop.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtDragAndDrop.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtFilePicker.cxx b/vcl/qt6/QtFilePicker.cxx
new file mode 100644
index 000000000000..5dda50afdfdf
--- /dev/null
+++ b/vcl/qt6/QtFilePicker.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtFilePicker.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtFont.cxx b/vcl/qt6/QtFont.cxx
new file mode 100644
index 000000000000..0af6c3addd83
--- /dev/null
+++ b/vcl/qt6/QtFont.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtFont.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtFontFace.cxx b/vcl/qt6/QtFontFace.cxx
new file mode 100644
index 000000000000..1dda71dbd40b
--- /dev/null
+++ b/vcl/qt6/QtFontFace.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtFontFace.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtFrame.cxx b/vcl/qt6/QtFrame.cxx
new file mode 100644
index 000000000000..fc15d6b53fa7
--- /dev/null
+++ b/vcl/qt6/QtFrame.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtFrame.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtGraphics.cxx b/vcl/qt6/QtGraphics.cxx
new file mode 100644
index 000000000000..a092d4a5906d
--- /dev/null
+++ b/vcl/qt6/QtGraphics.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtGraphics.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtGraphics_Controls.cxx b/vcl/qt6/QtGraphics_Controls.cxx
new file mode 100644
index 000000000000..1ae93c236a1e
--- /dev/null
+++ b/vcl/qt6/QtGraphics_Controls.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtGraphics_Controls.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtGraphics_GDI.cxx b/vcl/qt6/QtGraphics_GDI.cxx
new file mode 100644
index 000000000000..a7d1bb5027fe
--- /dev/null
+++ b/vcl/qt6/QtGraphics_GDI.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtGraphics_GDI.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtGraphics_Text.cxx b/vcl/qt6/QtGraphics_Text.cxx
new file mode 100644
index 000000000000..d7326b0f20ca
--- /dev/null
+++ b/vcl/qt6/QtGraphics_Text.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtGraphics_Text.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtInstance.cxx b/vcl/qt6/QtInstance.cxx
new file mode 100644
index 000000000000..7b0910e6d37f
--- /dev/null
+++ b/vcl/qt6/QtInstance.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtInstance.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtInstance_Print.cxx b/vcl/qt6/QtInstance_Print.cxx
new file mode 100644
index 000000000000..f08e6e17ed35
--- /dev/null
+++ b/vcl/qt6/QtInstance_Print.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtInstance_Print.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtMainWindow.cxx b/vcl/qt6/QtMainWindow.cxx
new file mode 100644
index 000000000000..e230ccaac6f5
--- /dev/null
+++ b/vcl/qt6/QtMainWindow.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtMainWindow.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtMenu.cxx b/vcl/qt6/QtMenu.cxx
new file mode 100644
index 000000000000..dd85319745ae
--- /dev/null
+++ b/vcl/qt6/QtMenu.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtMenu.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtObject.cxx b/vcl/qt6/QtObject.cxx
new file mode 100644
index 000000000000..e804679c5420
--- /dev/null
+++ b/vcl/qt6/QtObject.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtObject.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtOpenGLContext.cxx b/vcl/qt6/QtOpenGLContext.cxx
new file mode 100644
index 000000000000..80af012c903a
--- /dev/null
+++ b/vcl/qt6/QtOpenGLContext.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtOpenGLContext.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtPainter.cxx b/vcl/qt6/QtPainter.cxx
new file mode 100644
index 000000000000..8a8de83ee299
--- /dev/null
+++ b/vcl/qt6/QtPainter.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtPainter.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtPrinter.cxx b/vcl/qt6/QtPrinter.cxx
new file mode 100644
index 000000000000..8c5b93b2376a
--- /dev/null
+++ b/vcl/qt6/QtPrinter.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtPrinter.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtSvpGraphics.cxx b/vcl/qt6/QtSvpGraphics.cxx
new file mode 100644
index 000000000000..6182d816a157
--- /dev/null
+++ b/vcl/qt6/QtSvpGraphics.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtSvpGraphics.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtSvpSurface.cxx b/vcl/qt6/QtSvpSurface.cxx
new file mode 100644
index 000000000000..7d773a879865
--- /dev/null
+++ b/vcl/qt6/QtSvpSurface.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtSvpSurface.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtSvpVirtualDevice.hxx b/vcl/qt6/QtSvpVirtualDevice.hxx
new file mode 100644
index 000000000000..1639ab1a2256
--- /dev/null
+++ b/vcl/qt6/QtSvpVirtualDevice.hxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtSvpVirtualDevice.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtSystem.cxx b/vcl/qt6/QtSystem.cxx
new file mode 100644
index 000000000000..f7ae8d1c8fa9
--- /dev/null
+++ b/vcl/qt6/QtSystem.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtSystem.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtTimer.cxx b/vcl/qt6/QtTimer.cxx
new file mode 100644
index 000000000000..94ba353a5a1b
--- /dev/null
+++ b/vcl/qt6/QtTimer.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtTimer.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtTools.cxx b/vcl/qt6/QtTools.cxx
new file mode 100644
index 000000000000..0a003b566e0c
--- /dev/null
+++ b/vcl/qt6/QtTools.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtTools.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtTransferable.cxx b/vcl/qt6/QtTransferable.cxx
new file mode 100644
index 000000000000..d6384d5d5be0
--- /dev/null
+++ b/vcl/qt6/QtTransferable.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtTransferable.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtVirtualDevice.cxx b/vcl/qt6/QtVirtualDevice.cxx
new file mode 100644
index 000000000000..5d40d2af1e81
--- /dev/null
+++ b/vcl/qt6/QtVirtualDevice.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtVirtualDevice.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtWidget.cxx b/vcl/qt6/QtWidget.cxx
new file mode 100644
index 000000000000..0e1e3203c321
--- /dev/null
+++ b/vcl/qt6/QtWidget.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtWidget.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qt6/QtXAccessible.cxx b/vcl/qt6/QtXAccessible.cxx
new file mode 100644
index 000000000000..d1a262007b6c
--- /dev/null
+++ b/vcl/qt6/QtXAccessible.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../qt5/QtXAccessible.cxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 51d148c748d8e23b69ba91d3c1b5a9057bd22548
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Wed Sep 29 10:26:03 2021 +0200
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Wed Sep 29 13:50:45 2021 +0200

    qt5: Drop "5" from VCLPLUG_QT5_{IMPLEMENTATION,PUBLIC} defines
    
    Rename those to no more include the Qt version number,
    since they will be used for the upcoming qt6 VCL plugin
    as well.
    
    Change-Id: I49bf362b830e07193dca03524e0d6001d0d191a4
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122807
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/vcl/Library_vclplug_qt5.mk b/vcl/Library_vclplug_qt5.mk
index 1b094fda79f9..32bf4dc215df 100644
--- a/vcl/Library_vclplug_qt5.mk
+++ b/vcl/Library_vclplug_qt5.mk
@@ -29,7 +29,7 @@ $(eval $(call gb_Library_set_include,vclplug_qt5,\
 ))
 
 $(eval $(call gb_Library_add_defs,vclplug_qt5,\
-    -DVCLPLUG_QT5_IMPLEMENTATION \
+    -DVCLPLUG_QT_IMPLEMENTATION \
     -DVCL_INTERNALS \
 ))
 
diff --git a/vcl/inc/qt5/QtData.hxx b/vcl/inc/qt5/QtData.hxx
index ef8ee8f6f8f1..960126f0fde6 100644
--- a/vcl/inc/qt5/QtData.hxx
+++ b/vcl/inc/qt5/QtData.hxx
@@ -28,7 +28,7 @@
 
 class QCursor;
 
-class VCLPLUG_QT5_PUBLIC QtData final : public GenericUnixSalData
+class VCLPLUG_QT_PUBLIC QtData final : public GenericUnixSalData
 {
     o3tl::enumarray<PointerStyle, std::unique_ptr<QCursor>> m_aCursors;
 
diff --git a/vcl/inc/qt5/QtFilePicker.hxx b/vcl/inc/qt5/QtFilePicker.hxx
index ffad1acc6f2f..c1a95f5c64a0 100644
--- a/vcl/inc/qt5/QtFilePicker.hxx
+++ b/vcl/inc/qt5/QtFilePicker.hxx
@@ -54,7 +54,7 @@ typedef 
::cppu::WeakComponentImplHelper<css::frame::XTerminateListener, css::lan
                                         css::ui::dialogs::XFolderPicker2>
     QtFilePicker_Base;
 
-class VCLPLUG_QT5_PUBLIC QtFilePicker : public QObject, public 
QtFilePicker_Base
+class VCLPLUG_QT_PUBLIC QtFilePicker : public QObject, public QtFilePicker_Base
 {
     Q_OBJECT
 
diff --git a/vcl/inc/qt5/QtFontFace.hxx b/vcl/inc/qt5/QtFontFace.hxx
index 2f15a26e308b..6089a18b38c2 100644
--- a/vcl/inc/qt5/QtFontFace.hxx
+++ b/vcl/inc/qt5/QtFontFace.hxx
@@ -44,9 +44,9 @@ public:
     static QtFontFace* fromQFontDatabase(const QString& aFamily, const 
QString& aStyle);
     static void fillAttributesFromQFont(const QFont& rFont, FontAttributes& 
rFA);
 
-    VCLPLUG_QT5_PUBLIC static FontWeight toFontWeight(const int nWeight);
-    VCLPLUG_QT5_PUBLIC static FontWidth toFontWidth(const int nStretch);
-    VCLPLUG_QT5_PUBLIC static FontItalic toFontItalic(const QFont::Style 
eStyle);
+    VCLPLUG_QT_PUBLIC static FontWeight toFontWeight(const int nWeight);
+    VCLPLUG_QT_PUBLIC static FontWidth toFontWidth(const int nStretch);
+    VCLPLUG_QT_PUBLIC static FontItalic toFontItalic(const QFont::Style 
eStyle);
 
     sal_IntPtr GetFontId() const override;
 
diff --git a/vcl/inc/qt5/QtFrame.hxx b/vcl/inc/qt5/QtFrame.hxx
index c584c1d750f9..d2265229e267 100644
--- a/vcl/inc/qt5/QtFrame.hxx
+++ b/vcl/inc/qt5/QtFrame.hxx
@@ -64,7 +64,7 @@ class QPaintDevice;
 class QScreen;
 class QWidget;
 
-class VCLPLUG_QT5_PUBLIC QtFrame : public QObject, public SalFrame
+class VCLPLUG_QT_PUBLIC QtFrame : public QObject, public SalFrame
 {
     Q_OBJECT
 
diff --git a/vcl/inc/qt5/QtInstance.hxx b/vcl/inc/qt5/QtInstance.hxx
index 8ec1d98b387e..6891b32f2f3c 100644
--- a/vcl/inc/qt5/QtInstance.hxx
+++ b/vcl/inc/qt5/QtInstance.hxx
@@ -47,9 +47,9 @@ struct StdFreeCStr
 };
 using FreeableCStr = std::unique_ptr<char[], StdFreeCStr>;
 
-class VCLPLUG_QT5_PUBLIC QtInstance : public QObject,
-                                      public SalGenericInstance,
-                                      public SalUserEventList
+class VCLPLUG_QT_PUBLIC QtInstance : public QObject,
+                                     public SalGenericInstance,
+                                     public SalUserEventList
 {
     Q_OBJECT
 
diff --git a/vcl/inc/qt5/QtSvpGraphics.hxx b/vcl/inc/qt5/QtSvpGraphics.hxx
index 23f3ccc82abd..da3786eee165 100644
--- a/vcl/inc/qt5/QtSvpGraphics.hxx
+++ b/vcl/inc/qt5/QtSvpGraphics.hxx
@@ -26,7 +26,7 @@
 
 class QtFrame;
 
-class VCLPLUG_QT5_PUBLIC QtSvpGraphics final : public SvpSalGraphics, public 
QtGraphicsBase
+class VCLPLUG_QT_PUBLIC QtSvpGraphics final : public SvpSalGraphics, public 
QtGraphicsBase
 {
     QtFrame* const m_pFrame;
 
diff --git a/vcl/inc/vclpluginapi.h b/vcl/inc/vclpluginapi.h
index 589d7244ddaa..930f080a9a9d 100644
--- a/vcl/inc/vclpluginapi.h
+++ b/vcl/inc/vclpluginapi.h
@@ -47,10 +47,10 @@
 #define VCLPLUG_OSX_PUBLIC SAL_DLLPUBLIC_IMPORT
 #endif
 
-#if defined VCLPLUG_QT5_IMPLEMENTATION
-#define VCLPLUG_QT5_PUBLIC SAL_DLLPUBLIC_EXPORT
+#if defined VCLPLUG_QT_IMPLEMENTATION
+#define VCLPLUG_QT_PUBLIC SAL_DLLPUBLIC_EXPORT
 #else
-#define VCLPLUG_QT5_PUBLIC SAL_DLLPUBLIC_IMPORT
+#define VCLPLUG_QT_PUBLIC SAL_DLLPUBLIC_IMPORT
 #endif
 
 #if defined VCLPLUG_SVP_IMPLEMENTATION
diff --git a/vcl/qt5/QtInstance.cxx b/vcl/qt5/QtInstance.cxx
index a41e231b454e..f641dda8e9ef 100644
--- a/vcl/qt5/QtInstance.cxx
+++ b/vcl/qt5/QtInstance.cxx
@@ -678,7 +678,7 @@ std::unique_ptr<QApplication> 
QtInstance::CreateQApplication(int& nArgc, char**
 }
 
 extern "C" {
-VCLPLUG_QT5_PUBLIC SalInstance* create_SalInstance()
+VCLPLUG_QT_PUBLIC SalInstance* create_SalInstance()
 {
     static const bool bUseCairo = (nullptr != getenv("SAL_VCL_QT5_USE_CAIRO"));
 

Reply via email to