summaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
authorAndras Timar <atimar@suse.com>2012-11-11 18:24:14 +0100
committerAndras Timar <atimar@suse.com>2012-11-11 18:24:14 +0100
commit06ec1c089519ef3249464aa09eadf03a8db93a39 (patch)
tree85b2eb6d8ba6ca95e18e1ff82151224cb14106f6 /shell
parent8e0d67bed54633d555a4601a5d79e2d5ba7ab2bb (diff)
parent3f899eae02eaad0b967de749fe09b869ba93ad6d (diff)
Merge branch 'master' into feature/killsdf
Conflicts: Repository.mk RepositoryFixes.mk connectivity/prj/build.lst extensions/prj/build.lst filter/prj/build.lst fpicker/prj/build.lst l10ntools/StaticLibrary_transex.mk saxon/build.xml shell/prj/build.lst solenv/gbuild/AllLangResTarget.mk solenv/gbuild/Configuration.mk solenv/gbuild/UI.mk ucb/source/ucp/webdav/webdavcontent.cxx
Diffstat (limited to 'shell')
-rw-r--r--shell/Library_losessioninstall.mk36
-rw-r--r--shell/Library_ooofilt_x64.mk4
-rw-r--r--shell/Library_propertyhdl_x64.mk4
-rw-r--r--shell/Library_shlxthdl_x64.mk4
-rw-r--r--shell/Module_shell.mk8
-rw-r--r--shell/StaticLibrary_shlxthandler_common_x64.mk4
-rw-r--r--shell/StaticLibrary_xmlparser_x64.mk2
-rw-r--r--shell/prj/build.lst2
-rw-r--r--shell/source/cmdmail/cmdmailsuppl.cxx11
-rw-r--r--shell/source/sessioninstall/SyncDbusSessionHelper.cxx113
-rw-r--r--shell/source/sessioninstall/SyncDbusSessionHelper.hxx60
-rw-r--r--shell/source/sessioninstall/losessioninstall.component15
-rw-r--r--shell/source/sessioninstall/services.cxx31
-rw-r--r--shell/source/unix/misc/senddoc.sh60
14 files changed, 284 insertions, 70 deletions
diff --git a/shell/Library_losessioninstall.mk b/shell/Library_losessioninstall.mk
new file mode 100644
index 000000000000..65dee35586e6
--- /dev/null
+++ b/shell/Library_losessioninstall.mk
@@ -0,0 +1,36 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_Library_Library,losessioninstall))
+
+$(eval $(call gb_Library_set_componentfile,losessioninstall,shell/source/sessioninstall/losessioninstall))
+
+$(eval $(call gb_Library_use_api,losessioninstall,\
+ offapi \
+ udkapi \
+))
+
+$(eval $(call gb_Library_use_libraries,losessioninstall,\
+ comphelper \
+ cppu \
+ cppuhelper \
+ sal \
+))
+
+$(eval $(call gb_Library_use_externals,losessioninstall,\
+ dbus \
+ gio \
+))
+
+$(eval $(call gb_Library_add_exception_objects,losessioninstall,\
+ shell/source/sessioninstall/SyncDbusSessionHelper \
+ shell/source/sessioninstall/services \
+))
+
+# vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/shell/Library_ooofilt_x64.mk b/shell/Library_ooofilt_x64.mk
index 9c3cb655758d..e3baee3faced 100644
--- a/shell/Library_ooofilt_x64.mk
+++ b/shell/Library_ooofilt_x64.mk
@@ -54,8 +54,8 @@ $(eval $(call gb_Library_add_defs,ooofilt_x64,\
))
$(eval $(call gb_Library_use_externals,ooofilt_x64,\
- expat_utf16 \
- zlib \
+ expat_utf16_x64 \
+ zlib_x64 \
))
$(eval $(call gb_Library_use_system_win32_libs,ooofilt_x64,\
diff --git a/shell/Library_propertyhdl_x64.mk b/shell/Library_propertyhdl_x64.mk
index f12ba0c29af6..e6e9c591e44f 100644
--- a/shell/Library_propertyhdl_x64.mk
+++ b/shell/Library_propertyhdl_x64.mk
@@ -54,8 +54,8 @@ $(eval $(call gb_Library_add_defs,propertyhdl_x64,\
))
$(eval $(call gb_Library_use_externals,propertyhdl_x64,\
- expat_utf16 \
- zlib \
+ expat_utf16_x64 \
+ zlib_x64 \
))
$(eval $(call gb_Library_use_system_win32_libs,propertyhdl_x64,\
diff --git a/shell/Library_shlxthdl_x64.mk b/shell/Library_shlxthdl_x64.mk
index e5deaa9cc46e..33656b49ae8d 100644
--- a/shell/Library_shlxthdl_x64.mk
+++ b/shell/Library_shlxthdl_x64.mk
@@ -54,8 +54,8 @@ $(eval $(call gb_Library_add_defs,shlxthdl_x64,\
))
$(eval $(call gb_Library_use_externals,shlxthdl_x64,\
- expat_utf16 \
- zlib \
+ expat_utf16_x64 \
+ zlib_x64 \
))
$(eval $(call gb_Library_use_system_win32_libs,shlxthdl_x64,\
diff --git a/shell/Module_shell.mk b/shell/Module_shell.mk
index f520aea372a7..3726c4fa1c1a 100644
--- a/shell/Module_shell.mk
+++ b/shell/Module_shell.mk
@@ -32,6 +32,14 @@ $(eval $(call gb_Module_add_targets,shell,\
Library_localebe \
))
+ifeq ($(OS),LINUX)
+ifeq ($(ENABLE_GIO),TRUE)
+$(eval $(call gb_Module_add_targets,shell,\
+ Library_losessioninstall \
+))
+endif
+endif
+
ifeq ($(ENABLE_GCONF),TRUE)
$(eval $(call gb_Module_add_targets,shell,\
Library_gconfbe \
diff --git a/shell/StaticLibrary_shlxthandler_common_x64.mk b/shell/StaticLibrary_shlxthandler_common_x64.mk
index 175f8ee7b738..41b1ae623184 100644
--- a/shell/StaticLibrary_shlxthandler_common_x64.mk
+++ b/shell/StaticLibrary_shlxthandler_common_x64.mk
@@ -53,8 +53,8 @@ $(eval $(call gb_StaticLibrary_add_defs,shlxthandler_common_x64,\
))
$(eval $(call gb_StaticLibrary_use_externals,shlxthandler_common_x64,\
- expat_utf16 \
- zlib \
+ expat_utf16_x64 \
+ zlib_x64 \
))
$(eval $(call gb_StaticLibrary_add_x64_generated_exception_objects,shlxthandler_common_x64,\
diff --git a/shell/StaticLibrary_xmlparser_x64.mk b/shell/StaticLibrary_xmlparser_x64.mk
index 2f5f510bdd94..bbf7a4a40207 100644
--- a/shell/StaticLibrary_xmlparser_x64.mk
+++ b/shell/StaticLibrary_xmlparser_x64.mk
@@ -35,7 +35,7 @@ $(eval $(call gb_StaticLibrary_set_include,shell_xmlparser_x64,\
))
$(eval $(call gb_StaticLibrary_use_externals,shell_xmlparser_x64,\
- expat_utf16 \
+ expat_utf16_x64 \
))
$(eval $(call gb_StaticLibrary_add_x64_generated_exception_objects,shell_xmlparser_x64,\
diff --git a/shell/prj/build.lst b/shell/prj/build.lst
index 771af1cb0a64..83c4a9195064 100644
--- a/shell/prj/build.lst
+++ b/shell/prj/build.lst
@@ -1,2 +1,2 @@
-sl shell : offapi DESKTOP:rdbmaker tools sal EXPAT:expat LIBXSLT:libxslt NULL
+sl shell : offapi tools sal EXPAT:expat LIBXSLT:libxslt NULL
sl shell\prj nmake - all sl_prj NULL
diff --git a/shell/source/cmdmail/cmdmailsuppl.cxx b/shell/source/cmdmail/cmdmailsuppl.cxx
index 5c0a5bb4c032..d64f0d10e002 100644
--- a/shell/source/cmdmail/cmdmailsuppl.cxx
+++ b/shell/source/cmdmail/cmdmailsuppl.cxx
@@ -28,6 +28,7 @@
#include "cmdmailmsg.hxx"
#include <com/sun/star/system/SimpleMailClientFlags.hpp>
#include <com/sun/star/container/XNameAccess.hpp>
+#include <com/sun/star/configuration/theDefaultProvider.hpp>
#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
@@ -57,6 +58,7 @@ using namespace cppu;
using namespace com::sun::star::system::SimpleMailClientFlags;
using namespace com::sun::star::uno;
using namespace com::sun::star::lang;
+using namespace com::sun::star::configuration;
#define COMP_IMPL_NAME "com.sun.star.comp.system.SimpleCommandMail2"
@@ -80,14 +82,7 @@ namespace // private
CmdMailSuppl::CmdMailSuppl( const Reference< XComponentContext >& xContext ) :
WeakImplHelper3< XSimpleMailClientSupplier, XSimpleMailClient, XServiceInfo >()
{
- Reference< XMultiComponentFactory > xServiceManager = xContext->getServiceManager();
-
- if ( xServiceManager.is() ) {
- m_xConfigurationProvider = Reference< XMultiServiceFactory > (
- xServiceManager->createInstanceWithContext(
- OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.configuration.ConfigurationProvider")), xContext ),
- UNO_QUERY );
- }
+ m_xConfigurationProvider = theDefaultProvider::get(xContext);
}
//-------------------------------------------------
diff --git a/shell/source/sessioninstall/SyncDbusSessionHelper.cxx b/shell/source/sessioninstall/SyncDbusSessionHelper.cxx
new file mode 100644
index 000000000000..47f0749400a4
--- /dev/null
+++ b/shell/source/sessioninstall/SyncDbusSessionHelper.cxx
@@ -0,0 +1,113 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <SyncDbusSessionHelper.hxx>
+
+#include <comphelper/stlunosequence.hxx>
+#include <gio/gio.h>
+#include <vector>
+#include <boost/shared_ptr.hpp>
+
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::uno;
+using namespace ::comphelper;
+using namespace ::std;
+using namespace ::rtl;
+
+namespace
+{
+ struct GVariantDeleter { void operator()(GVariant* pV) { g_variant_unref(pV); } };
+ struct GVariantBuilderDeleter { void operator()(GVariantBuilder* pVB) { g_variant_builder_unref(pVB); } };
+ template <typename T> struct GObjectDeleter { void operator()(T* pO) { g_object_unref(pO); } };
+ class GErrorWrapper
+ {
+ GError* m_pError;
+ public:
+ GErrorWrapper(GError* pError) : m_pError(pError) {}
+ ~GErrorWrapper()
+ {
+ if(!m_pError)
+ return;
+ OUString sMsg = OUString::createFromAscii(m_pError->message);
+ g_error_free(m_pError);
+ throw RuntimeException(sMsg, NULL);
+ }
+ GError** getRef() { return &m_pError; }
+ };
+ static inline GDBusProxy* lcl_GetPackageKitProxy(const OUString sInterface)
+ {
+ const OString sFullInterface = rtl::OUStringToOString("org.freedesktop.PackageKit." + sInterface, RTL_TEXTENCODING_ASCII_US);
+ GErrorWrapper error(NULL);
+ GDBusProxy* proxy = NULL;
+ proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
+ G_DBUS_PROXY_FLAGS_NONE, NULL,
+ "org.freedesktop.PackageKit",
+ "/org/freedesktop/PackageKit",
+ reinterpret_cast<const gchar*>(sFullInterface.getStr()),
+ NULL,
+ error.getRef());
+ if(!proxy)
+ throw RuntimeException(OUString("couldnt get a proxy!"),NULL);
+ return proxy;
+ }
+}
+
+namespace shell { namespace sessioninstall
+{
+ SyncDbusSessionHelper::SyncDbusSessionHelper(Reference<XComponentContext> const&)
+ {
+ g_type_init ();
+ }
+ void SAL_CALL SyncDbusSessionHelper::InstallPackageNames( const ::sal_uInt32 nXid, const Sequence< OUString >& vPackages, const OUString& sInteraction ) throw (RuntimeException)
+ {
+ vector< OString > vPackagesOString;
+ vPackagesOString.reserve(vPackages.getLength());
+ boost::shared_ptr<GVariantBuilder> pBuilder(g_variant_builder_new(G_VARIANT_TYPE ("as")), GVariantBuilderDeleter());
+ for( const OUString* pPackage = stl_begin(vPackages); pPackage != stl_end(vPackages); ++pPackage)
+ {
+ vPackagesOString.push_back(rtl::OUStringToOString(*pPackage, RTL_TEXTENCODING_ASCII_US));
+ g_variant_builder_add(pBuilder.get(), "s", vPackagesOString.back().getStr());
+ }
+
+ const OString sInteractionAscii = OUStringToOString(sInteraction, RTL_TEXTENCODING_ASCII_US);
+ boost::shared_ptr<GDBusProxy> proxy(lcl_GetPackageKitProxy("Modify"), GObjectDeleter<GDBusProxy>());
+ GErrorWrapper error(NULL);
+ g_dbus_proxy_call_sync (proxy.get(),
+ "InstallPackageNames",
+ g_variant_new ("(uass)",
+ sal::static_int_cast<guint32>(nXid),
+ pBuilder.get(),
+ sInteractionAscii.getStr()),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1, /* timeout */
+ NULL, /* cancellable */
+ error.getRef());
+ }
+
+ void SAL_CALL SyncDbusSessionHelper::IsInstalled( const OUString& sPackagename, const OUString& sInteraction, ::sal_Bool& o_isInstalled ) throw (RuntimeException)
+ {
+ const OString sPackagenameAscii = OUStringToOString(sPackagename, RTL_TEXTENCODING_ASCII_US);
+ const OString sInteractionAscii = OUStringToOString(sInteraction, RTL_TEXTENCODING_ASCII_US);
+ boost::shared_ptr<GDBusProxy> proxy(lcl_GetPackageKitProxy("Query"), GObjectDeleter<GDBusProxy>());
+ GErrorWrapper error(NULL);
+ boost::shared_ptr<GVariant> result(g_dbus_proxy_call_sync (proxy.get(),
+ "IsInstalled",
+ g_variant_new ("(ss)",
+ sPackagenameAscii.getStr(),
+ sInteractionAscii.getStr()),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1, /* timeout */
+ NULL, /* cancellable */
+ error.getRef()),GVariantDeleter());
+ if(result.get())
+ o_isInstalled = g_variant_get_boolean(g_variant_get_child_value(result.get(),0)) ? sal_True : sal_False;
+ }
+}}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/shell/source/sessioninstall/SyncDbusSessionHelper.hxx b/shell/source/sessioninstall/SyncDbusSessionHelper.hxx
new file mode 100644
index 000000000000..4aab68c49851
--- /dev/null
+++ b/shell/source/sessioninstall/SyncDbusSessionHelper.hxx
@@ -0,0 +1,60 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#ifndef SHELL_SESSIONINSTALL_SYNCDBUSSESSIONHELPER_HXX
+#define SHELL_SESSIONINSTALL_SYNCDBUSSESSIONHELPER_HXX
+
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
+#include <org/freedesktop/PackageKit/XSyncDbusSessionHelper.hpp>
+#include <cppuhelper/implbase1.hxx>
+
+namespace shell { namespace sessioninstall
+{
+ class SyncDbusSessionHelper : public ::cppu::WeakImplHelper1< ::org::freedesktop::PackageKit::XSyncDbusSessionHelper >
+ {
+ public:
+ SyncDbusSessionHelper(::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext> const&);
+ virtual ~SyncDbusSessionHelper() {}
+ // XModify Methods
+ virtual void SAL_CALL InstallPackageNames( ::sal_uInt32 /* xid */, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& /* packages */, const ::rtl::OUString& /* interaction */ ) throw (::com::sun::star::uno::RuntimeException);
+
+ virtual void SAL_CALL InstallPackageFiles( ::sal_uInt32 /* xid */, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& /* files */, const ::rtl::OUString& /* interaction */ ) throw (::com::sun::star::uno::RuntimeException)
+ { throw ::com::sun::star::uno::RuntimeException(); } // not implemented
+ virtual void SAL_CALL InstallProvideFiles( ::sal_uInt32 /* xid */, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& /* files */, const ::rtl::OUString& /* interaction */ ) throw (::com::sun::star::uno::RuntimeException)
+ { throw ::com::sun::star::uno::RuntimeException(); } // not implemented
+ virtual void SAL_CALL InstallCatalogs( ::sal_uInt32 /* xid */, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& /* files */, const ::rtl::OUString& /* interaction */ ) throw (::com::sun::star::uno::RuntimeException)
+ { throw ::com::sun::star::uno::RuntimeException(); } // not implemented
+ virtual void SAL_CALL InstallMimeTypes( ::sal_uInt32 /* xid */, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& /* mime_types */, const ::rtl::OUString& /* interaction */ ) throw (::com::sun::star::uno::RuntimeException)
+ { throw ::com::sun::star::uno::RuntimeException(); } // not implemented
+ virtual void SAL_CALL InstallFontconfigRessources( ::sal_uInt32 /* xid */, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& /* resources */, const ::rtl::OUString& /* interaction */ ) throw (::com::sun::star::uno::RuntimeException)
+ { throw ::com::sun::star::uno::RuntimeException(); } // not implemented
+ virtual void SAL_CALL InstalliGStreamerRessources( ::sal_uInt32 /* xid */, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& /* resources */, const ::rtl::OUString& /* interaction */ ) throw (::com::sun::star::uno::RuntimeException)
+ { throw ::com::sun::star::uno::RuntimeException(); } // not implemented
+ virtual void SAL_CALL InstallRessources( ::sal_uInt32 /* xid */, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& /* types */, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& /* resources */, const ::rtl::OUString& /* interaction */ ) throw (::com::sun::star::uno::RuntimeException)
+ { throw ::com::sun::star::uno::RuntimeException(); } // not implemented
+ virtual void SAL_CALL RemovePackageByFiles( SAL_UNUSED_PARAMETER ::sal_uInt32 /* xid */, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& /* files */, const ::rtl::OUString& /* interaction */ ) throw (::com::sun::star::uno::RuntimeException)
+ { throw ::com::sun::star::uno::RuntimeException(); } // not implemented
+ virtual void SAL_CALL InstallPrinterDrivers( ::sal_uInt32 /* xid */, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& /* files */, const ::rtl::OUString& /* interaction */ ) throw (::com::sun::star::uno::RuntimeException)
+ { throw ::com::sun::star::uno::RuntimeException(); } // not implemented
+ // XQuery Methods
+ virtual void SAL_CALL IsInstalled( const ::rtl::OUString& /* package_name */, const ::rtl::OUString& /* interaction */, ::sal_Bool& /* installed */ ) throw (::com::sun::star::uno::RuntimeException);
+
+ virtual void SAL_CALL SearchFile( const ::rtl::OUString& /* file_name */, const ::rtl::OUString& /* interaction */, ::sal_Bool& /* installed */, ::rtl::OUString& /* package_name */ ) throw (::com::sun::star::uno::RuntimeException)
+ { throw ::com::sun::star::uno::RuntimeException(); } // not implemented
+
+ private:
+ SyncDbusSessionHelper(); // never implemented
+ SyncDbusSessionHelper( const SyncDbusSessionHelper& ); // never implemented
+ SyncDbusSessionHelper& operator=( const SyncDbusSessionHelper& ); // never implemented
+ };
+}}
+
+#endif // SHELL_SESSIONINSTALL_SYNCDBUSSESSIONHELPER_HXX
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/shell/source/sessioninstall/losessioninstall.component b/shell/source/sessioninstall/losessioninstall.component
new file mode 100644
index 000000000000..d01c357ef6cb
--- /dev/null
+++ b/shell/source/sessioninstall/losessioninstall.component
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+-->
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="org.libreoffice.comp.shell.sessioninstall.SyncDbusSessionHelper">
+ <service name="org.freedesktop.PackageKit.SyncDbusSessionHelper"/>
+ </implementation>
+</component>
diff --git a/shell/source/sessioninstall/services.cxx b/shell/source/sessioninstall/services.cxx
new file mode 100644
index 000000000000..caf332197a96
--- /dev/null
+++ b/shell/source/sessioninstall/services.cxx
@@ -0,0 +1,31 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <SyncDbusSessionHelper.hxx>
+#include <comphelper/servicedecl.hxx>
+#include <uno/environment.h>
+
+namespace sdecl = ::comphelper::service_decl;
+
+sdecl::class_< ::shell::sessioninstall::SyncDbusSessionHelper> SyncDbusSessionHelperServiceImpl;
+
+const sdecl::ServiceDecl SyncDbusSessionHelperServiceDecl(
+ SyncDbusSessionHelperServiceImpl,
+ "org.libreoffice.comp.shell.sessioninstall.SyncDbusSessionHelper",
+ "org.freedesktop.PackageKit.SyncDbusSessionHelper");
+
+COMPHELPER_SERVICEDECL_EXPORTS1(losessioninstall, SyncDbusSessionHelperServiceDecl);
+extern "C"
+{
+ SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( sal_Char const* pImplName, ::com::sun::star::lang::XMultiServiceFactory* pServiceManager, ::com::sun::star::registry::XRegistryKey* pRegistryKey )
+ { return losessioninstall_component_getFactory(pImplName, pServiceManager, pRegistryKey); }
+}
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/shell/source/unix/misc/senddoc.sh b/shell/source/unix/misc/senddoc.sh
index 5a755d7042c5..0ff15943d6ce 100644
--- a/shell/source/unix/misc/senddoc.sh
+++ b/shell/source/unix/misc/senddoc.sh
@@ -369,62 +369,18 @@ case `basename "$MAILER" | sed 's/-.*$//'` in
/usr/bin/open -a "${MAILER}" ${ATTACH}
;;
- "")
-
- # DESKTOP_LAUNCH, see http://freedesktop.org/pipermail/xdg/2004-August/004489.html
- if [ -n "$DESKTOP_LAUNCH" ]; then
- while [ "$1" != "" ]; do
- case $1 in
- --to)
- if [ "${TO}" != "" ]; then
- MAILTO="${MAILTO:-}${MAILTO:+&}to=$2"
- else
- TO="$2"
- fi
- shift
- ;;
- --cc)
- MAILTO="${MAILTO:-}${MAILTO:+&}cc="`echo "$2" | ${URI_ENCODE}`
- shift
- ;;
- --bcc)
- MAILTO="${MAILTO:-}${MAILTO:+&}bcc="`echo "$2" | ${URI_ENCODE}`
- shift
- ;;
- --subject)
- MAILTO="${MAILTO:-}${MAILTO:+&}subject="`echo "$2" | ${URI_ENCODE}`
- shift
- ;;
- --body)
- MAILTO="${MAILTO:-}${MAILTO:+&}body="`echo "$2" | ${URI_ENCODE}`
- shift
- ;;
- --attach)
- MAILTO="${MAILTO:-}${MAILTO:+&}attachment="`echo "$2" | ${URI_ENCODE}`
- shift
- ;;
- *)
- ;;
- esac
- shift;
- done
-
- MAILTO="mailto:${TO}?${MAILTO}"
- ${DESKTOP_LAUNCH} "${MAILTO}" &
- else
- echo "Could not determine a mail client to use."
- exit 2
- fi
- ;;
-
*)
- # LO is configured to use something we do not recognize.
+
+ # LO is configured to use something we do not recognize, or is not configured.
# Try to be smart, and send the mail anyway, if we have the
# possibility to do so.
- if [ -n "$KDE_FULL_SESSION" -a -x /usr/bin/kde-open ] ; then
+ if [ -n "$DESKTOP_LAUNCH" ]; then
+ # http://lists.freedesktop.org/pipermail/xdg/2004-August/002873.html
+ MAILER=${DESKTOP_LAUNCH}
+ elif [ -n "$KDE_FULL_SESSION" -a -x /usr/bin/kde-open ] ; then
MAILER=/usr/bin/kde-open
- elif [ -x /usr/bin/gnome-open ] ; then
+ elif [ -n "$GNOME_DESKTOP_SESSION_ID" -a -x /usr/bin/gnome-open ] ; then
MAILER=/usr/bin/gnome-open
elif [ -x /usr/bin/xdg-open ] ; then
MAILER=/usr/bin/xdg-open
@@ -460,7 +416,7 @@ case `basename "$MAILER" | sed 's/-.*$//'` in
shift
;;
--attach)
- MAILTO="${MAILTO:-}${MAILTO:+&}attach="`echo "file://$2" | ${URI_ENCODE}`
+ MAILTO="${MAILTO:-}${MAILTO:+&}attachment="`echo "file://$2" | ${URI_ENCODE}`
shift
;;
*)