diff options
author | Matúš Kukan <matus.kukan@gmail.com> | 2012-06-18 23:15:04 +0200 |
---|---|---|
committer | Matúš Kukan <matus.kukan@gmail.com> | 2012-07-17 16:40:15 +0200 |
commit | b5dbf32abf73188a1c6a0a8b4afae41fa966c1e5 (patch) | |
tree | 08977d77e58dffa807f4e2fb99779adfb6c1bb45 | |
parent | tubes: extract class definitions to sendfunc.hxx (diff) | |
download | core-b5dbf32abf73188a1c6a0a8b4afae41fa966c1e5.tar.gz core-b5dbf32abf73188a1c6a0a8b4afae41fa966c1e5.zip |
tubes: create InitTeleManager method
-rw-r--r-- | sc/source/ui/collab/sendfunc.cxx | 40 | ||||
-rw-r--r-- | sc/source/ui/collab/sendfunc.hxx | 1 |
2 files changed, 25 insertions, 16 deletions
diff --git a/sc/source/ui/collab/sendfunc.cxx b/sc/source/ui/collab/sendfunc.cxx index ee623e4b7e9c..262273db0fe8 100644 --- a/sc/source/ui/collab/sendfunc.cxx +++ b/sc/source/ui/collab/sendfunc.cxx @@ -287,6 +287,29 @@ void ScDocFuncSend::SetCollaboration( TeleManager *pManager ) mpManager = pManager; } +bool ScDocFuncSend::InitTeleManager( bool bIsMaster ) +{ + if (mpManager) + { + fprintf( stderr, "TeleManager is already connected.\n" ); + return true; + } + TeleManager *pManager = TeleManager::get( !bIsMaster ); + pManager->sigPacketReceived.connect( boost::bind( + &ScDocFuncRecv::packetReceived, mpDirect.get(), _1, _2 )); + pManager->sigFileReceived.connect( boost::bind( + &ScDocFuncRecv::fileReceived, mpDirect.get(), _1 )); + + if (pManager->connect()) + { + pManager->prepareAccountManager(); + mpManager = pManager; + return true; + } + fprintf( stderr, "Could not connect.\n" ); + return false; +} + void ScDocFuncSend::EnterListAction( sal_uInt16 nNameResId ) { // Want to group these operations for the other side ... @@ -422,22 +445,7 @@ SC_DLLPRIVATE ScDocFunc *ScDocShell::CreateDocFunc() boost::shared_ptr<ScDocFuncDirect> pDirect( new ScDocFuncDirect( *this ) ); boost::shared_ptr<ScDocFuncRecv> pReceiver( new ScDocFuncRecv( pDirect ) ); ScDocFuncSend* pSender = new ScDocFuncSend( *this, pReceiver ); - TeleManager *pManager = TeleManager::get( !bIsMaster ); - - pManager->sigPacketReceived.connect( - boost::bind( &ScDocFuncRecv::packetReceived, pReceiver.get(), _1, _2 )); - pManager->sigFileReceived.connect( - boost::bind( &ScDocFuncRecv::fileReceived, pReceiver.get(), _1 )); - - if (pManager->connect()) - { - pManager->prepareAccountManager(); - pSender->SetCollaboration( pManager ); - } - else - { - fprintf( stderr, "Could not connect.\n"); - } + pSender->InitTeleManager( bIsMaster ); return pSender; } else diff --git a/sc/source/ui/collab/sendfunc.hxx b/sc/source/ui/collab/sendfunc.hxx index bd388ddce051..dcb30aaf9e62 100644 --- a/sc/source/ui/collab/sendfunc.hxx +++ b/sc/source/ui/collab/sendfunc.hxx @@ -238,6 +238,7 @@ public: virtual ~ScDocFuncSend() {} void SetCollaboration( TeleManager *pManager ); + bool InitTeleManager( bool bIsMaster ); virtual void EnterListAction( sal_uInt16 nNameResId ); virtual void EndListAction(); |