Kaydet (Commit) 57e5be3f authored tarafından Matúš Kukan's avatar Matúš Kukan

tubes: move ScDocFuncRecv::fileReceived to TeleManager_fileReceived

Change-Id: Ie2ab2c2d545f6fcbdc21171868c99b1756c90792
üst 58d4ab69
...@@ -91,14 +91,6 @@ class TubeContacts : public ModelessDialog ...@@ -91,14 +91,6 @@ class TubeContacts : public ModelessDialog
{ {
fprintf( stderr, "Could not register client handlers.\n" ); 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() void StartBuddySession()
......
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
#include "sal/config.h" #include "sal/config.h"
#include <tubes/warnings_guard_boost_signals2.hpp>
#include <vector> #include <vector>
#include "cell.hxx" #include "cell.hxx"
...@@ -39,24 +38,18 @@ ...@@ -39,24 +38,18 @@
#include <tubes/manager.hxx> #include <tubes/manager.hxx>
#include <tubes/conference.hxx> #include <tubes/conference.hxx>
#include <tubes/contact-list.hxx> #include <tubes/contact-list.hxx>
#include <tubes/constants.h>
// new file send/recv fun ...
#include <com/sun/star/uno/Sequence.hxx> #include <com/sun/star/uno/Sequence.hxx>
#include <unotools/tempfile.hxx> #include <unotools/tempfile.hxx>
#include <unotools/localfilehelper.hxx> #include <unotools/localfilehelper.hxx>
#include <comphelper/mediadescriptor.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/document/XDocumentRecovery.hpp>
#include <com/sun/star/util/XCloseable.hpp>
namespace css = ::com::sun::star; 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 // FIXME: really ScDocFunc should be an abstract base
ScDocFuncRecv::ScDocFuncRecv( ScDocFuncDirect *pChain ) ScDocFuncRecv::ScDocFuncRecv( ScDocFuncDirect *pChain )
: mpChain( pChain ) : mpChain( pChain )
...@@ -115,64 +108,6 @@ void ScDocFuncRecv::packetReceived( TelePacket &rPacket ) ...@@ -115,64 +108,6 @@ void ScDocFuncRecv::packetReceived( TelePacket &rPacket )
RecvMessage( aString ); 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 * Provides a local bus that doesn't require an IM channel for
* quick demoing, export INTERCEPT=demo # to enable. * quick demoing, export INTERCEPT=demo # to enable.
...@@ -202,15 +137,6 @@ class ScDocFuncDemo : public ScDocFuncRecv ...@@ -202,15 +137,6 @@ class ScDocFuncDemo : public ScDocFuncRecv
= aCopy.begin(); i != aCopy.end(); ++i) = aCopy.begin(); i != aCopy.end(); ++i)
(*i)->RecvMessage(rString); (*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" extern "C"
...@@ -262,7 +188,7 @@ void ScDocFuncSend::SendFile( const rtl::OUString &sUuid ) ...@@ -262,7 +188,7 @@ void ScDocFuncSend::SendFile( const rtl::OUString &sUuid )
if (mpConference) if (mpConference)
mpConference->sendFile( aFileURL, file_sent_cb, NULL ); mpConference->sendFile( aFileURL, file_sent_cb, NULL );
else else
mpDirect->fileReceived( aFileURL ); TeleManager_fileReceived( aFileURL );
// FIXME: unlink the file after send ... // FIXME: unlink the file after send ...
} }
......
...@@ -219,7 +219,6 @@ public: ...@@ -219,7 +219,6 @@ public:
void packetReceived( TelePacket &rPacket ); void packetReceived( TelePacket &rPacket );
virtual void fileReceived( const rtl::OUString &rStr );
virtual void RecvMessage( const rtl::OString &rString ); virtual void RecvMessage( const rtl::OString &rString );
}; };
......
...@@ -32,12 +32,16 @@ $(eval $(call gb_Library_set_include,tubes,\ ...@@ -32,12 +32,16 @@ $(eval $(call gb_Library_set_include,tubes,\
$$(INCLUDE) \ $$(INCLUDE) \
)) ))
$(eval $(call gb_Library_use_sdk_api,tubes))
$(eval $(call gb_Library_add_defs,tubes,\ $(eval $(call gb_Library_add_defs,tubes,\
-DTUBES_DLLIMPLEMENTATION \ -DTUBES_DLLIMPLEMENTATION \
)) ))
$(eval $(call gb_Library_use_libraries,tubes,\ $(eval $(call gb_Library_use_libraries,tubes,\
$(gb_STDLIBS) \ $(gb_STDLIBS) \
comphelper \
cppu \
sal \ sal \
salhelper \ salhelper \
)) ))
......
...@@ -39,7 +39,6 @@ ...@@ -39,7 +39,6 @@
#include <rtl/ref.hxx> #include <rtl/ref.hxx>
#include <tools/link.hxx> #include <tools/link.hxx>
#include <telepathy-glib/telepathy-glib.h> #include <telepathy-glib/telepathy-glib.h>
#include <tubes/warnings_guard_boost_signals2.hpp>
#include <map> #include <map>
// For testing purposes, we might need more in future. // For testing purposes, we might need more in future.
...@@ -140,8 +139,6 @@ public: ...@@ -140,8 +139,6 @@ public:
void disconnect(); void disconnect();
boost::signals2::signal<void ( const rtl::OUString &localUri )> sigFileReceived;
/// Only for use with MainLoopFlusher /// Only for use with MainLoopFlusher
GMainLoop* getMainLoop() const; GMainLoop* getMainLoop() const;
......
...@@ -33,6 +33,21 @@ ...@@ -33,6 +33,21 @@
#include <osl/mutex.hxx> #include <osl/mutex.hxx>
#include <cstring> #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 #if defined SAL_LOG_INFO
namespace namespace
...@@ -172,6 +187,65 @@ bool TeleManager::hasWaitingConference() ...@@ -172,6 +187,65 @@ bool TeleManager::hasWaitingConference()
return !pImpl->msCurrentUUID.isEmpty(); 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) void TeleManager::TransferDone( EmpathyFTHandler *handler, TpFileTransferChannel *, gpointer pUserData)
{ {
TeleManager* pManager = reinterpret_cast<TeleManager*>(pUserData); TeleManager* pManager = reinterpret_cast<TeleManager*>(pUserData);
...@@ -187,7 +261,7 @@ void TeleManager::TransferDone( EmpathyFTHandler *handler, TpFileTransferChannel ...@@ -187,7 +261,7 @@ void TeleManager::TransferDone( EmpathyFTHandler *handler, TpFileTransferChannel
OString sUuid( OUStringToOString( aUri.copy( first + 1, last - first - 1), OString sUuid( OUStringToOString( aUri.copy( first + 1, last - first - 1),
RTL_TEXTENCODING_UTF8)); RTL_TEXTENCODING_UTF8));
pImpl->msCurrentUUID = sUuid; pImpl->msCurrentUUID = sUuid;
pManager->sigFileReceived( aUri ); TeleManager_fileReceived( aUri );
g_object_unref( handler); g_object_unref( handler);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment