summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatúš Kukan <matus.kukan@gmail.com>2012-06-18 23:15:04 +0200
committerMatúš Kukan <matus.kukan@gmail.com>2012-07-17 16:40:15 +0200
commitb5dbf32abf73188a1c6a0a8b4afae41fa966c1e5 (patch)
tree08977d77e58dffa807f4e2fb99779adfb6c1bb45
parenttubes: extract class definitions to sendfunc.hxx (diff)
downloadcore-b5dbf32abf73188a1c6a0a8b4afae41fa966c1e5.tar.gz
core-b5dbf32abf73188a1c6a0a8b4afae41fa966c1e5.zip
tubes: create InitTeleManager method
-rw-r--r--sc/source/ui/collab/sendfunc.cxx40
-rw-r--r--sc/source/ui/collab/sendfunc.hxx1
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();