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 <[email protected]> AuthorDate: Wed Sep 5 02:53:07 2018 +0200 Commit: Thorsten Behrens <[email protected]> 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 <[email protected]> Tested-by: Thorsten Behrens <[email protected]> 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 -@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 _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
