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.glogowski@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.weghorn@posteo.de>
diff --git a/Repository.mk b/Repository.mk
index 9aacc0d..541d063 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 3f645e0..4c45caa 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 6ee6ad4..d84d5df 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 db0c7a8..7941396 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 932ea2b..346a011 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=
@@ -12883,6 +12900,123 @@ 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 ce6437b..895cb3e 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 0000000..9badd75
--- /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 1470c0e..d67f87d 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 0000000..8845da7
--- /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 00d7e8d..f85bac2 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 d226522..23c92d7 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 8a441053..f299708 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 0000000..7f67ea9
--- /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 0000000..9370123
--- /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 0000000..7833205
--- /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 0000000..0f3b718
--- /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 0000000..827f3b6
--- /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 0000000..9f8056d
--- /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 0000000..20a3f6d
--- /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 0000000..a477a46
--- /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 0000000..875fa08
--- /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 0000000..6b6bae4
--- /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 0000000..91e0808
--- /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 0000000..31bcfc3
--- /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 0000000..9601a2a
--- /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 0000000..65eec7d
--- /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 0000000..bef22b2
--- /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 0000000..42df15e
--- /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 0000000..b4a7f51
--- /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 0000000..1a82e2d
--- /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 0000000..791d633
--- /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 0000000..f9caeb4
--- /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 0000000..ab002c0
--- /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 0000000..952bb4de
--- /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 0000000..1a91f67
--- /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 0000000..9ef6563
--- /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 0000000..e6078fb
--- /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 0000000..f3cd0a9
--- /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 0000000..3e57fb2
--- /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 0000000..486af7c
--- /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 0000000..e591a77
--- /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 23a051e..60e83ce 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 f641dda..730e722 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 6ba35da..c6224b1 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 cf92f57..60cd195 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 12e101d..7c40ea1 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 0000000..9a0c401
--- /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 0000000..c850d63
--- /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 0000000..fe82d07
--- /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 0000000..b5ed788
--- /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 0000000..7303575
--- /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 0000000..7c30624
--- /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 0000000..5dda50a
--- /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 0000000..0af6c3a
--- /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 0000000..1dda71d
--- /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 0000000..fc15d6b
--- /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 0000000..a092d4a
--- /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 0000000..1ae93c2
--- /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 0000000..a7d1bb5
--- /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 0000000..d7326b0
--- /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 0000000..7b0910e
--- /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 0000000..f08e6e1
--- /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 0000000..e230cca
--- /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 0000000..dd85319
--- /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 0000000..e804679
--- /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 0000000..80af012c
--- /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 0000000..8a8de83
--- /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 0000000..8c5b93b
--- /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 0000000..6182d81
--- /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 0000000..7d773a8
--- /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 0000000..1639ab1
--- /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 0000000..f7ae8d1
--- /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 0000000..94ba353
--- /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 0000000..0a003b5
--- /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 0000000..d6384d5
--- /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 0000000..5d40d2a
--- /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 0000000..0e1e320
--- /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 0000000..d1a2620
--- /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: */