From 57e5be3fc356d9512007c92d7eb34eb41f6570a4 Mon Sep 17 00:00:00 2001 From: Matúš Kukan Date: Fri, 20 Jul 2012 15:05:33 +0200 Subject: tubes: move ScDocFuncRecv::fileReceived to TeleManager_fileReceived Change-Id: Ie2ab2c2d545f6fcbdc21171868c99b1756c90792 --- tubes/Library_tubes.mk | 4 +++ tubes/inc/tubes/manager.hxx | 3 -- tubes/source/manager.cxx | 76 ++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 79 insertions(+), 4 deletions(-) (limited to 'tubes') diff --git a/tubes/Library_tubes.mk b/tubes/Library_tubes.mk index 2c385d3bfd58..a08760c83841 100644 --- a/tubes/Library_tubes.mk +++ b/tubes/Library_tubes.mk @@ -32,12 +32,16 @@ $(eval $(call gb_Library_set_include,tubes,\ $$(INCLUDE) \ )) +$(eval $(call gb_Library_use_sdk_api,tubes)) + $(eval $(call gb_Library_add_defs,tubes,\ -DTUBES_DLLIMPLEMENTATION \ )) $(eval $(call gb_Library_use_libraries,tubes,\ $(gb_STDLIBS) \ + comphelper \ + cppu \ sal \ salhelper \ )) diff --git a/tubes/inc/tubes/manager.hxx b/tubes/inc/tubes/manager.hxx index 9f1689148ac3..21ee3c30eec9 100644 --- a/tubes/inc/tubes/manager.hxx +++ b/tubes/inc/tubes/manager.hxx @@ -39,7 +39,6 @@ #include #include #include -#include #include // For testing purposes, we might need more in future. @@ -140,8 +139,6 @@ public: void disconnect(); - boost::signals2::signal sigFileReceived; - /// Only for use with MainLoopFlusher GMainLoop* getMainLoop() const; diff --git a/tubes/source/manager.cxx b/tubes/source/manager.cxx index 4f6a6a8c00c4..c7ef062227a5 100644 --- a/tubes/source/manager.cxx +++ b/tubes/source/manager.cxx @@ -33,6 +33,21 @@ #include #include +// new file send/recv fun ... +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace css = ::com::sun::star; #if defined SAL_LOG_INFO namespace @@ -172,6 +187,65 @@ bool TeleManager::hasWaitingConference() return !pImpl->msCurrentUUID.isEmpty(); } +// FIXME this is exported only because of ScDocFuncDemo +SAL_DLLPUBLIC_EXPORT void TeleManager_fileReceived( const rtl::OUString &rStr ) +{ + fprintf( stderr, "incoming file '%s'\n", + rtl::OUStringToOString( rStr, RTL_TEXTENCODING_UTF8 ).getStr() ); + + // using the frame::XLoadable interface fails with a DoubleInitializationException +/* css::uno::Sequence < css::beans::PropertyValue > aLoadArgs(5); + aLoadArgs[0].Name = rtl::OUString( "URL" ); + aLoadArgs[0].Value <<= rpStr; + aLoadArgs[1].Name = rtl::OUString( "FilterName" ); + aLoadArgs[1].Value <<= rtl::OUString( "calc8" ); + aLoadArgs[2].Name = rtl::OUString( "Referer" ); + aLoadArgs[2].Value <<= rtl::OUString( "" ); + // no interaction handler ? + aLoadArgs[3].Name = rtl::OUString( "MacroExecutionMode" ); + aLoadArgs[3].Value <<= sal_Int32( 3 ); + aLoadArgs[4].Name = rtl::OUString( "UpdateDocMode" ); + aLoadArgs[4].Value <<= sal_Int32( 2 ); + try + { + css::uno::Reference < css::frame::XLoadable > xLoad( + rDocShell.GetBaseModel(), css::uno::UNO_QUERY_THROW ); + xLoad->load( aLoadArgs ); + } + catch ( css::uno::Exception& e ) + { + fprintf( stderr, "exception when loading '%s' !\n", + rtl::OUStringToOString( e.Message, RTL_TEXTENCODING_UTF8 ).getStr() ); + } */ +// #2 - tried out the SfxAutoReloadTimer_Impl - shove stuff at the SID_RELOAD slot ... + +// #3 - can we use the framework/inc/services/frame.hxx 's "sTargetFrameName" +// magic to load into our current frame ? ... :-) + + css::uno::Reference< css::lang::XMultiServiceFactory > rFactory = + ::comphelper::getProcessServiceFactory(); + + css::uno::Sequence < css::beans::PropertyValue > args(0); +// FIXME: should this be hidden before it is synched & ready ? ... +// args[0].Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Hidden")); +// args[0].Value <<= sal_True; + try + { + css::uno::Reference < css::frame::XComponentLoader > xLoader( + ::comphelper::getProcessServiceFactory()->createInstance( + "com.sun.star.frame.Desktop" ), + css::uno::UNO_QUERY_THROW ); + css::uno::Reference < css::util::XCloseable > xDoc( + xLoader->loadComponentFromURL( rStr, "_blank", 0, args ), + css::uno::UNO_QUERY_THROW ); + } + catch ( css::uno::Exception& e ) + { + fprintf( stderr, "exception when loading '%s' !\n", + rtl::OUStringToOString( e.Message, RTL_TEXTENCODING_UTF8 ).getStr() ); + } +} + void TeleManager::TransferDone( EmpathyFTHandler *handler, TpFileTransferChannel *, gpointer pUserData) { TeleManager* pManager = reinterpret_cast(pUserData); @@ -187,7 +261,7 @@ void TeleManager::TransferDone( EmpathyFTHandler *handler, TpFileTransferChannel OString sUuid( OUStringToOString( aUri.copy( first + 1, last - first - 1), RTL_TEXTENCODING_UTF8)); pImpl->msCurrentUUID = sUuid; - pManager->sigFileReceived( aUri ); + TeleManager_fileReceived( aUri ); g_object_unref( handler); } -- cgit