sc/source/ui/collab/contacts.cxx | 6 +++++- sc/source/ui/collab/sendfunc.cxx | 8 ++++---- sc/source/ui/collab/sendfunc.hxx | 3 ++- tubes/inc/tubes/conference.hxx | 2 +- tubes/qa/test_manager.cxx | 2 +- tubes/source/conference.cxx | 4 ++-- tubes/source/manager.cxx | 3 ++- 7 files changed, 17 insertions(+), 11 deletions(-)
New commits: commit df2369657ebe36c3888bb032e693bf1fcb49bb51 Author: Matúš Kukan <matus.ku...@gmail.com> Date: Thu Jul 26 17:56:12 2012 +0200 tubes: send file when inviting contact to MUC collaboration - add UUID info to TeleConference - let SendFile function take argument for contact instead of getting contact from the channel info, what couldn't work for MUC channel Change-Id: I4dc45c084966a030ff4b503e192d452797f0bfdd diff --git a/sc/source/ui/collab/contacts.cxx b/sc/source/ui/collab/contacts.cxx index 72c29a0..e6e2239 100644 --- a/sc/source/ui/collab/contacts.cxx +++ b/sc/source/ui/collab/contacts.cxx @@ -107,6 +107,8 @@ class TubeContacts : public ModelessDialog { TpContact* pContact = pAC->mpContact; pSender->GetConference()->invite( pContact ); + pSender->SendFile( pContact, OStringToOUString( + pSender->GetConference()->getUuid(), RTL_TEXTENCODING_UTF8 ) ); } } } @@ -135,7 +137,7 @@ class TubeContacts : public ModelessDialog { ScDocFuncSend* pSender = EnsureScDocFuncSendInCurrentSfxObjectShell(); pSender->SetCollaboration( pConference ); - pSender->SendFile( OStringToOUString( + pSender->SendFile( pContact, OStringToOUString( pConference->getUuid(), RTL_TEXTENCODING_UTF8 ) ); } } diff --git a/sc/source/ui/collab/sendfunc.cxx b/sc/source/ui/collab/sendfunc.cxx index b78d34c..58af1ba 100644 --- a/sc/source/ui/collab/sendfunc.cxx +++ b/sc/source/ui/collab/sendfunc.cxx @@ -156,7 +156,7 @@ void ScDocFuncSend::SendMessage( ScChangeOpWriter &rOp ) mpDirect->RecvMessage( rOp.toString() ); } -void ScDocFuncSend::SendFile( const rtl::OUString &sUuid ) +void ScDocFuncSend::SendFile( TpContact* pContact, const rtl::OUString &sUuid ) { String aTmpPath = utl::TempFile::CreateTempName(); aTmpPath.Append( OUString("_") ); @@ -182,8 +182,8 @@ void ScDocFuncSend::SendFile( const rtl::OUString &sUuid ) fprintf( stderr, "Temp file is '%s'\n", rtl::OUStringToOString( aFileURL, RTL_TEXTENCODING_UTF8 ).getStr() ); - if (mpConference) - mpConference->sendFile( aFileURL, file_sent_cb, NULL ); + if (pContact) + mpConference->sendFile( pContact, aFileURL, file_sent_cb, NULL ); else TeleManager_fileReceived( aFileURL ); @@ -249,7 +249,7 @@ sal_Bool ScDocFuncSend::SetNormalString( bool& o_rbNumFmtSet, const ScAddress& r o_rbNumFmtSet = false; if ( rtl::OUString( rText ) == "saveme" ) - SendFile( rText ); + SendFile( NULL, rText ); if ( rtl::OUString( rText ) == "contacts" ) tubes::createContacts(); diff --git a/sc/source/ui/collab/sendfunc.hxx b/sc/source/ui/collab/sendfunc.hxx index 7299983..16f6e88 100644 --- a/sc/source/ui/collab/sendfunc.hxx +++ b/sc/source/ui/collab/sendfunc.hxx @@ -15,6 +15,7 @@ #include "cell.hxx" #include "docfunc.hxx" class TeleConference; +typedef struct _TpContact TpContact; namespace { @@ -236,7 +237,7 @@ public: void SetCollaboration( TeleConference* pConference ); TeleConference* GetConference(); // TODO: I think this could be moved to TeleManager later. - void SendFile( const rtl::OUString &rURL ); + void SendFile( TpContact* pContact, const rtl::OUString &rURL ); virtual void EnterListAction( sal_uInt16 nNameResId ); virtual void EndListAction(); diff --git a/tubes/inc/tubes/conference.hxx b/tubes/inc/tubes/conference.hxx index fc495e5..e5c5d37 100644 --- a/tubes/inc/tubes/conference.hxx +++ b/tubes/inc/tubes/conference.hxx @@ -66,7 +66,7 @@ public: boost::signals2::signal<void (const OString&)> sigPacketReceived; typedef void (*FileSentCallback)( bool aSuccess, void* pUserData); - TUBES_DLLPUBLIC void sendFile( rtl::OUString &localUri, FileSentCallback pCallback, void* pUserData); + TUBES_DLLPUBLIC void sendFile( TpContact* pContact, rtl::OUString &localUri, FileSentCallback pCallback, void* pUserData); TUBES_DLLPUBLIC const OString& getUuid() const { return msUuid; } // --- following only to be called only by manager's callbacks --- diff --git a/tubes/qa/test_manager.cxx b/tubes/qa/test_manager.cxx index f914b33..ca03bae 100644 --- a/tubes/qa/test_manager.cxx +++ b/tubes/qa/test_manager.cxx @@ -264,7 +264,7 @@ void TestTeleTubes::testSendFile() /* This has to run after testContactList has run successfully. */ CPPUNIT_ASSERT( mpAccepterContact != 0); - mpConference1->sendFile( maTestConfigIniURL, + mpConference1->sendFile( mpAccepterContact, maTestConfigIniURL, &TestTeleTubes::FileSent, NULL); /* Waiting for event: FileSent quits the mainloop */ g_main_loop_run( mpMainLoop); diff --git a/tubes/source/conference.cxx b/tubes/source/conference.cxx index d28ffc3..bc2dc75 100644 --- a/tubes/source/conference.cxx +++ b/tubes/source/conference.cxx @@ -510,7 +510,7 @@ static void TeleConference_FTReady( EmpathyFTHandler *handler, GError *error, gp } -void TeleConference::sendFile( rtl::OUString &localUri, FileSentCallback pCallback, void* pUserData) +void TeleConference::sendFile( TpContact* pContact, rtl::OUString &localUri, FileSentCallback pCallback, void* pUserData) { INFO_LOGGER( "TeleConference::sendFile"); @@ -524,7 +524,7 @@ void TeleConference::sendFile( rtl::OUString &localUri, FileSentCallback pCallba SendFileRequest *pReq = new SendFileRequest( pCallback, pUserData); empathy_ft_handler_new_outgoing( mpAccount, - tp_channel_get_target_contact( TP_CHANNEL( mpChannel)), + pContact, pSource, 0, TeleConference_FTReady, pReq); diff --git a/tubes/source/manager.cxx b/tubes/source/manager.cxx index 9df5468..c0f7427 100644 --- a/tubes/source/manager.cxx +++ b/tubes/source/manager.cxx @@ -221,6 +221,7 @@ void TeleManager_TransferDone( EmpathyFTHandler *handler, TpFileTransferChannel sal_Int32 first = aUri.indexOf('_'); sal_Int32 last = aUri.lastIndexOf('_'); + SAL_WARN_IF( first == last, "tubes", "No UUID to associate with the file!" ); if (first != last) { OString sUuid( OUStringToOString( aUri.copy( first + 1, last - first - 1), @@ -600,7 +601,7 @@ TeleConference* TeleManager::startGroupSession( TpAccount *pAccount, setChannelReadyHandlerInvoked( false); - TeleConference* pConference = new TeleConference( this, NULL, NULL ); + TeleConference* pConference = new TeleConference( this, NULL, NULL, aSessionId ); tp_account_channel_request_create_and_handle_channel_async( pChannelRequest, NULL, TeleManager_ChannelReadyHandler, pConference); commit 4eed899c596fdcb777ccb0a59c72718c6b2c295d Author: Matúš Kukan <matus.ku...@gmail.com> Date: Thu Jul 26 16:19:44 2012 +0200 tubes: forgot to include these headers Change-Id: I8d91e9c42476efc4b0182899343e40eea2df13c6 diff --git a/sc/source/ui/collab/contacts.cxx b/sc/source/ui/collab/contacts.cxx index 8529b3d..72c29a0 100644 --- a/sc/source/ui/collab/contacts.cxx +++ b/sc/source/ui/collab/contacts.cxx @@ -34,6 +34,8 @@ #include "docsh.hxx" #include "scresid.hxx" #include <svtools/filter.hxx> +#include <tubes/conference.hxx> +#include <tubes/contact-list.hxx> #include <tubes/manager.hxx> #include <vcl/fixed.hxx> #include <vcl/dialog.hxx>
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits