[Libreoffice-commits] .: bin/distro-install-file-lists config_host.mk.in configure.in connectivity/prj connectivity/source connectivity/version.mk cui/Library_cui.mk cui/source desktop/Pagein_common.mk postprocess/packcomponents postprocess/packregistry Repository.mk scp2/prj scp2/source scp2/util setup_native/source shell/inc shell/prj shell/source solenv/gbuild solenv/inc vcl/CustomTarget_tde_moc.mk vcl/Executable_tdefilepicker.mk vcl/inc vcl/Library_vclplug_tde.mk vcl/Module_vcl.mk vcl/prj vcl/source vcl/unx

Norbert Thiebaud nthiebaud at kemper.freedesktop.org
Mon May 14 21:32:21 PDT 2012


 Repository.mk                                     |    4 
 bin/distro-install-file-lists                     |   11 +
 config_host.mk.in                                 |    7 
 configure.in                                      |  186 ++++++++++++++++++++++
 connectivity/prj/d.lst                            |    2 
 connectivity/source/drivers/kab/KDEInit.h         |   13 +
 connectivity/source/drivers/kab/makefile.mk       |  118 +++++++++++++
 connectivity/source/drivers/kab/tdeab.xcu         |   46 +++++
 connectivity/source/drivers/kab/tdeab.xml         |   77 +++++++++
 connectivity/source/drivers/kab/tdeab1.component  |   34 ++++
 connectivity/source/drivers/kab/tdeabdrv.map      |    9 +
 connectivity/version.mk                           |   11 +
 cui/Library_cui.mk                                |    1 
 cui/source/options/optgdlg.cxx                    |    8 
 desktop/Pagein_common.mk                          |    1 
 postprocess/packcomponents/makefile.mk            |    8 
 postprocess/packregistry/makefile.mk              |    3 
 scp2/prj/build.lst                                |    3 
 scp2/source/ooo/file_library_ooo.scp              |   41 ++++
 scp2/source/ooo/file_ooo.scp                      |    7 
 scp2/source/ooo/makefile.mk                       |    8 
 scp2/source/ooo/module_hidden_ooo.scp             |    4 
 scp2/source/tde/file_tde.scp                      |   33 +++
 scp2/source/tde/makefile.mk                       |   56 ++++++
 scp2/source/tde/module_tde.scp                    |   41 ++++
 scp2/source/tde/module_tde.ulf                    |   30 +++
 scp2/util/makefile.mk                             |    6 
 setup_native/source/packinfo/packinfo_office.txt  |   15 +
 shell/inc/kde_headers.h                           |   98 -----------
 shell/inc/shell/kde_headers.h                     |  106 ++++++++++++
 shell/inc/shell/tde_defines.h                     |   93 +++++++++++
 shell/inc/shell/tde_headers.h                     |   97 +++++++++++
 shell/prj/d.lst                                   |    6 
 shell/source/backends/kdebe/kdeaccess.cxx         |    2 
 shell/source/backends/kdebe/kdebackend.cxx        |    2 
 shell/source/backends/kdebe/makefile.mk           |   45 ++++-
 shell/source/backends/kdebe/tdebe1.component      |   34 ++++
 shell/source/unix/misc/makefile.mk                |    1 
 shell/source/unix/misc/tde-open-url.sh            |   10 +
 solenv/gbuild/gbuild.mk                           |    4 
 solenv/inc/unx.mk                                 |   12 +
 vcl/CustomTarget_tde_moc.mk                       |   39 ++++
 vcl/Executable_tdefilepicker.mk                   |   71 ++++++++
 vcl/Library_vclplug_tde.mk                        |  107 ++++++++++++
 vcl/Module_vcl.mk                                 |    7 
 vcl/inc/generic/gendata.hxx                       |    2 
 vcl/inc/unx/desktops.hxx                          |    1 
 vcl/inc/unx/kde/kde_headers.h                     |   98 -----------
 vcl/inc/unx/tde/tdedata.hxx                       |  114 +++++++++++++
 vcl/inc/vclpluginapi.h                            |    6 
 vcl/prj/build.lst                                 |    2 
 vcl/source/app/settings.cxx                       |    2 
 vcl/unx/generic/desktopdetect/desktopdetector.cxx |   60 ++++++-
 vcl/unx/generic/plugadapt/salplug.cxx             |   16 +
 vcl/unx/kde/FPServiceInfo.hxx                     |   21 ++
 vcl/unx/kde/fpicker/kdecommandthread.cxx          |    4 
 vcl/unx/kde/fpicker/kdecommandthread.hxx          |   10 +
 vcl/unx/kde/fpicker/kdefilepicker.cxx             |   30 +++
 vcl/unx/kde/fpicker/kdefilepicker.hxx             |    8 
 vcl/unx/kde/fpicker/kdefpmain.cxx                 |   14 +
 vcl/unx/kde/fpicker/kdemodalityfilter.hxx         |    8 
 vcl/unx/kde/kdedata.cxx                           |   13 +
 vcl/unx/kde/salnativewidgets-kde.cxx              |    4 
 63 files changed, 1698 insertions(+), 232 deletions(-)

New commits:
commit 07b3d083b49b4cbb248b5ba0aeba2bbdd3cc487d
Author: Norbert Thiebaud <nthiebaud at gmail.com>
Date:   Mon May 14 20:09:41 2012 -0500

    TDE integration
    
    Change-Id: I6f468005c8d8d99d9251a9c4fe4629b98bc4aa5e

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 1112331..0a85bfd 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@
@@ -245,6 +247,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 6c71d85..9345e9d 100644
--- a/configure.in
+++ b/configure.in
@@ -166,6 +166,7 @@ case "$host_os" in
 solaris*)
     test_gtk=yes
     build_gstreamer=yes
+    test_tde=yes
     test_kde=yes
     test_freetype=yes
     test_gstreamer=yes
@@ -194,6 +195,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
@@ -280,6 +282,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
@@ -308,6 +311,7 @@ freebsd*)
 *netbsd*)
     test_gtk=yes
     build_gstreamer=yes
+    test_tde=no
     test_kde=no
     test_kde4=yes
     test_freetype=yes
@@ -324,6 +328,7 @@ aix*)
 
 openbsd*)
     test_gtk=yes
+    test_tde=yes
     test_kde=yes
     test_freetype=yes
     PTHREAD_CFLAGS="-D_THREAD_SAFE"
@@ -334,6 +339,7 @@ openbsd*)
 dragonfly*)
     test_gtk=yes
     build_gstreamer=yes
+    test_tde=yes
     test_kde=yes
     test_kde4=yes
     test_freetype=yes
@@ -347,6 +353,7 @@ linux-androideabi*)
     test_fontconfig=no
     test_freetype=no
     test_gtk=no
+    test_tde=no
     test_kde=no
     test_kde4=no
     test_randr=no
@@ -774,6 +781,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
@@ -3614,6 +3636,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
@@ -8663,6 +8686,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"
@@ -9367,6 +9397,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 ===================================================================
 
@@ -9700,6 +9859,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/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/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/makefile.mk b/connectivity/source/drivers/kab/makefile.mk
index 9494037..bce8aa2 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 -I$(SRCDIR)/shell/inc
+CFLAGSCXX+=-DENABLE_TDE -I$(SRCDIR)/shell/inc
+
+.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 459d31e..450d9e6 100644
--- a/scp2/source/ooo/file_ooo.scp
+++ b/scp2/source/ooo/file_ooo.scp
@@ -181,6 +181,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 b385f8d..a3bd31b 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..b4a7e1d
--- /dev/null
+++ b/scp2/source/tde/file_tde.scp
@@ -0,0 +1,33 @@
+/*************************************************************************
+ * 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. 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.
+ *
+ * The Initial Developer of the Original Code is
+ * Timothy Pearson <kb9vqf at pearsoncomputing.net> (C) 2012, All Rights Reserved.
+ *
+ * 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.
+ *
+ ************************************************************************/
+#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..03bd0ba
--- /dev/null
+++ b/scp2/source/tde/makefile.mk
@@ -0,0 +1,56 @@
+#*************************************************************************
+#
+# 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. 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.
+#
+# The Initial Developer of the Original Code is
+# Timothy Pearson <kb9vqf at pearsoncomputing.net> (C) 2012, All Rights Reserved.
+#
+# 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.
+#
+#*************************************************************************
+
+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..dcdd867
--- /dev/null
+++ b/scp2/source/tde/module_tde.scp
@@ -0,0 +1,41 @@
+/*************************************************************************
+ * 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. 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.
+ *
+ * The Initial Developer of the Original Code is
+ * Timothy Pearson <kb9vqf at pearsoncomputing.net> (C) 2012, All Rights Reserved.
+ *
+ * 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.
+ *
+ ************************************************************************/
+
+#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..65b03ba
--- /dev/null
+++ b/scp2/source/tde/module_tde.ulf
@@ -0,0 +1,30 @@
+/*************************************************************************
+ * 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. 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.
+ *
+ * The Initial Developer of the Original Code is
+ * Timothy Pearson <kb9vqf at pearsoncomputing.net> (C) 2012, All Rights Reserved.
+ *
+ * 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.
+ *
+ ************************************************************************/
+
+[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/kde_headers.h b/shell/inc/kde_headers.h
deleted file mode 100644
index 7ec45fd..0000000
--- a/shell/inc/kde_headers.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/* -*- 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.
- *
- * 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_KDE_HEADERS_H
-#define INCLUDED_VCL_KDE_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 QtXRegion
-
-
-/* ********* Qt headers */
-#include <qaccessible.h>
-#include <qcheckbox.h>
-#include <qcombobox.h>
-#include <qfont.h>
-#include <qframe.h>
-#include <qlineedit.h>
-#include <qlistview.h>
-#include <qmainwindow.h>
-#include <qmenudata.h>
-#include <qpaintdevice.h>
-#include <qpainter.h>
-#include <qpushbutton.h>
-#include <qradiobutton.h>
-#include <qrangecontrol.h>
-#include <qstring.h>
-#include <qtabbar.h>
-#include <qtabwidget.h>
-#include <qtoolbar.h>
-#include <qtoolbutton.h>
-#include <qwidget.h>
-#include <qprogressbar.h>
-
-/* ********* See hack on top of this file */
-#undef Region
-
-
-/* ********* KDE base headers */
-#include <kaboutdata.h>
-#include <kapplication.h>
-#include <kcmdlineargs.h>
-#include <kconfig.h>
-#include <kdeversion.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>
-
-
-/* ********* KDE 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/inc/shell/kde_headers.h b/shell/inc/shell/kde_headers.h
new file mode 100644
index 0000000..d92fceb
--- /dev/null
+++ b/shell/inc/shell/kde_headers.h
@@ -0,0 +1,106 @@
+/* -*- 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.
+ *
+ * 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_KDE_HEADERS_H
+#define INCLUDED_VCL_KDE_HEADERS_H
+
+#ifdef ENABLE_TDE
+
+#include "shell/tde_headers.h"
+
+#else // ENABLE_TDE
+
+/* ********* 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 QtXRegion
+
+
+/* ********* Qt headers */
+#include <qaccessible.h>
+#include <qcheckbox.h>
+#include <qcombobox.h>
+#include <qfont.h>
+#include <qframe.h>
+#include <qlineedit.h>
+#include <qlistview.h>
+#include <qmainwindow.h>
+#include <qmenudata.h>
+#include <qpaintdevice.h>
+#include <qpainter.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qrangecontrol.h>
+#include <qstring.h>
+#include <qtabbar.h>
+#include <qtabwidget.h>
+#include <qtoolbar.h>
+#include <qtoolbutton.h>
+#include <qwidget.h>
+#include <qprogressbar.h>
+
+/* ********* See hack on top of this file */
+#undef Region
+
+
+/* ********* KDE base headers */
+#include <kaboutdata.h>
+#include <kapplication.h>
+#include <kcmdlineargs.h>
+#include <kconfig.h>
+#include <kdeversion.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>
+
+
+/* ********* KDE address book connectivity headers */
+#include <kabc/addressbook.h>
+#include <kabc/addressee.h>
+#include <kabc/field.h>
+#include <kabc/stdaddressbook.h>
+
+#endif // ENABLE_TDE
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/shell/inc/shell/tde_defines.h b/shell/inc/shell/tde_defines.h
new file mode 100644
index 0000000..52e610c
--- /dev/null
+++ b/shell/inc/shell/tde_defines.h
@@ -0,0 +1,93 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*************************************************************************
+ * 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. 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.
+ *
+ * The Initial Developer of the Original Code is
+ * Timothy Pearson <kb9vqf at pearsoncomputing.net> (C) 2012, All Rights Reserved.
+ *
+ * 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.
+ *
+ ************************************************************************/
+
+#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/shell/tde_headers.h b/shell/inc/shell/tde_headers.h
new file mode 100644
index 0000000..d0f1444
--- /dev/null
+++ b/shell/inc/shell/tde_headers.h
@@ -0,0 +1,97 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*************************************************************************
+ * 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. 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.
+ *
+ * The Initial Developer of the Original Code is
+ * Timothy Pearson <kb9vqf at pearsoncomputing.net> (C) 2012, All Rights Reserved.
+ *
+ * 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.
+ *
+ ************************************************************************/
+
+#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>
+
+#include "tde_defines.h"
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/shell/prj/d.lst b/shell/prj/d.lst
index 62dfa80..435ed34 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,9 +26,12 @@
 
 ..\%__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\kde_headers.h %_DEST%\inc\shell\kde_headers.h
+..\inc\shell\tde_headers.h %_DEST%\inc\shell\tde_headers.h
+..\inc\shell\tde_defines.h %_DEST%\inc\shell\tde_defines.h
+..\inc\shell\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
 ..\%__SRC%\misc\smplmail.component %_DEST%\xml\smplmail.component
diff --git a/shell/source/backends/kdebe/kdeaccess.cxx b/shell/source/backends/kdebe/kdeaccess.cxx
index 0d7ad8d..ed9df8f 100644
--- a/shell/source/backends/kdebe/kdeaccess.cxx
+++ b/shell/source/backends/kdebe/kdeaccess.cxx
@@ -35,7 +35,7 @@
 #include "rtl/string.h"
 #include "rtl/ustring.hxx"
 
-#include "kde_headers.h"
+#include "shell/kde_headers.h"
 
 #include "kdeaccess.hxx"
 
diff --git a/shell/source/backends/kdebe/kdebackend.cxx b/shell/source/backends/kdebe/kdebackend.cxx
index 6432154..4faf911 100644
--- a/shell/source/backends/kdebe/kdebackend.cxx
+++ b/shell/source/backends/kdebe/kdebackend.cxx
@@ -58,7 +58,7 @@
 #include "uno/current_context.hxx"
 #include "uno/lbnames.h"
 
-#include "kde_headers.h"
+#include "shell/kde_headers.h"
 
 #include "kdeaccess.hxx"
 
diff --git a/shell/source/backends/kdebe/makefile.mk b/shell/source/backends/kdebe/makefile.mk
index 265a3b6..948d1a5 100644
--- a/shell/source/backends/kdebe/makefile.mk
+++ b/shell/source/backends/kdebe/makefile.mk
@@ -27,8 +27,8 @@
 PRJ=..$/..$/..
 
 PRJNAME=shell
-TARGET=kdebe
 
+TARGET=kdebe
 LIBTARGET=NO
 ENABLE_EXCEPTIONS=TRUE
 VISIBILITY_HIDDEN=TRUE
@@ -47,7 +47,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 +111,13 @@ DEF1NAME=$(SHL1TARGET)
 
 .INCLUDE : target.mk
 
-ALLTAR : $(MISC)/kdebe1.component
+.IF "$(ENABLE_KDE)" == "TRUE" || "$(ENABLE_TDE)" == "TRUE"
+
+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
+.ENDIF
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 at 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..a92bb5e
--- /dev/null
+++ b/vcl/Executable_tdefilepicker.mk
@@ -0,0 +1,71 @@
+# -*- 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 at 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 \
+    -I$(SRCDIR)/vcl/inc/unx/tde \
+))
+
+$(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..2e3a8c6
--- /dev/null
+++ b/vcl/Library_vclplug_tde.mk
@@ -0,0 +1,107 @@
+# -*- 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. 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.
+#
+# The Initial Developer of the Original Code is
+# Timothy Pearson <kb9vqf at pearsoncomputing.net> (C) 2012, All Rights Reserved.
+#
+# 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_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 \
+    -I$(SRCDIR)/vcl/inc/unx/tde \
+))
+
+$(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/kde/kde_headers.h b/vcl/inc/unx/kde/kde_headers.h
deleted file mode 100644
index 7ec45fd..0000000
--- a/vcl/inc/unx/kde/kde_headers.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/* -*- 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.
- *
- * 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_KDE_HEADERS_H
-#define INCLUDED_VCL_KDE_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 QtXRegion
-
-
-/* ********* Qt headers */
-#include <qaccessible.h>
-#include <qcheckbox.h>
-#include <qcombobox.h>
-#include <qfont.h>
-#include <qframe.h>
-#include <qlineedit.h>
-#include <qlistview.h>
-#include <qmainwindow.h>
-#include <qmenudata.h>
-#include <qpaintdevice.h>
-#include <qpainter.h>
-#include <qpushbutton.h>
-#include <qradiobutton.h>
-#include <qrangecontrol.h>
-#include <qstring.h>
-#include <qtabbar.h>
-#include <qtabwidget.h>
-#include <qtoolbar.h>
-#include <qtoolbutton.h>
-#include <qwidget.h>
-#include <qprogressbar.h>
-
-/* ********* See hack on top of this file */
-#undef Region
-
-
-/* ********* KDE base headers */
-#include <kaboutdata.h>
-#include <kapplication.h>
-#include <kcmdlineargs.h>
-#include <kconfig.h>
-#include <kdeversion.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>
-
-
-/* ********* KDE 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/prj/build.lst b/vcl/prj/build.lst
index a44d6df..9b51836 100644
--- a/vcl/prj/build.lst
+++ b/vcl/prj/build.lst
@@ -1,4 +1,4 @@
-vc	vcl	:	TRANSLATIONS:translations apple_remote BOOST:boost officecfg DESKTOP:rsc sot ucbhelper unotools ICU:icu GRAPHITE:graphite i18npool i18nutil unoil ridljar X11_EXTENSIONS:x11_extensions offapi basegfx basebmp tools DESKTOP:l10ntools icc cpputools svl LIBXSLT:libxslt CAIRO:cairo FREETYPE:freetype FONTCONFIG:fontconfig fpicker NULL
+vc	vcl	:	TRANSLATIONS:translations apple_remote BOOST:boost officecfg DESKTOP:rsc sot ucbhelper unotools ICU:icu GRAPHITE:graphite i18npool i18nutil unoil ridljar X11_EXTENSIONS:x11_extensions offapi basegfx basebmp tools DESKTOP:l10ntools icc cpputools svl LIBXSLT:libxslt CAIRO:cairo FREETYPE:freetype FONTCONFIG:fontconfig fpicker shell NULL
 vc	vcl										usr1	-	all	vc_mkout NULL
 vc	vcl\prj									nmake	-	all	vc_prj NULL
 
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..6aeea9b 100644
--- a/vcl/unx/kde/fpicker/kdecommandthread.cxx
+++ b/vcl/unx/kde/fpicker/kdecommandthread.cxx
@@ -30,7 +30,11 @@
 
 #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..07b81f8 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 <shell/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..d52a6a7 100644
--- a/vcl/unx/kde/fpicker/kdefilepicker.cxx
+++ b/vcl/unx/kde/fpicker/kdefilepicker.cxx
@@ -31,6 +31,34 @@
 #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 +83,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..058d6f6 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 <shell/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..558c01b 100644
--- a/vcl/unx/kde/fpicker/kdefpmain.cxx
+++ b/vcl/unx/kde/fpicker/kdefpmain.cxx
@@ -39,6 +39,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 +62,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 at 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 +85,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.hxx b/vcl/unx/kde/fpicker/kdemodalityfilter.hxx
index 8635694..e2296ab 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 <shell/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..195915b 100644
--- a/vcl/unx/kde/kdedata.cxx
+++ b/vcl/unx/kde/kdedata.cxx
@@ -28,7 +28,8 @@
 
 
 #define _SV_SALDATA_CXX
-#include <unx/kde/kde_headers.h>
+
+#include <shell/kde_headers.h>
 
 #include <unistd.h>
 #include <fcntl.h>
@@ -56,6 +57,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 +132,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 0376e94..0a5f79f 100644
--- a/vcl/unx/kde/salnativewidgets-kde.cxx
+++ b/vcl/unx/kde/salnativewidgets-kde.cxx
@@ -28,7 +28,9 @@
 
 
 #define _SV_SALNATIVEWIDGETS_KDE_CXX
-#include <unx/kde/kde_headers.h>
+
+#include <shell/kde_headers.h>
+
 #include "UnxFilePicker.hxx"
 
 #include <unx/salunx.h>


More information about the Libreoffice-commits mailing list