diff options
author | Matúš Kukan <matus.kukan@gmail.com> | 2012-07-20 15:05:33 +0200 |
---|---|---|
committer | Matúš Kukan <matus.kukan@gmail.com> | 2012-07-20 21:39:14 +0200 |
commit | 57e5be3fc356d9512007c92d7eb34eb41f6570a4 (patch) | |
tree | 5bfeebcdd5bc6efbaecc72d67069c158e67d83c4 | |
parent | 58d4ab69112ca1e1125b59a908fc48bb2f92c08f (diff) |
tubes: move ScDocFuncRecv::fileReceived to TeleManager_fileReceived
Change-Id: Ie2ab2c2d545f6fcbdc21171868c99b1756c90792
-rw-r--r-- | sc/source/ui/collab/contacts.cxx | 8 | ||||
-rw-r--r-- | sc/source/ui/collab/sendfunc.cxx | 82 | ||||
-rw-r--r-- | sc/source/ui/collab/sendfunc.hxx | 1 | ||||
-rw-r--r-- | tubes/Library_tubes.mk | 4 | ||||
-rw-r--r-- | tubes/inc/tubes/manager.hxx | 3 | ||||
-rw-r--r-- | tubes/source/manager.cxx | 76 |
6 files changed, 83 insertions, 91 deletions
diff --git a/sc/source/ui/collab/contacts.cxx b/sc/source/ui/collab/contacts.cxx index c2cc8b6488ef..02240d9becfa 100644 --- a/sc/source/ui/collab/contacts.cxx +++ b/sc/source/ui/collab/contacts.cxx @@ -91,14 +91,6 @@ class TubeContacts : public ModelessDialog { fprintf( stderr, "Could not register client handlers.\n" ); } - else - { - // FIXME: These signals should not be bind to a document specific code. - - // Receiving file is not related to any document. - mpManager->sigFileReceived.connect( boost::bind( - &ScDocFuncRecv::fileReceived, mpSender->GetReceiver(), _1 ) ); - } } void StartBuddySession() diff --git a/sc/source/ui/collab/sendfunc.cxx b/sc/source/ui/collab/sendfunc.cxx index 4b3d1c92f769..d30b3937457a 100644 --- a/sc/source/ui/collab/sendfunc.cxx +++ b/sc/source/ui/collab/sendfunc.cxx @@ -28,7 +28,6 @@ #include "sal/config.h" -#include <tubes/warnings_guard_boost_signals2.hpp> #include <vector> #include "cell.hxx" @@ -39,24 +38,18 @@ #include <tubes/manager.hxx> #include <tubes/conference.hxx> #include <tubes/contact-list.hxx> -#include <tubes/constants.h> -// new file send/recv fun ... #include <com/sun/star/uno/Sequence.hxx> #include <unotools/tempfile.hxx> #include <unotools/localfilehelper.hxx> #include <comphelper/mediadescriptor.hxx> -#include <comphelper/processfactory.hxx> -#include <comphelper/componentcontext.hxx> -#include <com/sun/star/frame/XLoadable.hpp> -#include <com/sun/star/frame/XComponentLoader.hpp> -#include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <com/sun/star/beans/PropertyValue.hpp> #include <com/sun/star/document/XDocumentRecovery.hpp> -#include <com/sun/star/util/XCloseable.hpp> namespace css = ::com::sun::star; +// FIXME: this is only meant for demo I think +extern void TeleManager_fileReceived( const OUString& ); + // FIXME: really ScDocFunc should be an abstract base ScDocFuncRecv::ScDocFuncRecv( ScDocFuncDirect *pChain ) : mpChain( pChain ) @@ -115,64 +108,6 @@ void ScDocFuncRecv::packetReceived( TelePacket &rPacket ) RecvMessage( aString ); } -void ScDocFuncRecv::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() ); - } -} - /* * Provides a local bus that doesn't require an IM channel for * quick demoing, export INTERCEPT=demo # to enable. @@ -202,15 +137,6 @@ class ScDocFuncDemo : public ScDocFuncRecv = aCopy.begin(); i != aCopy.end(); ++i) (*i)->RecvMessage(rString); } - - virtual void fileReceived( const rtl::OUString &rStr ) - { - // FIXME: Lifecycle nightmare - std::vector< boost::shared_ptr<ScDocFuncRecv> > aCopy( maClients ); - for (std::vector< boost::shared_ptr<ScDocFuncRecv> >::iterator i - = aCopy.begin(); i != aCopy.end(); ++i) - (*i)->fileReceived( rStr ); - } }; extern "C" @@ -262,7 +188,7 @@ void ScDocFuncSend::SendFile( const rtl::OUString &sUuid ) if (mpConference) mpConference->sendFile( aFileURL, file_sent_cb, NULL ); else - mpDirect->fileReceived( aFileURL ); + TeleManager_fileReceived( aFileURL ); // FIXME: unlink the file after send ... } diff --git a/sc/source/ui/collab/sendfunc.hxx b/sc/source/ui/collab/sendfunc.hxx index f9c2bcfaa239..dde1dae0481b 100644 --- a/sc/source/ui/collab/sendfunc.hxx +++ b/sc/source/ui/collab/sendfunc.hxx @@ -219,7 +219,6 @@ public: void packetReceived( TelePacket &rPacket ); - virtual void fileReceived( const rtl::OUString &rStr ); virtual void RecvMessage( const rtl::OString &rString ); }; 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 <rtl/ref.hxx> #include <tools/link.hxx> #include <telepathy-glib/telepathy-glib.h> -#include <tubes/warnings_guard_boost_signals2.hpp> #include <map> // For testing purposes, we might need more in future. @@ -140,8 +139,6 @@ public: void disconnect(); - boost::signals2::signal<void ( const rtl::OUString &localUri )> 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 <osl/mutex.hxx> #include <cstring> +// new file send/recv fun ... +#include <com/sun/star/uno/Sequence.hxx> +#include <unotools/tempfile.hxx> +#include <unotools/localfilehelper.hxx> +#include <comphelper/mediadescriptor.hxx> +#include <comphelper/processfactory.hxx> +#include <comphelper/componentcontext.hxx> +#include <com/sun/star/frame/XLoadable.hpp> +#include <com/sun/star/frame/XComponentLoader.hpp> +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#include <com/sun/star/beans/PropertyValue.hpp> +#include <com/sun/star/document/XDocumentRecovery.hpp> +#include <com/sun/star/util/XCloseable.hpp> + +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<TeleManager*>(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); } |