summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-05-12 18:11:51 -0500
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-05-12 18:11:51 -0500
commitc819f48cda49614e17d8bf713369153704087e59 (patch)
tree5840de277859bb0efe65397a19ac2376d8075eb8
parentd8a617b8946d1b8427e098a61e41586bc6e4eebb (diff)
downloadthirdparty-c819f48c.tar.gz
thirdparty-c819f48c.zip
Add LibreOffice patch file for latest GIT
-rw-r--r--libreoffice/git_05_11_2012/patches/libreoffice-trinity.diff3172
1 files changed, 3172 insertions, 0 deletions
diff --git a/libreoffice/git_05_11_2012/patches/libreoffice-trinity.diff b/libreoffice/git_05_11_2012/patches/libreoffice-trinity.diff
new file mode 100644
index 0000000..d9f3c95
--- /dev/null
+++ b/libreoffice/git_05_11_2012/patches/libreoffice-trinity.diff
@@ -0,0 +1,3172 @@
+diff --git a/Repository.mk b/Repository.mk
+index 900b538..0ab52c9 100644
+--- a/Repository.mk
++++ b/Repository.mk
+@@ -82,6 +82,9 @@ $(eval $(call gb_Helper_register_executables,OOO, \
+ HelpLinker \
+ HelpIndexer \
+ spadmin.bin \
++ $(if $(filter $(GUIBASE)$(ENABLE_TDE),unxTRUE), \
++ tdefilepicker \
++ ) \
+ $(if $(filter $(GUIBASE)$(ENABLE_KDE),unxTRUE), \
+ kdefilepicker \
+ ) \
+@@ -346,6 +349,7 @@ $(eval $(call gb_Helper_register_libraries,OOOLIBS, \
+ vclplug_gen \
+ vclplug_gtk \
+ vclplug_gtk3 \
++ vclplug_tde \
+ vclplug_kde \
+ vclplug_kde4 \
+ vclplug_svp \
+diff --git a/bin/distro-install-file-lists b/bin/distro-install-file-lists
+index c36b67c..de3b859 100755
+--- a/bin/distro-install-file-lists
++++ b/bin/distro-install-file-lists
+@@ -217,6 +217,14 @@ if test "z$OOO_VENDOR" != "zDebian" ; then
+
+ cd $FILELISTSDIR
+
++ # tde subpackage
++ test -f $DESTDIR/gid_Module_Optional_Tde && cp $DESTDIR/gid_Module_Optional_Tde tde_list.txt || :
++ mv_file_between_flists tde_list.txt common_list.txt $INSTALLDIR/program/tdefilepicker
++ mv_file_between_flists tde_list.txt common_list.txt $INSTALLDIR/program/fps_tde.uno.so
++ mv_file_between_flists tde_list.txt common_list.txt $INSTALLDIR/program/libvclplug_tdel..so
++ mv_file_between_flists tde_list.txt common_list.txt $INSTALLDIR/program/libtdeabdrv1.so
++ add_used_directories tde_list.txt common_list.txt
++
+ # kde subpackage
+ test -f $DESTDIR/gid_Module_Optional_Kde && cp $DESTDIR/gid_Module_Optional_Kde kde_list.txt || :
+ mv_file_between_flists kde_list.txt common_list.txt $INSTALLDIR/program/kdefilepicker
+@@ -419,6 +427,7 @@ else
+ create_package_directory gid_Module_Brand_Prg_Base pkg/libreoffice-base
+ create_package_directory gid_Module_Optional_Pyuno pkg/python-uno
+ create_package_directory gid_Module_Optional_Gnome pkg/libreoffice-gnome
++ create_package_directory gid_Module_Optional_Tde pkg/libreoffice-tde
+ create_package_directory gid_Module_Optional_Kde pkg/libreoffice-kde
+
+ create_package_directory gid_Module_Root_Files_2 pkg/libreoffice-common
+@@ -497,7 +506,7 @@ else
+ fi &&
+ ( cd pkg/libreoffice-common/$d
+ find -maxdepth 1 \
+- -regex '\./\(.*\.so.*\|.*\.bin\|pagein\|nsplugin\|kdefilepicker\|msfontextract\|.*\.rdb\|javaldx\|uri-encode\)' \
++ -regex '\./\(.*\.so.*\|.*\.bin\|pagein\|nsplugin\|tdefilepicker\|kdefilepicker\|msfontextract\|.*\.rdb\|javaldx\|uri-encode\)' \
+ -exec mv {} $DESTDIR/pkg/libreoffice-core/$d \;
+ ); \
+ done
+diff --git a/config_host.mk.in b/config_host.mk.in
+index 0adc5fe..dcd276a 100644
+--- a/config_host.mk.in
++++ b/config_host.mk.in
+@@ -112,6 +112,8 @@ export ENABLE_GTK3=@ENABLE_GTK3@
+ export ENABLE_GTK=@ENABLE_GTK@
+ export ENABLE_GTK_PRINT=@ENABLE_GTK_PRINT@
+ export ENABLE_HEADLESS=@ENABLE_HEADLESS@
++export ENABLE_TDEAB=@ENABLE_TDEAB@
++export ENABLE_TDE=@ENABLE_TDE@
+ export ENABLE_KAB=@ENABLE_KAB@
+ export ENABLE_KDE4=@ENABLE_KDE4@
+ export ENABLE_KDE=@ENABLE_KDE@
+@@ -243,6 +245,11 @@ export JDK=@JDK@
+ export JITC_PROCESSOR_TYPE=@JITC_PROCESSOR_TYPE@
+ export JFREEREPORT_JAR=@JFREEREPORT_JAR@
+ export JVM_ONE_PATH_CHECK=@JVM_ONE_PATH_CHECK@
++export TDE_CFLAGS=@TDE_CFLAGS@
++export TDE_GLIB_CFLAGS=@TDE_GLIB_CFLAGS@
++export TDE_GLIB_LIBS=@TDE_GLIB_LIBS@
++export TDE_HAVE_GLIB=@TDE_HAVE_GLIB@
++export TDE_LIBS=@TDE_LIBS@
+ export KDE4_CFLAGS=@KDE4_CFLAGS@
+ export KDE4_LIBS=@KDE4_LIBS@
+ export KDE_CFLAGS=@KDE_CFLAGS@
+diff --git a/configure.in b/configure.in
+index e3943eb..093bfca 100644
+--- a/configure.in
++++ b/configure.in
+@@ -157,6 +157,7 @@ case "$host_os" in
+ solaris*)
+ test_gtk=yes
+ build_gstreamer=yes
++ test_tde=yes
+ test_kde=yes
+ test_freetype=yes
+ test_gstreamer=yes
+@@ -185,6 +186,7 @@ solaris*)
+ linux-gnu*|k*bsd*-gnu*)
+ test_gtk=yes
+ build_gstreamer=yes
++ test_tde=yes
+ test_kde=yes
+ test_kde4=yes
+ test_freetype=yes
+@@ -271,6 +273,7 @@ darwin*) # Mac OS X or iOS
+ freebsd*)
+ test_gtk=yes
+ build_gstreamer=yes
++ test_tde=yes
+ test_kde=yes
+ test_kde4=yes
+ test_freetype=yes
+@@ -299,6 +302,7 @@ freebsd*)
+ *netbsd*)
+ test_gtk=yes
+ build_gstreamer=yes
++ test_tde=no
+ test_kde=no
+ test_kde4=yes
+ test_freetype=yes
+@@ -315,6 +319,7 @@ aix*)
+
+ openbsd*)
+ test_gtk=yes
++ test_tde=yes
+ test_kde=yes
+ test_freetype=yes
+ PTHREAD_CFLAGS="-D_THREAD_SAFE"
+@@ -325,6 +330,7 @@ openbsd*)
+ dragonfly*)
+ test_gtk=yes
+ build_gstreamer=yes
++ test_tde=yes
+ test_kde=yes
+ test_kde4=yes
+ test_freetype=yes
+@@ -338,6 +344,7 @@ linux-androideabi*)
+ test_fontconfig=no
+ test_freetype=no
+ test_gtk=no
++ test_tde=no
+ test_kde=no
+ test_kde4=no
+ test_randr=no
+@@ -765,6 +772,21 @@ AC_ARG_ENABLE(xmlsec,
+ [Whether to enable XMLsec for open document signing.]),
+ )
+
++AC_ARG_ENABLE(tde,
++ AS_HELP_STRING([--enable-tde],
++ [Determines whether to use TQt/TDE vclplug on platforms where TQt and
++ TDE are available.]),
++,)
++
++AC_ARG_ENABLE(tdeab,
++ AS_HELP_STRING([--disable-tdeab],
++ [Disable the TDE address book support.]),
++,
++ if test "$enable_tde" = "yes"; then
++ enable_tdeab=yes;
++ fi
++)
++
+ AC_ARG_ENABLE(kde,
+ AS_HELP_STRING([--enable-kde],
+ [Determines whether to use Qt3/KDE3 vclplug on platforms where Qt3 and
+@@ -3624,6 +3646,7 @@ if test "$enable_headless" = "yes"; then
+ test_fontconfig=yes
+ test_gtk=no
+ build_gstreamer=no
++ test_tde=no
+ test_kde=no
+ test_kde4=no
+ test_unix_quickstarter=no
+@@ -8611,6 +8634,13 @@ if test "x$enable_gtk" = "xyes"; then
+ fi
+ AC_SUBST(ENABLE_GTK)
+
++ENABLE_TDE=""
++if test "x$enable_tde" = "xyes"; then
++ ENABLE_TDE="TRUE"
++ R="$R tde"
++fi
++AC_SUBST(ENABLE_TDE)
++
+ ENABLE_KDE=""
+ if test "x$enable_kde" = "xyes"; then
+ ENABLE_KDE="TRUE"
+@@ -9315,6 +9345,135 @@ x86_64 | powerpc64 | s390x)
+ esac
+
+ dnl ===================================================================
++dnl Check whether the TQt and TDE libraries are available.
++dnl ===================================================================
++
++TDE_CFLAGS=""
++TDE_LIBS=""
++if test "$_os" != "OpenBSD"; then
++ MOC="moc"
++fi
++if test "$test_tde" = "yes" -a "$ENABLE_TDE" = "TRUE"; then
++ dnl Search paths for TQt and TDE
++ if test -z "$supports_multilib"; then
++ tqt_incdirs="$QTINC /usr/local/tqt3/include /usr/include/tqt3 /usr/include /usr/X11R6/include/X11/tqt3 /usr/X11R6/include/tqt3 /usr/lib/tqt3/include /usr/lib/tqt3/include /usr/share/tqt3/include /usr/local/include/X11/tqt3 $x_includes"
++ tqt_libdirs="$QTLIB /usr/local/tqt3/lib /usr/lib/tqt3 /usr/lib /usr/X11R6/lib/X11/tqt3 /usr/X11R6/lib/tqt3 /usr/lib/tqt3/lib /usr/lib/tqt3/lib /usr/share/tqt3/lib /usr/local/lib/tqt3 $x_libraries"
++ else
++ tqt_incdirs="$QTINC /usr/local/tqt3/include /usr/include/tqt3 /usr/include /usr/X11R6/include/X11/tqt3 /usr/X11R6/include/tqt3 /usr/lib64/tqt3/include /usr/lib64/tqt3/include /usr/share/tqt3/include /usr/lib/tqt3/include /usr/lib/tqt3/include /usr/local/include/X11/tqt3 $x_includes"
++ tqt_libdirs="$QTLIB /usr/local/tqt3/lib64 /usr/lib64/tqt3 /usr/lib64 /usr/X11R6/lib64/X11/tqt3 /usr/X11R6/lib64/tqt3 /usr/lib64/tqt3/lib64 /usr/lib64/tqt3/lib64 /usr/share/tqt3/lib64 /usr/local/tqt3/lib /usr/lib/tqt3 /usr/lib /usr/X11R6/lib/X11/tqt3 /usr/X11R6/lib/tqt3 /usr/lib/tqt3/lib /usr/lib/tqt3/lib /usr/share/tqt3/lib /usr/local/lib/tqt3 $x_libraries"
++ fi
++ if test -n "$TQTDIR"; then
++ tqt_incdirs="$TQTDIR/include $tqt_incdirs"
++ if test -z "$supports_multilib"; then
++ tqt_libdirs="$TQTDIR/lib $tqt_libdirs"
++ else
++ tqt_libdirs="$TQTDIR/lib64 $TQTDIR/lib $tqt_libdirs"
++ fi
++ fi
++ if test -z "$supports_multilib"; then
++ tde_incdirs="/usr/lib/trinity/include /usr/local/trinity/include /usr/local/include /usr/trinity/include /usr/include/trinity /opt/trinity/include /opt/trinity/include $x_includes"
++ tde_libdirs="/usr/lib/trinity/lib /usr/local/trinity/lib /usr/trinity/lib /usr/lib/trinity /usr/lib/trinity /usr/X11R6/lib /usr/local/lib /opt/trinity/lib /opt/trinity/lib /usr/X11R6/trinity/lib /usr/lib $x_libraries"
++ else
++ tde_incdirs="/usr/lib64/trinity/include /usr/lib/trinity/include /usr/local/trinity/include /usr/local/include /usr/trinity/include /usr/include/trinity /opt/trinity/include /opt/trinity/include $x_includes"
++ tde_libdirs="/usr/lib64/trinity/lib64 /usr/local/trinity/lib64 /usr/trinity/lib64 /usr/lib64/trinity /usr/lib64/trinity /usr/X11R6/lib64 /usr/local/lib64 /opt/trinity/lib64 /opt/trinity/lib64 /usr/X11R6/trinity/lib64 /usr/lib/trinity/lib /usr/local/trinity/lib /usr/trinity/lib /usr/lib/trinity /usr/lib/trinity /usr/lib /usr/X11R6/lib /usr/local/lib /opt/trinity/lib /opt/trinity/lib /usr/X11R6/trinity/lib /usr/lib64 $x_libraries"
++ fi
++ if test -n "$TDEDIR"; then
++ tde_incdirs="$TDEDIR/include $tde_incdirs"
++ if test -z "$supports_multilib"; then
++ tde_libdirs="$TDEDIR/lib $tde_libdirs"
++ else
++ tde_libdirs="$TDEDIR/lib64 $TDEDIR/lib $tde_libdirs"
++ fi
++ fi
++
++ dnl What to test
++ tqt_test_include="ntqstyle.h"
++ tde_test_include="kapp.h"
++
++ if test "$_os" != "OpenBSD"; then
++ tqt_test_library="libtqt-mt.so"
++ tde_test_library="libDCOP.so"
++ else
++ tqt_test_library="libtqt-mt.so*"
++ tde_test_library="libDCOP.so*"
++ fi
++
++ dnl Check for TQt headers
++ AC_MSG_CHECKING([for TQt headers])
++ tqt_incdir="no"
++ for tde_check in $tqt_incdirs; do
++ if test -r "$tde_check/$tqt_test_include"; then
++ tqt_incdir="$tde_check"
++ break
++ fi
++ done
++ AC_MSG_RESULT([$tqt_incdir])
++ if test "x$tqt_incdir" = "xno"; then
++ AC_MSG_ERROR([TQt headers not found. Please specify the root of
++your TQt installation by exporting TQTDIR before running "configure".])
++ fi
++
++ dnl Check for TQt libraries
++ AC_MSG_CHECKING([for TQt libraries])
++ tqt_libdir="no"
++ for tqt_check in $tqt_libdirs; do
++ if test -r "`ls $tqt_check/$tqt_test_library 2>/dev/null | head -1`"; then
++ tqt_libdir="$tqt_check"
++ break
++ fi
++ done
++ AC_MSG_RESULT([$tqt_libdir])
++ if test "x$tqt_libdir" = "xno"; then
++ AC_MSG_ERROR([TQt libraries not found. Please specify the root of
++your TQt installation by exporting TQTDIR before running "configure".])
++ fi
++
++ dnl Check for Meta Object Compiler
++ AC_PATH_PROG( MOC, moc, no, [`dirname $tqt_libdir`/bin:$TQTDIR/bin:$PATH] )
++ if test "$MOC" = "no"; then
++ AC_MSG_ERROR([TQt Meta Object Compiler not found. Please specify
++the root of your TQt installation by exporting TQTDIR before running "configure".])
++ fi
++
++ dnl Check for TDE headers
++ AC_MSG_CHECKING([for TDE headers])
++ tde_incdir="no"
++ for tde_check in $tde_incdirs; do
++ if test -r "$tde_check/$tde_test_include"; then
++ tde_incdir="$tde_check"
++ break
++ fi
++ done
++ AC_MSG_RESULT([$tde_incdir])
++ if test "x$tde_incdir" = "xno"; then
++ AC_MSG_ERROR([TDE headers not found. Please specify the root of
++your TDE installation by exporting TDEDIR before running "configure".])
++ fi
++
++ dnl Check for TDE libraries
++ AC_MSG_CHECKING([for TDE libraries])
++ tde_libdir="no"
++ for tde_check in $tde_libdirs; do
++ if test -r "`ls $tde_check/$tde_test_library 2>/dev/null | head -1`"; then
++ tde_libdir="$tde_check"
++ break
++ fi
++ done
++ AC_MSG_RESULT([$tde_libdir])
++ if test "x$tde_libdir" = "xno"; then
++ AC_MSG_ERROR([TDE libraries not found. Please specify the root of
++your TDE installation by exporting TDEDIR before running "configure".])
++ fi
++
++ dnl Set the variables
++ TDE_CFLAGS="-I$tqt_incdir -I$tde_incdir -I/usr/include/tqt -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT"
++ TDE_LIBS="-L$tde_libdir -L$tqt_libdir -ltdeui -ltdecore -ltqt -ltqt-mt"
++fi
++AC_SUBST(TDE_CFLAGS)
++AC_SUBST(TDE_LIBS)
++AC_SUBST(MOC)
++
++dnl ===================================================================
+ dnl Check whether the Qt3 and KDE3 libraries are available.
+ dnl ===================================================================
+
+@@ -9648,6 +9807,33 @@ AC_SUBST(GOBJECT_CFLAGS)
+ AC_SUBST(GOBJECT_LIBS)
+
+ dnl ===================================================================
++dnl Test whether to include TDE AB support
++dnl ===================================================================
++AC_MSG_CHECKING([whether to enable TDE address book support])
++if test "$enable_tdeab" = "yes" -a "$enable_tde" = "yes"; then
++ AC_MSG_RESULT([yes])
++ AC_LANG_PUSH([C++])
++ save_CXXFLAGS=$CXXFLAGS
++ CXXFLAGS="$CXXFLAGS $TDE_CFLAGS"
++ AC_MSG_CHECKING([whether TDE is at least R14.0])
++ AC_RUN_IFELSE([AC_LANG_SOURCE([[
++#include <tdeversion.h>
++
++int main(int argc, char **argv) {
++ if (TDE_VERSION_MAJOR >= 14) return 0;
++ else return 1;
++}
++ ]])],[AC_MSG_RESULT([yes])],[AC_MSG_ERROR([TDE version too old or too recent, please use another version of TDE or disable TDE address book support])],[])
++ CXXFLAGS=$save_CXXFLAGS
++ AC_LANG_POP([C++])
++ ENABLE_TDEAB=TRUE
++else
++ AC_MSG_RESULT([no])
++ ENABLE_TDEAB=
++fi
++AC_SUBST(ENABLE_TDEAB)
++
++dnl ===================================================================
+ dnl Test whether to include KDE AB support
+ dnl ===================================================================
+ AC_MSG_CHECKING([whether to enable KDE address book support])
+diff --git a/connectivity/inc/tde_defines.h b/connectivity/inc/tde_defines.h
+new file mode 100644
+index 0000000..fe2d89e
+--- /dev/null
++++ b/connectivity/inc/tde_defines.h
+@@ -0,0 +1,96 @@
++/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
++/*************************************************************************
++ *
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * Copyright 2012 Timothy Pearson
++ *
++ * OpenOffice.org - a multi-platform office productivity suite
++ *
++ * This file is part of OpenOffice.org.
++ *
++ * OpenOffice.org is free software: you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 3
++ * only, as published by the Free Software Foundation.
++ *
++ * OpenOffice.org is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU Lesser General Public License version 3 for more details
++ * (a copy is included in the LICENSE file that accompanied this code).
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * version 3 along with OpenOffice.org. If not, see
++ * <http://www.openoffice.org/license.html>
++ * for a copy of the LGPLv3 License.
++ *
++ ************************************************************************/
++
++#ifndef INCLUDED_VCL_TDE_DEFINE_HEADERS_H
++#define INCLUDED_VCL_TDE_DEFINE_HEADERS_H
++
++#define QObject TQObject
++#define QWidget TQWidget
++#define QVBox TQVBox
++#define QHBox TQHBox
++#define QGrid TQGrid
++#define QString TQString
++#define QStringList TQStringList
++#define QCustomEvent TQCustomEvent
++#define QMutex TQMutex
++#define QEvent TQEvent
++#define QFont TQFont
++#define QDateTime TQDateTime
++#define QThread TQThread
++#define QStyle TQStyle
++#define QApplication TQApplication
++#define QRect TQRect
++#define QProgressBar TQProgressBar
++#define QPopupMenu TQPopupMenu
++#define QMenuBar TQMenuBar
++#define QToolButton TQToolButton
++#define QToolBar TQToolBar
++#define QScrollBar TQScrollBar
++#define QListView TQListView
++#define QSpinWidget TQSpinWidget
++#define QScrollBar TQScrollBar
++#define QLineEdit TQLineEdit
++#define QComboBox TQComboBox
++#define QCheckBox TQCheckBox
++#define QRadioButton TQRadioButton
++#define QPushButton TQPushButton
++#define QPainter TQPainter
++#define QResizeEvent TQResizeEvent
++#define QShowEvent TQShowEvent
++#define QPoint TQPoint
++#define QDialog TQDialog
++#define QFile TQFile
++#define QLabel TQLabel
++#define QObjectList TQObjectList
++#define QCString TQCString
++#define QRegExp TQRegExp
++#define QSessionManager TQSessionManager
++#define QPaintDevice TQPaintDevice
++#define QTextIStream TQTextIStream
++#define QTextStream TQTextStream
++#define QMutexLocker TQMutexLocker
++#define QValueList TQValueList
++#define QTab TQTab
++#define QTabBar TQTabBar
++#define QTabWidget TQTabWidget
++#define QMainWindow TQMainWindow
++#define QPixmap TQPixmap
++#define QColorGroup TQColorGroup
++#define QStyleOption TQStyleOption
++#define QSize TQSize
++#define QMenuItem TQMenuItem
++#define QFontInfo TQFontInfo
++
++#define qSwap tqSwap
++#define qt_cast tqt_cast
++#define qt_xdisplay tqt_xdisplay
++#define qVersion tqVersion
++
++#endif
++
++/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
+diff --git a/connectivity/inc/tde_headers.h b/connectivity/inc/tde_headers.h
+new file mode 100644
+index 0000000..389ecbe
+--- /dev/null
++++ b/connectivity/inc/tde_headers.h
+@@ -0,0 +1,98 @@
++/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
++/*************************************************************************
++ *
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * Copyright 2000, 2010 Oracle and/or its affiliates.
++ * Copyright 2012 Timothy Pearson
++ *
++ * OpenOffice.org - a multi-platform office productivity suite
++ *
++ * This file is part of OpenOffice.org.
++ *
++ * OpenOffice.org is free software: you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 3
++ * only, as published by the Free Software Foundation.
++ *
++ * OpenOffice.org is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU Lesser General Public License version 3 for more details
++ * (a copy is included in the LICENSE file that accompanied this code).
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * version 3 along with OpenOffice.org. If not, see
++ * <http://www.openoffice.org/license.html>
++ * for a copy of the LGPLv3 License.
++ *
++ ************************************************************************/
++
++#ifndef INCLUDED_VCL_TDE_HEADERS_H
++#define INCLUDED_VCL_TDE_HEADERS_H
++
++/* ********* Suppress warnings if needed */
++#include "sal/config.h"
++
++#if defined __GNUC__
++#pragma GCC system_header
++#endif
++
++
++/* ********* Hack, but needed because of conflicting types... */
++#define Region TQtXRegion
++
++
++/* ********* TQt headers */
++#include <tqaccessible.h>
++#include <tqcheckbox.h>
++#include <tqcombobox.h>
++#include <tqfont.h>
++#include <tqframe.h>
++#include <tqlineedit.h>
++#include <tqlistview.h>
++#include <tqmainwindow.h>
++#include <tqmenudata.h>
++#include <tqpaintdevice.h>
++#include <tqpainter.h>
++#include <tqpushbutton.h>
++#include <tqradiobutton.h>
++#include <tqrangecontrol.h>
++#include <tqstring.h>
++#include <tqtabbar.h>
++#include <tqtabwidget.h>
++#include <tqtoolbar.h>
++#include <tqtoolbutton.h>
++#include <tqwidget.h>
++#include <tqprogressbar.h>
++
++/* ********* See hack on top of this file */
++#undef Region
++
++
++/* ********* TDE base headers */
++#include <kaboutdata.h>
++#include <kapplication.h>
++#include <kcmdlineargs.h>
++#include <kconfig.h>
++#include <tdeversion.h>
++#include <kemailsettings.h>
++#include <kglobal.h>
++#include <kglobalsettings.h>
++#include <klocale.h>
++#include <kmainwindow.h>
++#include <kmenubar.h>
++#include <kprotocolmanager.h>
++#include <kstartupinfo.h>
++#include <kstyle.h>
++
++
++/* ********* TDE address book connectivity headers */
++#include <kabc/addressbook.h>
++#include <kabc/addressee.h>
++#include <kabc/field.h>
++#include <kabc/stdaddressbook.h>
++
++
++#endif
++
++/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
+diff --git a/connectivity/prj/d.lst b/connectivity/prj/d.lst
+index b80de85..1801ad8 100644
+--- a/connectivity/prj/d.lst
++++ b/connectivity/prj/d.lst
+@@ -11,6 +11,7 @@
+ ..\source\cpool\*.xml %_DEST%\xml\*.xml
+ ..\source\drivers\adabas\*.xml %_DEST%\xml\*.xml
+ ..\source\drivers\ado\*.xml %_DEST%\xml\*.xml
++..\source\drivers\tdeab\*.xml %_DEST%\xml\*.xml
+ ..\source\drivers\kab\*.xml %_DEST%\xml\*.xml
+ ..\source\drivers\macab\*.xml %_DEST%\xml\*.xml
+ ..\source\drivers\file\*.xml %_DEST%\xml\*.xml
+@@ -45,6 +46,7 @@ mkdir: %_DEST%\xml\registry\spool\DataAccess
+ ..\%__SRC%\misc\flat.component %_DEST%\xml\flat.component
+ ..\%__SRC%\misc\hsqldb.component %_DEST%\xml\hsqldb.component
+ ..\%__SRC%\misc\jdbc.component %_DEST%\xml\jdbc.component
++..\%__SRC%\misc\tdeab1.component %_DEST%\xml\tdeab1.component
+ ..\%__SRC%\misc\kab1.component %_DEST%\xml\kab1.component
+ ..\%__SRC%\misc\macab1.component %_DEST%\xml\macab1.component
+ ..\%__SRC%\misc\mozab.component %_DEST%\xml\mozab.component
+diff --git a/connectivity/source/drivers/kab/KConnection.cxx b/connectivity/source/drivers/kab/KConnection.cxx
+index 70b51c8..6fd4f42 100644
+--- a/connectivity/source/drivers/kab/KConnection.cxx
++++ b/connectivity/source/drivers/kab/KConnection.cxx
+@@ -35,7 +35,16 @@
+ #include "KCatalog.hxx"
+ #include <com/sun/star/sdbc/ColumnValue.hpp>
+ #include <com/sun/star/sdbc/TransactionIsolation.hpp>
++
++#ifdef ENABLE_TDE
++#include "tde_defines.h"
++#endif // ENABLE_TDE
++
++#ifdef ENABLE_TDE
++#include "tde_headers.h"
++#else // ENABLE_TDE
+ #include <shell/kde_headers.h>
++#endif // ENABLE_TDE
+
+ using namespace connectivity::kab;
+ using namespace com::sun::star::uno;
+diff --git a/connectivity/source/drivers/kab/KDEInit.cxx b/connectivity/source/drivers/kab/KDEInit.cxx
+index 13a3216..f746581 100644
+--- a/connectivity/source/drivers/kab/KDEInit.cxx
++++ b/connectivity/source/drivers/kab/KDEInit.cxx
+@@ -29,7 +29,16 @@
+ #include "KDEInit.h"
+ #include <osl/diagnose.h>
+ #include <osl/process.h>
++
++#ifdef ENABLE_TDE
++#include "tde_defines.h"
++#endif // ENABLE_TDE
++
++#ifdef ENABLE_TDE
++#include "tde_headers.h"
++#else // ENABLE_TDE
+ #include <shell/kde_headers.h>
++#endif // ENABLE_TDE
+
+ namespace connectivity
+ {
+diff --git a/connectivity/source/drivers/kab/KDEInit.h b/connectivity/source/drivers/kab/KDEInit.h
+index 9a5ea70..b70df86 100644
+--- a/connectivity/source/drivers/kab/KDEInit.h
++++ b/connectivity/source/drivers/kab/KDEInit.h
+@@ -34,6 +34,17 @@
+ #define KAB_DRIVER_VERSION_MAJOR 0
+ #define KAB_DRIVER_VERSION_MINOR 2
+
++#ifdef ENABLE_TDE
++
++// the minimum TDE version which is required at runtime
++#define MIN_KDE_VERSION_MAJOR 14
++#define MIN_KDE_VERSION_MINOR 0
++
++#define MAX_KDE_VERSION_MAJOR 255
++#define MAX_KDE_VERSION_MINOR 255
++
++#else // ENABLE_TDE
++
+ // the minimum KDE version which is required at runtime
+ #define MIN_KDE_VERSION_MAJOR 3
+ #define MIN_KDE_VERSION_MINOR 2
+@@ -41,6 +52,8 @@
+ #define MAX_KDE_VERSION_MAJOR 3
+ #define MAX_KDE_VERSION_MINOR 6
+
++#endif // ENABLE_TDE
++
+
+ #endif // CONNECTIVITY_KAB_KDEINIT_H
+
+diff --git a/connectivity/source/drivers/kab/KDatabaseMetaData.cxx b/connectivity/source/drivers/kab/KDatabaseMetaData.cxx
+index 8077ce6..02ef44c9 100644
+--- a/connectivity/source/drivers/kab/KDatabaseMetaData.cxx
++++ b/connectivity/source/drivers/kab/KDatabaseMetaData.cxx
+@@ -30,7 +30,17 @@
+ #include "KDatabaseMetaData.hxx"
+ #include "kfields.hxx"
+ #include "KDEInit.h"
++
++#ifdef ENABLE_TDE
++#include "tde_defines.h"
++#endif // ENABLE_TDE
++
++#ifdef ENABLE_TDE
++#include "tde_headers.h"
++#else // ENABLE_TDE
+ #include <shell/kde_headers.h>
++#endif // ENABLE_TDE
++
+ #include "FDatabaseMetaDataResultSet.hxx"
+ #include "OTypeInfo.hxx"
+ #include <com/sun/star/sdbc/ColumnValue.hpp>
+diff --git a/connectivity/source/drivers/kab/KResultSet.hxx b/connectivity/source/drivers/kab/KResultSet.hxx
+index fc7e5f4..406edc4 100644
+--- a/connectivity/source/drivers/kab/KResultSet.hxx
++++ b/connectivity/source/drivers/kab/KResultSet.hxx
+@@ -31,7 +31,17 @@
+
+ #include "KStatement.hxx"
+ #include "KResultSetMetaData.hxx"
++
++#ifdef ENABLE_TDE
++#include "tde_defines.h"
++#endif // ENABLE_TDE
++
++#ifdef ENABLE_TDE
++#include "tde_headers.h"
++#else // ENABLE_TDE
+ #include <shell/kde_headers.h>
++#endif // ENABLE_TDE
++
+ #include <com/sun/star/sdbc/XRow.hpp>
+ #include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp>
+ #include <com/sun/star/sdbc/XColumnLocate.hpp>
+diff --git a/connectivity/source/drivers/kab/kcondition.hxx b/connectivity/source/drivers/kab/kcondition.hxx
+index 34e014c..9a83488 100644
+--- a/connectivity/source/drivers/kab/kcondition.hxx
++++ b/connectivity/source/drivers/kab/kcondition.hxx
+@@ -30,7 +30,17 @@
+ #define _CONNECTIVITY_KAB_CONDITION_HXX_
+
+ #include <comphelper/types.hxx>
++
++#ifdef ENABLE_TDE
++#include "tde_defines.h"
++#endif // ENABLE_TDE
++
++#ifdef ENABLE_TDE
++#include "tde_headers.h"
++#else // ENABLE_TDE
+ #include <shell/kde_headers.h>
++#endif // ENABLE_TDE
++
+ #include <connectivity/dbexception.hxx>
+
+ namespace connectivity
+diff --git a/connectivity/source/drivers/kab/kfields.hxx b/connectivity/source/drivers/kab/kfields.hxx
+index 6a79455..9cee583 100644
+--- a/connectivity/source/drivers/kab/kfields.hxx
++++ b/connectivity/source/drivers/kab/kfields.hxx
+@@ -29,7 +29,16 @@
+ #ifndef _CONNECTIVITY_KAB_FIELDS_HXX_
+ #define _CONNECTIVITY_KAB_FIELDS_HXX_
+
++#ifdef ENABLE_TDE
++#include "tde_defines.h"
++#endif // ENABLE_TDE
++
++#ifdef ENABLE_TDE
++#include "tde_headers.h"
++#else // ENABLE_TDE
+ #include <shell/kde_headers.h>
++#endif // ENABLE_TDE
++
+ #include <connectivity/dbexception.hxx>
+ #include <rtl/ustring.hxx>
+
+diff --git a/connectivity/source/drivers/kab/korder.hxx b/connectivity/source/drivers/kab/korder.hxx
+index 29fa963..cf4ad67 100644
+--- a/connectivity/source/drivers/kab/korder.hxx
++++ b/connectivity/source/drivers/kab/korder.hxx
+@@ -30,7 +30,16 @@
+ #define _CONNECTIVITY_KAB_ORDER_HXX_
+
+ #include "rtl/ustring.hxx"
++
++#ifdef ENABLE_TDE
++#include "tde_defines.h"
++#endif // ENABLE_TDE
++
++#ifdef ENABLE_TDE
++#include "tde_headers.h"
++#else // ENABLE_TDE
+ #include <shell/kde_headers.h>
++#endif // ENABLE_TDE
+
+ #include <vector>
+
+diff --git a/connectivity/source/drivers/kab/makefile.mk b/connectivity/source/drivers/kab/makefile.mk
+index 9494037..b2856aa 100644
+--- a/connectivity/source/drivers/kab/makefile.mk
++++ b/connectivity/source/drivers/kab/makefile.mk
+@@ -28,8 +28,6 @@
+ PRJ=..$/..$/..
+ PRJINC=..$/..
+ PRJNAME=connectivity
+-TARGET=kab
+-TARGET2=$(TARGET)drv
+
+ ENABLE_EXCEPTIONS=TRUE
+ VISIBILITY_HIDDEN=TRUE
+@@ -42,6 +40,9 @@ VISIBILITY_HIDDEN=TRUE
+ .IF "$(GUI)" == "UNX"
+ .IF "$(ENABLE_KAB)" == "TRUE"
+
++TARGET=kab
++TARGET2=$(TARGET)drv
++
+ CFLAGS+=$(KDE_CFLAGS)
+
+ .IF "$(KDE_ROOT)"!=""
+@@ -130,12 +131,113 @@ DEF2NAME= $(SHL2TARGET)
+ # --- Targets -----------------------------------
+ .ELSE # "$(ENABLE_KAB)" == "TRUE"
+
+-dummy:
+-# nothing
++ .IF "$(ENABLE_TDEAB)" == "TRUE"
++
++ TARGET=tdeab
++ TARGET2=$(TARGET)drv
++
++ CFLAGS+=$(TDE_CFLAGS)
++ CFLAGS+=-DENABLE_TDE
++ CFLAGSCXX+=-DENABLE_TDE
++
++ .IF "$(TDE_ROOT)"!=""
++ EXTRALIBPATHS+=-L$(TDE_ROOT)$/lib
++ .IF "$(OS)$(CPU)" == "LINUXX"
++ EXTRALIBPATHS+=-L$(TDE_ROOT)$/lib64
++ .ENDIF
++ .ENDIF
++
++ # === TDEAB base library ==========================
++
++ # --- Files -------------------------------------
++
++ SLOFILES= \
++ $(SLO)$/KDriver.obj \
++ $(SLO)$/KServices.obj
++
++ DEPOBJFILES= \
++ $(SLO2FILES)
++
++ # --- Library -----------------------------------
++
++ SHL1VERSIONMAP=$(SOLARENV)/src/component.map
++
++ SHL1TARGET= $(TARGET)$(TDEAB_MAJOR)
++ SHL1OBJS=$(SLOFILES)
++ SHL1STDLIBS=\
++ $(COMPHELPERLIB) \
++ $(CPPULIB) \
++ $(CPPUHELPERLIB) \
++ $(DBTOOLSLIB) \
++ $(SALLIB) \
++ $(SALHELPERLIB)
++
++ SHL1DEPN=
++ SHL1IMPLIB= i$(TARGET)
++
++ SHL1DEF= $(MISC)$/$(SHL1TARGET).def
++
++ DEF1NAME= $(SHL1TARGET)
++
++ # === TDEAB impl library ==========================
++
++ # --- Files -------------------------------------
++
++ SLO2FILES=\
++ $(SLO)$/KColumns.obj \
++ $(SLO)$/KTable.obj \
++ $(SLO)$/KTables.obj \
++ $(SLO)$/KCatalog.obj \
++ $(SLO)$/KResultSet.obj \
++ $(SLO)$/KStatement.obj \
++ $(SLO)$/KPreparedStatement.obj \
++ $(SLO)$/KDatabaseMetaData.obj \
++ $(SLO)$/KConnection.obj \
++ $(SLO)$/KResultSetMetaData.obj \
++ $(SLO)$/kcondition.obj \
++ $(SLO)$/korder.obj \
++ $(SLO)$/kfields.obj \
++ $(SLO)$/KDEInit.obj
++
++ TDEAB_LIB=$(TDE_LIBS) -lkabc
++
++ # --- Library -----------------------------------
++
++ SHL2VERSIONMAP=$(TARGET2).map
++
++ SHL2TARGET= $(TARGET2)$(TDEAB_MAJOR)
++ SHL2OBJS=$(SLO2FILES)
++ SHL2STDLIBS=\
++ $(CPPULIB) \
++ $(CPPUHELPERLIB) \
++ $(SALLIB) \
++ $(SALHELPERLIB) \
++ $(DBTOOLSLIB) \
++ $(COMPHELPERLIB) \
++ $(TDEAB_LIB)
++
++ SHL2DEPN=
++ SHL2IMPLIB= i$(TARGET2)
++
++ SHL2DEF= $(MISC)$/$(SHL2TARGET).def
++
++ DEF2NAME= $(SHL2TARGET)
++
++ # --- Targets -----------------------------------
++ .ELSE # "$(ENABLE_TDEAB)" == "TRUE"
++ TARGET=kab
++ TARGET2=$(TARGET)drv
++
++ dummy:
++ # nothing
++
++ .ENDIF
+
+ .ENDIF
+
+ .ELSE # "$(GUI)" == "UNX"
++TARGET=kab
++TARGET2=$(TARGET)drv
+
+ dummy:
+ # nothing
+@@ -145,10 +247,10 @@ dummy:
+ .INCLUDE : $(PRJ)$/target.pmk
+
+
+-ALLTAR : $(MISC)/kab1.component
++ALLTAR : $(MISC)/$(TARGET)1.component
+
+-$(MISC)/kab1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+- kab1.component
++$(MISC)/$(TARGET)1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
++ $(TARGET)1.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+- $(SOLARENV)/bin/createcomponent.xslt kab1.component
++ $(SOLARENV)/bin/createcomponent.xslt $(TARGET)1.component
+diff --git a/connectivity/source/drivers/kab/tdeab.xcu b/connectivity/source/drivers/kab/tdeab.xcu
+new file mode 100644
+index 0000000..7615b55
+--- /dev/null
++++ b/connectivity/source/drivers/kab/tdeab.xcu
+@@ -0,0 +1,46 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!--***********************************************************************
++ *
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * Copyright 2000, 2010 Oracle and/or its affiliates.
++ *
++ * OpenOffice.org - a multi-platform office productivity suite
++ *
++ * This file is part of OpenOffice.org.
++ *
++ * OpenOffice.org is free software: you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 3
++ * only, as published by the Free Software Foundation.
++ *
++ * OpenOffice.org is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU Lesser General Public License version 3 for more details
++ * (a copy is included in the LICENSE file that accompanied this code).
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * version 3 along with OpenOffice.org. If not, see
++ * <http://www.openoffice.org/license.html>
++ * for a copy of the LGPLv3 License.
++ *
++ ************************************************************************ -->
++<oor:component-data oor:name="Drivers" oor:package="org.openoffice.Office.DataAccess" xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema">
++ <node oor:name="Installed">
++ <node oor:name="sdbc:address:tdeab" oor:op="replace">
++ <prop oor:name="Driver">
++ <value>com.sun.star.comp.sdbc.tdeab.Driver</value>
++ </prop>
++ <prop oor:name="DriverTypeDisplayName" oor:type="xs:string">
++ <value xml:lang="en-US">TDE Address Book</value>
++ </prop>
++ <node oor:name="Features">
++ <node oor:name="EscapeDateTime" oor:op="replace">
++ <prop oor:name="Value" oor:type="xs:boolean">
++ <value>true</value>
++ </prop>
++ </node>
++ </node>
++ </node>
++ </node>
++</oor:component-data>
+diff --git a/connectivity/source/drivers/kab/tdeab.xml b/connectivity/source/drivers/kab/tdeab.xml
+new file mode 100644
+index 0000000..ef3d7bf
+--- /dev/null
++++ b/connectivity/source/drivers/kab/tdeab.xml
+@@ -0,0 +1,77 @@
++<?xml version='1.0' encoding="UTF-8"?>
++<!DOCTYPE COMPONENTDESCRIPTION PUBLIC "-//W3C//DTD HTML 3.2//EN" "module-description.dtd">
++<module-description xmlns:xlink="http://www.w3.org/1999/xlink">
++ <module-name> tdeab1 </module-name>
++ <component-description>
++ <Author>Eric Bischoff</Author>
++ <Name>com.sun.star.comp.sdbc.tdeab.Driver</Name>
++ <description>This library implements the database driver for TDE address book formats.</description>
++ <loader-name>com.sun.star.loader.SharedLibrary</loader-name>
++ <language>c++</language>
++ <status value="final"/>
++ <supported-service>com.sun.star.sdbc.Driver</supported-service>
++ <service-dependency> ... </service-dependency>
++ </component-description>
++ <project-build-dependency> cppuhelper </project-build-dependency>
++ <project-build-dependency> cppu </project-build-dependency>
++ <project-build-dependency> sal </project-build-dependency>
++
++ <runtime-module-dependency> cppuhelper </runtime-module-dependency>
++ <runtime-module-dependency> cppu1 </runtime-module-dependency>
++ <runtime-module-dependency> sal1 </runtime-module-dependency>
++
++ <type> com.sun.star.registry.XRegistryKey </type>
++ <type> com.sun.star.util.XCancellable </type>
++ <type> com.sun.star.util.XNumberFormatter </type>
++ <type> com.sun.star.uno.TypeClass </type>
++ <type> com.sun.star.uno.XWeak </type>
++ <type> com.sun.star.uno.XAggregation </type>
++ <type> com.sun.star.uno.XComponentContext </type>
++ <type> com.sun.star.beans.PropertyAttribute </type>
++ <type> com.sun.star.beans.XPropertyState </type>
++ <type> com.sun.star.beans.XPropertySet </type>
++ <type> com.sun.star.beans.PropertyValue </type>
++ <type> com.sun.star.beans.XMultiPropertySet </type>
++ <type> com.sun.star.beans.XFastPropertySet </type>
++ <type> com.sun.star.lang.XSingleServiceFactory </type>
++ <type> com.sun.star.lang.XTypeProvider </type>
++ <type> com.sun.star.lang.XSingleComponentFactory </type>
++ <type> com.sun.star.lang.EventObject </type>
++ <type> com.sun.star.lang.XComponent </type>
++ <type> com.sun.star.lang.IllegalArgumentException </type>
++ <type> com.sun.star.lang.DisposedException </type>
++ <type> com.sun.star.lang.XMultiServiceFactory </type>
++ <type> com.sun.star.lang.XServiceInfo </type>
++ <type> com.sun.star.lang.XUnoTunnel </type>
++ <type> com.sun.star.java.XJavaThreadRegister_11 </type>
++ <type> com.sun.star.java.XJavaVM </type>
++ <type> com.sun.star.sdbc.FetchDirection </type>
++ <type> com.sun.star.sdbc.XConnection </type>
++ <type> com.sun.star.sdbc.XStatement </type>
++ <type> com.sun.star.sdbc.XResultSet </type>
++ <type> com.sun.star.sdbc.XResultSetMetaDataSupplier</type>
++ <type> com.sun.star.sdbc.XColumnLocate </type>
++ <type> com.sun.star.sdbc.XResultSetUpdate </type>
++ <type> com.sun.star.sdbc.XWarningsSupplier </type>
++ <type> com.sun.star.sdbc.XRowUpdate </type>
++ <type> com.sun.star.sdbc.XMultipleResults </type>
++ <type> com.sun.star.sdbc.XBatchExecution </type>
++ <type> com.sun.star.sdbc.XPreparedBatchExecution </type>
++ <type> com.sun.star.sdbc.XParameters </type>
++ <type> com.sun.star.sdbc.XOutParameters </type>
++ <type> com.sun.star.sdbc.DriverPropertyInfo </type>
++ <type> com.sun.star.sdbc.SQLWarning </type>
++ <type> com.sun.star.sdbc.XRow </type>
++ <type> com.sun.star.sdbc.ColumnSearch </type>
++ <type> com.sun.star.sdbc.ColumnValue </type>
++ <type> com.sun.star.sdbc.DataType </type>
++ <type> com.sun.star.sdbc.XDriver </type>
++ <type> com.sun.star.sdbc.TransactionIsolation </type>
++ <type> com.sun.star.sdbc.ResultSetType </type>
++ <type> com.sun.star.sdbc.ResultSetConcurrency </type>
++ <type> com.sun.star.sdbcx.XRowLocate </type>
++ <type> com.sun.star.sdbcx.XDeleteRows </type>
++ <type> com.sun.star.sdbcx.CompareBookmark </type>
++ <type> com.sun.star.sdb.XColumnUpdate </type>
++ <type> com.sun.star.sdb.XColumn </type>
++</module-description>
+diff --git a/connectivity/source/drivers/kab/tdeab1.component b/connectivity/source/drivers/kab/tdeab1.component
+new file mode 100644
+index 0000000..4072771
+--- /dev/null
++++ b/connectivity/source/drivers/kab/tdeab1.component
+@@ -0,0 +1,34 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!--**********************************************************************
++*
++* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++*
++* Copyright 2000, 2010 Oracle and/or its affiliates.
++*
++* OpenOffice.org - a multi-platform office productivity suite
++*
++* This file is part of OpenOffice.org.
++*
++* OpenOffice.org is free software: you can redistribute it and/or modify
++* it under the terms of the GNU Lesser General Public License version 3
++* only, as published by the Free Software Foundation.
++*
++* OpenOffice.org is distributed in the hope that it will be useful,
++* but WITHOUT ANY WARRANTY; without even the implied warranty of
++* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++* GNU Lesser General Public License version 3 for more details
++* (a copy is included in the LICENSE file that accompanied this code).
++*
++* You should have received a copy of the GNU Lesser General Public License
++* version 3 along with OpenOffice.org. If not, see
++* <http://www.openoffice.org/license.html>
++* for a copy of the LGPLv3 License.
++*
++**********************************************************************-->
++
++<component loader="com.sun.star.loader.SharedLibrary"
++ xmlns="http://openoffice.org/2010/uno-components">
++ <implementation name="com.sun.star.comp.sdbc.tdeab.Driver">
++ <service name="com.sun.star.sdbc.Driver"/>
++ </implementation>
++</component>
+diff --git a/connectivity/source/drivers/kab/tdeabdrv.map b/connectivity/source/drivers/kab/tdeabdrv.map
+new file mode 100644
+index 0000000..5de866f
+--- /dev/null
++++ b/connectivity/source/drivers/kab/tdeabdrv.map
+@@ -0,0 +1,9 @@
++UDK_3_0_0 {
++ global:
++ createKabConnection;
++ initKApplication;
++ shutdownKApplication;
++ matchKDEVersion;
++ local:
++ *;
++};
+diff --git a/connectivity/version.mk b/connectivity/version.mk
+index fd2235c..07af09f 100755
+--- a/connectivity/version.mk
++++ b/connectivity/version.mk
+@@ -90,6 +90,17 @@ MYSQL_TARGET=mysql
+ # target
+ EVOAB_TARGET=evoab
+
++# ----------------------------TDEab settings-------------------------------------#
++# target
++TDEAB_TARGET=tdeab
++
++# the major
++TDEAB_MAJOR=1
++# the minor
++TDEAB_MINOR=0
++# the micro
++TDEAB_MICRO=0
++
+ # ----------------------------Kab settings-------------------------------------#
+ # target
+ KAB_TARGET=kab
+diff --git a/cui/Library_cui.mk b/cui/Library_cui.mk
+index 089014e..4da2f8f 100644
+--- a/cui/Library_cui.mk
++++ b/cui/Library_cui.mk
+@@ -36,6 +36,7 @@ $(eval $(call gb_Library_set_include,cui,\
+
+ $(eval $(call gb_Library_add_defs,cui,\
+ $(if $(filter TRUE,$(ENABLE_GTK)),-DENABLE_GTK) \
++ $(if $(filter TRUE,$(ENABLE_TDE)),-DENABLE_TDE) \
+ $(if $(filter TRUE,$(ENABLE_KDE)),-DENABLE_KDE) \
+ $(if $(filter TRUE,$(ENABLE_KDE4)),-DENABLE_KDE4) \
+ ))
+diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx
+index 418455e..460f08a 100644
+--- a/cui/source/options/optgdlg.cxx
++++ b/cui/source/options/optgdlg.cxx
+@@ -140,6 +140,14 @@ namespace
+ return rtl::OUString();
+ #endif
+ }
++ else if ( rDesktopEnvironment.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("tde")) )
++ {
++ #ifdef ENABLE_TDE
++ return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.ui.dialogs.TDEFilePicker") );
++ #else
++ return rtl::OUString();
++ #endif
++ }
+ #if defined WNT
+ return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.ui.dialogs.SystemFilePicker") );
+ #elif (defined MACOSX && defined QUARTZ)
+diff --git a/desktop/Pagein_common.mk b/desktop/Pagein_common.mk
+index 258ba19..65a2e94 100644
+--- a/desktop/Pagein_common.mk
++++ b/desktop/Pagein_common.mk
+@@ -47,6 +47,7 @@ $(eval $(call gb_Pagein_add_objects,common,\
+ configmgr \
+ vclplug_gen \
+ $(if $(findstring TRUE,$(ENABLE_GTK)),vclplug_gtk) \
++ $(if $(findstring TRUE,$(ENABLE_TDE)),vclplug_tde) \
+ $(if $(findstring TRUE,$(ENABLE_KDE)),vclplug_kde) \
+ basegfx \
+ sot \
+diff --git a/postprocess/packcomponents/makefile.mk b/postprocess/packcomponents/makefile.mk
+index b921281..f4be7f2 100644
+--- a/postprocess/packcomponents/makefile.mk
++++ b/postprocess/packcomponents/makefile.mk
+@@ -245,6 +245,14 @@ my_components += component/ucb/source/ucp/gio/ucpgio
+ my_components += component/ucb/source/ucp/gvfs/ucpgvfs
+ .END
+
++.IF "$(ENABLE_TDEAB)" != ""
++my_components += tdeab1
++.END
++
++.IF "$(ENABLE_TDE)" != ""
++my_components += tdebe1
++.END
++
+ .IF "$(ENABLE_KAB)" != ""
+ my_components += kab1
+ .END
+diff --git a/postprocess/packregistry/makefile.mk b/postprocess/packregistry/makefile.mk
+index 290b3c5..c8a6920 100644
+--- a/postprocess/packregistry/makefile.mk
++++ b/postprocess/packregistry/makefile.mk
+@@ -332,6 +332,9 @@ MY_FILES_main += \
+ $(MY_MOD)/DataAccess/hsqldb.xcu \
+ $(MY_MOD)/DataAccess/jdbc.xcu
+ .END
++.IF "$(ENABLE_TDEAB)" == "TRUE"
++MY_FILES_main += $(MY_MOD)/DataAccess/tdeab.xcu
++.END
+ .IF "$(ENABLE_KAB)" == "TRUE"
+ MY_FILES_main += $(MY_MOD)/DataAccess/kab.xcu
+ .END
+diff --git a/scp2/prj/build.lst b/scp2/prj/build.lst
+index 9b82432..59ebece 100644
+--- a/scp2/prj/build.lst
++++ b/scp2/prj/build.lst
+@@ -13,6 +13,7 @@ cp scp2\source\gnome nmake - all cp_gnome cp_langmacros cp
+ cp scp2\source\graphicfilter nmake - all cp_graphicfilter cp_langmacros cp_langtemplates NULL
+ cp scp2\source\impress nmake - all cp_impress cp_langmacros cp_langtemplates NULL
+ cp scp2\source\javafilter nmake - all cp_javafilter cp_langmacros cp_langtemplates NULL
++cp scp2\source\tde nmake - all cp_tde cp_langmacros cp_langtemplates NULL
+ cp scp2\source\kde nmake - all cp_kde cp_langmacros cp_langtemplates NULL
+ cp scp2\source\math nmake - all cp_math cp_langmacros cp_langtemplates NULL
+ cp scp2\source\ooo nmake - all cp_ooo cp_langmacros cp_langtemplates NULL
+@@ -27,4 +28,4 @@ cp scp2\source\xsltfilter nmake - all cp_xsltfilter cp_langmacr
+ cp scp2\source\winexplorerext nmake - all cp_winexplorerext cp_langmacros cp_langtemplates NULL
+ cp scp2\source\onlineupdate nmake - all cp_update cp_langmacros cp_langtemplates NULL
+ cp scp2\source\accessories nmake - all cp_accessories cp_langmacros NULL
+-cp scp2\util nmake - all cp_util cp_activex cp_binfilter cp_calc cp_canvas cp_crashrep cp_draw cp_extensions cp_gnome cp_graphicfilter cp_impress cp_javafilter cp_kde cp_math cp_ooo cp_python cp_quickstart cp_smoketest cp_stdlibs cp_writer cp_base cp_xsltfilter cp_winexplorerext cp_sdkoo cp_update cp_accessories NULL
++cp scp2\util nmake - all cp_util cp_activex cp_binfilter cp_calc cp_canvas cp_crashrep cp_draw cp_extensions cp_gnome cp_graphicfilter cp_impress cp_javafilter cp_tde cp_kde cp_math cp_ooo cp_python cp_quickstart cp_smoketest cp_stdlibs cp_writer cp_base cp_xsltfilter cp_winexplorerext cp_sdkoo cp_update cp_accessories NULL
+diff --git a/scp2/source/ooo/file_library_ooo.scp b/scp2/source/ooo/file_library_ooo.scp
+index e3ae239..e46f50f 100644
+--- a/scp2/source/ooo/file_library_ooo.scp
++++ b/scp2/source/ooo/file_library_ooo.scp
+@@ -432,6 +432,22 @@ End
+
+ #ifdef UNX
+
++#ifdef ENABLE_TDEAB
++File gid_File_Lib_Tdeab_1
++ LIB_FILE_BODY;
++ Styles = (PACKED);
++ Dir = SCP2_OOO_BIN_DIR;
++ Name = STRING(CONCAT2(libtdeab1,UNXSUFFIX));
++End
++
++File gid_File_Lib_Tdeab_Drv_1
++ LIB_FILE_BODY;
++ Styles = (PACKED);
++ Dir = SCP2_OOO_BIN_DIR;
++ Name = STRING(CONCAT2(libtdeabdrv1,UNXSUFFIX));
++End
++#endif
++
+ #ifdef ENABLE_KAB
+ File gid_File_Lib_Kab_1
+ LIB_FILE_BODY;
+@@ -446,7 +462,6 @@ File gid_File_Lib_Kab_Drv_1
+ Dir = SCP2_OOO_BIN_DIR;
+ Name = STRING(CONCAT2(libkabdrv1,UNXSUFFIX));
+ End
+-
+ #endif
+
+ #ifdef MACOSX
+@@ -463,8 +478,7 @@ File gid_File_Lib_Macab_Drv_1
+ Dir = SCP2_OOO_BIN_DIR;
+ Name = STRING(CONCAT2(libmacabdrv1,UNXSUFFIX));
+ End
+-
+-#endif // #ifdef ENABLE_KAB
++#endif // #ifdef MACOSX
+
+ #ifdef ENABLE_EVOAB2
+
+@@ -502,6 +516,17 @@ File gid_File_Lib_Desktopbe
+ Name = STRING(CONCAT2(desktopbe1.uno,UNXSUFFIX));
+ End
+
++#ifdef ENABLE_TDE
++#ifndef MACOSX
++File gid_File_Bin_TdeFilePicker
++ BIN_FILE_BODY;
++ Styles = (PACKED);
++ Dir = gid_Brand_Dir_Program;
++ Name = "tdefilepicker";
++End
++#endif
++#endif
++
+ #ifdef ENABLE_KDE
+ #ifndef MACOSX
+ File gid_File_Bin_KdeFilePicker
+@@ -991,6 +1016,16 @@ File gid_File_Lib_Vclplug_Gtk3
+ Dir = SCP2_OOO_BIN_DIR;
+ End
+ #endif
++#ifdef ENABLE_TDE
++#ifndef MACOSX
++File gid_File_Lib_Vclplug_Tde
++ Name = LIBNAME(vclplug_tde);
++ LIB_FILE_BODY;
++ Styles = (PACKED);
++ Dir = SCP2_OOO_BIN_DIR;
++End
++#endif
++#endif
+ #ifdef ENABLE_KDE
+ #ifndef MACOSX
+ File gid_File_Lib_Vclplug_Kde
+diff --git a/scp2/source/ooo/file_ooo.scp b/scp2/source/ooo/file_ooo.scp
+index 62361e6..7278f4d 100644
+--- a/scp2/source/ooo/file_ooo.scp
++++ b/scp2/source/ooo/file_ooo.scp
+@@ -184,6 +184,13 @@ File gid_File_Bin_Gnome_Open_Url_Bin
+ Styles = (PACKED);
+ End
+
++File gid_File_Bin_Tde_Open_Url
++ BIN_FILE_BODY;
++ Dir = gid_Brand_Dir_Program;
++ Name = "tde-open-url";
++ Styles = (PACKED);
++End
++
+ File gid_File_Bin_Kde_Open_Url
+ BIN_FILE_BODY;
+ Dir = gid_Brand_Dir_Program;
+diff --git a/scp2/source/ooo/makefile.mk b/scp2/source/ooo/makefile.mk
+index 0702c7e..6751ae3 100644
+--- a/scp2/source/ooo/makefile.mk
++++ b/scp2/source/ooo/makefile.mk
+@@ -70,6 +70,10 @@ SCPDEFS+=-DENABLE_NSPLUGIN
+ SCPDEFS+=-DMERGELIBS
+ .ENDIF
+
++.IF "$(ENABLE_TDE)" != ""
++SCPDEFS+=-DENABLE_TDE
++.ENDIF
++
+ .IF "$(ENABLE_KDE)" != ""
+ SCPDEFS+=-DENABLE_KDE
+ .ENDIF
+@@ -78,6 +82,10 @@ SCPDEFS+=-DENABLE_KDE
+ SCPDEFS+=-DENABLE_KDE4
+ .ENDIF
+
++.IF "$(ENABLE_TDEAB)" != ""
++SCPDEFS+=-DENABLE_TDEAB
++.ENDIF
++
+ .IF "$(ENABLE_KAB)" != ""
+ SCPDEFS+=-DENABLE_KAB
+ .ENDIF
+diff --git a/scp2/source/ooo/module_hidden_ooo.scp b/scp2/source/ooo/module_hidden_ooo.scp
+index cdcd157..3308e20 100644
+--- a/scp2/source/ooo/module_hidden_ooo.scp
++++ b/scp2/source/ooo/module_hidden_ooo.scp
+@@ -83,6 +83,7 @@ Module gid_Module_Root_Files_2
+ Default = YES;
+ Styles = (HIDDEN_ROOT);
+ Files = (gid_File_Bin_Cde_Open_Url,
++ gid_File_Bin_Tde_Open_Url,
+ gid_File_Bin_Kde_Open_Url,
+ gid_File_Bin_Open_Url,
+ gid_File_Bin_Pagein,
+@@ -273,6 +274,7 @@ Module gid_Module_Root_Files_4
+ gid_File_Lib_Odfflatxml,
+ gid_File_Lib_Zip,
+ gid_File_Lib_Vclplug_Gen,
++ gid_File_Lib_Vclplug_Tde,
+ gid_File_Lib_Vclplug_Kde,
+ gid_File_Lib_Vclplug_Kde4,
+ gid_File_Lib_Vclplug_Svp,
+@@ -347,6 +349,8 @@ Module gid_Module_Root_Files_5
+ gid_File_Lib_Dbpool,
+ gid_File_Lib_Embobj,
+ gid_File_Lib_Emboleobj,
++ gid_File_Lib_Tdeab_1,
++ gid_File_Lib_Tdeab_Drv_1,
+ gid_File_Lib_Kab_1,
+ gid_File_Lib_Kab_Drv_1,
+ gid_File_Lib_Macab_1,
+diff --git a/scp2/source/tde/file_tde.scp b/scp2/source/tde/file_tde.scp
+new file mode 100644
+index 0000000..6387a57
+--- /dev/null
++++ b/scp2/source/tde/file_tde.scp
+@@ -0,0 +1,37 @@
++/*************************************************************************
++ *
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * Copyright 2000, 2010 Oracle and/or its affiliates.
++ * Copyright 2011 Timothy Pearson
++ *
++ * OpenOffice.org - a multi-platform office productivity suite
++ *
++ * This file is part of OpenOffice.org.
++ *
++ * OpenOffice.org is free software: you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 3
++ * only, as published by the Free Software Foundation.
++ *
++ * OpenOffice.org is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU Lesser General Public License version 3 for more details
++ * (a copy is included in the LICENSE file that accompanied this code).
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * version 3 along with OpenOffice.org. If not, see
++ * <http://www.openoffice.org/license.html>
++ * for a copy of the LGPLv3 License.
++ *
++ ************************************************************************/
++#include "macros.inc"
++
++#ifdef ENABLE_TDE
++File gid_File_Lib_Tdebe
++ TXT_FILE_BODY;
++ Styles = (PACKED);
++ Dir = SCP2_OOO_BIN_DIR;
++ Name = STRING(CONCAT2(tdebe1.uno,UNXSUFFIX));
++End
++#endif
+diff --git a/scp2/source/tde/makefile.mk b/scp2/source/tde/makefile.mk
+new file mode 100644
+index 0000000..78d5728
+--- /dev/null
++++ b/scp2/source/tde/makefile.mk
+@@ -0,0 +1,59 @@
++#*************************************************************************
++#
++# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++#
++# Copyright 2000, 2010 Oracle and/or its affiliates.
++# Copyright 2011 Timothy Pearson
++#
++# OpenOffice.org - a multi-platform office productivity suite
++#
++# This file is part of OpenOffice.org.
++#
++# OpenOffice.org is free software: you can redistribute it and/or modify
++# it under the terms of the GNU Lesser General Public License version 3
++# only, as published by the Free Software Foundation.
++#
++# OpenOffice.org is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU Lesser General Public License version 3 for more details
++# (a copy is included in the LICENSE file that accompanied this code).
++#
++# You should have received a copy of the GNU Lesser General Public License
++# version 3 along with OpenOffice.org. If not, see
++# <http://www.openoffice.org/license.html>
++# for a copy of the LGPLv3 License.
++#
++#*************************************************************************
++
++PRJ=..$/..
++
++PRJPCH=
++
++PRJNAME=scp2
++TARGET=tde
++TARGETTYPE=CUI
++
++# --- Settings -----------------------------------------------------
++
++.INCLUDE : settings.mk
++
++SCP_PRODUCT_TYPE=osl
++
++.IF "$(ENABLE_TDE)" == "TRUE"
++
++.IF "$(ENABLE_TDE)" != ""
++SCPDEFS+=-DENABLE_TDE
++.ENDIF
++
++PARFILES = \
++ module_tde.par \
++ file_tde.par
++
++ULFFILES= \
++ module_tde.ulf
++.ENDIF
++
++# --- File ---------------------------------------------------------
++
++.INCLUDE : target.mk
+diff --git a/scp2/source/tde/module_tde.scp b/scp2/source/tde/module_tde.scp
+new file mode 100644
+index 0000000..9fdfecd
+--- /dev/null
++++ b/scp2/source/tde/module_tde.scp
+@@ -0,0 +1,45 @@
++/*************************************************************************
++ *
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * Copyright 2000, 2010 Oracle and/or its affiliates.
++ *
++ * OpenOffice.org - a multi-platform office productivity suite
++ * Copyright 2011 Timothy Pearson
++ *
++ * This file is part of OpenOffice.org.
++ *
++ * OpenOffice.org is free software: you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 3
++ * only, as published by the Free Software Foundation.
++ *
++ * OpenOffice.org is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU Lesser General Public License version 3 for more details
++ * (a copy is included in the LICENSE file that accompanied this code).
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * version 3 along with OpenOffice.org. If not, see
++ * <http://www.openoffice.org/license.html>
++ * for a copy of the LGPLv3 License.
++ *
++ ************************************************************************/
++
++#include "macros.inc"
++
++#if defined( ENABLE_TDE )
++Module gid_Module_Optional_Tde
++ ParentID = gid_Module_Optional;
++ Default = YES;
++ PackageInfo = "packinfo_office.txt";
++ MOD_NAME_DESC(MODULE_OPTIONAL_TDE);
++ Styles = (DONTSHOWINUSERINSTALL);
++ Files = (
++#ifdef ENABLE_TDE
++ gid_File_Lib_Tdebe
++#endif // ENABLE_TDE
++ );
++End
++#endif
++
+diff --git a/scp2/source/tde/module_tde.ulf b/scp2/source/tde/module_tde.ulf
+new file mode 100644
+index 0000000..e55735f
+--- /dev/null
++++ b/scp2/source/tde/module_tde.ulf
+@@ -0,0 +1,34 @@
++/*************************************************************************
++ *
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * Copyright 2000, 2010 Oracle and/or its affiliates.
++ * Copyright 2011 Timothy Pearson
++ *
++ * OpenOffice.org - a multi-platform office productivity suite
++ *
++ * This file is part of OpenOffice.org.
++ *
++ * OpenOffice.org is free software: you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 3
++ * only, as published by the Free Software Foundation.
++ *
++ * OpenOffice.org is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU Lesser General Public License version 3 for more details
++ * (a copy is included in the LICENSE file that accompanied this code).
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * version 3 along with OpenOffice.org. If not, see
++ * <http://www.openoffice.org/license.html>
++ * for a copy of the LGPLv3 License.
++ *
++ ************************************************************************/
++
++[STR_NAME_MODULE_OPTIONAL_TDE]
++en-US = "TDE Integration"
++
++[STR_DESC_MODULE_OPTIONAL_TDE]
++en-US = "System integration of %PRODUCTNAME %PRODUCTVERSION into TDE."
++
+diff --git a/scp2/util/makefile.mk b/scp2/util/makefile.mk
+index 4cd31f5..daafb58 100644
+--- a/scp2/util/makefile.mk
++++ b/scp2/util/makefile.mk
+@@ -203,6 +203,12 @@ SCP1FILES += \
+ module_kde.par \
+ file_kde.par
+ .ENDIF
++
++.IF "$(ENABLE_TDE)" == "TRUE"
++SCP1FILES += \
++ module_tde.par \
++ file_tde.par
++.ENDIF
+ .ENDIF
+
+ .IF "$(ENABLE_CRASHDUMP)" != ""
+diff --git a/setup_native/source/packinfo/packinfo_office.txt b/setup_native/source/packinfo/packinfo_office.txt
+index 97127ef..0e4a704 100644
+--- a/setup_native/source/packinfo/packinfo_office.txt
++++ b/setup_native/source/packinfo/packinfo_office.txt
+@@ -33,6 +33,21 @@ packageversion = "%ABOUTBOXPRODUCTVERSION"
+ End
+
+ Start
++module = "gid_Module_Optional_Tde"
++solarispackagename = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-tde-integration"
++solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core01"
++packagename = "%BASISPACKAGEPREFIX%PRODUCTVERSION-tde-integration"
++freebsdrequires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core01"
++requires = "%BASISPACKAGEPREFIX%PRODUCTVERSION-core01"
++copyright = "1999-2012 by OpenOffice.org"
++solariscopyright = "solariscopyrightfile"
++vendor = "The Document Foundation"
++description = "TDE integration module for %PRODUCTNAME %PRODUCTVERSION"
++destpath = "/opt"
++packageversion = "%ABOUTBOXPRODUCTVERSION"
++End
++
++Start
+ module = "gid_Module_Optional_Kde"
+ solarispackagename = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-kde-integration"
+ solarisrequires = "%BASISPACKAGEPREFIX%WITHOUTDOTPRODUCTVERSION-core01"
+diff --git a/shell/inc/tde_defines.h b/shell/inc/tde_defines.h
+new file mode 100644
+index 0000000..fe2d89e
+--- /dev/null
++++ b/shell/inc/tde_defines.h
+@@ -0,0 +1,96 @@
++/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
++/*************************************************************************
++ *
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * Copyright 2012 Timothy Pearson
++ *
++ * OpenOffice.org - a multi-platform office productivity suite
++ *
++ * This file is part of OpenOffice.org.
++ *
++ * OpenOffice.org is free software: you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 3
++ * only, as published by the Free Software Foundation.
++ *
++ * OpenOffice.org is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU Lesser General Public License version 3 for more details
++ * (a copy is included in the LICENSE file that accompanied this code).
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * version 3 along with OpenOffice.org. If not, see
++ * <http://www.openoffice.org/license.html>
++ * for a copy of the LGPLv3 License.
++ *
++ ************************************************************************/
++
++#ifndef INCLUDED_VCL_TDE_DEFINE_HEADERS_H
++#define INCLUDED_VCL_TDE_DEFINE_HEADERS_H
++
++#define QObject TQObject
++#define QWidget TQWidget
++#define QVBox TQVBox
++#define QHBox TQHBox
++#define QGrid TQGrid
++#define QString TQString
++#define QStringList TQStringList
++#define QCustomEvent TQCustomEvent
++#define QMutex TQMutex
++#define QEvent TQEvent
++#define QFont TQFont
++#define QDateTime TQDateTime
++#define QThread TQThread
++#define QStyle TQStyle
++#define QApplication TQApplication
++#define QRect TQRect
++#define QProgressBar TQProgressBar
++#define QPopupMenu TQPopupMenu
++#define QMenuBar TQMenuBar
++#define QToolButton TQToolButton
++#define QToolBar TQToolBar
++#define QScrollBar TQScrollBar
++#define QListView TQListView
++#define QSpinWidget TQSpinWidget
++#define QScrollBar TQScrollBar
++#define QLineEdit TQLineEdit
++#define QComboBox TQComboBox
++#define QCheckBox TQCheckBox
++#define QRadioButton TQRadioButton
++#define QPushButton TQPushButton
++#define QPainter TQPainter
++#define QResizeEvent TQResizeEvent
++#define QShowEvent TQShowEvent
++#define QPoint TQPoint
++#define QDialog TQDialog
++#define QFile TQFile
++#define QLabel TQLabel
++#define QObjectList TQObjectList
++#define QCString TQCString
++#define QRegExp TQRegExp
++#define QSessionManager TQSessionManager
++#define QPaintDevice TQPaintDevice
++#define QTextIStream TQTextIStream
++#define QTextStream TQTextStream
++#define QMutexLocker TQMutexLocker
++#define QValueList TQValueList
++#define QTab TQTab
++#define QTabBar TQTabBar
++#define QTabWidget TQTabWidget
++#define QMainWindow TQMainWindow
++#define QPixmap TQPixmap
++#define QColorGroup TQColorGroup
++#define QStyleOption TQStyleOption
++#define QSize TQSize
++#define QMenuItem TQMenuItem
++#define QFontInfo TQFontInfo
++
++#define qSwap tqSwap
++#define qt_cast tqt_cast
++#define qt_xdisplay tqt_xdisplay
++#define qVersion tqVersion
++
++#endif
++
++/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
+diff --git a/shell/inc/tde_headers.h b/shell/inc/tde_headers.h
+new file mode 100644
+index 0000000..389ecbe
+--- /dev/null
++++ b/shell/inc/tde_headers.h
+@@ -0,0 +1,98 @@
++/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
++/*************************************************************************
++ *
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * Copyright 2000, 2010 Oracle and/or its affiliates.
++ * Copyright 2012 Timothy Pearson
++ *
++ * OpenOffice.org - a multi-platform office productivity suite
++ *
++ * This file is part of OpenOffice.org.
++ *
++ * OpenOffice.org is free software: you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 3
++ * only, as published by the Free Software Foundation.
++ *
++ * OpenOffice.org is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU Lesser General Public License version 3 for more details
++ * (a copy is included in the LICENSE file that accompanied this code).
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * version 3 along with OpenOffice.org. If not, see
++ * <http://www.openoffice.org/license.html>
++ * for a copy of the LGPLv3 License.
++ *
++ ************************************************************************/
++
++#ifndef INCLUDED_VCL_TDE_HEADERS_H
++#define INCLUDED_VCL_TDE_HEADERS_H
++
++/* ********* Suppress warnings if needed */
++#include "sal/config.h"
++
++#if defined __GNUC__
++#pragma GCC system_header
++#endif
++
++
++/* ********* Hack, but needed because of conflicting types... */
++#define Region TQtXRegion
++
++
++/* ********* TQt headers */
++#include <tqaccessible.h>
++#include <tqcheckbox.h>
++#include <tqcombobox.h>
++#include <tqfont.h>
++#include <tqframe.h>
++#include <tqlineedit.h>
++#include <tqlistview.h>
++#include <tqmainwindow.h>
++#include <tqmenudata.h>
++#include <tqpaintdevice.h>
++#include <tqpainter.h>
++#include <tqpushbutton.h>
++#include <tqradiobutton.h>
++#include <tqrangecontrol.h>
++#include <tqstring.h>
++#include <tqtabbar.h>
++#include <tqtabwidget.h>
++#include <tqtoolbar.h>
++#include <tqtoolbutton.h>
++#include <tqwidget.h>
++#include <tqprogressbar.h>
++
++/* ********* See hack on top of this file */
++#undef Region
++
++
++/* ********* TDE base headers */
++#include <kaboutdata.h>
++#include <kapplication.h>
++#include <kcmdlineargs.h>
++#include <kconfig.h>
++#include <tdeversion.h>
++#include <kemailsettings.h>
++#include <kglobal.h>
++#include <kglobalsettings.h>
++#include <klocale.h>
++#include <kmainwindow.h>
++#include <kmenubar.h>
++#include <kprotocolmanager.h>
++#include <kstartupinfo.h>
++#include <kstyle.h>
++
++
++/* ********* TDE address book connectivity headers */
++#include <kabc/addressbook.h>
++#include <kabc/addressee.h>
++#include <kabc/field.h>
++#include <kabc/stdaddressbook.h>
++
++
++#endif
++
++/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
+diff --git a/shell/prj/d.lst b/shell/prj/d.lst
+index 62dfa80..a0e2a9a 100644
+--- a/shell/prj/d.lst
++++ b/shell/prj/d.lst
+@@ -14,6 +14,7 @@
+
+ ..\%__SRC%\bin\open-url %_DEST%\bin\open-url
+ ..\%__SRC%\bin\cde-open-url %_DEST%\bin\cde-open-url
++..\%__SRC%\bin\tde-open-url %_DEST%\bin\tde-open-url
+ ..\%__SRC%\bin\kde-open-url %_DEST%\bin\kde-open-url
+ ..\%__SRC%\bin\gnome-open-url %_DEST%\bin\gnome-open-url
+ ..\%__SRC%\bin\gnome-open-url.bin %_DEST%\bin\gnome-open-url.bin
+@@ -25,8 +26,10 @@
+
+ ..\%__SRC%\misc\desktopbe1.component %_DEST%\xml\desktopbe1.component
+ ..\%__SRC%\misc\gconfbe1.component %_DEST%\xml\gconfbe1.component
++..\%__SRC%\misc\tdebe1.component %_DEST%\xml\tdebe1.component
+ ..\%__SRC%\misc\kde4be1.component %_DEST%\xml\kde4be1.component
+ ..\%__SRC%\misc\kdebe1.component %_DEST%\xml\kdebe1.component
++..\inc\tde_headers.h %_DEST%\inc\shell\tde_headers.h
+ ..\inc\kde_headers.h %_DEST%\inc\shell\kde_headers.h
+ ..\%__SRC%\misc\localebe1.component %_DEST%\xml\localebe1.component
+ ..\%__SRC%\misc\macbe1.component %_DEST%\xml\macbe1.component
+diff --git a/shell/source/backends/kdebe/kdeaccess.cxx b/shell/source/backends/kdebe/kdeaccess.cxx
+index 0d7ad8dd..d83bd32 100644
+--- a/shell/source/backends/kdebe/kdeaccess.cxx
++++ b/shell/source/backends/kdebe/kdeaccess.cxx
+@@ -35,7 +35,15 @@
+ #include "rtl/string.h"
+ #include "rtl/ustring.hxx"
+
++#ifdef ENABLE_TDE
++#include "tde_defines.h"
++#endif // ENABLE_TDE
++
++#ifdef ENABLE_TDE
++#include "tde_headers.h"
++#else // ENABLE_TDE
+ #include "kde_headers.h"
++#endif // ENABLE_TDE
+
+ #include "kdeaccess.hxx"
+
+diff --git a/shell/source/backends/kdebe/kdebackend.cxx b/shell/source/backends/kdebe/kdebackend.cxx
+index 6432154..2e70cc4 100644
+--- a/shell/source/backends/kdebe/kdebackend.cxx
++++ b/shell/source/backends/kdebe/kdebackend.cxx
+@@ -58,7 +58,15 @@
+ #include "uno/current_context.hxx"
+ #include "uno/lbnames.h"
+
++#ifdef ENABLE_TDE
++#include "tde_defines.h"
++#endif // ENABLE_TDE
++
++#ifdef ENABLE_TDE
++#include "tde_headers.h"
++#else // ENABLE_TDE
+ #include "kde_headers.h"
++#endif // ENABLE_TDE
+
+ #include "kdeaccess.hxx"
+
+diff --git a/shell/source/backends/kdebe/makefile.mk b/shell/source/backends/kdebe/makefile.mk
+index 265a3b6..69329fa 100644
+--- a/shell/source/backends/kdebe/makefile.mk
++++ b/shell/source/backends/kdebe/makefile.mk
+@@ -27,7 +27,6 @@
+ PRJ=..$/..$/..
+
+ PRJNAME=shell
+-TARGET=kdebe
+
+ LIBTARGET=NO
+ ENABLE_EXCEPTIONS=TRUE
+@@ -47,7 +46,39 @@ CFLAGSCXX+=-Wno-shadow
+ # no "lib" prefix
+ DLLPRE =
+
++.IF "$(ENABLE_TDE)" == "TRUE"
++TARGET=tdebe
++
++CFLAGS+=$(TDE_CFLAGS)
++CFLAGS+=-DENABLE_TDE
++CFLAGSCXX+=-DENABLE_TDE
++
++# --- Files ---
++
++SLOFILES=\
++ $(SLO)$/kdeaccess.obj \
++ $(SLO)$/kdebackend.obj
++
++SHL1NOCHECK=TRUE
++SHL1TARGET=$(TARGET)1.uno
++SHL1OBJS=$(SLOFILES)
++SHL1DEF=$(MISC)$/$(SHL1TARGET).def
++
++SHL1IMPLIB=i$(SHL1TARGET)
++SHL1STDLIBS= \
++ $(CPPUHELPERLIB) \
++ $(CPPULIB) \
++ $(SALLIB) \
++ $(TDE_LIBS) \
++ -lkio
++
++SHL1DEF=$(MISC)$/$(SHL1TARGET).def
++DEF1NAME=$(SHL1TARGET)
++
++.ENDIF # "$(ENABLE_TDE)" == "TRUE"
++
+ .IF "$(ENABLE_KDE)" == "TRUE"
++TARGET=kdebe
+
+ CFLAGS+=$(KDE_CFLAGS)
+
+@@ -79,10 +110,10 @@ DEF1NAME=$(SHL1TARGET)
+
+ .INCLUDE : target.mk
+
+-ALLTAR : $(MISC)/kdebe1.component
++ALLTAR : $(MISC)/$(TARGET)1.component
+
+-$(MISC)/kdebe1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+- kdebe1.component
++$(MISC)/$(TARGET)1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
++ $(TARGET)1.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+- $(SOLARENV)/bin/createcomponent.xslt kdebe1.component
++ $(SOLARENV)/bin/createcomponent.xslt $(TARGET)1.component
+diff --git a/shell/source/backends/kdebe/tdebe1.component b/shell/source/backends/kdebe/tdebe1.component
+new file mode 100644
+index 0000000..55a3776
+--- /dev/null
++++ b/shell/source/backends/kdebe/tdebe1.component
+@@ -0,0 +1,34 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!--**********************************************************************
++*
++* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++*
++* Copyright 2000, 2010 Oracle and/or its affiliates.
++*
++* OpenOffice.org - a multi-platform office productivity suite
++*
++* This file is part of OpenOffice.org.
++*
++* OpenOffice.org is free software: you can redistribute it and/or modify
++* it under the terms of the GNU Lesser General Public License version 3
++* only, as published by the Free Software Foundation.
++*
++* OpenOffice.org is distributed in the hope that it will be useful,
++* but WITHOUT ANY WARRANTY; without even the implied warranty of
++* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++* GNU Lesser General Public License version 3 for more details
++* (a copy is included in the LICENSE file that accompanied this code).
++*
++* You should have received a copy of the GNU Lesser General Public License
++* version 3 along with OpenOffice.org. If not, see
++* <http://www.openoffice.org/license.html>
++* for a copy of the LGPLv3 License.
++*
++**********************************************************************-->
++
++<component loader="com.sun.star.loader.SharedLibrary"
++ xmlns="http://openoffice.org/2010/uno-components">
++ <implementation name="com.sun.star.comp.configuration.backend.TDEBackend">
++ <service name="com.sun.star.configuration.backend.TDEBackend"/>
++ </implementation>
++</component>
+diff --git a/shell/source/unix/misc/makefile.mk b/shell/source/unix/misc/makefile.mk
+index 6805ad4..39752bd 100644
+--- a/shell/source/unix/misc/makefile.mk
++++ b/shell/source/unix/misc/makefile.mk
+@@ -52,6 +52,7 @@ SCRIPTFILES = \
+ $(BIN)$/open-url \
+ $(BIN)$/cde-open-url \
+ $(BIN)$/gnome-open-url \
++ $(BIN)$/tde-open-url \
+ $(BIN)$/kde-open-url
+
+ APP1TARGET = gnome-open-url.bin
+diff --git a/shell/source/unix/misc/tde-open-url.sh b/shell/source/unix/misc/tde-open-url.sh
+new file mode 100644
+index 0000000..fa05bde
+--- /dev/null
++++ b/shell/source/unix/misc/tde-open-url.sh
+@@ -0,0 +1,10 @@
++#!/bin/sh
++
++# special handling for mailto: uris
++if echo $1 | grep '^mailto:' > /dev/null; then
++ kmailservice "$1" &
++else
++ kfmclient openURL "$1" &
++fi
++
++exit 0
+diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk
+index f21dfed..8d35ab3 100644
+--- a/solenv/gbuild/gbuild.mk
++++ b/solenv/gbuild/gbuild.mk
+@@ -228,6 +228,10 @@ ifneq ($(strip $(ENABLE_GTK)),)
+ gb_GLOBALDEFS += -DENABLE_GTK
+ endif
+
++ifneq ($(strip $(ENABLE_TDE)),)
++gb_GLOBALDEFS += -DENABLE_TDE
++endif
++
+ ifneq ($(strip $(ENABLE_KDE)),)
+ gb_GLOBALDEFS += -DENABLE_KDE
+ endif
+diff --git a/solenv/inc/unx.mk b/solenv/inc/unx.mk
+index 3093d58..fa304d9 100644
+--- a/solenv/inc/unx.mk
++++ b/solenv/inc/unx.mk
+@@ -167,6 +167,18 @@ DLLPOST!:=$(DLLPOST).$($(UNIXVERSIONNAMES)_MAJOR)
+ .ENDIF
+ .ENDIF # "$(UNIXVERSIONNAMES)"!=""
+
++# enable building/linking TDE-dependent code in both OOo and SO build environment
++.IF "$(ENABLE_TDE)" != ""
++.IF "$(TDE_ROOT)"!=""
++TDE_CFLAGS:=-I$(TDE_ROOT)/include -I/usr/include/tqt -DQT_CLEAN_NAMESPACE
++TDE_LIBS:=-ltdeui -ltdecore -ltqt -ltqt-mt
++SOLARLIB+=-L$(TDE_ROOT)/lib
++.IF "$(OS)$(CPU)" == "LINUXX"
++SOLARLIB+=-L$(TDE_ROOT)/lib64
++.ENDIF # "$(OS)$(CPU)" == "LINUXX"
++.ENDIF # "$(TDE_ROOT)"!=""
++.ENDIF # "$(ENABLE_TDE)" != ""
++
+ # enable building/linking KDE-dependent code in both OOo and SO build environment
+ .IF "$(ENABLE_KDE)" != ""
+ .IF "$(KDE_ROOT)"!=""
+diff --git a/vcl/CustomTarget_tde_moc.mk b/vcl/CustomTarget_tde_moc.mk
+new file mode 100644
+index 0000000..d0c26e2
+--- /dev/null
++++ b/vcl/CustomTarget_tde_moc.mk
+@@ -0,0 +1,39 @@
++# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
++# Version: MPL 1.1 / GPLv3+ / LGPLv3+
++#
++# The contents of this file are subject to the Mozilla Public License Version
++# 1.1 (the "License"); you may not use this file except in compliance with
++# the License or as specified alternatively below. You may obtain a copy of
++# the License at http://www.mozilla.org/MPL/
++#
++# Software distributed under the License is distributed on an "AS IS" basis,
++# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
++# for the specific language governing rights and limitations under the
++# License.
++#
++# Major Contributor(s):
++# Copyright (C) 2010 Red Hat, Inc., David Tardon <dtardon@redhat.com>
++# (initial developer)
++#
++# All Rights Reserved.
++#
++# For minor contributions see the git repository.
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
++# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
++# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
++# instead of those above.
++
++$(eval $(call gb_CustomTarget_CustomTarget,vcl/unx/kde/fpicker))
++
++$(call gb_CustomTarget_get_target,vcl/unx/kde/fpicker) : \
++ $(call gb_CustomTarget_get_workdir,vcl/unx/kde/fpicker)/kdefilepicker.moc.cxx
++
++$(call gb_CustomTarget_get_workdir,vcl/unx/kde/fpicker)/kdefilepicker.moc.cxx :\
++ $(SRCDIR)/vcl/unx/kde/fpicker/kdefilepicker.hxx \
++ | $(call gb_CustomTarget_get_workdir,vcl/unx/kde/fpicker)/.dir
++ $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),MOC,1)
++ $(MOC) -o $@ $<
++
++# vim:set shiftwidth=4 tabstop=4 noexpandtab:
+diff --git a/vcl/Executable_tdefilepicker.mk b/vcl/Executable_tdefilepicker.mk
+new file mode 100644
+index 0000000..8003f27
+--- /dev/null
++++ b/vcl/Executable_tdefilepicker.mk
+@@ -0,0 +1,70 @@
++# -*- Mode: makefile; tab-width: 4; indent-tabs-mode: t -*-
++#
++# Version: MPL 1.1 / GPLv3+ / LGPLv3+
++#
++# The contents of this file are subject to the Mozilla Public License Version
++# 1.1 (the "License"); you may not use this file except in compliance with
++# the License or as specified alternatively below. You may obtain a copy of
++# the License at http://www.mozilla.org/MPL/
++#
++# Software distributed under the License is distributed on an "AS IS" basis,
++# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
++# for the specific language governing rights and limitations under the
++# License.
++#
++# Major Contributor(s):
++# Copyright (C) 2011 Matúš Kukan <matus.kukan@gmail.com> (initial developer)
++# Copyright (C) 2012 Timothy Pearson (TDE)
++#
++# All Rights Reserved.
++#
++# For minor contributions see the git repository.
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
++# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
++# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
++# instead of those above.
++
++$(eval $(call gb_Executable_Executable,tdefilepicker))
++
++$(eval $(call gb_Executable_add_defs,tdefilepicker,\
++ $(TDE_CFLAGS) \
++ -DENABLE_TDE \
++))
++
++$(eval $(call gb_Executable_set_include,tdefilepicker,\
++ $$(INCLUDE) \
++ -I$(SRCDIR)/vcl/inc \
++ -I$(SRCDIR)/solenv/inc \
++))
++
++$(eval $(call gb_Executable_use_libraries,tdefilepicker,\
++ sal \
++ $(gb_STDLIBS) \
++))
++
++$(eval $(call gb_Executable_add_libs,tdefilepicker,\
++ $(TDE_LIBS) \
++ -lkio -lX11 \
++))
++
++$(eval $(call gb_Executable_add_exception_objects,tdefilepicker,\
++ vcl/unx/kde/fpicker/kdecommandthread \
++ vcl/unx/kde/fpicker/kdefilepicker \
++ vcl/unx/kde/fpicker/kdefpmain \
++ vcl/unx/kde/fpicker/kdemodalityfilter \
++))
++
++$(eval $(call gb_Executable_add_generated_cxxobjects,tdefilepicker,\
++ CustomTarget/vcl/unx/kde/fpicker/kdefilepicker.moc \
++))
++
++$(eval $(call gb_Executable_set_warnings_not_errors,tdefilepicker))
++
++# TDE/TQt consider -Wshadow more trouble than benefit
++$(eval $(call gb_Executable_add_cxxflags,kdefilepicker,\
++ -Wno-shadow \
++))
++
++# vim: set noet sw=4 ts=4:
+diff --git a/vcl/Library_vclplug_tde.mk b/vcl/Library_vclplug_tde.mk
+new file mode 100644
+index 0000000..3f757db
+--- /dev/null
++++ b/vcl/Library_vclplug_tde.mk
+@@ -0,0 +1,109 @@
++# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
++#*************************************************************************
++#
++# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++#
++# Copyright 2000, 2010 Oracle and/or its affiliates.
++# Copyright 2012 Timothy Pearson
++#
++# OpenOffice.org - a multi-platform office productivity suite
++#
++# This file is part of OpenOffice.org.
++#
++# OpenOffice.org is free software: you can redistribute it and/or modify
++# it under the terms of the GNU Lesser General Public License version 3
++# only, as published by the Free Software Foundation.
++#
++# OpenOffice.org is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU Lesser General Public License version 3 for more details
++# (a copy is included in the LICENSE file that accompanied this code).
++#
++# You should have received a copy of the GNU Lesser General Public License
++# version 3 along with OpenOffice.org. If not, see
++# <http://www.openoffice.org/license.html>
++# for a copy of the LGPLv3 License.
++#
++#*************************************************************************
++
++$(eval $(call gb_Library_Library,vclplug_tde))
++
++$(eval $(call gb_Library_use_packages,vclplug_tde,\
++ fpicker_inc \
++))
++
++$(eval $(call gb_Library_set_include,vclplug_tde,\
++ $$(INCLUDE) \
++ -I$(SRCDIR)/vcl/inc \
++ -I$(SRCDIR)/solenv/inc \
++))
++
++$(eval $(call gb_Library_set_include,vclplug_tde,\
++ $$(INCLUDE) \
++ $$(TDE_CFLAGS) \
++))
++
++$(eval $(call gb_Library_add_defs,vclplug_tde,\
++ -DVCLPLUG_TDE_IMPLEMENTATION \
++))
++
++$(eval $(call gb_Library_use_api,vclplug_tde,\
++ offapi \
++ udkapi \
++))
++
++$(eval $(call gb_Library_add_libs,vclplug_tde,\
++ $$(TDE_LIBS) \
++))
++
++$(eval $(call gb_Library_use_libraries,vclplug_tde,\
++ vclplug_gen \
++ vcl \
++ tl \
++ utl \
++ sot \
++ ucbhelper \
++ basegfx \
++ comphelper \
++ cppuhelper \
++ i18nisolang1 \
++ i18nutil \
++ jvmaccess \
++ cppu \
++ sal \
++ X11 \
++ Xext \
++ SM \
++ ICE \
++ $(gb_STDLIBS) \
++))
++
++$(eval $(call gb_Library_use_externals,vclplug_tde,\
++ icule \
++ icuuc \
++))
++
++$(eval $(call gb_Library_add_exception_objects,vclplug_tde,\
++ vcl/unx/kde/kdedata \
++ vcl/unx/kde/salnativewidgets-kde \
++ vcl/unx/kde/UnxCommandThread \
++ vcl/unx/kde/UnxFilePicker \
++ vcl/unx/kde/UnxNotifyThread \
++))
++
++# TDE/TQt consider -Wshadow more trouble than benefit
++$(eval $(call gb_Library_add_cxxflags,vclplug_tde,\
++ -Wno-shadow \
++))
++
++$(eval $(call gb_Library_set_warnings_not_errors,vclplug_tde))
++
++ifeq ($(OS),LINUX)
++$(eval $(call gb_Library_use_libraries,vclplug_tde,\
++ dl \
++ m \
++ pthread \
++))
++endif
++# vim: set noet sw=4 ts=4:
+diff --git a/vcl/Module_vcl.mk b/vcl/Module_vcl.mk
+index 2cd2bf5..441ec37 100644
+--- a/vcl/Module_vcl.mk
++++ b/vcl/Module_vcl.mk
+@@ -55,6 +55,13 @@ $(eval $(call gb_Module_add_targets,vcl,\
+ Library_vclplug_gtk3 \
+ ))
+ endif
++ifneq ($(ENABLE_TDE),)
++$(eval $(call gb_Module_add_targets,vcl,\
++ CustomTarget_tde_moc \
++ Executable_tdefilepicker \
++ Library_vclplug_tde \
++))
++endif
+ ifneq ($(ENABLE_KDE),)
+ $(eval $(call gb_Module_add_targets,vcl,\
+ CustomTarget_kde_moc \
+diff --git a/vcl/inc/generic/gendata.hxx b/vcl/inc/generic/gendata.hxx
+index f6e2668..67226b0 100644
+--- a/vcl/inc/generic/gendata.hxx
++++ b/vcl/inc/generic/gendata.hxx
+@@ -38,7 +38,7 @@ class SalGenericDisplay;
+ class SalDisplay;
+ class GtkSalDisplay;
+ enum SalGenericDataType { SAL_DATA_GTK, SAL_DATA_GTK3,
+- SAL_DATA_KDE3, SAL_DATA_KDE4,
++ SAL_DATA_TDE3, SAL_DATA_KDE3, SAL_DATA_KDE4,
+ SAL_DATA_UNX, SAL_DATA_SVP,
+ SAL_DATA_ANDROID, SAL_DATA_IOS,
+ SAL_DATA_HEADLESS };
+diff --git a/vcl/inc/unx/desktops.hxx b/vcl/inc/unx/desktops.hxx
+index de4ebb8..4ec9d7b 100644
+--- a/vcl/inc/unx/desktops.hxx
++++ b/vcl/inc/unx/desktops.hxx
+@@ -33,6 +33,7 @@ enum DesktopType {
+ DESKTOP_NONE, // headless, i.e. no X connection at all
+ DESKTOP_UNKNOWN, // unknown desktop, simple WM, etc.
+ DESKTOP_GNOME,
++ DESKTOP_TDE,
+ DESKTOP_KDE,
+ DESKTOP_KDE4,
+ DESKTOP_CDE
+diff --git a/vcl/inc/unx/tde/tde_defines.h b/vcl/inc/unx/tde/tde_defines.h
+new file mode 100644
+index 0000000..fe2d89e
+--- /dev/null
++++ b/vcl/inc/unx/tde/tde_defines.h
+@@ -0,0 +1,96 @@
++/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
++/*************************************************************************
++ *
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * Copyright 2012 Timothy Pearson
++ *
++ * OpenOffice.org - a multi-platform office productivity suite
++ *
++ * This file is part of OpenOffice.org.
++ *
++ * OpenOffice.org is free software: you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 3
++ * only, as published by the Free Software Foundation.
++ *
++ * OpenOffice.org is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU Lesser General Public License version 3 for more details
++ * (a copy is included in the LICENSE file that accompanied this code).
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * version 3 along with OpenOffice.org. If not, see
++ * <http://www.openoffice.org/license.html>
++ * for a copy of the LGPLv3 License.
++ *
++ ************************************************************************/
++
++#ifndef INCLUDED_VCL_TDE_DEFINE_HEADERS_H
++#define INCLUDED_VCL_TDE_DEFINE_HEADERS_H
++
++#define QObject TQObject
++#define QWidget TQWidget
++#define QVBox TQVBox
++#define QHBox TQHBox
++#define QGrid TQGrid
++#define QString TQString
++#define QStringList TQStringList
++#define QCustomEvent TQCustomEvent
++#define QMutex TQMutex
++#define QEvent TQEvent
++#define QFont TQFont
++#define QDateTime TQDateTime
++#define QThread TQThread
++#define QStyle TQStyle
++#define QApplication TQApplication
++#define QRect TQRect
++#define QProgressBar TQProgressBar
++#define QPopupMenu TQPopupMenu
++#define QMenuBar TQMenuBar
++#define QToolButton TQToolButton
++#define QToolBar TQToolBar
++#define QScrollBar TQScrollBar
++#define QListView TQListView
++#define QSpinWidget TQSpinWidget
++#define QScrollBar TQScrollBar
++#define QLineEdit TQLineEdit
++#define QComboBox TQComboBox
++#define QCheckBox TQCheckBox
++#define QRadioButton TQRadioButton
++#define QPushButton TQPushButton
++#define QPainter TQPainter
++#define QResizeEvent TQResizeEvent
++#define QShowEvent TQShowEvent
++#define QPoint TQPoint
++#define QDialog TQDialog
++#define QFile TQFile
++#define QLabel TQLabel
++#define QObjectList TQObjectList
++#define QCString TQCString
++#define QRegExp TQRegExp
++#define QSessionManager TQSessionManager
++#define QPaintDevice TQPaintDevice
++#define QTextIStream TQTextIStream
++#define QTextStream TQTextStream
++#define QMutexLocker TQMutexLocker
++#define QValueList TQValueList
++#define QTab TQTab
++#define QTabBar TQTabBar
++#define QTabWidget TQTabWidget
++#define QMainWindow TQMainWindow
++#define QPixmap TQPixmap
++#define QColorGroup TQColorGroup
++#define QStyleOption TQStyleOption
++#define QSize TQSize
++#define QMenuItem TQMenuItem
++#define QFontInfo TQFontInfo
++
++#define qSwap tqSwap
++#define qt_cast tqt_cast
++#define qt_xdisplay tqt_xdisplay
++#define qVersion tqVersion
++
++#endif
++
++/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
+diff --git a/vcl/inc/unx/tde/tde_headers.h b/vcl/inc/unx/tde/tde_headers.h
+new file mode 100644
+index 0000000..a08d166
+--- /dev/null
++++ b/vcl/inc/unx/tde/tde_headers.h
+@@ -0,0 +1,99 @@
++/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
++/*************************************************************************
++ *
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * Copyright 2000, 2010 Oracle and/or its affiliates.
++ * Copyright 2012 Timothy Pearson
++ *
++ * OpenOffice.org - a multi-platform office productivity suite
++ *
++ * This file is part of OpenOffice.org.
++ *
++ * OpenOffice.org is free software: you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 3
++ * only, as published by the Free Software Foundation.
++ *
++ * OpenOffice.org is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU Lesser General Public License version 3 for more details
++ * (a copy is included in the LICENSE file that accompanied this code).
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * version 3 along with OpenOffice.org. If not, see
++ * <http://www.openoffice.org/license.html>
++ * for a copy of the LGPLv3 License.
++ *
++ ************************************************************************/
++
++#ifndef INCLUDED_VCL_TDE_HEADERS_H
++#define INCLUDED_VCL_TDE_HEADERS_H
++
++/* ********* Suppress warnings if needed */
++#include "sal/config.h"
++
++#include <cstddef>
++
++#if defined __GNUC__
++#pragma GCC system_header
++#endif
++
++
++/* ********* Hack, but needed because of conflicting types... */
++#define Region TQtXRegion
++
++
++/* ********* TQt headers */
++#include <tqaccessible.h>
++#include <tqcheckbox.h>
++#include <tqcombobox.h>
++#include <tqfont.h>
++#include <tqframe.h>
++#include <tqlineedit.h>
++#include <tqlistview.h>
++#include <tqmainwindow.h>
++#include <tqmenudata.h>
++#include <tqpaintdevice.h>
++#include <tqpainter.h>
++#include <tqpushbutton.h>
++#include <tqradiobutton.h>
++#include <tqrangecontrol.h>
++#include <tqstring.h>
++#include <tqtabbar.h>
++#include <tqtabwidget.h>
++#include <tqtoolbar.h>
++#include <tqtoolbutton.h>
++#include <tqwidget.h>
++#include <tqprogressbar.h>
++
++/* ********* See hack on top of this file */
++#undef Region
++
++
++/* ********* TDE base headers */
++#include <kaboutdata.h>
++#include <kapplication.h>
++#include <kcmdlineargs.h>
++#include <kconfig.h>
++#include <tdeversion.h>
++#include <kemailsettings.h>
++#include <kglobal.h>
++#include <kglobalsettings.h>
++#include <klocale.h>
++#include <kmainwindow.h>
++#include <kmenubar.h>
++#include <kprotocolmanager.h>
++#include <kstartupinfo.h>
++#include <kstyle.h>
++
++
++/* ********* TDE address book connectivity headers */
++#include <kabc/addressbook.h>
++#include <kabc/addressee.h>
++#include <kabc/field.h>
++#include <kabc/stdaddressbook.h>
++
++#endif
++
++/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
+diff --git a/vcl/inc/unx/tde/tdedata.hxx b/vcl/inc/unx/tde/tdedata.hxx
+new file mode 100644
+index 0000000..c6b8dac
+--- /dev/null
++++ b/vcl/inc/unx/tde/tdedata.hxx
+@@ -0,0 +1,114 @@
++/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
++/*************************************************************************
++ *
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * Copyright 2000, 2010 Oracle and/or its affiliates.
++ * Copyright 2012 Timothy Pearson
++ *
++ * OpenOffice.org - a multi-platform office productivity suite
++ *
++ * This file is part of OpenOffice.org.
++ *
++ * OpenOffice.org is free software: you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 3
++ * only, as published by the Free Software Foundation.
++ *
++ * OpenOffice.org is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU Lesser General Public License version 3 for more details
++ * (a copy is included in the LICENSE file that accompanied this code).
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * version 3 along with OpenOffice.org. If not, see
++ * <http://www.openoffice.org/license.html>
++ * for a copy of the LGPLv3 License.
++ *
++ ************************************************************************/
++
++#ifndef _VCL_TDEDATA_HXX
++#define _VCL_TDEDATA_HXX
++
++#include <unx/saldisp.hxx>
++#include <unx/saldata.hxx>
++#include <unx/salframe.h>
++
++class TDEData : public X11SalData
++{
++public:
++ TDEData( SalInstance *pInstance ) : X11SalData( SAL_DATA_TDE, pInstance ) {}
++ virtual ~TDEData();
++
++ virtual void Init();
++ virtual void initNWF();
++ virtual void deInitNWF();
++};
++
++class SalTDEDisplay : public SalX11Display
++{
++public:
++ SalTDEDisplay( Display* pDisp );
++ virtual ~SalTDEDisplay();
++};
++
++class TDESalFrame : public X11SalFrame
++{
++ static const int nMaxGraphics = 2;
++
++ struct GraphicsHolder
++ {
++ X11SalGraphics* pGraphics;
++ bool bInUse;
++ GraphicsHolder()
++ : pGraphics( NULL ),
++ bInUse( false )
++ {}
++ ~GraphicsHolder();
++ };
++ GraphicsHolder m_aGraphics[ nMaxGraphics ];
++
++public:
++ TDESalFrame( SalFrame* pParent, sal_uLong );
++ virtual ~TDESalFrame();
++
++ virtual SalGraphics* GetGraphics();
++ virtual void ReleaseGraphics( SalGraphics *pGraphics );
++ virtual void updateGraphics( bool bClear );
++ virtual void UpdateSettings( AllSettings& rSettings );
++ virtual void Show( sal_Bool bVisible, sal_Bool bNoActivate );
++};
++
++class TDESalInstance : public X11SalInstance
++{
++public:
++ TDESalInstance( SalYieldMutex* pMutex )
++ : X11SalInstance( pMutex ) {}
++ virtual ~TDESalInstance() {}
++ virtual SalFrame* CreateFrame( SalFrame* pParent, sal_uLong nStyle );
++};
++
++class TDEXLib : public SalXLib
++{
++ bool m_bStartupDone;
++ void* m_pApplication;
++ char** m_pFreeCmdLineArgs;
++ char** m_pAppCmdLineArgs;
++ int m_nFakeCmdLineArgs;
++public:
++ TDEXLib() : SalXLib(),
++ m_bStartupDone( false ),
++ m_pApplication( NULL ),
++ m_pFreeCmdLineArgs( NULL ),
++ m_pAppCmdLineArgs( NULL ),
++ m_nFakeCmdLineArgs( 0 )
++ {}
++ virtual ~TDEXLib();
++ virtual void Init();
++
++ void doStartup();
++};
++
++#endif // _VCL_TDEDATA_HXX
++
++/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
+diff --git a/vcl/inc/vclpluginapi.h b/vcl/inc/vclpluginapi.h
+index 462943b..ec4a1c2 100644
+--- a/vcl/inc/vclpluginapi.h
++++ b/vcl/inc/vclpluginapi.h
+@@ -44,6 +44,12 @@
+ #define VCLPLUG_GTK_PUBLIC SAL_DLLPUBLIC_IMPORT
+ #endif
+
++#if defined VCLPLUG_TDE_IMPLEMENTATION
++#define VCLPLUG_TDE_PUBLIC SAL_DLLPUBLIC_EXPORT
++#else
++#define VCLPLUG_TDE_PUBLIC SAL_DLLPUBLIC_IMPORT
++#endif
++
+ #if defined VCLPLUG_KDE_IMPLEMENTATION
+ #define VCLPLUG_KDE_PUBLIC SAL_DLLPUBLIC_EXPORT
+ #else
+diff --git a/vcl/source/app/settings.cxx b/vcl/source/app/settings.cxx
+index 35ed7a8..651fbdb 100644
+--- a/vcl/source/app/settings.cxx
++++ b/vcl/source/app/settings.cxx
+@@ -616,6 +616,8 @@ sal_uLong StyleSettings::GetAutoSymbolsStyle() const
+ ( env.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("gnome")) ||
+ env.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("windows")) )
+ ? STYLE_SYMBOLS_TANGO
++ : env.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("tde"))
++ ? STYLE_SYMBOLS_CRYSTAL
+ : env.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("kde"))
+ ? STYLE_SYMBOLS_CRYSTAL
+ : env.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("kde4"))
+diff --git a/vcl/unx/generic/desktopdetect/desktopdetector.cxx b/vcl/unx/generic/desktopdetect/desktopdetector.cxx
+index f69f2de..68b3b71 100644
+--- a/vcl/unx/generic/desktopdetect/desktopdetector.cxx
++++ b/vcl/unx/generic/desktopdetect/desktopdetector.cxx
+@@ -145,6 +145,47 @@ extern "C"
+ typedef int(* XErrorHandler)(Display*,XErrorEvent*);
+ }
+
++static int TDEVersion( Display* pDisplay )
++{
++ int nRet = 0;
++
++ Atom nFullSession = XInternAtom( pDisplay, "TDE_FULL_SESSION", True );
++ Atom nTDEVersion = XInternAtom( pDisplay, "TDE_SESSION_VERSION", True );
++
++ if( nFullSession )
++ {
++ if( !nTDEVersion )
++ return 14;
++
++ Atom aRealType = None;
++ int nFormat = 8;
++ unsigned long nItems = 0;
++ unsigned long nBytesLeft = 0;
++ unsigned char* pProperty = NULL;
++ XGetWindowProperty( pDisplay,
++ DefaultRootWindow( pDisplay ),
++ nTDEVersion,
++ 0, 1,
++ False,
++ AnyPropertyType,
++ &aRealType,
++ &nFormat,
++ &nItems,
++ &nBytesLeft,
++ &pProperty );
++ if( !WasXError() && nItems != 0 && pProperty )
++ {
++ nRet = *reinterpret_cast< sal_Int32* >( pProperty );
++ }
++ if( pProperty )
++ {
++ XFree( pProperty );
++ pProperty = NULL;
++ }
++ }
++ return nRet;
++}
++
+ static int KDEVersion( Display* pDisplay )
+ {
+ int nRet = 0;
+@@ -186,6 +227,19 @@ static int KDEVersion( Display* pDisplay )
+ return nRet;
+ }
+
++static bool is_tde_desktop( Display* pDisplay )
++{
++ if ( NULL != getenv( "TDE_FULL_SESSION" ) )
++ {
++ return true; // TDE
++ }
++
++ if ( TDEVersion( pDisplay ) >= 14 )
++ return true;
++
++ return false;
++}
++
+ static bool is_kde_desktop( Display* pDisplay )
+ {
+ if ( NULL != getenv( "KDE_FULL_SESSION" ) )
+@@ -237,6 +291,8 @@ DESKTOP_DETECTOR_PUBLIC DesktopType get_desktop_environment()
+ {
+ OString aOver( pOverride );
+
++ if ( aOver.equalsIgnoreAsciiCase( "tde" ) )
++ return DESKTOP_TDE;
+ if ( aOver.equalsIgnoreAsciiCase( "kde4" ) )
+ return DESKTOP_KDE4;
+ if ( aOver.equalsIgnoreAsciiCase( "gnome" ) )
+@@ -295,7 +351,9 @@ DESKTOP_DETECTOR_PUBLIC DesktopType get_desktop_environment()
+
+ XErrorHandler pOldHdl = XSetErrorHandler( autodect_error_handler );
+
+- if ( is_kde4_desktop( pDisplay ) )
++ if ( is_tde_desktop( pDisplay ) )
++ ret = DESKTOP_TDE;
++ else if ( is_kde4_desktop( pDisplay ) )
+ ret = DESKTOP_KDE4;
+ else if ( is_gnome_desktop( pDisplay ) )
+ ret = DESKTOP_GNOME;
+diff --git a/vcl/unx/generic/plugadapt/salplug.cxx b/vcl/unx/generic/plugadapt/salplug.cxx
+index d2400d7..ab19d34 100644
+--- a/vcl/unx/generic/plugadapt/salplug.cxx
++++ b/vcl/unx/generic/plugadapt/salplug.cxx
+@@ -98,7 +98,7 @@ static SalInstance* tryInstance( const OUString& rModuleBase, bool bForce = fals
+ * #i109007# KDE3 seems to have the same problem.
+ * And same applies for KDE4.
+ */
+- if( rModuleBase == "gtk" || rModuleBase == "gtk3" || rModuleBase == "kde" || rModuleBase == "kde4" )
++ if( rModuleBase == "gtk" || rModuleBase == "gtk3" || rModuleBase == "tde" || rModuleBase == "kde" || rModuleBase == "kde4" )
+ {
+ pCloseModule = NULL;
+ }
+@@ -159,6 +159,11 @@ static DesktopType get_desktop_environment()
+
+ static SalInstance* autodetect_plugin()
+ {
++ static const char* pTDEFallbackList[] =
++ {
++ "tde", "kde4", "kde", "gtk3", "gtk", "gen", 0
++ };
++
+ static const char* pKDEFallbackList[] =
+ {
+ "kde4", "kde", "gtk3", "gtk", "gen", 0
+@@ -183,6 +188,11 @@ static SalInstance* autodetect_plugin()
+ pList = pHeadlessFallbackList;
+ else if ( desktop == DESKTOP_GNOME )
+ pList = pStandardFallbackList;
++ else if( desktop == DESKTOP_TDE )
++ {
++ pList = pTDEFallbackList;
++ nListEntry = 1;
++ }
+ else if( desktop == DESKTOP_KDE )
+ {
+ pList = pKDEFallbackList;
+@@ -236,7 +246,7 @@ SalInstance *CreateSalInstance()
+ pInst = autodetect_plugin();
+
+ // fallback, try everything
+- const char* pPlugin[] = { "gtk3", "gtk", "kde4", "kde", "gen", 0 };
++ const char* pPlugin[] = { "gtk3", "gtk", "tde", "kde4", "kde", "gen", 0 };
+
+ for ( int i = 0; !pInst && pPlugin[ i ]; ++i )
+ pInst = tryInstance( OUString::createFromAscii( pPlugin[ i ] ) );
+@@ -291,7 +301,7 @@ void SalAbort( const rtl::OUString& rErrorText, bool bDumpCore )
+ _exit(1);
+ }
+
+-static const char * desktop_strings[] = { "none", "unknown", "GNOME", "KDE", "KDE4" };
++static const char * desktop_strings[] = { "none", "unknown", "GNOME", "TDE", "KDE", "KDE4" };
+
+ const OUString& SalGetDesktopEnvironment()
+ {
+diff --git a/vcl/unx/kde/FPServiceInfo.hxx b/vcl/unx/kde/FPServiceInfo.hxx
+index 9e4cbf1..17d2dd6 100644
+--- a/vcl/unx/kde/FPServiceInfo.hxx
++++ b/vcl/unx/kde/FPServiceInfo.hxx
+@@ -30,11 +30,21 @@
+ #ifndef _FPSERVICEINFO_HXX_
+ #define _FPSERVICEINFO_HXX_
+
++#ifdef ENABLE_TDE
++
+ // the service names
+-#define FILE_PICKER_SERVICE_NAME "com.sun.star.ui.dialogs.KDEFilePicker"
++#define FILE_PICKER_SERVICE_NAME "com.sun.star.ui.dialogs.TDEFilePicker"
+
+-// the implementation names
+-#define FILE_PICKER_IMPL_NAME "com.sun.star.ui.dialogs.UnxFilePicker"
++// the registry key names
++// a key under which this service will be registered,
++// Format: -> "/ImplName/UNO/SERVICES/ServiceName"
++// <Implementation-Name></UNO/SERVICES/><Service-Name>
++#define FILE_PICKER_REGKEY_NAME "/com.sun.star.ui.dialogs.UnxFilePicker/UNO/SERVICES/com.sun.star.ui.dialogs.TDEFilePicker"
++
++#else // ENABLE_TDE
++
++// the service names
++#define FILE_PICKER_SERVICE_NAME "com.sun.star.ui.dialogs.KDEFilePicker"
+
+ // the registry key names
+ // a key under which this service will be registered,
+@@ -42,6 +52,11 @@
+ // <Implementation-Name></UNO/SERVICES/><Service-Name>
+ #define FILE_PICKER_REGKEY_NAME "/com.sun.star.ui.dialogs.UnxFilePicker/UNO/SERVICES/com.sun.star.ui.dialogs.KDEFilePicker"
+
++#endif // ENABLE_TDE
++
++// the implementation names
++#define FILE_PICKER_IMPL_NAME "com.sun.star.ui.dialogs.UnxFilePicker"
++
+ #endif
+
+ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
+diff --git a/vcl/unx/kde/fpicker/kdecommandthread.cxx b/vcl/unx/kde/fpicker/kdecommandthread.cxx
+index b68ddb0..e63b2d7 100644
+--- a/vcl/unx/kde/fpicker/kdecommandthread.cxx
++++ b/vcl/unx/kde/fpicker/kdecommandthread.cxx
+@@ -26,11 +26,19 @@
+ *
+ ************************************************************************/
+
++#ifdef ENABLE_TDE
++#include <unx/tde/tde_defines.h>
++#endif // ENABLE_TDE
++
+ #include <cstddef>
+
+ #include <kdecommandthread.hxx>
+
++#ifdef ENABLE_TDE
++#include <tqstringlist.h>
++#else // ENABLE_TDE
+ #include <qstringlist.h>
++#endif // ENABLE_TDE
+
+ #include <kapplication.h>
+
+diff --git a/vcl/unx/kde/fpicker/kdecommandthread.hxx b/vcl/unx/kde/fpicker/kdecommandthread.hxx
+index 7486bf9..294b04d 100644
+--- a/vcl/unx/kde/fpicker/kdecommandthread.hxx
++++ b/vcl/unx/kde/fpicker/kdecommandthread.hxx
+@@ -29,9 +29,19 @@
+ #ifndef _KDECOMMANDTHREAD_HXX_
+ #define _KDECOMMANDTHREAD_HXX_
+
++#ifdef ENABLE_TDE
++#include <unx/tde/tde_defines.h>
++#endif // ENABLE_TDE
++
++#ifdef ENABLE_TDE
++#include <tqevent.h>
++#include <tqmutex.h>
++#include <tqthread.h>
++#else // ENABLE_TDE
+ #include <qevent.h>
+ #include <qmutex.h>
+ #include <qthread.h>
++#endif // ENABLE_TDE
+
+ class KDECommandEvent : public QCustomEvent
+ {
+diff --git a/vcl/unx/kde/fpicker/kdefilepicker.cxx b/vcl/unx/kde/fpicker/kdefilepicker.cxx
+index 779a34d..180aca0 100644
+--- a/vcl/unx/kde/fpicker/kdefilepicker.cxx
++++ b/vcl/unx/kde/fpicker/kdefilepicker.cxx
+@@ -28,9 +28,41 @@
+
+ #include <cstddef>
+
++#ifdef ENABLE_TDE
++#include <unx/tde/tde_defines.h>
++#endif // ENABLE_TDE
++
+ #include <kdecommandthread.hxx>
+ #include <kdefilepicker.hxx>
+
++#ifdef ENABLE_TDE
++
++#include <tqcheckbox.h>
++#include <tqcombobox.h>
++#include <tqgrid.h>
++#include <tqhbox.h>
++#include <tqlabel.h>
++#include <tqlayout.h>
++#include <tqobjectlist.h>
++#include <tqpushbutton.h>
++#include <tqregexp.h>
++#include <tqvbox.h>
++
++#ifdef TQT_NO_EMIT
++#define emit
++#endif
++
++#include <tdeversion.h>
++#include <kdiroperator.h>
++#include <kfiledialog.h>
++#include <kfilefiltercombo.h>
++#include <kio/netaccess.h>
++#include <klocale.h>
++#include <kmessagebox.h>
++#include <ktempfile.h>
++
++#else // ENABLE_TDE
++
+ #include <qcheckbox.h>
+ #include <qcombobox.h>
+ #include <qgrid.h>
+@@ -55,6 +87,8 @@
+ #include <kmessagebox.h>
+ #include <ktempfile.h>
+
++#endif // ENABLE_TDE
++
+ #include <algorithm>
+ #include <iostream>
+
+diff --git a/vcl/unx/kde/fpicker/kdefilepicker.hxx b/vcl/unx/kde/fpicker/kdefilepicker.hxx
+index 4d545eb..b0482d8 100644
+--- a/vcl/unx/kde/fpicker/kdefilepicker.hxx
++++ b/vcl/unx/kde/fpicker/kdefilepicker.hxx
+@@ -29,6 +29,10 @@
+ #ifndef _KDEFILEPICKER_HXX_
+ #define _KDEFILEPICKER_HXX_
+
++#ifdef ENABLE_TDE
++#include <unx/tde/tde_defines.h>
++#endif // ENABLE_TDE
++
+ #include <cstddef>
+
+ #include <kfiledialog.h>
+@@ -40,7 +44,11 @@ class QVBox;
+
+ class KDEFileDialog : public KFileDialog
+ {
++#ifdef ENABLE_TDE
++ TQ_OBJECT
++#else // ENABLE_TDE
+ Q_OBJECT
++#endif // ENABLE_TDE
+
+ protected:
+ typedef QPair< QString, QString > FilterEntry;
+diff --git a/vcl/unx/kde/fpicker/kdefpmain.cxx b/vcl/unx/kde/fpicker/kdefpmain.cxx
+index be40226..b06968a 100644
+--- a/vcl/unx/kde/fpicker/kdefpmain.cxx
++++ b/vcl/unx/kde/fpicker/kdefpmain.cxx
+@@ -26,6 +26,10 @@
+ *
+ ************************************************************************/
+
++#ifdef ENABLE_TDE
++#include <unx/tde/tde_defines.h>
++#endif // ENABLE_TDE
++
+ #include <cstddef>
+
+ #include <kdemodalityfilter.hxx>
+@@ -39,6 +43,14 @@
+ #include <iostream>
+ #include <stdlib.h>
+
++#ifdef ENABLE_TDE
++#define THIS_DESKENV_NAME_CAP "TDE"
++#define THIS_DESKENV_NAME_LOW "tde"
++#else // ENABLE_TDE
++#define THIS_DESKENV_NAME_CAP "KDE"
++#define THIS_DESKENV_NAME_LOW "kde"
++#endif // ENABLE_TDE
++
+ //////////////////////////////////////////////////////////////////////////
+ // Main
+ //////////////////////////////////////////////////////////////////////////
+@@ -54,13 +66,13 @@ int main( int argc, char* argv[] )
+ // we fake the name of the application to have "LibreOffice" in the
+ // title
+ KAboutData qAboutData( "kdefilepicker", I18N_NOOP( "LibreOffice" ),
+- "0.1", I18N_NOOP( "kdefilepicker is an implementation of the KDE file dialog for LibreOffice." ),
++ "0.1", I18N_NOOP( "kdefilepicker is an implementation of the " THIS_DESKENV_NAME_CAP " file dialog for LibreOffice." ),
+ KAboutData::License_LGPL,
+ "(c) 2004, Jan Holesovsky" );
+ qAboutData.addAuthor( "Jan Holesovsky", I18N_NOOP("Original author and current maintainer"), "kendy@openoffice.org" );
+
+ // Let the user see that this does something...
+- ::std::cerr << "kdefilepicker, an implementation of KDE file dialog for OOo." << ::std::endl
++ ::std::cerr << "kdefilepicker, an implementation of a " THIS_DESKENV_NAME_CAP " file dialog for OOo." << ::std::endl
+ << "Type 'exit' and press Enter to finish." << ::std::endl;
+
+ KCmdLineArgs::addCmdLineOptions( sOptions );
+@@ -77,7 +89,7 @@ int main( int argc, char* argv[] )
+
+ KDEModalityFilter qModalityFilter( nWinId );
+
+- KDEFileDialog aFileDialog( NULL, QString(), NULL, "kdefiledialog" );
++ KDEFileDialog aFileDialog( NULL, QString(), NULL, THIS_DESKENV_NAME_LOW "filedialog" );
+
+ KDECommandThread qCommandThread( &aFileDialog );
+ qCommandThread.start();
+diff --git a/vcl/unx/kde/fpicker/kdemodalityfilter.cxx b/vcl/unx/kde/fpicker/kdemodalityfilter.cxx
+index 5aeddb0..2b4ebf3 100644
+--- a/vcl/unx/kde/fpicker/kdemodalityfilter.cxx
++++ b/vcl/unx/kde/fpicker/kdemodalityfilter.cxx
+@@ -26,6 +26,10 @@
+ *
+ ************************************************************************/
+
++#ifdef ENABLE_TDE
++#include <unx/tde/tde_defines.h>
++#endif // ENABLE_TDE
++
+ #include <cstddef>
+
+ #include <kdemodalityfilter.hxx>
+diff --git a/vcl/unx/kde/fpicker/kdemodalityfilter.hxx b/vcl/unx/kde/fpicker/kdemodalityfilter.hxx
+index 8635694..9f68e72 100644
+--- a/vcl/unx/kde/fpicker/kdemodalityfilter.hxx
++++ b/vcl/unx/kde/fpicker/kdemodalityfilter.hxx
+@@ -29,7 +29,15 @@
+ #ifndef _KDEMODALITYFILTER_HXX_
+ #define _KDEMODALITYFILTER_HXX_
+
++#ifdef ENABLE_TDE
++#include <unx/tde/tde_defines.h>
++#endif // ENABLE_TDE
++
++#ifdef ENABLE_TDE
++#include <tqobject.h>
++#else // ENABLE_TDE
+ #include <qobject.h>
++#endif // ENABLE_TDE
+
+ class KDEModalityFilter : public QObject
+ {
+diff --git a/vcl/unx/kde/kdedata.cxx b/vcl/unx/kde/kdedata.cxx
+index d66e227..f2a494b 100644
+--- a/vcl/unx/kde/kdedata.cxx
++++ b/vcl/unx/kde/kdedata.cxx
+@@ -28,7 +28,16 @@
+
+
+ #define _SV_SALDATA_CXX
++
++#ifdef ENABLE_TDE
++#include <unx/tde/tde_defines.h>
++#endif // ENABLE_TDE
++
++#ifdef ENABLE_TDE
++#include <unx/tde/tde_headers.h>
++#else // ENABLE_TDE
+ #include <unx/kde/kde_headers.h>
++#endif // ENABLE_TDE
+
+ #include <unistd.h>
+ #include <fcntl.h>
+@@ -56,6 +65,14 @@
+
+ #include "vclpluginapi.h"
+
++#ifdef ENABLE_TDE
++#define THIS_DESKENV_NAME_CAP "TDE"
++#define THIS_DESKENV_NAME_LOW "tde"
++#else // ENABLE_TDE
++#define THIS_DESKENV_NAME_CAP "KDE"
++#define THIS_DESKENV_NAME_LOW "kde"
++#endif // ENABLE_TDE
++
+ /* #i59042# override KApplications method for session management
+ * since it will interfere badly with our own.
+ */
+@@ -123,7 +140,7 @@ void KDEXLib::Init()
+ KAboutData *kAboutData = new KAboutData( "LibreOffice",
+ I18N_NOOP( "LibreOffice" ),
+ "1.1.0",
+- I18N_NOOP( "LibreOffice with KDE Native Widget Support." ),
++ I18N_NOOP( "LibreOffice with " THIS_DESKENV_NAME_CAP " Native Widget Support." ),
+ KAboutData::License_LGPL,
+ "(c) 2003, 2004 Novell, Inc",
+ I18N_NOOP( "LibreOffice is an office suite.\n" ),
+diff --git a/vcl/unx/kde/salnativewidgets-kde.cxx b/vcl/unx/kde/salnativewidgets-kde.cxx
+index 0376e94a..cd9700e 100644
+--- a/vcl/unx/kde/salnativewidgets-kde.cxx
++++ b/vcl/unx/kde/salnativewidgets-kde.cxx
+@@ -28,7 +28,17 @@
+
+
+ #define _SV_SALNATIVEWIDGETS_KDE_CXX
++
++#ifdef ENABLE_TDE
++#include <unx/tde/tde_defines.h>
++#endif // ENABLE_TDE
++
++#ifdef ENABLE_TDE
++#include <unx/tde/tde_headers.h>
++#else // ENABLE_TDE
+ #include <unx/kde/kde_headers.h>
++#endif // ENABLE_TDE
++
+ #include "UnxFilePicker.hxx"
+
+ #include <unx/salunx.h>