[Libreoffice-commits] .: 2 commits - sc/source tubes/inc tubes/qa tubes/source

Matus Kukan mkukan at kemper.freedesktop.org
Thu Jul 26 13:16:24 PDT 2012


 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.kukan at 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.kukan at 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>


More information about the Libreoffice-commits mailing list