[Libreoffice-commits] core.git: bin/check-elf-dynamic-objects bin/distro-install-file-lists config_host/config_kde4.h.in config_host/config_vclplug.h.in config_host.mk.in configure.ac cppuhelper/source cui/Library_cui.mk cui/source distro-configs/Jenkins distro-configs/LibreOfficeCoverity.conf distro-configs/LibreOfficeiOS.conf distro-configs/LibreOfficeLinux.conf distro-configs/LibreOfficeOpenBSD.conf include/sal postprocess/Rdb_services.mk RepositoryExternal.mk Repository.mk scp2/InstallScript_setup_osl.mk scp2/Module_scp2.mk shell/Library_kde4be.mk shell/Module_shell.mk shell/source solenv/gbuild svtools/source sysui/CustomTarget_share.mk vcl/CustomTarget_kde4_moc.mk vcl/inc vcl/Library_vclplug_kde4.mk vcl/Module_vcl.mk vcl/README vcl/README.scheduler vcl/source vcl/unx

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Mon Dec 17 17:33:37 UTC 2018


 Repository.mk                                       |    8 
 RepositoryExternal.mk                               |   27 
 bin/check-elf-dynamic-objects                       |    4 
 bin/distro-install-file-lists                       |    6 
 config_host.mk.in                                   |    6 
 config_host/config_kde4.h.in                        |   10 
 config_host/config_vclplug.h.in                     |    1 
 configure.ac                                        |  322 ------
 cppuhelper/source/servicemanager.cxx                |    8 
 cui/Library_cui.mk                                  |    1 
 cui/source/options/optgdlg.cxx                      |    6 
 distro-configs/Jenkins/LibreOfficeLinuxUpdater.conf |    2 
 distro-configs/Jenkins/Linux_dev_master.conf        |    2 
 distro-configs/Jenkins/Linux_rel_master.conf        |    2 
 distro-configs/LibreOfficeCoverity.conf             |    2 
 distro-configs/LibreOfficeLinux.conf                |    2 
 distro-configs/LibreOfficeOpenBSD.conf              |    3 
 distro-configs/LibreOfficeiOS.conf                  |    2 
 include/sal/log-areas.dox                           |    1 
 postprocess/Rdb_services.mk                         |    3 
 scp2/InstallScript_setup_osl.mk                     |    2 
 scp2/Module_scp2.mk                                 |    2 
 shell/Library_kde4be.mk                             |   32 
 shell/Module_shell.mk                               |    6 
 shell/source/backends/desktopbe/desktopbackend.cxx  |   16 
 shell/source/backends/kde4be/kde4access.cxx         |  300 -----
 shell/source/backends/kde4be/kde4access.hxx         |   39 
 shell/source/backends/kde4be/kde4backend.cxx        |  180 ---
 shell/source/backends/kde4be/kde4be1.component      |   25 
 solenv/gbuild/CppunitTest.mk                        |    1 
 svtools/source/uno/fpicker.cxx                      |   12 
 sysui/CustomTarget_share.mk                         |    2 
 vcl/CustomTarget_kde4_moc.mk                        |   24 
 vcl/Library_vclplug_kde4.mk                         |   99 -
 vcl/Module_vcl.mk                                   |    7 
 vcl/README                                          |    6 
 vcl/README.scheduler                                |    4 
 vcl/inc/vclpluginapi.h                              |    6 
 vcl/source/app/salplug.cxx                          |    5 
 vcl/source/opengl/OpenGLHelper.cxx                  |    2 
 vcl/unx/kde4/FPServiceInfo.hxx                      |   28 
 vcl/unx/kde4/KDE4FilePicker.cxx                     |  823 ----------------
 vcl/unx/kde4/KDE4FilePicker.hxx                     |  258 -----
 vcl/unx/kde4/KDEData.cxx                            |   68 -
 vcl/unx/kde4/KDEData.hxx                            |   37 
 vcl/unx/kde4/KDESalDisplay.cxx                      |   91 -
 vcl/unx/kde4/KDESalDisplay.hxx                      |   45 
 vcl/unx/kde4/KDESalFrame.cxx                        |  373 -------
 vcl/unx/kde4/KDESalFrame.hxx                        |   53 -
 vcl/unx/kde4/KDESalGraphics.cxx                     | 1025 --------------------
 vcl/unx/kde4/KDESalGraphics.hxx                     |   53 -
 vcl/unx/kde4/KDESalInstance.cxx                     |   66 -
 vcl/unx/kde4/KDESalInstance.hxx                     |   45 
 vcl/unx/kde4/KDEXLib.cxx                            |  426 --------
 vcl/unx/kde4/KDEXLib.hxx                            |  101 -
 vcl/unx/kde4/VCLKDEApplication.cxx                  |   87 -
 vcl/unx/kde4/VCLKDEApplication.hxx                  |   39 
 vcl/unx/kde4/main.cxx                               |   89 -
 vcl/unx/kde4/tst_exclude_posted_events.hxx          |   67 -
 vcl/unx/kde4/tst_exclude_socket_notifiers.hxx       |   80 -
 vcl/unx/kde5/KDE5FilePicker2.cxx                    |    3 
 vcl/unx/kde5/KDE5SalInstance.cxx                    |    1 
 62 files changed, 30 insertions(+), 5016 deletions(-)

New commits:
commit 410bf59de02192c2daf1158b9de76ec0ebab4c56
Author:     Thorsten Behrens <Thorsten.Behrens at CIB.de>
AuthorDate: Wed Sep 5 02:53:07 2018 +0200
Commit:     Thorsten Behrens <Thorsten.Behrens at CIB.de>
CommitDate: Mon Dec 17 18:33:13 2018 +0100

    kde5: remove older kde/tde plugins, and references to that
    
    KDE4 is out of maintenance upstream since Nov. 2014, and binaries
    provided by TDF have switched to KDE5 as the official backend.
    
    Change-Id: I165465b56d3ba3a18912b203c06ae8fc6111c0c9
    Reviewed-on: https://gerrit.libreoffice.org/60014
    Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
    Tested-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>

diff --git a/Repository.mk b/Repository.mk
index 12a104dd0eab..9fed0b942c91 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -294,18 +294,16 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,gnome, \
 ))
 
 $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,kde, \
-	$(if $(ENABLE_KDE4),kde4be1) \
 	$(if $(ENABLE_KDE5),kde5be1) \
 	$(if $(USING_X11), \
-		$(if $(ENABLE_KDE4),vclplug_kde4) \
-		$(if $(ENABLE_KDE5),vclplug_kde5) \
+        $(if $(ENABLE_KDE5),vclplug_kde5) \
         $(if $(ENABLE_QT5),vclplug_qt5) \
-		$(if $(ENABLE_GTK3_KDE5),vclplug_gtk3_kde5) \
+        $(if $(ENABLE_GTK3_KDE5),vclplug_gtk3_kde5) \
 	) \
 ))
 ifneq ($(ENABLE_GTK3_KDE5),)
 $(eval $(call gb_Helper_register_executables_for_install,OOO,kde, \
-	lo_kde5filepicker \
+       lo_kde5filepicker \
 ))
 endif
 
diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index f7ecf3c3c010..346e7fe1ab42 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -3071,33 +3071,6 @@ endef
 
 endif # SYSTEM_POSTGRESQL
 
-ifeq ($(ENABLE_KDE4),TRUE)
-
-define gb_LinkTarget__use_kde4
-$(call gb_LinkTarget_set_include,$(1),\
-	$(subst -isystem/,-isystem /,$(filter -I% -isystem%,$(subst -isystem /,-isystem/,$(KDE4_CFLAGS)))) \
-	$$(INCLUDE) \
-)
-
-$(call gb_LinkTarget_add_defs,$(1),\
-	$(filter-out -I% -isystem%,$(subst -isystem /,-isystem/,$(KDE4_CFLAGS))) \
-)
-
-$(call gb_LinkTarget_add_libs,$(1),\
-	$(KDE4_LIBS) \
-)
-
-endef
-
-else # !ENABLE_KDE4
-
-define gb_LinkTarget__use_kde4
-
-endef
-
-endif # ENABLE_KDE4
-
-
 ifeq ($(ENABLE_KDE5),TRUE)
 
 define gb_LinkTarget__use_kde5
diff --git a/bin/check-elf-dynamic-objects b/bin/check-elf-dynamic-objects
index 7b92a61d15ce..c83649850331 100755
--- a/bin/check-elf-dynamic-objects
+++ b/bin/check-elf-dynamic-objects
@@ -96,7 +96,6 @@ gstreamer010whitelist="libgstpbutils-0.10.so.0 libgstinterfaces-0.10.so.0 libgst
 gstreamerwhitelist="libgstpbutils-1.0.so.0 libgstvideo-1.0.so.0 libgstbase-1.0.so.0 libgstreamer-1.0.so.0"
 gtk2whitelist="libgtk-x11-2.0.so.0 libgdk-x11-2.0.so.0 libpangocairo-1.0.so.0 libfribidi.so.0 libatk-1.0.so.0 libcairo.so.2 libgio-2.0.so.0 libpangoft2-1.0.so.0 libpango-1.0.so.0 libfontconfig.so.1 libfreetype.so.6 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0 libgmodule-2.0.so.0 libgthread-2.0.so.0 libdbus-glib-1.so.2 libdbus-1.so.3"
 gtk3whitelist="libgtk-3.so.0 libgdk-3.so.0 libcairo-gobject.so.2 libpangocairo-1.0.so.0 libfribidi.so.0 libatk-1.0.so.0 libcairo.so.2 libgio-2.0.so.0 libpangoft2-1.0.so.0 libpango-1.0.so.0 libfontconfig.so.1 libfreetype.so.6 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0 libgmodule-2.0.so.0 libgthread-2.0.so.0 libdbus-glib-1.so.2 libdbus-1.so.3"
-kde4whitelist="libkio.so.5 libkfile.so.4 libkdeui.so.5 libkdecore.so.5 libQtNetwork.so.4 libQtGui.so.4 libQtCore.so.4 libglib-2.0.so.0"
 qt5whitelist="libQt5Core.so.5 libQt5Gui.so.5 libQt5Network.so.5 libQt5Widgets.so.5 libQt5X11Extras.so.5 libcairo.so.2 libglib-2.0.so.0"
 kf5whitelist="libKF5ConfigCore.so.5 libKF5CoreAddons.so.5 libKF5I18n.so.5 libKF5KIOCore.so.5 libKF5KIOFileWidgets.so.5 libKF5KIOWidgets.so.5 libKF5WindowSystem.so.5"
 avahiwhitelist="libdbus-glib-1.so.2 libdbus-1.so.3 libgobject-2.0.so.0 libgmodule-2.0.so.0 libgthread-2.0.so.0 libglib-2.0.so.0 libavahi-common.so.3 libavahi-client.so.3"
@@ -126,9 +125,6 @@ local file="$1"
         */libavmediagst_0_10.so)
             whitelist="${whitelist} ${gtk2whitelist} ${gstreamer010whitelist}"
         ;;
-        */libvclplug_kde4lo.so|*/libkde4be1lo.so)
-            whitelist="${whitelist} ${x11whitelist} ${kde4whitelist}"
-        ;;
         */libvclplug_kde5lo.so|*/libkde5be1lo.so)
             if [ "$ENABLE_KDE5" = TRUE ]; then
                 whitelist="${whitelist} ${qt5whitelist} ${kf5whitelist} libxcb.so.1"
diff --git a/bin/distro-install-file-lists b/bin/distro-install-file-lists
index 378f55ce746b..4cbe0be407ac 100755
--- a/bin/distro-install-file-lists
+++ b/bin/distro-install-file-lists
@@ -216,12 +216,6 @@ if test "z$OOO_VENDOR" != "zDebian" ; then
 
     cd $FILELISTSDIR
 
-    # create kde4 subpackage
-    test -f $DESTDIR/gid_Module_Optional_Kde && cp $DESTDIR/gid_Module_Optional_Kde kde4_list.txt || :
-    mv_file_between_flists kde4_list.txt common_list.txt $INSTALLDIR/program/libvclplug_kde4l..so
-    mv_file_between_flists kde4_list.txt common_list.txt $INSTALLDIR/program/fps_kde4lo.so
-    add_used_directories kde4_list.txt common_list.txt
-
     # gnome subpackage
     test -f $DESTDIR/gid_Module_Optional_Gnome && cp $DESTDIR/gid_Module_Optional_Gnome gnome_list.txt || :
     mv_file_between_flists gnome_list.txt common_list.txt $INSTALLDIR/program/libevoab2.so
diff --git a/config_host.mk.in b/config_host.mk.in
index 51125374491d..a74114d0643d 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -145,7 +145,6 @@ export DISABLE_GUI=@DISABLE_GUI@
 export ENABLE_HTMLHELP=@ENABLE_HTMLHELP@
 export ENABLE_IOS_LIBREOFFICELIGHT_APP=@ENABLE_IOS_LIBREOFFICELIGHT_APP@
 export ENABLE_JAVA=@ENABLE_JAVA@
-export ENABLE_KDE4=@ENABLE_KDE4@
 export ENABLE_LPSOLVE=@ENABLE_LPSOLVE@
 export ENABLE_LTO=@ENABLE_LTO@
 export ENABLE_LWP=@ENABLE_LWP@
@@ -302,11 +301,6 @@ export JDK=@JDK@
 export JFREEREPORT_JAR=@JFREEREPORT_JAR@
 export JITC_PROCESSOR_TYPE=@JITC_PROCESSOR_TYPE@
 export JVM_ONE_PATH_CHECK=@JVM_ONE_PATH_CHECK@
-export KDE4_CFLAGS=$(gb_SPACE)@KDE4_CFLAGS@
-export KDE4_LIBS=$(gb_SPACE)@KDE4_LIBS@
-export KDE4_GLIB_CFLAGS=$(gb_SPACE)@KDE4_GLIB_CFLAGS@
-export KDE4_GLIB_LIBS=$(gb_SPACE)@KDE4_GLIB_LIBS@
-export KDE4_HAVE_GLIB=@KDE4_HAVE_GLIB@
 export KF5_CFLAGS=$(gb_SPACE)@KF5_CFLAGS@
 export KF5_LIBS=$(gb_SPACE)@KF5_LIBS@
 export KRB5_LIBS=@KRB5_LIBS@
diff --git a/config_host/config_kde4.h.in b/config_host/config_kde4.h.in
deleted file mode 100644
index 50e85530be26..000000000000
--- a/config_host/config_kde4.h.in
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
-Settings for KDE4 integration.
-*/
-
-#ifndef CONFIG_KDE4_H
-#define CONFIG_KDE4_H
-
-#define KDE4_HAVE_GLIB 0
-
-#endif
diff --git a/config_host/config_vclplug.h.in b/config_host/config_vclplug.h.in
index be9c136245ee..5bd9b4b98fe4 100644
--- a/config_host/config_vclplug.h.in
+++ b/config_host/config_vclplug.h.in
@@ -8,7 +8,6 @@ Settings about which X11 desktops have support enabled.
 #define CONFIG_VCLPLUG_H
 
 #define ENABLE_GTK 0
-#define ENABLE_KDE4 0
 #define ENABLE_KDE5 0
 #define ENABLE_GTK3_KDE5 0
 
diff --git a/configure.ac b/configure.ac
index e30d0cc938b6..915dbe3772b7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -598,7 +598,6 @@ linux-gnu*|k*bsd*-gnu*)
     test_gtk=yes
     build_gstreamer_1_0=yes
     build_gstreamer_0_10=yes
-    test_kde4=yes
     test_kde5=yes
     test_gtk3_kde5=yes
     if test "$enable_fuzzers" != yes; then
@@ -692,7 +691,6 @@ freebsd*)
     test_gtk=yes
     build_gstreamer_1_0=yes
     build_gstreamer_0_10=yes
-    test_kde4=yes
     test_kde5=yes
     test_gtk3_kde5=yes
     test_freetype=yes
@@ -722,7 +720,6 @@ freebsd*)
     test_gtk=yes
     build_gstreamer_1_0=yes
     build_gstreamer_0_10=yes
-    test_kde4=yes
     test_kde5=yes
     test_gtk3_kde5=yes
     test_freetype=yes
@@ -749,7 +746,6 @@ dragonfly*)
     test_gtk=yes
     build_gstreamer_1_0=yes
     build_gstreamer_0_10=yes
-    test_kde4=yes
     test_kde5=yes
     test_gtk3_kde5=yes
     test_freetype=yes
@@ -774,7 +770,6 @@ linux-android*)
     test_fontconfig=no
     test_freetype=no
     test_gtk=no
-    test_kde4=no
     test_kde5=no
     test_gtk3_kde5=no
     test_randr=no
@@ -1255,12 +1250,6 @@ libo_FUZZ_ARG_ENABLE(gio,
         [Determines whether to use the GIO support.]),
 ,test "${enable_gio+set}" = set || enable_gio=yes)
 
-AC_ARG_ENABLE(kde4,
-    AS_HELP_STRING([--enable-kde4],
-        [Determines whether to use Qt4/KDE4 vclplug on platforms where Qt4 and
-         KDE4 are available.]),
-,)
-
 AC_ARG_ENABLE(qt5,
     AS_HELP_STRING([--enable-qt5],
         [Determines whether to use Qt5 vclplug on platforms where Qt5 is
@@ -4701,7 +4690,6 @@ if test "$USING_X11" != TRUE; then
     test_gtk=no
     build_gstreamer_1_0=no
     build_gstreamer_0_10=no
-    test_kde4=no
     test_kde5=no
     test_qt5=no
     test_gtk3_kde5=no
@@ -10123,14 +10111,6 @@ if test "x$enable_gtk" = "xyes"; then
 fi
 AC_SUBST(ENABLE_GTK)
 
-ENABLE_KDE4=""
-if test "x$enable_kde4" = "xyes"; then
-    ENABLE_KDE4="TRUE"
-    AC_DEFINE(ENABLE_KDE4)
-    R="$R kde4"
-fi
-AC_SUBST(ENABLE_KDE4)
-
 ENABLE_QT5=""
 if test "x$enable_qt5" = "xyes"; then
     ENABLE_QT5="TRUE"
@@ -10898,307 +10878,6 @@ AC_SUBST(ENABLE_SCRIPTING_JAVASCRIPT)
 AC_SUBST(SYSTEM_RHINO)
 AC_SUBST(RHINO_JAR)
 
-# This is only used in KDE3/KDE4 checks to determine if /usr/lib64
-# paths should be added to library search path. So lets put all 64-bit
-# platforms there.
-supports_multilib=
-case "$host_cpu" in
-x86_64 | powerpc64 | powerpc64le | s390x | aarch64 | mips64 | mips64el)
-    if test "$SAL_TYPES_SIZEOFLONG" = "8"; then
-        supports_multilib="yes"
-    fi
-    ;;
-*)
-    ;;
-esac
-
-dnl ===================================================================
-dnl KDE4 Integration
-dnl ===================================================================
-
-KDE4_CFLAGS=""
-KDE4_LIBS=""
-QMAKE4="qmake"
-MOC4="moc"
-KDE4_GLIB_CFLAGS=""
-KDE4_GLIB_LIBS=""
-KDE4_HAVE_GLIB=""
-if test "$test_kde4" = "yes" -a "$ENABLE_KDE4" = "TRUE"; then
-    qt4_incdirs="$QT4INC /usr/include/qt4 /usr/include $x_includes"
-    qt4_libdirs="$QT4LIB /usr/lib/qt4 /usr/lib $x_libraries"
-
-    kde4_incdirs="/usr/include /usr/include/kde4 $x_includes"
-    kde4_libdirs="/usr/lib /usr/lib/kde4 /usr/lib/kde4/devel $x_libraries"
-
-    if test -n "$supports_multilib"; then
-        qt4_libdirs="$qt4_libdirs /usr/lib64/qt4 /usr/lib64/qt /usr/lib64"
-        kde4_libdirs="$kde4_libdirs /usr/lib64 /usr/lib64/kde4 /usr/lib64/kde4/devel"
-    fi
-
-    if test -n "$QTDIR"; then
-        qt4_incdirs="$QTDIR/include $qt4_incdirs"
-        if test -z "$supports_multilib"; then
-            qt4_libdirs="$QTDIR/lib $qt4_libdirs"
-        else
-            qt4_libdirs="$QTDIR/lib64 $QTDIR/lib $qt4_libdirs"
-        fi
-    fi
-    if test -n "$QT4DIR"; then
-        qt4_incdirs="$QT4DIR/include $qt4_incdirs"
-        if test -z "$supports_multilib"; then
-            qt4_libdirs="$QT4DIR/lib $qt4_libdirs"
-        else
-            qt4_libdirs="$QT4DIR/lib64 $QT4DIR/lib $qt4_libdirs"
-        fi
-    fi
-
-    if test -n "$KDEDIR"; then
-        kde4_incdirs="$KDEDIR/include $kde4_incdirs"
-        if test -z "$supports_multilib"; then
-            kde4_libdirs="$KDEDIR/lib $kde4_libdirs"
-        else
-            kde4_libdirs="$KDEDIR/lib64 $KDEDIR/lib $kde4_libdirs"
-        fi
-    fi
-    if test -n "$KDE4DIR"; then
-        kde4_incdirs="$KDE4DIR/include $KDE4DIR/include/kde4 $kde4_incdirs"
-        if test -z "$supports_multilib"; then
-            kde4_libdirs="$KDE4DIR/lib $kde4_libdirs"
-        else
-            kde4_libdirs="$KDE4DIR/lib64 $KDE4DIR/lib $kde4_libdirs"
-        fi
-    fi
-
-    qt4_test_include="Qt/qobject.h"
-    qt4_test_library="libQtNetwork.so"
-    kde4_test_include="kwindowsystem.h"
-    kde4_test_library="libsolid.so"
-
-    AC_MSG_CHECKING([for Qt4 headers])
-    qt4_header_dir="no"
-    for inc_dir in $qt4_incdirs; do
-        if test -r "$inc_dir/$qt4_test_include"; then
-            qt4_header_dir="$inc_dir"
-            break
-        fi
-    done
-
-    AC_MSG_RESULT([$qt4_header_dir])
-    if test "x$qt4_header_dir" = "xno"; then
-        AC_MSG_ERROR([Qt4 headers not found.  Please specify the root of your Qt4 installation by exporting QT4DIR before running "configure".])
-    fi
-
-    dnl Check for qmake
-    AC_PATH_PROGS( QMAKE4, [qmake-qt4 qmake], no, [`dirname $qt4_header_dir`/bin:$QT4DIR/bin:$PATH] )
-    if test "$QMAKE4" = "no"; then
-        AC_MSG_ERROR([Qmake not found.  Please specify the root of your Qt4 installation by exporting QT4DIR before running "configure".])
-    else
-        qmake4_test_ver="`$QMAKE4 -v 2>&1 | sed -n -e '/^Using Qt version 4\./p'`"
-        if test -z "$qmake4_test_ver"; then
-            AC_MSG_ERROR([Wrong qmake for Qt4 found. Please specify the root of your Qt installation by exporting QT4DIR before running "configure".])
-        fi
-    fi
-
-    qt4_libdirs="`$QMAKE4 -query QT_INSTALL_LIBS` $qt4_libdirs"
-    AC_MSG_CHECKING([for Qt4 libraries])
-    qt4_lib_dir="no"
-    for lib_dir in $qt4_libdirs; do
-        if test -r "$lib_dir/$qt4_test_library"; then
-            qt4_lib_dir="$lib_dir"
-            PKG_CONFIG_PATH="$qt4_lib_dir"/pkgconfig:$PKG_CONFIG_PATH
-            break
-        fi
-    done
-
-    AC_MSG_RESULT([$qt4_lib_dir])
-
-    if test "x$qt4_lib_dir" = "xno"; then
-        AC_MSG_ERROR([Qt4 libraries not found.  Please specify the root of your Qt4 installation by exporting QT4DIR before running "configure".])
-    fi
-
-    dnl Check for Meta Object Compiler
-
-    AC_PATH_PROG( MOCQT4, moc-qt4, no, [`dirname $qt4_lib_dir`/bin:$QT4DIR/bin:$PATH] )
-    MOC4="$MOCQT4"
-    if test "$MOC4" = "no"; then
-        AC_PATH_PROG( MOC4, moc, no, [`dirname $qt4_lib_dir`/bin:$QT4DIR/bin:$PATH] )
-        if test "$MOC4" = "no"; then
-            AC_MSG_ERROR([Qt Meta Object Compiler not found.  Please specify
-the root of your Qt installation by exporting QT4DIR before running "configure".])
-        fi
-    fi
-
-    dnl Check for KDE4 headers
-    AC_MSG_CHECKING([for KDE4 headers])
-    kde4_incdir="no"
-    for kde4_check in $kde4_incdirs; do
-        if test -r "$kde4_check/$kde4_test_include"; then
-            kde4_incdir="$kde4_check"
-            break
-        fi
-    done
-    AC_MSG_RESULT([$kde4_incdir])
-    if test "x$kde4_incdir" = "xno"; then
-        AC_MSG_ERROR([KDE4 headers not found.  Please specify the root of your KDE4 installation by exporting KDE4DIR before running "configure".])
-    fi
-    if test "$kde4_incdir" = "/usr/include"; then kde4_incdir=; fi
-
-    dnl Check for KDE4 libraries
-    AC_MSG_CHECKING([for KDE4 libraries])
-    kde4_libdir="no"
-    for kde4_check in $kde4_libdirs; do
-        if test -r "$kde4_check/$kde4_test_library"; then
-            kde4_libdir="$kde4_check"
-            break
-        fi
-    done
-
-    AC_MSG_RESULT([$kde4_libdir])
-    if test "x$kde4_libdir" = "xno"; then
-        AC_MSG_ERROR([KDE4 libraries not found.  Please specify the root of your KDE4 installation by exporting KDE4DIR before running "configure".])
-    fi
-
-    PKG_CHECK_MODULES([QT4],[QtNetwork QtGui])
-    if ! test -z "$kde4_incdir"; then
-    	KDE4_CFLAGS="-I$kde4_incdir $QT4_CFLAGS -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT"
-    else
-    	KDE4_CFLAGS="$QT4_CFLAGS -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT"
-    fi
-
-    KDE4_LIBS="-L$kde4_libdir -lkio -lkfile -lkdeui -lkdecore -L$qt4_lib_dir $QT4_LIBS"
-    KDE4_CFLAGS=$(printf '%s' "$KDE4_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
-    FilterLibs "$KDE4_LIBS"
-    KDE4_LIBS="$filteredlibs"
-
-    AC_LANG_PUSH([C++])
-    save_CXXFLAGS=$CXXFLAGS
-    CXXFLAGS="$CXXFLAGS $KDE4_CFLAGS"
-    AC_MSG_CHECKING([whether KDE is >= 4.2])
-       AC_RUN_IFELSE([AC_LANG_SOURCE([[
-#include <kdeversion.h>
-
-int main(int argc, char **argv) {
-       if (KDE_VERSION_MAJOR == 4 && KDE_VERSION_MINOR >= 2) return 0;
-       else return 1;
-}
-]])],[AC_MSG_RESULT([yes])],[AC_MSG_ERROR([KDE version too old])],[AC_MSG_ERROR([KDE support not tested with cross-compilation])])
-    CXXFLAGS=$save_CXXFLAGS
-    AC_LANG_POP([C++])
-
-    # Glib is needed for properly handling Qt event loop with Qt's Glib integration enabled.
-    # Sets also KDE4_GLIB_CFLAGS/KDE4_GLIB_LIBS if successful.
-    PKG_CHECK_MODULES(KDE4_GLIB,[glib-2.0 >= 2.4],
-        [
-            KDE4_HAVE_GLIB=TRUE
-            AC_DEFINE(KDE4_HAVE_GLIB,1)
-            KDE4_GLIB_CFLAGS=$(printf '%s' "$KDE4_GLIB_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
-            FilterLibs "${KDE4_GLIB_LIBS}"
-            KDE4_GLIB_LIBS="${filteredlibs}"
-
-            qt4_fix_warning=
-
-            AC_LANG_PUSH([C++])
-            # tst_exclude_socket_notifiers.moc:70:28: runtime error: member access within address 0x60d00000bb20 which does not point to an object of type 'QObjectData'
-            # 0x60d00000bb20: note: object is of type 'QObjectPrivate'
-            #  02 00 80 3a  90 8a 4e d2 3a 00 00 00  f0 b4 b9 a7 ff 7f 00 00  00 00 00 00 00 00 00 00  20 d8 4e d2
-            #               ^~~~~~~~~~~~~~~~~~~~~~~
-            #               vptr for 'QObjectPrivate'
-            # so temporarily ignore here whichever way would be used to make such errors fatal
-            # (-fno-sanitize-recover=... or UBSAN_OPTIONS halt_on_error=1):
-            save_CXX=$CXX
-            CXX=$(printf %s "$CXX" \
-                | sed -e 's/-fno-sanitize-recover\(=[[0-9A-Za-z,_-]]*\)*//')
-            save_UBSAN_OPTIONS=$UBSAN_OPTIONS
-            UBSAN_OPTIONS=$UBSAN_OPTIONS:halt_on_error=0
-            save_CXXFLAGS=$CXXFLAGS
-            CXXFLAGS="$CXXFLAGS $KDE4_CFLAGS"
-            save_LIBS=$LIBS
-            LIBS="$LIBS $KDE4_LIBS"
-            AC_MSG_CHECKING([whether Qt has fixed ExcludeSocketNotifiers])
-
-            # Prepare meta object data
-            TSTBASE="tst_exclude_socket_notifiers"
-            TSTMOC="${SRC_ROOT}/vcl/unx/kde4/${TSTBASE}"
-            ln -fs "${TSTMOC}.hxx"
-            $MOC4 "${TSTBASE}.hxx" -o "${TSTBASE}.moc"
-
-            AC_RUN_IFELSE([AC_LANG_SOURCE([[
-#include <cstdlib>
-#include "tst_exclude_socket_notifiers.moc"
-
-int main(int argc, char *argv[])
-{
-    QCoreApplication app(argc, argv);
-    exit(tst_processEventsExcludeSocket());
-    return 0;
-}
-            ]])],[
-                AC_MSG_RESULT([yes])
-            ],[
-                AC_MSG_RESULT([no])
-                AC_MSG_WARN([native KDE4 file pickers will be disabled at runtime])
-                if test -z "$qt4_fix_warning"; then
-                    add_warning "native KDE4 file pickers will be disabled at runtime, Qt4 fixes needed"
-                fi
-                qt4_fix_warning=1
-                add_warning "  https://bugreports.qt.io/browse/QTBUG-37380 (needed)"
-                ],[AC_MSG_ERROR([KDE4 file pickers not tested with cross-compilation])])
-
-            # Remove meta object data
-            rm -f "${TSTBASE}."*
-
-            AC_MSG_CHECKING([whether Qt avoids QClipboard recursion caused by posted events])
-
-            # Prepare meta object data
-            TSTBASE="tst_exclude_posted_events"
-            TSTMOC="${SRC_ROOT}/vcl/unx/kde4/${TSTBASE}"
-            ln -fs "${TSTMOC}.hxx"
-            $MOC4 "${TSTBASE}.hxx" -o "${TSTBASE}.moc"
-
-            AC_RUN_IFELSE([AC_LANG_SOURCE([[
-#include <cstdlib>
-#include "tst_exclude_posted_events.moc"
-
-int main(int argc, char *argv[])
-{
-    QCoreApplication app(argc, argv);
-    exit(tst_excludePostedEvents());
-    return 0;
-}
-            ]])],[
-                AC_MSG_RESULT([yes])
-            ],[
-                AC_MSG_RESULT([no])
-                AC_MSG_WARN([native KDE4 file pickers will be disabled at runtime])
-                if test -z "$qt4_fix_warning"; then
-                    add_warning "native KDE4 file pickers will be disabled at runtime, Qt4 fixes needed"
-                fi
-                qt4_fix_warning=1
-                add_warning "  https://bugreports.qt.io/browse/QTBUG-34614 (needed)"
-            ],[AC_MSG_ERROR([KDE4 file pickers not tested with cross-compilation])])
-
-            # Remove meta object data
-            rm -f "${TSTBASE}."*
-
-            if test -n "$qt4_fix_warning"; then
-                add_warning "  https://bugreports.qt.io/browse/QTBUG-38585 (recommended)"
-            fi
-
-            LIBS=$save_LIBS
-            CXXFLAGS=$save_CXXFLAGS
-            UBSAN_OPTIONS=$save_UBSAN_OPTIONS
-            CXX=$save_CXX
-            AC_LANG_POP([C++])
-        ],
-        AC_MSG_WARN([[No Glib found, KDE4 support will not use native file pickers!]]))
-fi
-AC_SUBST(KDE4_CFLAGS)
-AC_SUBST(KDE4_LIBS)
-AC_SUBST(MOC4)
-AC_SUBST(KDE4_GLIB_CFLAGS)
-AC_SUBST(KDE4_GLIB_LIBS)
-AC_SUBST(KDE4_HAVE_GLIB)
-
 dnl ===================================================================
 dnl QT5 Integration
 dnl ===================================================================
@@ -12873,7 +12552,6 @@ AC_CONFIG_HEADERS([config_host/config_liblangtag.h])
 AC_CONFIG_HEADERS([config_host/config_libnumbertext.h])
 AC_CONFIG_HEADERS([config_host/config_locales.h])
 AC_CONFIG_HEADERS([config_host/config_mpl.h])
-AC_CONFIG_HEADERS([config_host/config_kde4.h])
 AC_CONFIG_HEADERS([config_host/config_qt5.h])
 AC_CONFIG_HEADERS([config_host/config_kde5.h])
 AC_CONFIG_HEADERS([config_host/config_gtk3_kde5.h])
diff --git a/cppuhelper/source/servicemanager.cxx b/cppuhelper/source/servicemanager.cxx
index d38e636d2fa9..c62df6631a6d 100644
--- a/cppuhelper/source/servicemanager.cxx
+++ b/cppuhelper/source/servicemanager.cxx
@@ -1876,14 +1876,6 @@ void cppuhelper::ServiceManager::preloadImplementations() {
         if (iterator->second->info->loader == "com.sun.star.loader.SharedLibrary" &&
             iterator->second->status != Data::Implementation::STATUS_LOADED)
         {
-            // Blacklist some components that are known to fail
-            if (iterator->second->info->name == "com.sun.star.comp.configuration.backend.KDE4Backend")
-            {
-                std::cerr << ":skipping";
-                std::cerr.flush();
-                continue;
-            }
-
             // load component library
             osl::Module aModule(aUri, SAL_LOADMODULE_NOW | SAL_LOADMODULE_GLOBAL);
 
diff --git a/cui/Library_cui.mk b/cui/Library_cui.mk
index 4db46539816c..8ede124d16be 100644
--- a/cui/Library_cui.mk
+++ b/cui/Library_cui.mk
@@ -21,7 +21,6 @@ $(eval $(call gb_Library_set_precompiled_header,cui,$(SRCDIR)/cui/inc/pch/precom
 
 $(eval $(call gb_Library_add_defs,cui,\
     $(if $(filter TRUE,$(ENABLE_GTK)),-DENABLE_GTK) \
-    $(if $(filter TRUE,$(ENABLE_KDE4)),-DENABLE_KDE4) \
 ))
 
 $(eval $(call gb_Library_use_custom_headers,cui,\
diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx
index bc2510fb8e7a..9fa7ce06d79b 100644
--- a/cui/source/options/optgdlg.cxx
+++ b/cui/source/options/optgdlg.cxx
@@ -206,10 +206,10 @@ OUString impl_SystemFileOpenServiceName()
 {
     const OUString &rDesktopEnvironment = Application::GetDesktopEnvironment();
 
-    if ( rDesktopEnvironment.equalsIgnoreAsciiCase("kde4") )
+    if ( rDesktopEnvironment.equalsIgnoreAsciiCase("kde5") )
     {
-        #if ENABLE_KDE4
-        return OUString("com.sun.star.ui.dialogs.KDE4FilePicker" );
+        #if ENABLE_KDE5
+        return OUString("com.sun.star.ui.dialogs.KDE5FilePicker" );
         #else
         return OUString();
         #endif
diff --git a/distro-configs/Jenkins/LibreOfficeLinuxUpdater.conf b/distro-configs/Jenkins/LibreOfficeLinuxUpdater.conf
index e5b5ebdc9110..4ddcc344a796 100644
--- a/distro-configs/Jenkins/LibreOfficeLinuxUpdater.conf
+++ b/distro-configs/Jenkins/LibreOfficeLinuxUpdater.conf
@@ -16,7 +16,7 @@
 --with-external-dict-dir=/usr/share/hunspell
 --enable-dbus
 --enable-extension-integration
---enable-kde4
+--enable-kde5
 # --enable-gstreamer-0-10
 --enable-gstreamer-1-0
 --enable-evolution2
diff --git a/distro-configs/Jenkins/Linux_dev_master.conf b/distro-configs/Jenkins/Linux_dev_master.conf
index 6b3c7a7b0cc0..505e03568ad0 100644
--- a/distro-configs/Jenkins/Linux_dev_master.conf
+++ b/distro-configs/Jenkins/Linux_dev_master.conf
@@ -1,4 +1,4 @@
 --enable-dbgutil
---enable-kde4
+--enable-kde5
 CC=/opt/rh/devtoolset-7/root/usr/bin/gcc
 CXX=/opt/rh/devtoolset-7/root/usr/bin/g++
diff --git a/distro-configs/Jenkins/Linux_rel_master.conf b/distro-configs/Jenkins/Linux_rel_master.conf
index ca2119d9e7a7..77c7dc6b64b4 100644
--- a/distro-configs/Jenkins/Linux_rel_master.conf
+++ b/distro-configs/Jenkins/Linux_rel_master.conf
@@ -1,4 +1,4 @@
 --disable-werror
---enable-kde4
+--enable-kde5
 CC=/opt/rh/devtoolset-7/root/usr/bin/gcc
 CXX=/opt/rh/devtoolset-7/root/usr/bin/g++
diff --git a/distro-configs/LibreOfficeCoverity.conf b/distro-configs/LibreOfficeCoverity.conf
index e387254a6405..34b9593a6984 100644
--- a/distro-configs/LibreOfficeCoverity.conf
+++ b/distro-configs/LibreOfficeCoverity.conf
@@ -14,7 +14,7 @@
 --enable-dbus
 --enable-extension-integration
 --enable-gtk3
---enable-kde4
+--enable-kde5
 --enable-evolution2
 --enable-scripting-beanshell
 --enable-scripting-javascript
diff --git a/distro-configs/LibreOfficeLinux.conf b/distro-configs/LibreOfficeLinux.conf
index e6e887af646d..2be88ea32d19 100644
--- a/distro-configs/LibreOfficeLinux.conf
+++ b/distro-configs/LibreOfficeLinux.conf
@@ -20,7 +20,7 @@
 --enable-dbus
 --enable-extension-integration
 --enable-odk
---enable-kde4
+--disable-kde5
 --disable-gtk3
 --enable-gstreamer-0-10
 --enable-gstreamer-1-0
diff --git a/distro-configs/LibreOfficeOpenBSD.conf b/distro-configs/LibreOfficeOpenBSD.conf
index fb0e3551c0d4..bc3905df10e3 100644
--- a/distro-configs/LibreOfficeOpenBSD.conf
+++ b/distro-configs/LibreOfficeOpenBSD.conf
@@ -1,7 +1,6 @@
 --disable-dbus
 --disable-epm
---disable-kde
---disable-kde4
+--disable-kde5
 --disable-nss-module
 --disable-odk
 --enable-gstreamer-0-10
diff --git a/distro-configs/LibreOfficeiOS.conf b/distro-configs/LibreOfficeiOS.conf
index 92bc968a9f76..411ba8d69798 100644
--- a/distro-configs/LibreOfficeiOS.conf
+++ b/distro-configs/LibreOfficeiOS.conf
@@ -19,7 +19,7 @@
 --disable-database-connectivity
 --disable-dconf
 --disable-extensions
---disable-kde4
+--disable-kde5
 --disable-odk
 --disable-openssl
 --disable-pdfium
diff --git a/include/sal/log-areas.dox b/include/sal/log-areas.dox
index aa9c3e3ccd09..66ca425e9fea 100644
--- a/include/sal/log-areas.dox
+++ b/include/sal/log-areas.dox
@@ -474,7 +474,6 @@ certain functionality.
 @li @c vcl.headless - bitmap-based backend
 @li @c vcl.helper
 @li @c vcl.icontest
- at li @c vcl.kde4 - KDE4
 @li @c vcl.kde5 - KDE5
 @li @c vcl.layout - Widget layout
 @li @c vcl.lazydelete
diff --git a/postprocess/Rdb_services.mk b/postprocess/Rdb_services.mk
index e189b433e4b0..0e175de547cc 100644
--- a/postprocess/Rdb_services.mk
+++ b/postprocess/Rdb_services.mk
@@ -207,9 +207,6 @@ $(eval $(call gb_Rdb_add_components,services,\
 	$(if $(ENABLE_VLC), \
 		avmedia/source/vlc/avmediavlc \
 	) \
-	$(if $(ENABLE_KDE4), \
-		shell/source/backends/kde4be/kde4be1 \
-	) \
 	$(if $(ENABLE_KDE5), \
 		shell/source/backends/kde5be/kde5be1 \
 	) \
diff --git a/scp2/InstallScript_setup_osl.mk b/scp2/InstallScript_setup_osl.mk
index a37a4552c139..6c2496390883 100644
--- a/scp2/InstallScript_setup_osl.mk
+++ b/scp2/InstallScript_setup_osl.mk
@@ -35,7 +35,7 @@ $(eval $(call gb_InstallScript_use_modules,setup_osl,\
 	$(if $(filter TRUE,$(ENABLE_EVOAB2) $(ENABLE_GIO) $(ENABLE_GTK) $(ENABLE_GTK3)),\
 		scp2/gnome \
 	) \
-	$(if $(filter TRUE,$(ENABLE_KDE4) $(ENABLE_QT5) $(ENABLE_KDE5) $(ENABLE_GTK3_KDE5)),\
+	$(if $(filter TRUE,$(ENABLE_QT5) $(ENABLE_KDE5) $(ENABLE_GTK3_KDE5)),\
 		scp2/kde \
 	) \
 	$(if $(filter TRUE,$(ENABLE_ONLINE_UPDATE)),\
diff --git a/scp2/Module_scp2.mk b/scp2/Module_scp2.mk
index c414e09045cb..55ea333df005 100644
--- a/scp2/Module_scp2.mk
+++ b/scp2/Module_scp2.mk
@@ -39,7 +39,7 @@ $(eval $(call gb_Module_add_targets,scp2,\
 	$(if $(filter TRUE,$(ENABLE_EVOAB2) $(ENABLE_GIO) $(ENABLE_GTK) $(ENABLE_GTK3)),\
 		InstallModule_gnome \
 	) \
-	$(if $(filter TRUE,$(ENABLE_KDE4) $(ENABLE_QT5) $(ENABLE_KDE5) $(ENABLE_GTK3_KDE5)),\
+	$(if $(filter TRUE,$(ENABLE_QT5) $(ENABLE_KDE5) $(ENABLE_GTK3_KDE5)),\
 		InstallModule_kde \
 	) \
 ))
diff --git a/shell/Library_kde4be.mk b/shell/Library_kde4be.mk
deleted file mode 100644
index 45ca84c45e34..000000000000
--- a/shell/Library_kde4be.mk
+++ /dev/null
@@ -1,32 +0,0 @@
-# -*- 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_Library_Library,kde4be1))
-
-$(eval $(call gb_Library_use_sdk_api,kde4be1))
-
-$(eval $(call gb_Library_use_externals,kde4be1,\
-	boost_headers \
-	kde4 \
-))
-
-$(eval $(call gb_Library_use_libraries,kde4be1,\
-	cppu \
-	cppuhelper \
-	sal \
-))
-
-$(eval $(call gb_Library_set_componentfile,kde4be1,shell/source/backends/kde4be/kde4be1))
-
-$(eval $(call gb_Library_add_exception_objects,kde4be1,\
-    shell/source/backends/kde4be/kde4access \
-    shell/source/backends/kde4be/kde4backend \
-))
-
-# vim: set shiftwidth=4 tabstop=4 noexpandtab:
diff --git a/shell/Module_shell.mk b/shell/Module_shell.mk
index 6d54617f0268..48e0aaecdfb3 100644
--- a/shell/Module_shell.mk
+++ b/shell/Module_shell.mk
@@ -30,12 +30,6 @@ $(eval $(call gb_Module_add_targets,shell,\
 endif
 endif
 
-ifeq ($(ENABLE_KDE4),TRUE)
-$(eval $(call gb_Module_add_targets,shell,\
-	Library_kde4be \
-))
-endif
-
 ifeq ($(ENABLE_KDE5),TRUE)
 $(eval $(call gb_Module_add_targets,shell,\
 	Library_kde5be \
diff --git a/shell/source/backends/desktopbe/desktopbackend.cxx b/shell/source/backends/desktopbe/desktopbackend.cxx
index 8cfaefc9f9c9..0860bcd421a1 100644
--- a/shell/source/backends/desktopbe/desktopbackend.cxx
+++ b/shell/source/backends/desktopbe/desktopbackend.cxx
@@ -296,20 +296,12 @@ css::uno::Reference< css::uno::XInterface > createInstance(
         current->getValueByName("system.desktop-environment") >>= desktop;
     }
 
-    OUString sTK = Application::GetToolkitName();
-
     // Fall back to the default if the specific backend is not available:
     css::uno::Reference< css::uno::XInterface > backend;
-    if ( desktop == "KDE4" ) {
-        if (!(sTK.startsWith("qt5") || sTK.startsWith("kde5")))
-            backend = createBackend(
-                context,
-                "com.sun.star.configuration.backend.KDE4Backend");
-    } else if ( desktop == "KDE5" ) {
-        if (!(sTK.startsWith("kde4")))
-            backend = createBackend(
-                context,
-                "com.sun.star.configuration.backend.KDE5Backend");
+    if ( desktop == "KDE5" ) {
+        backend = createBackend(
+            context,
+            "com.sun.star.configuration.backend.KDE5Backend");
     }
     return backend.is()
         ? backend : static_cast< cppu::OWeakObject * >(new Default);
diff --git a/shell/source/backends/kde4be/kde4access.cxx b/shell/source/backends/kde4be/kde4access.cxx
deleted file mode 100644
index fc27054cd895..000000000000
--- a/shell/source/backends/kde4be/kde4access.cxx
+++ /dev/null
@@ -1,300 +0,0 @@
-/* -*- 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/.
- *
- * 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 .
- */
-
-#include <sal/config.h>
-
-#include <QtGui/QFont>
-#include <QtCore/QString>
-#include <kemailsettings.h>
-#include <kglobalsettings.h>
-#include <kprotocolmanager.h>
-
-#include <com/sun/star/uno/Any.hxx>
-#include <cppu/unotype.hxx>
-#include <osl/diagnose.h>
-#include <osl/file.h>
-#include <rtl/string.h>
-#include <rtl/ustring.hxx>
-
-#include "kde4access.hxx"
-
-#define SPACE      ' '
-#define COMMA      ','
-#define SEMI_COLON ';'
-
-namespace kde4access {
-
-namespace {
-
-namespace uno = css::uno ;
-
-}
-
-css::beans::Optional< css::uno::Any > getValue(OUString const & id) {
-    if ( id == "ExternalMailer" ) {
-        KEMailSettings aEmailSettings;
-        QString aClientProgram;
-        OUString sClientProgram;
-
-        aClientProgram = aEmailSettings.getSetting( KEMailSettings::ClientProgram );
-        if ( aClientProgram.isEmpty() )
-            aClientProgram = "kmail";
-        else
-            aClientProgram = aClientProgram.section(SPACE, 0, 0);
-        sClientProgram = reinterpret_cast<const sal_Unicode *>(aClientProgram.utf16());
-        return css::beans::Optional< css::uno::Any >(
-            true, uno::makeAny( sClientProgram ) );
-    } else if (id == "SourceViewFontHeight")
-    {
-        QFont aFixedFont;
-        short nFontHeight;
-
-        aFixedFont = KGlobalSettings::fixedFont();
-        nFontHeight = aFixedFont.pointSize();
-        return css::beans::Optional< css::uno::Any >(
-            true, uno::makeAny( nFontHeight ) );
-    } else if (id == "SourceViewFontName")
-    {
-        QFont aFixedFont;
-        QString aFontName;
-        OUString sFontName;
-
-        aFixedFont = KGlobalSettings::fixedFont();
-        aFontName = aFixedFont.family();
-        sFontName = reinterpret_cast<const sal_Unicode *>(aFontName.utf16());
-        return css::beans::Optional< css::uno::Any >(
-            true, uno::makeAny( sFontName ) );
-    } else if (id == "EnableATToolSupport")
-    {
-        /* does not make much sense without an accessibility bridge */
-        return css::beans::Optional< css::uno::Any >(
-            true, uno::makeAny( OUString::boolean( false ) ) );
-    } else if (id == "WorkPathVariable")
-    {
-        QString aDocumentsDir( KGlobalSettings::documentPath() );
-        OUString sDocumentsDir;
-        OUString sDocumentsURL;
-        if ( aDocumentsDir.endsWith(QChar('/')) )
-            aDocumentsDir.truncate ( aDocumentsDir.length() - 1 );
-        sDocumentsDir = reinterpret_cast<const sal_Unicode *>(aDocumentsDir.utf16());
-        osl_getFileURLFromSystemPath( sDocumentsDir.pData, &sDocumentsURL.pData );
-        return css::beans::Optional< css::uno::Any >(
-            true, uno::makeAny( sDocumentsURL ) );
-    } else if (id == "ooInetFTPProxyName")
-    {
-        QString aFTPProxy;
-        switch ( KProtocolManager::proxyType() )
-        {
-        case KProtocolManager::ManualProxy: // Proxies are manually configured
-            aFTPProxy = KProtocolManager::proxyFor( "FTP" );
-            break;
-        case KProtocolManager::PACProxy:    // A proxy configuration URL has been given
-        case KProtocolManager::WPADProxy:   // A proxy should be automatically discovered
-        case KProtocolManager::EnvVarProxy: // Use the proxy values set through environment variables
-// In such cases, the proxy address is not stored in KDE, but determined dynamically.
-// The proxy address may depend on the requested address, on the time of the day, on the speed of the wind...
-// The best we can do here is to ask the current value for a given address.
-            aFTPProxy = KProtocolManager::proxyForUrl( KUrl("ftp://ftp.libreoffice.org") );
-            break;
-        default:                            // No proxy is used
-            break;
-        }
-        if ( !aFTPProxy.isEmpty() )
-        {
-            KUrl aProxy(aFTPProxy);
-            OUString sProxy = reinterpret_cast<const sal_Unicode *>(aProxy.host().utf16());
-            return css::beans::Optional< css::uno::Any >(
-                true, uno::makeAny( sProxy ) );
-        }
-    } else if (id == "ooInetFTPProxyPort")
-    {
-        QString aFTPProxy;
-        switch ( KProtocolManager::proxyType() )
-        {
-        case KProtocolManager::ManualProxy: // Proxies are manually configured
-            aFTPProxy = KProtocolManager::proxyFor( "FTP" );
-            break;
-        case KProtocolManager::PACProxy:    // A proxy configuration URL has been given
-        case KProtocolManager::WPADProxy:   // A proxy should be automatically discovered
-        case KProtocolManager::EnvVarProxy: // Use the proxy values set through environment variables
-// In such cases, the proxy address is not stored in KDE, but determined dynamically.
-// The proxy address may depend on the requested address, on the time of the day, on the speed of the wind...
-// The best we can do here is to ask the current value for a given address.
-            aFTPProxy = KProtocolManager::proxyForUrl( KUrl("ftp://ftp.libreoffice.org") );
-            break;
-        default:                            // No proxy is used
-            break;
-        }
-        if ( !aFTPProxy.isEmpty() )
-        {
-            KUrl aProxy(aFTPProxy);
-            sal_Int32 nPort = aProxy.port();
-            return css::beans::Optional< css::uno::Any >(
-                true, uno::makeAny( nPort ) );
-        }
-    } else if (id == "ooInetHTTPProxyName")
-    {
-        QString aHTTPProxy;
-        switch ( KProtocolManager::proxyType() )
-        {
-        case KProtocolManager::ManualProxy: // Proxies are manually configured
-            aHTTPProxy = KProtocolManager::proxyFor( "HTTP" );
-            break;
-        case KProtocolManager::PACProxy:    // A proxy configuration URL has been given
-        case KProtocolManager::WPADProxy:   // A proxy should be automatically discovered
-        case KProtocolManager::EnvVarProxy: // Use the proxy values set through environment variables
-// In such cases, the proxy address is not stored in KDE, but determined dynamically.
-// The proxy address may depend on the requested address, on the time of the day, on the speed of the wind...
-// The best we can do here is to ask the current value for a given address.
-            aHTTPProxy = KProtocolManager::proxyForUrl( KUrl("http://http.libreoffice.org") );
-            break;
-        default:                            // No proxy is used
-            break;
-        }
-        if ( !aHTTPProxy.isEmpty() )
-        {
-            KUrl aProxy(aHTTPProxy);
-            OUString sProxy = reinterpret_cast<const sal_Unicode *>(aProxy.host().utf16());
-            return css::beans::Optional< css::uno::Any >(
-                true, uno::makeAny( sProxy ) );
-        }
-    } else if (id == "ooInetHTTPProxyPort")
-    {
-        QString aHTTPProxy;
-        switch ( KProtocolManager::proxyType() )
-        {
-        case KProtocolManager::ManualProxy: // Proxies are manually configured
-            aHTTPProxy = KProtocolManager::proxyFor( "HTTP" );
-            break;
-        case KProtocolManager::PACProxy:    // A proxy configuration URL has been given
-        case KProtocolManager::WPADProxy:   // A proxy should be automatically discovered
-        case KProtocolManager::EnvVarProxy: // Use the proxy values set through environment variables
-// In such cases, the proxy address is not stored in KDE, but determined dynamically.
-// The proxy address may depend on the requested address, on the time of the day, on the speed of the wind...
-// The best we can do here is to ask the current value for a given address.
-            aHTTPProxy = KProtocolManager::proxyForUrl( KUrl("http://http.libreoffice.org") );
-            break;
-        default:                            // No proxy is used
-            break;
-        }
-        if ( !aHTTPProxy.isEmpty() )
-        {
-            KUrl aProxy(aHTTPProxy);
-            sal_Int32 nPort = aProxy.port();
-            return css::beans::Optional< css::uno::Any >(
-                true, uno::makeAny( nPort ) );
-        }
-    } else if (id == "ooInetHTTPSProxyName")
-    {
-        QString aHTTPSProxy;
-        switch ( KProtocolManager::proxyType() )
-        {
-        case KProtocolManager::ManualProxy: // Proxies are manually configured
-            aHTTPSProxy = KProtocolManager::proxyFor( "HTTPS" );
-            break;
-        case KProtocolManager::PACProxy:    // A proxy configuration URL has been given
-        case KProtocolManager::WPADProxy:   // A proxy should be automatically discovered
-        case KProtocolManager::EnvVarProxy: // Use the proxy values set through environment variables
-// In such cases, the proxy address is not stored in KDE, but determined dynamically.
-// The proxy address may depend on the requested address, on the time of the day, on the speed of the wind...
-// The best we can do here is to ask the current value for a given address.
-            aHTTPSProxy = KProtocolManager::proxyForUrl( KUrl("https://https.libreoffice.org") );
-            break;
-        default:                            // No proxy is used
-            break;
-        }
-        if ( !aHTTPSProxy.isEmpty() )
-        {
-            KUrl aProxy(aHTTPSProxy);
-            OUString sProxy = reinterpret_cast<const sal_Unicode *>(aProxy.host().utf16());
-            return css::beans::Optional< css::uno::Any >(
-                true, uno::makeAny( sProxy ) );
-        }
-    } else if (id == "ooInetHTTPSProxyPort")
-    {
-        QString aHTTPSProxy;
-        switch ( KProtocolManager::proxyType() )
-        {
-        case KProtocolManager::ManualProxy: // Proxies are manually configured
-            aHTTPSProxy = KProtocolManager::proxyFor( "HTTPS" );
-            break;
-        case KProtocolManager::PACProxy:    // A proxy configuration URL has been given
-        case KProtocolManager::WPADProxy:   // A proxy should be automatically discovered
-        case KProtocolManager::EnvVarProxy: // Use the proxy values set through environment variables
-// In such cases, the proxy address is not stored in KDE, but determined dynamically.
-// The proxy address may depend on the requested address, on the time of the day, on the speed of the wind...
-// The best we can do here is to ask the current value for a given address.
-            aHTTPSProxy = KProtocolManager::proxyForUrl( KUrl("https://https.libreoffice.org") );
-            break;
-        default:                            // No proxy is used
-            break;
-        }
-        if ( !aHTTPSProxy.isEmpty() )
-        {
-            KUrl aProxy(aHTTPSProxy);
-            sal_Int32 nPort = aProxy.port();
-            return css::beans::Optional< css::uno::Any >(
-                true, uno::makeAny( nPort ) );
-        }
-    } else if ( id == "ooInetNoProxy" ) {
-        QString aNoProxyFor;
-        switch ( KProtocolManager::proxyType() )
-        {
-        case KProtocolManager::ManualProxy: // Proxies are manually configured
-        case KProtocolManager::PACProxy:    // A proxy configuration URL has been given
-        case KProtocolManager::WPADProxy:   // A proxy should be automatically discovered
-        case KProtocolManager::EnvVarProxy: // Use the proxy values set through environment variables
-            aNoProxyFor = KProtocolManager::noProxyFor();
-            break;
-        default:                            // No proxy is used
-            break;
-        }
-        if ( !aNoProxyFor.isEmpty() )
-        {
-            OUString sNoProxyFor;
-
-            aNoProxyFor = aNoProxyFor.replace( COMMA, SEMI_COLON );
-            sNoProxyFor = reinterpret_cast<const sal_Unicode *>(aNoProxyFor.utf16());
-            return css::beans::Optional< css::uno::Any >(
-                true, uno::makeAny( sNoProxyFor ) );
-        }
-    } else if ( id == "ooInetProxyType" ) {
-        int nProxyType;
-        switch ( KProtocolManager::proxyType() )
-        {
-        case KProtocolManager::ManualProxy: // Proxies are manually configured
-        case KProtocolManager::PACProxy:    // A proxy configuration URL has been given
-        case KProtocolManager::WPADProxy:   // A proxy should be automatically discovered
-        case KProtocolManager::EnvVarProxy: // Use the proxy values set through environment variables
-            nProxyType = 1;
-            break;
-        default:                            // No proxy is used
-            nProxyType = 0;
-        }
-        return css::beans::Optional< css::uno::Any >(
-            true, uno::makeAny( static_cast<sal_Int32>(nProxyType) ) );
-    } else {
-        OSL_ASSERT(false); // this cannot happen
-    }
-    return css::beans::Optional< css::uno::Any >();
-}
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/shell/source/backends/kde4be/kde4access.hxx b/shell/source/backends/kde4be/kde4access.hxx
deleted file mode 100644
index f9516c050ac0..000000000000
--- a/shell/source/backends/kde4be/kde4access.hxx
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- 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/.
- *
- * 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 .
- */
-
-#ifndef INCLUDED_SHELL_SOURCE_BACKENDS_KDE4BE_KDE4ACCESS_HXX
-#define INCLUDED_SHELL_SOURCE_BACKENDS_KDE4BE_KDE4ACCESS_HXX
-
-#include <sal/config.h>
-
-#include <com/sun/star/beans/Optional.hpp>
-
-namespace com { namespace sun { namespace star { namespace uno {
-    class Any;
-} } } }
-
-namespace kde4access {
-
-css::beans::Optional< css::uno::Any > getValue(OUString const & id);
-
-}
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/shell/source/backends/kde4be/kde4backend.cxx b/shell/source/backends/kde4be/kde4backend.cxx
deleted file mode 100644
index 800465002c28..000000000000
--- a/shell/source/backends/kde4be/kde4backend.cxx
+++ /dev/null
@@ -1,180 +0,0 @@
-/* -*- 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/.
- *
- * 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 .
- */
-
-#include <sal/config.h>
-
-#include <kapplication.h>
-
-#include <com/sun/star/beans/Optional.hpp>
-#include <com/sun/star/beans/PropertyVetoException.hpp>
-#include <com/sun/star/beans/UnknownPropertyException.hpp>
-#include <com/sun/star/beans/XPropertyChangeListener.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/beans/XPropertySetInfo.hpp>
-#include <com/sun/star/beans/XVetoableChangeListener.hpp>
-#include <com/sun/star/lang/IllegalArgumentException.hpp>
-#include <com/sun/star/lang/WrappedTargetException.hpp>
-#include <com/sun/star/lang/XMultiComponentFactory.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Reference.hxx>
-#include <com/sun/star/uno/RuntimeException.hpp>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <com/sun/star/uno/XCurrentContext.hpp>
-#include <cppuhelper/factory.hxx>
-#include <cppuhelper/implbase.hxx>
-#include <cppuhelper/implementationentry.hxx>
-#include <cppuhelper/weak.hxx>
-#include <rtl/string.h>
-#include <rtl/ustring.h>
-#include <rtl/ustring.hxx>
-#include <sal/types.h>
-#include <uno/current_context.hxx>
-
-#include "kde4access.hxx"
-
-namespace {
-
-OUString getServiceImplementationName() {
-    return OUString(
-            "com.sun.star.comp.configuration.backend.KDE4Backend");
-}
-
-css::uno::Sequence< OUString > getServiceSupportedServiceNames() {
-    OUString name(
-            "com.sun.star.configuration.backend.KDE4Backend");
-    return css::uno::Sequence< OUString >(&name, 1);
-}
-
-class Service:
-    public cppu::WeakImplHelper<
-        css::lang::XServiceInfo, css::beans::XPropertySet >
-{
-public:
-    Service();
-    Service(const Service&) = delete;
-    Service& operator=(const Service&) = delete;
-
-private:
-    virtual ~Service() override {}
-
-    virtual OUString SAL_CALL getImplementationName() override
-    { return getServiceImplementationName(); }
-
-    virtual sal_Bool SAL_CALL supportsService(OUString const & ServiceName) override
-    { return ServiceName == getSupportedServiceNames()[0]; }
-
-    virtual css::uno::Sequence< OUString > SAL_CALL
-    getSupportedServiceNames() override
-    { return getServiceSupportedServiceNames(); }
-
-    virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL
-    getPropertySetInfo() override
-    { return css::uno::Reference< css::beans::XPropertySetInfo >(); }
-
-    virtual void SAL_CALL setPropertyValue(
-        OUString const &, css::uno::Any const &) override;
-
-    virtual css::uno::Any SAL_CALL getPropertyValue(
-        OUString const & PropertyName) override;
-
-    virtual void SAL_CALL addPropertyChangeListener(
-        OUString const &,
-        css::uno::Reference< css::beans::XPropertyChangeListener > const &) override
-    {}
-
-    virtual void SAL_CALL removePropertyChangeListener(
-        OUString const &,
-        css::uno::Reference< css::beans::XPropertyChangeListener > const &) override
-    {}
-
-    virtual void SAL_CALL addVetoableChangeListener(
-        OUString const &,
-        css::uno::Reference< css::beans::XVetoableChangeListener > const &) override
-    {}
-
-    virtual void SAL_CALL removeVetoableChangeListener(
-        OUString const &,
-        css::uno::Reference< css::beans::XVetoableChangeListener > const &) override
-    {}
-
-    bool enabled_;
-};
-
-Service::Service(): enabled_(false) {
-    css::uno::Reference< css::uno::XCurrentContext > context(
-        css::uno::getCurrentContext());
-    if (context.is()) {
-        OUString desktop;
-        context->getValueByName("system.desktop-environment") >>= desktop;
-        enabled_ = desktop == "KDE4" && KApplication::kApplication() != nullptr;
-    }
-}
-
-void Service::setPropertyValue(OUString const &, css::uno::Any const &)
-{
-    throw css::lang::IllegalArgumentException(
-        "setPropertyValue not supported",
-        static_cast< cppu::OWeakObject * >(this), -1);
-}
-
-css::uno::Any Service::getPropertyValue(OUString const & PropertyName)
-{
-    if (PropertyName == "EnableATToolSupport" || PropertyName == "ExternalMailer" || PropertyName == "SourceViewFontHeight"
-     || PropertyName == "SourceViewFontName" || PropertyName == "WorkPathVariable" || PropertyName == "ooInetFTPProxyName"
-     || PropertyName == "ooInetFTPProxyPort" || PropertyName == "ooInetHTTPProxyName" || PropertyName == "ooInetHTTPProxyPort"
-     || PropertyName == "ooInetHTTPSProxyName" || PropertyName == "ooInetHTTPSProxyPort" || PropertyName == "ooInetNoProxy"
-     || PropertyName == "ooInetProxyType" || PropertyName == "TemplatePathVariable" )
-    {
-        return css::uno::makeAny(
-            enabled_
-            ? kde4access::getValue(PropertyName)
-            : css::beans::Optional< css::uno::Any >());
-    } else if (PropertyName == "givenname" || PropertyName == "sn") {
-        return css::uno::makeAny(css::beans::Optional< css::uno::Any >());
-            //TODO: obtain values from KDE?
-    }
-    throw css::beans::UnknownPropertyException(
-        PropertyName, static_cast< cppu::OWeakObject * >(this));
-}
-
-css::uno::Reference< css::uno::XInterface > createInstance(
-    css::uno::Reference< css::uno::XComponentContext > const &)
-{
-    return static_cast< cppu::OWeakObject * >(new Service);
-}
-
-static cppu::ImplementationEntry const services[] = {
-    { &createInstance, &getServiceImplementationName,
-      &getServiceSupportedServiceNames, &cppu::createSingleComponentFactory, nullptr,
-      0 },
-    { nullptr, nullptr, nullptr, nullptr, nullptr, 0 }
-};
-
-}
-
-extern "C" SAL_DLLPUBLIC_EXPORT void * kde4be1_component_getFactory(
-    char const * pImplName, void * pServiceManager, void * pRegistryKey)
-{
-    return cppu::component_getFactoryHelper(
-        pImplName, pServiceManager, pRegistryKey, services);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/shell/source/backends/kde4be/kde4be1.component b/shell/source/backends/kde4be/kde4be1.component
deleted file mode 100644
index 6217f1833435..000000000000
--- a/shell/source/backends/kde4be/kde4be1.component
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * 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 .
- -->
-
-<component loader="com.sun.star.loader.SharedLibrary" environment="@CPPU_ENV@"
-    prefix="kde4be1" xmlns="http://openoffice.org/2010/uno-components">
-  <implementation name="com.sun.star.comp.configuration.backend.KDE4Backend">
-    <service name="com.sun.star.configuration.backend.KDE4Backend"/>
-  </implementation>
-</component>
diff --git a/solenv/gbuild/CppunitTest.mk b/solenv/gbuild/CppunitTest.mk
index d7e63888a660..f93c617e9e66 100644
--- a/solenv/gbuild/CppunitTest.mk
+++ b/solenv/gbuild/CppunitTest.mk
@@ -226,7 +226,6 @@ $(call gb_CppunitTest_get_target,$(1)) : $(if $(filter $(2),$(true)),, \
     $(call gb_Library_get_target,vclplug_gen) \
         $(if $(ENABLE_GTK),$(call gb_Library_get_target,vclplug_gtk)) \
         $(if $(ENABLE_GTK3),$(call gb_Library_get_target,vclplug_gtk3)) \
-        $(if $(ENABLE_KDE4),$(call gb_Library_get_target,vclplug_kde4)) \
         $(if $(ENABLE_QT5),$(call gb_Library_get_target,vclplug_qt5)) \
 	 )
 else ifeq ($(OS),MACOSX)
diff --git a/svtools/source/uno/fpicker.cxx b/svtools/source/uno/fpicker.cxx
index 8db886d5cd1f..e367a326e5c7 100644
--- a/svtools/source/uno/fpicker.cxx
+++ b/svtools/source/uno/fpicker.cxx
@@ -39,12 +39,8 @@ static OUString FilePicker_getSystemPickerServiceName()
 {
 #ifdef UNX
     OUString aDesktopEnvironment (Application::GetDesktopEnvironment());
-    if (aDesktopEnvironment.equalsIgnoreAsciiCase("tde"))
-        return OUString ("com.sun.star.ui.dialogs.TDEFilePicker");
-    else if (aDesktopEnvironment.equalsIgnoreAsciiCase("kde"))
-        return OUString ("com.sun.star.ui.dialogs.KDEFilePicker");
-    else if (aDesktopEnvironment.equalsIgnoreAsciiCase("kde4"))
-        return OUString ("com.sun.star.ui.dialogs.KDE4FilePicker");
+    if (aDesktopEnvironment.equalsIgnoreAsciiCase("kde5"))
+        return OUString ("com.sun.star.ui.dialogs.KDE5FilePicker");
     else if (aDesktopEnvironment.equalsIgnoreAsciiCase("macosx"))
         return OUString ("com.sun.star.ui.dialogs.AquaFilePicker");
     else
@@ -117,9 +113,7 @@ static OUString FolderPicker_getSystemPickerServiceName()
 {
 #ifdef UNX
     OUString aDesktopEnvironment (Application::GetDesktopEnvironment());
-    if (aDesktopEnvironment.equalsIgnoreAsciiCase("tde"))
-        return OUString("com.sun.star.ui.dialogs.TDEFolderPicker");
-    else if (aDesktopEnvironment.equalsIgnoreAsciiCase("kde"))
+    if (aDesktopEnvironment.equalsIgnoreAsciiCase("kde5"))
         return OUString("com.sun.star.ui.dialogs.KDEFolderPicker");
     else if (aDesktopEnvironment.equalsIgnoreAsciiCase("macosx"))
         return OUString("com.sun.star.ui.dialogs.AquaFolderPicker");
diff --git a/sysui/CustomTarget_share.mk b/sysui/CustomTarget_share.mk
index d4f24b5f8e60..b0a1577d4beb 100644
--- a/sysui/CustomTarget_share.mk
+++ b/sysui/CustomTarget_share.mk
@@ -12,8 +12,6 @@ include $(SRCDIR)/sysui/productlist.mk
 
 ifeq ($(ENABLE_GIO),TRUE)
 	brand_URIPARAM := --urls
-else ifeq ($(ENABLE_KDE4),TRUE)
-	brand_URIPARAM := --urls
 else ifeq ($(ENABLE_QT5),TRUE)
 	brand_URIPARAM := --urls
 else
diff --git a/vcl/CustomTarget_kde4_moc.mk b/vcl/CustomTarget_kde4_moc.mk
deleted file mode 100644
index 16d1561944c6..000000000000
--- a/vcl/CustomTarget_kde4_moc.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-# -*- 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/unx/kde4))
-
-$(call gb_CustomTarget_get_target,vcl/unx/kde4) : \
-	$(call gb_CustomTarget_get_workdir,vcl/unx/kde4)/KDEXLib.moc \
-	$(call gb_CustomTarget_get_workdir,vcl/unx/kde4)/KDE4FilePicker.moc \
-	$(call gb_CustomTarget_get_workdir,vcl/unx/kde4)/tst_exclude_socket_notifiers.moc \
-	$(call gb_CustomTarget_get_workdir,vcl/unx/kde4)/tst_exclude_posted_events.moc
-
-$(call gb_CustomTarget_get_workdir,vcl/unx/kde4)/%.moc : \
-		$(SRCDIR)/vcl/unx/kde4/%.hxx \
-		| $(call gb_CustomTarget_get_workdir,vcl/unx/kde4)/.dir
-	$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),MOC,1)
-	$(MOC4) $< -o $@
-
-# vim: set noet sw=4:
diff --git a/vcl/Library_vclplug_kde4.mk b/vcl/Library_vclplug_kde4.mk
deleted file mode 100644
index 88dfd50f41f7..000000000000
--- a/vcl/Library_vclplug_kde4.mk
+++ /dev/null
@@ -1,99 +0,0 @@
-# -*- 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_kde4))
-
-$(eval $(call gb_Library_use_custom_headers,vclplug_kde4,vcl/unx/kde4))
-
-$(eval $(call gb_Library_set_include,vclplug_kde4,\
-    $$(INCLUDE) \
-    -I$(SRCDIR)/vcl/inc \
-))
-
-$(eval $(call gb_Library_add_defs,vclplug_kde4,\
-    -DVCLPLUG_KDE4_IMPLEMENTATION \
-))
-
-$(eval $(call gb_Library_use_sdk_api,vclplug_kde4))
-
-$(eval $(call gb_Library_use_libraries,vclplug_kde4,\
-    vclplug_gen \
-    vcl \
-    tl \
-    utl \
-    sot \
-    ucbhelper \
-    basegfx \
-    comphelper \
-    cppuhelper \
-    i18nlangtag \
-    i18nutil \
-    $(if $(ENABLE_JAVA), \
-        jvmaccess) \
-    cppu \
-    sal \
-))
-
-$(eval $(call gb_Library_use_externals,vclplug_kde4,\
-	boost_headers \
-	harfbuzz \
-	icuuc \
-	kde4 \
-	epoxy \
-))
-
-$(eval $(call gb_Library_add_libs,vclplug_kde4,\
-	-lX11 \
-	-lXext \
-	-lSM \
-	-lICE \
-))
-
-ifneq ($(KDE4_HAVE_GLIB),)
-$(eval $(call gb_Library_add_defs,vclplug_kde4,\
-    $(KDE4_GLIB_CFLAGS) \
-))
-
-$(eval $(call gb_Library_add_libs,vclplug_kde4,\
-    $(KDE4_GLIB_LIBS) \
-))
-endif
-
-
-$(eval $(call gb_Library_add_exception_objects,vclplug_kde4,\
-    vcl/unx/kde4/KDEData \
-    vcl/unx/kde4/KDE4FilePicker \
-    vcl/unx/kde4/KDESalDisplay \
-    vcl/unx/kde4/KDESalFrame \
-    vcl/unx/kde4/KDESalGraphics \
-    vcl/unx/kde4/KDESalInstance \
-    vcl/unx/kde4/KDEXLib \
-    vcl/unx/kde4/main \
-    vcl/unx/kde4/VCLKDEApplication \
-))
-
-ifeq ($(OS),LINUX)
-$(eval $(call gb_Library_add_libs,vclplug_kde4,\
-	-lm \
-	-ldl \
-	-lpthread \
-))
-endif
-
-# vim: set noet sw=4 ts=4:
diff --git a/vcl/Module_vcl.mk b/vcl/Module_vcl.mk
index baef5f31e34e..95dd579c38de 100644
--- a/vcl/Module_vcl.mk
+++ b/vcl/Module_vcl.mk
@@ -75,13 +75,6 @@ $(eval $(call gb_Module_add_targets,vcl,\
     Library_vclplug_gtk3 \
 ))
 endif
-ifneq ($(ENABLE_KDE4),)
-$(eval $(call gb_Module_add_targets,vcl,\
-    CustomTarget_kde4_moc \
-    Library_vclplug_kde4 \
-))
-endif
-
 ifneq ($(ENABLE_KDE5),)
 $(eval $(call gb_Module_add_targets,vcl,\
     CustomTarget_kde5_moc \
diff --git a/vcl/README b/vcl/README
index 1169cdf1f660..9219c30b5b46 100644
--- a/vcl/README
+++ b/vcl/README
@@ -38,12 +38,10 @@ unx/
 		+ GTK2 support
 	gtk3/
 		+ GTK3 support
-	kde4/
-		+ KDE4 support
 	kde5/
-		+ KDE5 support (under construction)
+		+ KDE5 support
 	gtk3_kde5/
-		+ GTK3 support with KDE5 file pickers (until kde5 is finished)
+		+ GTK3 support with KDE5 file pickers (alternative to native kde5 one)
 	generic/
 		+ raw X11 support
 
diff --git a/vcl/README.scheduler b/vcl/README.scheduler
index b7d7b61b30f7..23decf3b7ec2 100644
--- a/vcl/README.scheduler
+++ b/vcl/README.scheduler
@@ -273,7 +273,7 @@ now need O(log(n)) to find the position in the queue of the priority.
 
 Currently Application::Reschedule() processes a single event or "all" events,
 with "all" defined as "100 events" in most backends. This already is ignored
-by the KDE4 backend, as Qt defines its QAbstractEventDispatcher::processEvents
+by the KDE backend, as Qt defines its QAbstractEventDispatcher::processEvents
 processing all pending events (there are ways to skip event classes, but no
 easy way to process just a single event).
 
@@ -342,4 +342,4 @@ priority idle in the event loop.
 A few layers of indirection make this code hard to follow. The SalXLib::Yield
 and SalX11Display::Yield architecture makes it impossible to process just the
 current events. This really needs a refactoring and rearchitecture step, which
-will also affect the Gtk+ and KDE4 backend for the user event handling.
+will also affect the Gtk+ and KDE backend for the user event handling.
diff --git a/vcl/inc/vclpluginapi.h b/vcl/inc/vclpluginapi.h
index fb3350e43a1f..495c86b8e57b 100644
--- a/vcl/inc/vclpluginapi.h
+++ b/vcl/inc/vclpluginapi.h
@@ -35,12 +35,6 @@
 #define VCLPLUG_GTK_PUBLIC SAL_DLLPUBLIC_IMPORT
 #endif
 
-#if defined VCLPLUG_KDE4_IMPLEMENTATION
-#define VCLPLUG_KDE4_PUBLIC SAL_DLLPUBLIC_EXPORT
-#else
-#define VCLPLUG_KDE4_PUBLIC SAL_DLLPUBLIC_IMPORT
-#endif
-
 #if defined VCLPLUG_KDE5_IMPLEMENTATION
 #define VCLPLUG_KDE5_PUBLIC SAL_DLLPUBLIC_EXPORT
 #else
diff --git a/vcl/source/app/salplug.cxx b/vcl/source/app/salplug.cxx
index 3a3421179274..938780d11879 100644
--- a/vcl/source/app/salplug.cxx
+++ b/vcl/source/app/salplug.cxx
@@ -97,7 +97,7 @@ SalInstance* tryInstance( const OUString& rModuleBase, bool bForce = false )
                  * #i109007# KDE3 seems to have the same problem.
                  * And same applies for KDE4.
                  */
-                if( rModuleBase == "gtk" || rModuleBase == "gtk3" || rModuleBase == "kde4" || rModuleBase == "gtk3_kde5" || rModuleBase == "win" )
+                if( rModuleBase == "gtk" || rModuleBase == "gtk3" || rModuleBase == "gtk3_kde5" || rModuleBase == "win" )
                 {
                     pCloseModule = nullptr;
                 }
@@ -156,9 +156,6 @@ SalInstance* autodetect_plugin()
 #if ENABLE_GTK3_KDE5
         "gtk3_kde5",
 #endif
-#if ENABLE_KDE4
-        "kde4",
-#endif
         "gtk3", "gtk", "gen", nullptr
     };
 
diff --git a/vcl/source/opengl/OpenGLHelper.cxx b/vcl/source/opengl/OpenGLHelper.cxx
index 882f35d424af..356710a71d2a 100644
--- a/vcl/source/opengl/OpenGLHelper.cxx
+++ b/vcl/source/opengl/OpenGLHelper.cxx
@@ -961,7 +961,7 @@ bool OpenGLHelper::isVCLOpenGLEnabled()
         return false;
 
     //tdf#106155, disable GL while loading certain bitmaps needed for the initial toplevel windows
-    //under raw X (kde4) vclplug
+    //under raw X (kde) vclplug
     if (bTempOpenGLDisabled)
         return false;
 
diff --git a/vcl/unx/kde4/FPServiceInfo.hxx b/vcl/unx/kde4/FPServiceInfo.hxx
deleted file mode 100644
index fdb285144343..000000000000
--- a/vcl/unx/kde4/FPServiceInfo.hxx
+++ /dev/null
@@ -1,28 +0,0 @@
-/* -*- 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/.
- *
- * 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 .
- */
-
-#pragma once
-
-// the service names
-#define FILE_PICKER_SERVICE_NAME "com.sun.star.ui.dialogs.KDE4FilePicker"
-
-// the implementation names
-#define FILE_PICKER_IMPL_NAME    "com.sun.star.ui.dialogs.KDE4FilePicker"
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/unx/kde4/KDE4FilePicker.cxx b/vcl/unx/kde4/KDE4FilePicker.cxx
deleted file mode 100644
index 5454344b949d..000000000000
--- a/vcl/unx/kde4/KDE4FilePicker.cxx
+++ /dev/null
@@ -1,823 +0,0 @@
-/* -*- 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/.
- *
- * 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 .
- */
-
-#include "KDE4FilePicker.hxx"
-
-#include <com/sun/star/lang/DisposedException.hpp>
-#include <com/sun/star/lang/IllegalArgumentException.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <cppuhelper/interfacecontainer.h>
-#include <cppuhelper/supportsservice.hxx>
-#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
-#include <com/sun/star/ui/dialogs/CommonFilePickerElementIds.hpp>
-#include <com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.hpp>
-#include <com/sun/star/ui/dialogs/ControlActions.hpp>
-#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
-
-#include <fpicker/strings.hrc>
-#include <vcl/svapp.hxx>
-#include <vcl/sysdata.hxx>
-#include <vcl/syswin.hxx>
-
-#include <osl/file.h>
-#include <sal/log.hxx>
-
-#include "FPServiceInfo.hxx"
-#include "VCLKDEApplication.hxx"
-
-#include <kfiledialog.h>
-#include <kwindowsystem.h>
-#include <kapplication.h>
-#include <kfilefiltercombo.h>
-#include <kfilewidget.h>
-#include <kdiroperator.h>
-#include <kservicetypetrader.h>
-#include <kmessagebox.h>
-
-#include <QtGui/QClipboard>
-#include <QtGui/QWidget>
-#include <QtGui/QCheckBox>
-#include <QtGui/QGridLayout>
-
-#undef Region
-
-#include <unx/geninst.h>
-
-#include <strings.hrc>
-
-// The dialog should check whether LO also supports the protocol
-// provided by KIO, and KFileWidget::dirOperator() is only 4.3+ .
-// Moreover it's only in this somewhat internal KFileWidget class,
-// which may not necessarily be what KFileDialog::fileWidget() returns,
-// but that's hopefully not a problem in practice.
-#if KDE_VERSION_MAJOR == 4 && KDE_VERSION_MINOR >= 2
-#define ALLOW_REMOTE_URLS 1
-#else
-#define ALLOW_REMOTE_URLS 0
-#endif
-
-// helper functions
-
-#include <QtCore/QDebug>
-
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::ui::dialogs;
-using namespace ::com::sun::star::ui::dialogs::TemplateDescription;
-using namespace ::com::sun::star::ui::dialogs::ExtendedFilePickerElementIds;
-using namespace ::com::sun::star::ui::dialogs::CommonFilePickerElementIds;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::uno;
-
-namespace
-{
-    uno::Sequence<OUString> FilePicker_getSupportedServiceNames()
-    {
-        uno::Sequence<OUString> aRet(3);
-        aRet[0] = "com.sun.star.ui.dialogs.FilePicker";
-        aRet[1] = "com.sun.star.ui.dialogs.SystemFilePicker";
-        aRet[2] = "com.sun.star.ui.dialogs.KDE4FilePicker";
-        return aRet;
-    }
-}
-
-static OUString toOUString(const QString& s)
-{
-    // QString stores UTF16, just like OUString
-    return OUString(reinterpret_cast<const sal_Unicode*>(s.data()), s.length());
-}
-
-static QString toQString(const OUString& s)
-{
-    return QString::fromUtf16(
-        reinterpret_cast<ushort const *>(s.getStr()), s.getLength());
-}
-
-// KDE4FilePicker
-
-KDE4FilePicker::KDE4FilePicker( const uno::Reference<uno::XComponentContext>& )
-    : KDE4FilePicker_Base(_helperMutex)
-    , allowRemoteUrls( false )
-{
-    _extraControls = new QWidget();
-    _layout = new QGridLayout(_extraControls);
-
-    _dialog = new KFileDialog(KUrl("~"), QString(""), nullptr, _extraControls);
-#if ALLOW_REMOTE_URLS
-    if( KFileWidget* fileWidget = dynamic_cast< KFileWidget* >( _dialog->fileWidget()))
-    {
-        allowRemoteUrls = true;
-        // Use finishedLoading signal rather than e.g. urlEntered, because if there's a problem
-        // such as the URL being mistyped, there's no way to prevent two message boxes about it,
-        // one from us and one from KDE code.
-        connect( fileWidget->dirOperator(), SIGNAL( finishedLoading()), SLOT( checkProtocol()));
-    }
-#endif
-
-    setMultiSelectionMode( false );
-
-    // XExecutableDialog functions
-    connect( this, SIGNAL( setTitleSignal( const OUString & ) ),
-             this, SLOT( setTitleSlot( const OUString & ) ), Qt::BlockingQueuedConnection );
-    connect( this, SIGNAL( executeSignal() ),
-             this, SLOT( executeSlot() ), Qt::BlockingQueuedConnection );
-
-    // XFilePicker functions
-    connect( this, SIGNAL( setMultiSelectionModeSignal( bool ) ),
-             this, SLOT( setMultiSelectionModeSlot( bool ) ), Qt::BlockingQueuedConnection );
-    connect( this, SIGNAL( setDefaultNameSignal( const OUString & ) ),
-             this, SLOT( setDefaultNameSlot( const OUString & ) ), Qt::BlockingQueuedConnection );
-    connect( this, SIGNAL( setDisplayDirectorySignal( const OUString & ) ),
-             this, SLOT( setDisplayDirectorySlot( const OUString & ) ), Qt::BlockingQueuedConnection );
-    connect( this, SIGNAL( getDisplayDirectorySignal() ),
-             this, SLOT( getDisplayDirectorySlot() ), Qt::BlockingQueuedConnection );
-    connect( this, SIGNAL( getFilesSignal() ),
-             this, SLOT( getFilesSlot() ), Qt::BlockingQueuedConnection );
-
-    // XFilterManager functions
-    connect( this, SIGNAL( appendFilterSignal( const OUString &, const OUString & ) ),
-             this, SLOT( appendFilterSlot( const OUString &, const OUString & ) ), Qt::BlockingQueuedConnection );
-    connect( this, SIGNAL( setCurrentFilterSignal( const OUString & ) ),
-             this, SLOT( setCurrentFilterSlot( const OUString & ) ), Qt::BlockingQueuedConnection );
-    connect( this, SIGNAL( getCurrentFilterSignal() ),
-             this, SLOT( getCurrentFilterSlot() ), Qt::BlockingQueuedConnection );
-
-    // XFilterGroupManager functions
-    connect( this, SIGNAL( appendFilterGroupSignal( const OUString &, const css::uno::Sequence< css::beans::StringPair > & ) ),
-             this, SLOT( appendFilterGroupSlot( const OUString &, const css::uno::Sequence< css::beans::StringPair > & ) ), Qt::BlockingQueuedConnection );
-
-    // XFilePickerControlAccess functions
-    connect( this, SIGNAL( setValueSignal( sal_Int16, sal_Int16, const css::uno::Any & ) ),
-             this, SLOT( setValueSlot( sal_Int16, sal_Int16, const css::uno::Any & ) ), Qt::BlockingQueuedConnection );
-    connect( this, SIGNAL( getValueSignal( sal_Int16, sal_Int16 ) ),
-             this, SLOT( getValueSlot( sal_Int16, sal_Int16 ) ), Qt::BlockingQueuedConnection );
-    connect( this, SIGNAL( enableControlSignal( sal_Int16, bool ) ),
-             this, SLOT( enableControlSlot( sal_Int16, bool ) ), Qt::BlockingQueuedConnection );
-    connect( this, SIGNAL( setLabelSignal( sal_Int16, const OUString & ) ),
-             this, SLOT( setLabelSlot( sal_Int16, const OUString & ) ), Qt::BlockingQueuedConnection );
-    connect( this, SIGNAL( getLabelSignal( sal_Int16 ) ),
-             this, SLOT( getLabelSlot( sal_Int16 ) ), Qt::BlockingQueuedConnection );
-
-    // XFilePicker2 functions
-    connect( this, SIGNAL( getSelectedFilesSignal() ),
-             this, SLOT( getSelectedFilesSlot() ), Qt::BlockingQueuedConnection );
-
-    // XInitialization
-    connect( this, SIGNAL( initializeSignal( const css::uno::Sequence< css::uno::Any > & ) ),
-             this, SLOT( initializeSlot( const css::uno::Sequence< css::uno::Any > & ) ), Qt::BlockingQueuedConnection );
-
-    // Destructor proxy
-    connect( this, SIGNAL( cleanupProxySignal() ), this, SLOT( cleanupProxy() ), Qt::BlockingQueuedConnection );
-
-    connect( this, SIGNAL( checkProtocolSignal() ), this, SLOT( checkProtocol() ), Qt::BlockingQueuedConnection );
-
-    // XFilePickerListener notifications
-    connect( _dialog, SIGNAL( filterChanged(const QString&) ), this, SLOT( filterChanged(const QString&) ));
-    connect( _dialog, SIGNAL( selectionChanged() ), this, SLOT( selectionChanged() ));
-}
-
-KDE4FilePicker::~KDE4FilePicker()
-{
-    cleanupProxy();
-}
-
-void KDE4FilePicker::cleanupProxy()
-{
-    if( qApp->thread() != QThread::currentThread() ) {
-        SolarMutexReleaser aReleaser;
-        return Q_EMIT cleanupProxySignal();
-    }
-    delete _dialog;
-}
-
-void SAL_CALL KDE4FilePicker::addFilePickerListener( const uno::Reference<XFilePickerListener>& xListener )
-{
-    SolarMutexGuard aGuard;
-    m_xListener = xListener;
-}
-
-void SAL_CALL KDE4FilePicker::removeFilePickerListener( const uno::Reference<XFilePickerListener>& )
-{
-    SolarMutexGuard aGuard;
-    m_xListener.clear();
-}
-
-void SAL_CALL KDE4FilePicker::setTitle( const OUString &title )
-{
-    if( qApp->thread() != QThread::currentThread() ) {
-        SolarMutexReleaser aReleaser;
-        return Q_EMIT setTitleSignal( title );
-    }
-
-    _dialog->setCaption(toQString(title));
-}
-
-sal_Int16 SAL_CALL KDE4FilePicker::execute()
-{
-    if( qApp->thread() != QThread::currentThread() ) {
-        SolarMutexReleaser aReleaser;
-        return Q_EMIT executeSignal();
-    }
-
-    //get the window id of the main OO window to set it for the dialog as a parent
-    vcl::Window *pParentWin = Application::GetDefDialogParent();
-    if ( pParentWin )
-    {
-        const SystemEnvData* pSysData = pParentWin->GetSystemData();
-        if ( pSysData )
-        {
-            KWindowSystem::setMainWindow( _dialog, pSysData->aWindow); // unx only
-        }
-    }
-
-    _dialog->clearFilter();
-    _dialog->setFilter(_filter);
-
-    if(!_currentFilter.isNull())
-        _dialog->filterWidget()->setCurrentItem(_currentFilter);
-
-    _dialog->filterWidget()->setEditable(false);
-
-    VCLKDEApplication::preDialogSetup();
-    //block and wait for user input
-    int result = _dialog->exec();
-    VCLKDEApplication::postDialogCleanup();
-    if( result == KFileDialog::Accepted )
-        return ExecutableDialogResults::OK;
-
-    return ExecutableDialogResults::CANCEL;
-}
-
-void SAL_CALL KDE4FilePicker::setMultiSelectionMode( sal_Bool multiSelect )
-{
-    if( qApp->thread() != QThread::currentThread() ) {
-        SolarMutexReleaser aReleaser;
-        return Q_EMIT setMultiSelectionModeSignal( multiSelect );
-    }
-
-    if( allowRemoteUrls )
-    {
-        if (multiSelect)
-            _dialog->setMode(KFile::Files);
-        else
-            _dialog->setMode(KFile::File);
-    }
-    else
-    {
-        if (multiSelect)
-            _dialog->setMode(KFile::Files | KFile::LocalOnly);
-        else
-            _dialog->setMode(KFile::File | KFile::LocalOnly);
-    }
-}
-
-void SAL_CALL KDE4FilePicker::setDefaultName( const OUString &name )
-{
-    if( qApp->thread() != QThread::currentThread() ) {
-        SolarMutexReleaser aReleaser;
-        return Q_EMIT setDefaultNameSignal( name );
-    }
-
-    const QString url = toQString(name);
-    _dialog->setSelection(url);
-}
-
-void SAL_CALL KDE4FilePicker::setDisplayDirectory( const OUString &dir )
-{
-    if( qApp->thread() != QThread::currentThread() ) {
-        SolarMutexReleaser aReleaser;
-        return Q_EMIT setDisplayDirectorySignal( dir );
-    }
-
-    const QString url = toQString(dir);
-    _dialog->setUrl(KUrl(url));
-}
-
-OUString SAL_CALL KDE4FilePicker::getDisplayDirectory()
-{
-    if( qApp->thread() != QThread::currentThread() ) {
-        SolarMutexReleaser aReleaser;
-        return Q_EMIT getDisplayDirectorySignal();
-    }
-
-    QString dir = _dialog->baseUrl().url();
-    return toOUString(dir);
-}
-
-uno::Sequence< OUString > SAL_CALL KDE4FilePicker::getFiles()
-{
-    if( qApp->thread() != QThread::currentThread() ) {
-        SolarMutexReleaser aReleaser;
-        return Q_EMIT getFilesSignal();
-    }
-    uno::Sequence< OUString > seq = getSelectedFiles();
-    if (seq.getLength() > 1)
-        seq.realloc(1);
-    return seq;
-}
-
-uno::Sequence< OUString > SAL_CALL KDE4FilePicker::getSelectedFiles()
-{
-    if( qApp->thread() != QThread::currentThread() ) {
-        SolarMutexReleaser aReleaser;
-        return Q_EMIT getSelectedFilesSignal();
-    }
-    KUrl::List urls = _dialog->selectedUrls();
-    uno::Sequence< OUString > seq( urls.size());
-    int i = 0;
-    foreach( const KUrl& url, urls )
-        seq[ i++ ]= toOUString( url.url());
-    return seq;
-}
-
-void SAL_CALL KDE4FilePicker::appendFilter( const OUString &title, const OUString &filter )
-{
-    if( qApp->thread() != QThread::currentThread() ) {
-        SolarMutexReleaser aReleaser;
-        return Q_EMIT appendFilterSignal( title, filter );
-    }
-
-    QString t = toQString(title);
-    QString f = toQString(filter);
-
-    if (!_filter.isNull())
-        _filter.append("\n");
-
-    // '/' need to be escaped else they are assumed to be mime types by kfiledialog
-    //see the docs
-    t.replace("/", "\\/");
-
-    // openoffice gives us filters separated by ';' qt dialogs just want space separated
-    f.replace(";", " ");
-
-    // make sure "*.*" is not used as "all files"
-    f.replace("*.*", "*");
-
-    _filter.append(QString("%1|%2").arg(f).arg(t));
-}
-
-void SAL_CALL KDE4FilePicker::setCurrentFilter( const OUString &title )
-{
-    if( qApp->thread() != QThread::currentThread() ) {
-        SolarMutexReleaser aReleaser;
-        return Q_EMIT setCurrentFilterSignal( title );
-    }
-
-    _currentFilter = toQString(title);
-}
-
-OUString SAL_CALL KDE4FilePicker::getCurrentFilter()
-{
-    if( qApp->thread() != QThread::currentThread() ) {
-        SolarMutexReleaser aReleaser;
-        return Q_EMIT getCurrentFilterSignal();
-    }
-
-    // _dialog->currentFilter() wouldn't quite work, because it returns only e.g. "*.doc",
-    // without the description, and there may be several filters with the same pattern
-    QString filter = _dialog->filterWidget()->currentText();
-    filter = filter.mid( filter.indexOf( '|' ) + 1 ); // convert from the pattern|description format if needed
-    filter.replace( "\\/", "/" );
-
-    //default if not found
-    if (filter.isNull())
-        filter = "ODF Text Document (.odt)";
-
-    return toOUString(filter);
-}
-
-void SAL_CALL KDE4FilePicker::appendFilterGroup( const OUString& rGroupTitle, const uno::Sequence<beans::StringPair>& filters)
-{
-    if( qApp->thread() != QThread::currentThread() ) {
-        SolarMutexReleaser aReleaser;
-        return Q_EMIT appendFilterGroupSignal( rGroupTitle, filters );
-    }
-
-    const sal_uInt16 length = filters.getLength();
-    for (sal_uInt16 i = 0; i < length; ++i)
-    {
-        beans::StringPair aPair = filters[i];
-        appendFilter( aPair.First, aPair.Second );
-    }
-}
-
-void SAL_CALL KDE4FilePicker::setValue( sal_Int16 controlId, sal_Int16 nControlAction, const uno::Any &value )
-{
-    if( qApp->thread() != QThread::currentThread() ) {
-        SolarMutexReleaser aReleaser;
-        return Q_EMIT setValueSignal( controlId, nControlAction, value );
-    }
-
-    if (_customWidgets.contains( controlId )) {
-        QCheckBox* cb = dynamic_cast<QCheckBox*>( _customWidgets.value( controlId ));
-        if (cb)
-            cb->setChecked(value.get<bool>());
-    }
-    else
-        SAL_WARN( "vcl", "set label on unknown control " << controlId );
-}
-
-uno::Any SAL_CALL KDE4FilePicker::getValue( sal_Int16 controlId, sal_Int16 nControlAction )
-{
-    if (CHECKBOX_AUTOEXTENSION == controlId)
-        // We ignore this one and rely on KFileDialog to provide the function.
-        // Always return false, to pretend we do not support this, otherwise
-        // LO core would try to be smart and cut the extension in some places,
-        // interfering with KFileDialog's handling of it. KFileDialog also
-        // saves the value of the setting, so LO core is not needed for that either.
-        return uno::Any( false );
-
-    if( qApp->thread() != QThread::currentThread() ) {
-        SolarMutexReleaser aReleaser;
-        return Q_EMIT getValueSignal( controlId, nControlAction );
-    }
-
-    uno::Any res(false);
-    if (_customWidgets.contains( controlId )) {
-        QCheckBox* cb = dynamic_cast<QCheckBox*>( _customWidgets.value( controlId ));
-        if (cb)
-            res <<= cb->isChecked();
-    }
-    else
-        SAL_WARN( "vcl", "get value on unknown control " << controlId );
-
-    return res;
-}
-
-void SAL_CALL KDE4FilePicker::enableControl( sal_Int16 controlId, sal_Bool enable )
-{
-    if( qApp->thread() != QThread::currentThread() ) {
-        SolarMutexReleaser aReleaser;
-        return Q_EMIT enableControlSignal( controlId, enable );
-    }
-
-    if (_customWidgets.contains( controlId ))
-        _customWidgets.value( controlId )->setEnabled( enable );
-    else
-        SAL_WARN( "vcl", "enable unknown control " << controlId );
-}
-
-void SAL_CALL KDE4FilePicker::setLabel( sal_Int16 controlId, const OUString &label )
-{
-    if( qApp->thread() != QThread::currentThread() ) {
-        SolarMutexReleaser aReleaser;
-        return Q_EMIT setLabelSignal( controlId, label );
-    }
-
-    if (_customWidgets.contains( controlId )) {
-        QCheckBox* cb = dynamic_cast<QCheckBox*>( _customWidgets.value( controlId ));
-        if (cb)
-            cb->setText( toQString(label) );
-    }
-    else
-        SAL_WARN( "vcl", "set label on unknown control " << controlId );
-}
-
-OUString SAL_CALL KDE4FilePicker::getLabel(sal_Int16 controlId)
-{
-    if( qApp->thread() != QThread::currentThread() ) {
-        SolarMutexReleaser aReleaser;
-        return Q_EMIT getLabelSignal( controlId );
-    }
-
-    QString label;
-    if (_customWidgets.contains( controlId )) {
-        QCheckBox* cb = dynamic_cast<QCheckBox*>( _customWidgets.value( controlId ));
-        if (cb)
-            label = cb->text();
-    }
-    else
-        SAL_WARN( "vcl", "get label on unknown control " << controlId );
-
-    return toOUString(label);
-}
-
-QString KDE4FilePicker::getResString(const char *pResId)
-{
-    QString aResString;
-
-    if (pResId == nullptr)
-        return aResString;
-
-    aResString = toQString(VclResId(pResId));
-
-    return aResString.replace('~', '&');
-}
-
-void KDE4FilePicker::addCustomControl(sal_Int16 controlId)
-{
-    QWidget* widget = nullptr;
-    const char* resId = nullptr;
-
-    switch (controlId)
-    {
-        case CHECKBOX_AUTOEXTENSION:
-            resId = STR_FPICKER_AUTO_EXTENSION;
-            break;
-        case CHECKBOX_PASSWORD:
-            resId = STR_FPICKER_PASSWORD;
-            break;
-        case CHECKBOX_GPGENCRYPTION:
-            resId = STR_FPICKER_GPGENCRYPT;
-            break;
-        case CHECKBOX_FILTEROPTIONS:
-            resId = STR_FPICKER_FILTER_OPTIONS;
-            break;
-        case CHECKBOX_READONLY:
-            resId = STR_FPICKER_READONLY;
-            break;
-        case CHECKBOX_LINK:
-            resId = STR_FPICKER_INSERT_AS_LINK;
-            break;
-        case CHECKBOX_PREVIEW:
-            resId = STR_FPICKER_SHOW_PREVIEW;
-            break;
-        case CHECKBOX_SELECTION:
-            resId = STR_FPICKER_SELECTION;
-            break;
-        case PUSHBUTTON_PLAY:
-            resId = STR_FPICKER_PLAY;
-            break;
-        case LISTBOX_VERSION:
-            resId = STR_FPICKER_VERSION;
-            break;
-        case LISTBOX_TEMPLATE:
-            resId = STR_FPICKER_TEMPLATES;
-            break;
-        case LISTBOX_IMAGE_TEMPLATE:
-            resId = STR_FPICKER_IMAGE_TEMPLATE;
-            break;
-        case LISTBOX_IMAGE_ANCHOR:
-            resId = STR_FPICKER_IMAGE_ANCHOR;
-            break;
-        case LISTBOX_VERSION_LABEL:
-        case LISTBOX_TEMPLATE_LABEL:
-        case LISTBOX_IMAGE_TEMPLATE_LABEL:
-        case LISTBOX_IMAGE_ANCHOR_LABEL:
-        case LISTBOX_FILTER_SELECTOR:
-            break;
-    }
-
-    switch (controlId)
-    {
-        case CHECKBOX_AUTOEXTENSION:
-        case CHECKBOX_PASSWORD:
-        case CHECKBOX_GPGENCRYPTION:
-        case CHECKBOX_FILTEROPTIONS:
-        case CHECKBOX_READONLY:
-        case CHECKBOX_LINK:
-        case CHECKBOX_PREVIEW:
-        case CHECKBOX_SELECTION:
-        {
-            widget = new QCheckBox(getResString(resId), _extraControls);
-
-            // the checkbox is created even for CHECKBOX_AUTOEXTENSION to simplify
-            // code, but the checkbox is hidden and ignored
-            if( controlId == CHECKBOX_AUTOEXTENSION )
-                widget->hide();
-
-            break;
-        }
-        case PUSHBUTTON_PLAY:
-        case LISTBOX_VERSION:
-        case LISTBOX_TEMPLATE:
-        case LISTBOX_IMAGE_TEMPLATE:
-        case LISTBOX_IMAGE_ANCHOR:
-        case LISTBOX_VERSION_LABEL:
-        case LISTBOX_TEMPLATE_LABEL:
-        case LISTBOX_IMAGE_TEMPLATE_LABEL:
-        case LISTBOX_IMAGE_ANCHOR_LABEL:
-        case LISTBOX_FILTER_SELECTOR:
-            break;
-    }
-
-    if (widget)
-    {
-        _layout->addWidget(widget);
-        _customWidgets.insert(controlId, widget);
-    }
-}
-
-void SAL_CALL KDE4FilePicker::initialize( const uno::Sequence<uno::Any> &args )
-{
-    if( qApp->thread() != QThread::currentThread() ) {
-        SolarMutexReleaser aReleaser;
-        return Q_EMIT initializeSignal( args );
-    }
-
-    _filter.clear();
-    _currentFilter.clear();
-
-    // parameter checking
-    uno::Any arg;
-    if (args.getLength() == 0)
-    {
-        throw lang::IllegalArgumentException(
-                "no arguments",
-                static_cast< XFilePicker2* >( this ), 1 );
-    }
-
-    arg = args[0];
-
-    if (( arg.getValueType() != cppu::UnoType<sal_Int16>::get()) &&
-        ( arg.getValueType() != cppu::UnoType<sal_Int8>::get()))
-    {
-        throw lang::IllegalArgumentException(
-                "invalid argument type",
-                static_cast< XFilePicker2* >( this ), 1 );
-    }
-
-    sal_Int16 templateId = -1;
-    arg >>= templateId;
-
-    //default is opening
-    KFileDialog::OperationMode operationMode = KFileDialog::Opening;
-
-    switch ( templateId )
-    {
-        case FILEOPEN_SIMPLE:
-            break;
-
-        case FILESAVE_SIMPLE:
-            operationMode = KFileDialog::Saving;
-            break;
-
-        case FILESAVE_AUTOEXTENSION:
-            operationMode = KFileDialog::Saving;
-            addCustomControl( CHECKBOX_AUTOEXTENSION );
-            break;
-
-        case FILESAVE_AUTOEXTENSION_PASSWORD:
-        {
-            operationMode = KFileDialog::Saving;
-            addCustomControl( CHECKBOX_PASSWORD );
-            addCustomControl( CHECKBOX_GPGENCRYPTION );
-            break;
-        }
-        case FILESAVE_AUTOEXTENSION_PASSWORD_FILTEROPTIONS:
-        {
-            operationMode = KFileDialog::Saving;
-            addCustomControl( CHECKBOX_AUTOEXTENSION );
-            addCustomControl( CHECKBOX_PASSWORD );
-            addCustomControl( CHECKBOX_GPGENCRYPTION );
-            addCustomControl( CHECKBOX_FILTEROPTIONS );
-            break;
-        }
-        case FILESAVE_AUTOEXTENSION_SELECTION:
-            operationMode = KFileDialog::Saving;
-            addCustomControl( CHECKBOX_AUTOEXTENSION );
-            addCustomControl( CHECKBOX_SELECTION );
-            break;
-
-        case FILESAVE_AUTOEXTENSION_TEMPLATE:
-            operationMode = KFileDialog::Saving;
-            addCustomControl( CHECKBOX_AUTOEXTENSION );
-            addCustomControl( LISTBOX_TEMPLATE );
-            break;
-
-        case FILEOPEN_LINK_PREVIEW_IMAGE_TEMPLATE:
-            addCustomControl( CHECKBOX_LINK );
-            addCustomControl( CHECKBOX_PREVIEW );
-            addCustomControl( LISTBOX_IMAGE_TEMPLATE );
-            break;
-
-        case FILEOPEN_LINK_PREVIEW_IMAGE_ANCHOR:
-            addCustomControl( CHECKBOX_LINK );
-            addCustomControl( CHECKBOX_PREVIEW );
-            addCustomControl( LISTBOX_IMAGE_ANCHOR );
-            break;
-
-        case FILEOPEN_PLAY:
-            addCustomControl( PUSHBUTTON_PLAY );
-            break;
-
-        case FILEOPEN_LINK_PLAY:
-            addCustomControl( CHECKBOX_LINK );
-            addCustomControl( PUSHBUTTON_PLAY );
-            break;
-
-        case FILEOPEN_READONLY_VERSION:
-            addCustomControl( CHECKBOX_READONLY );
-            addCustomControl( LISTBOX_VERSION );
-            break;
-
-        case FILEOPEN_LINK_PREVIEW:
-            addCustomControl( CHECKBOX_LINK );
-            addCustomControl( CHECKBOX_PREVIEW );
-            break;
-
-        case FILEOPEN_PREVIEW:
-            addCustomControl( CHECKBOX_PREVIEW );
-            break;
-
-        default:
-            throw lang::IllegalArgumentException(
-                    "Unknown template",
-                    static_cast< XFilePicker2* >( this ),
-                    1 );
-    }
-
-    _dialog->setOperationMode( operationMode );
-
-    const char *resId = nullptr;
-    switch (_dialog->operationMode())
-    {
-    case KFileDialog::Opening:
-        resId = STR_FPICKER_OPEN;
-        break;
-    case KFileDialog::Saving:
-        resId = STR_FPICKER_SAVE;
-        _dialog->setConfirmOverwrite( true );
-        break;
-    default:
-        break;
-    }
-
-    _dialog->setCaption(getResString(resId));
-}
-
-void SAL_CALL KDE4FilePicker::cancel()
-{
-
-}
-
-void KDE4FilePicker::disposing( const lang::EventObject &rEvent )
-{
-    uno::Reference<XFilePickerListener> xFilePickerListener( rEvent.Source, uno::UNO_QUERY );
-
-    if ( xFilePickerListener.is() )
-    {
-        removeFilePickerListener( xFilePickerListener );
-    }
-}
-
-OUString SAL_CALL KDE4FilePicker::getImplementationName()
-{
-    return OUString( FILE_PICKER_IMPL_NAME );
-}
-
-sal_Bool SAL_CALL KDE4FilePicker::supportsService( const OUString& ServiceName )
-{
-    return cppu::supportsService(this, ServiceName);
-}
-
-uno::Sequence< OUString > SAL_CALL KDE4FilePicker::getSupportedServiceNames()
-{
-    return FilePicker_getSupportedServiceNames();
-}
-
-void KDE4FilePicker::checkProtocol()
-{
-    if( qApp->thread() != QThread::currentThread() ) {
-        SolarMutexReleaser aReleaser;
-        return Q_EMIT checkProtocolSignal();
-    }
-
-    // There's no libreoffice.desktop :(, so find a matching one.
-    KService::List services = KServiceTypeTrader::self()->query( "Application", "Exec =~ 'libreoffice %U'" );
-    QStringList protocols;
-    if( !services.isEmpty())
-        protocols = services[ 0 ]->property( "X-KDE-Protocols" ).toStringList();
-    if( protocols.isEmpty()) // incorrect (developer?) installation ?
-        protocols << "file" << "http";
-    if( !protocols.contains( _dialog->baseUrl().protocol()) && !protocols.contains( "KIO" ))
-        KMessageBox::error( _dialog, KIO::buildErrorString( KIO::ERR_UNSUPPORTED_PROTOCOL, _dialog->baseUrl().protocol()));
-}
-
-void KDE4FilePicker::filterChanged(const QString &)
-{
-    FilePickerEvent aEvent;
-    aEvent.ElementId = LISTBOX_FILTER;
-    SAL_INFO( "vcl", "filter changed" );
-    if (m_xListener.is())
-        m_xListener->controlStateChanged( aEvent );
-}
-
-void KDE4FilePicker::selectionChanged()
-{
-    FilePickerEvent aEvent;
-    SAL_INFO( "vcl", "file selection changed" );
-    if (m_xListener.is())
-        m_xListener->fileSelectionChanged( aEvent );
-}
-
-#include <KDE4FilePicker.moc>
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/unx/kde4/KDE4FilePicker.hxx b/vcl/unx/kde4/KDE4FilePicker.hxx
deleted file mode 100644
index f0b37452ef3d..000000000000
--- a/vcl/unx/kde4/KDE4FilePicker.hxx
+++ /dev/null
@@ -1,258 +0,0 @@
-/* -*- 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/.
- *
- * 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 .
- */
-
-#pragma once
-
-#include <cppuhelper/compbase.hxx>
-
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/lang/XInitialization.hpp>
-#include <com/sun/star/ui/dialogs/XFilePicker3.hpp>
-#include <com/sun/star/ui/dialogs/XFilePickerControlAccess.hpp>
-#include <com/sun/star/uno/XComponentContext.hpp>
-
-#include <osl/conditn.hxx>
-#include <osl/mutex.hxx>
-
-#include <rtl/ustrbuf.hxx>
-
-#include <QtCore/QObject>
-#include <QtCore/QString>
-#include <QtCore/QHash>
-
-class KFileDialog;
-class QWidget;
-class QLayout;
-
-typedef ::cppu::WeakComponentImplHelper
-<   css::ui::dialogs::XFilePicker3
-,   css::ui::dialogs::XFilePickerControlAccess
-// TODO css::ui::dialogs::XFilePreview
-,   css::lang::XInitialization
-,   css::lang::XServiceInfo
-> KDE4FilePicker_Base;
-
-class KDE4FilePicker
-    : public QObject
-    , public KDE4FilePicker_Base
-{
-    Q_OBJECT
-protected:
-
-    css::uno::Reference< css::ui::dialogs::XFilePickerListener > m_xListener;
-
-    //the dialog to display
-    KFileDialog* _dialog;
-
-    osl::Mutex _helperMutex;
-
-    //running filter string to add to dialog
-    QString _filter;
-    // string to set the current filter
-    QString _currentFilter;
-
-    //mapping of SAL control ID's to created custom controls
-    QHash<sal_Int16, QWidget*> _customWidgets;
-
-    //widget to contain extra custom controls
-    QWidget* _extraControls;
-
-    //layout for extra custom controls
-    QLayout* _layout;
-
-    bool allowRemoteUrls;
-
-public:
-    explicit KDE4FilePicker( const css::uno::Reference< css::uno::XComponentContext >& );
-    virtual ~KDE4FilePicker() override;
-
-    // XFilePickerNotifier
-    virtual void SAL_CALL addFilePickerListener( const css::uno::Reference< css::ui::dialogs::XFilePickerListener >& xListener ) override;
-    virtual void SAL_CALL removeFilePickerListener( const css::uno::Reference< css::ui::dialogs::XFilePickerListener >& xListener ) override;
-
-    // XExecutableDialog functions
-    virtual void SAL_CALL setTitle( const OUString &rTitle ) override;
-    virtual sal_Int16 SAL_CALL execute() override;
-
-    // XFilePicker functions
-    virtual void SAL_CALL setMultiSelectionMode( sal_Bool bMode ) override;
-    virtual void SAL_CALL setDefaultName( const OUString &rName ) override;
-    virtual void SAL_CALL setDisplayDirectory( const OUString &rDirectory ) override;
-    virtual OUString SAL_CALL getDisplayDirectory() override;
-    virtual css::uno::Sequence< OUString > SAL_CALL getFiles() override;
-
-    // XFilterManager functions
-    virtual void SAL_CALL appendFilter( const OUString &rTitle, const OUString &rFilter ) override;
-    virtual void SAL_CALL setCurrentFilter( const OUString &rTitle ) override;
-    virtual OUString SAL_CALL getCurrentFilter() override;
-
-    // XFilterGroupManager functions
-    virtual void SAL_CALL appendFilterGroup( const OUString &rGroupTitle, const css::uno::Sequence< css::beans::StringPair > &rFilters ) override;
-
-    // XFilePickerControlAccess functions
-    virtual void SAL_CALL setValue( sal_Int16 nControlId, sal_Int16 nControlAction, const css::uno::Any &rValue ) override;
-    virtual css::uno::Any SAL_CALL getValue( sal_Int16 nControlId, sal_Int16 nControlAction ) override;
-    virtual void SAL_CALL enableControl( sal_Int16 nControlId, sal_Bool bEnable ) override;

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list