[Libreoffice-commits] .: Branch 'feature/tubes2' - 4 commits - sc/Library_sc.mk sc/source
Matus Kukan
mkukan at kemper.freedesktop.org
Sat Jun 9 09:11:17 PDT 2012
sc/Library_sc.mk | 6 -
sc/source/ui/collab/collab.cxx | 126 ---------------------------------------
sc/source/ui/collab/contacts.cxx | 22 +++++-
sc/source/ui/collab/contacts.hxx | 4 -
sc/source/ui/collab/contacts.src | 4 -
sc/source/ui/collab/sendfunc.cxx | 82 ++++++++++++++++---------
sc/source/ui/inc/collab.hxx | 76 -----------------------
7 files changed, 71 insertions(+), 249 deletions(-)
New commits:
commit d17dca0a25d893445c4e384fad66364a4b2fb66d
Author: Matúš Kukan <matus.kukan at gmail.com>
Date: Fri Jun 8 21:10:59 2012 +0200
tubes: remove ScCollaboration layer
diff --git a/sc/Library_sc.mk b/sc/Library_sc.mk
index f8ef430..6aa71ae 100644
--- a/sc/Library_sc.mk
+++ b/sc/Library_sc.mk
@@ -53,20 +53,14 @@ $(eval $(call gb_Library_add_linked_libs,sc,\
))
$(eval $(call gb_Library_add_cxxflags,sc,\
- $$(TELEPATHY_CFLAGS) \
-DENABLE_TELEPATHY \
))
-$(eval $(call gb_Library_add_libs,sc,\
- $$(TELEPATHY_LIBS) \
-))
-
$(eval $(call gb_Library_use_externals,sc,\
telepathy \
))
$(eval $(call gb_Library_add_exception_objects,sc,\
- sc/source/ui/collab/collab \
sc/source/ui/collab/contacts \
sc/source/ui/collab/sendfunc \
))
diff --git a/sc/source/ui/collab/collab.cxx b/sc/source/ui/collab/collab.cxx
deleted file mode 100644
index d14b42e..0000000
--- a/sc/source/ui/collab/collab.cxx
+++ /dev/null
@@ -1,126 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * Version: MPL 1.1 / GPLv3+ / LGPLv3+
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License or as specified alternatively below. You may obtain a copy of
- * the License at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * Major Contributor(s):
- * Copyright (C) 2012 Red Hat, Inc., Eike Rathke <erack at redhat.com>
- *
- * All Rights Reserved.
- *
- * For minor contributions see the git repository.
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 3 or later (the "GPLv3+"), or
- * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
- * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
- * instead of those above.
- */
-
-#include "collab.hxx"
-#include <tubes/manager.hxx>
-#include <tubes/conference.hxx>
-#include <tubes/contact-list.hxx>
-
-ScCollaboration::ScCollaboration()
- :
- mpAccount( NULL),
- mpContact( NULL),
- mpManager( NULL)
-{
-}
-
-
-ScCollaboration::~ScCollaboration()
-{
- if (mpAccount)
- g_object_unref( mpAccount);
- if (mpContact)
- g_object_unref( mpContact);
-
- mpManager->unref();
- mpManager = NULL;
-}
-
-
-void ScCollaboration::receivedFile( const rtl::OUString &rFileURL )
-{
- fprintf( stderr, "file recieved '%s'\n",
- rtl::OUStringToOString( rFileURL, RTL_TEXTENCODING_UTF8 ).getStr() );
- sigFileReceived( rFileURL );
-}
-
-void ScCollaboration::packetReceivedCallback( TeleConference *pConference, TelePacket &rPacket )
-{
- rtl::OString aString( rPacket.getData(), rPacket.getSize());
- /* Relay the signal out⦠*/
- sigPacketReceived( pConference, aString);
-}
-
-bool ScCollaboration::initManager(bool bAcceptIncoming)
-{
- mpManager = TeleManager::get(bAcceptIncoming);
- mpManager->sigPacketReceived.connect(
- boost::bind( &ScCollaboration::packetReceivedCallback, this, _1, _2 ));
- mpManager->connect();
- mpManager->prepareAccountManager();
- mpManager->sigFileReceived.connect(
- boost::bind( &ScCollaboration::receivedFile, this, _1 ));
- return true;
-}
-
-
-bool ScCollaboration::initAccountContact()
-{
- ContactList* pContactList = mpManager->getContactList();
- AccountContactPairV aVec( pContactList->getContacts());
-
- fprintf( stderr, "%u contacts\n", (int) aVec.size() );
- if (aVec.empty())
- return false;
-
- /* TODO: select a pair, for now just take the first */
- mpAccount = aVec[0].first;
- mpContact = aVec[0].second;
- fprintf( stderr, "picked %s\n", tp_contact_get_identifier( mpContact ) );
- return true;
-}
-
-
-bool ScCollaboration::startCollaboration()
-{
- bool bOk = mpManager->startBuddySession( mpAccount, mpContact);
- return bOk;
-}
-
-
-bool ScCollaboration::sendPacket( const rtl::OString& rString )
-{
- TelePacket aPacket( "sender", rString.getStr(), rString.getLength());
- bool bOk = mpManager->sendPacket( aPacket);
- return bOk;
-}
-
-
-extern "C" {
- static void file_sent_cb( bool aSuccess, void* /* pUserData */ )
- {
- fprintf( stderr, "File send %s\n", aSuccess ? "success" : "failed" );
- }
-}
-
-void ScCollaboration::sendFile( rtl::OUString &rFileURL )
-{
- mpManager->sendFile( rFileURL, file_sent_cb, NULL );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/collab/sendfunc.cxx b/sc/source/ui/collab/sendfunc.cxx
index aa16ce9..9c04e0d 100644
--- a/sc/source/ui/collab/sendfunc.cxx
+++ b/sc/source/ui/collab/sendfunc.cxx
@@ -28,15 +28,16 @@
#include "sal/config.h"
+#include <boost/signals2.hpp>
#include <vector>
#include "cell.hxx"
+#include "contacts.hxx"
#include "docsh.hxx"
#include "docfunc.hxx"
-#include "collab.hxx"
-#include "contacts.hxx"
#include <tubes/manager.hxx>
#include <tubes/conference.hxx>
+#include <tubes/contact-list.hxx>
// new file send/recv fun ...
#include <com/sun/star/uno/Sequence.hxx>
@@ -257,7 +258,6 @@ public:
class ScDocFuncRecv
{
boost::shared_ptr<ScDocFuncDirect> mpChain;
- boost::shared_ptr<ScCollaboration> mpCollab;
protected:
ScDocFuncRecv() {}
@@ -270,12 +270,7 @@ public:
}
virtual ~ScDocFuncRecv() {}
- void SetCollaboration( boost::shared_ptr<ScCollaboration>& pCollab )
- {
- mpCollab = pCollab;
- }
-
- void packetReceived( TeleConference* pConference, const rtl::OString & );
+ void packetReceived( TeleConference*, TelePacket &rPacket );
virtual void fileReceived( const rtl::OUString &rStr );
virtual void RecvMessage( const rtl::OString &rString )
@@ -315,9 +310,10 @@ public:
}
};
-void ScDocFuncRecv::packetReceived( TeleConference*, const rtl::OString &rStr)
+void ScDocFuncRecv::packetReceived( TeleConference*, TelePacket &rPacket )
{
- RecvMessage( rStr);
+ rtl::OString aString( rPacket.getData(), rPacket.getSize() );
+ RecvMessage( aString );
}
void ScDocFuncRecv::fileReceived( const rtl::OUString &rStr )
@@ -418,16 +414,27 @@ class ScDocFuncDemo : public ScDocFuncRecv
}
};
+extern "C"
+{
+ static void file_sent_cb( bool aSuccess, void* /* pUserData */ )
+ {
+ fprintf( stderr, "File send %s\n", aSuccess ? "success" : "failed" );
+ }
+}
+
class ScDocFuncSend : public ScDocFunc
{
boost::shared_ptr<ScDocFuncRecv> mpDirect;
- boost::shared_ptr<ScCollaboration> mpCollab;
+ TeleManager *mpManager;
void SendMessage( ScChangeOpWriter &rOp )
{
fprintf( stderr, "Op: '%s'\n", rOp.toString().getStr() );
- if (mpCollab)
- mpCollab->sendPacket( rOp.toString());
+ if (mpManager)
+ {
+ TelePacket aPacket( "sender", rOp.toString().getStr(), rOp.toString().getLength() );
+ mpManager->sendPacket( aPacket );
+ }
else // local demo mode
mpDirect->RecvMessage( rOp.toString() );
}
@@ -457,8 +464,8 @@ class ScDocFuncSend : public ScDocFunc
fprintf( stderr, "Temp file is '%s'\n",
rtl::OUStringToOString( aFileURL, RTL_TEXTENCODING_UTF8 ).getStr() );
- if ( mpCollab )
- mpCollab->sendFile( aFileURL );
+ if (mpManager)
+ mpManager->sendFile( aFileURL, file_sent_cb, NULL );
else
mpDirect->fileReceived( aFileURL );
@@ -470,15 +477,16 @@ public:
// we don't need the rDocSh hack/pointer
ScDocFuncSend( ScDocShell& rDocSh, boost::shared_ptr<ScDocFuncRecv> pDirect )
: ScDocFunc( rDocSh ),
- mpDirect( pDirect )
+ mpDirect( pDirect ),
+ mpManager( NULL )
{
fprintf( stderr, "Sender created !\n" );
}
virtual ~ScDocFuncSend() {}
- void SetCollaboration( boost::shared_ptr<ScCollaboration>& pCollab )
+ void SetCollaboration( bool bIsMaster )
{
- mpCollab = pCollab;
+ mpManager = TeleManager::get( !bIsMaster );
}
virtual void EnterListAction( sal_uInt16 nNameResId )
@@ -625,27 +633,41 @@ 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 );
- boost::shared_ptr<ScCollaboration> pCollab( new ScCollaboration );
- pCollab->sigPacketReceived.connect(
- boost::bind( &ScDocFuncRecv::packetReceived, pReceiver, _1, _2 ));
- pCollab->sigFileReceived.connect(
- boost::bind( &ScDocFuncRecv::fileReceived, pReceiver, _1));
+ TeleManager *pManager = TeleManager::get( !bIsMaster );
bool bOk = true;
- bOk = bOk && pCollab->initManager(!bIsMaster);
+
+ pManager->sigPacketReceived.connect(
+ boost::bind( &ScDocFuncRecv::packetReceived, pReceiver.get(), _1, _2 ));
+ pManager->sigFileReceived.connect(
+ boost::bind( &ScDocFuncRecv::fileReceived, pReceiver.get(), _1 ));
+
+ bOk = bOk && pManager->connect();
+ pManager->prepareAccountManager();
+
if (bIsMaster)
{
- bOk = bOk && pCollab->initAccountContact();
- bOk = bOk && pCollab->startCollaboration();
+ ContactList* pContactList = pManager->getContactList();
+ AccountContactPairV aVec( pContactList->getContacts());
+
+ fprintf( stderr, "%u contacts\n", (int) aVec.size() );
+ if (aVec.empty())
+ bOk = false;
+ else
+ {
+ /* TODO: select a pair, for now just take the first */
+ TpAccount* pAccount = aVec[0].first;
+ TpContact* pContact = aVec[0].second;
+ fprintf( stderr, "picked %s\n", tp_contact_get_identifier( pContact ) );
+ bOk = bOk && pManager->startBuddySession( pAccount, pContact );
+ }
}
if (bOk)
{
- pReceiver->SetCollaboration( pCollab);
- pSender->SetCollaboration( pCollab);
+ pSender->SetCollaboration( bIsMaster );
}
else
{
fprintf( stderr, "Could not start collaboration.\n");
- // pCollab shared_ptr will be destructed
}
return pSender;
}
diff --git a/sc/source/ui/inc/collab.hxx b/sc/source/ui/inc/collab.hxx
deleted file mode 100644
index 65700c9..0000000
--- a/sc/source/ui/inc/collab.hxx
+++ /dev/null
@@ -1,76 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * Version: MPL 1.1 / GPLv3+ / LGPLv3+
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License or as specified alternatively below. You may obtain a copy of
- * the License at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * Major Contributor(s):
- * Copyright (C) 2012 Red Hat, Inc., Eike Rathke <erack at redhat.com>
- *
- * All Rights Reserved.
- *
- * For minor contributions see the git repository.
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 3 or later (the "GPLv3+"), or
- * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
- * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
- * instead of those above.
- */
-
-#ifndef INCLUDED_SC_COLLAB_HXX
-#define INCLUDED_SC_COLLAB_HXX
-
-#include <sal/config.h>
-#include <boost/signals2.hpp>
-
-typedef struct _TpContact TpContact;
-typedef struct _TpAccount TpAccount;
-class TeleManager;
-class TeleConference;
-class TelePacket;
-namespace rtl { class OString; class OUString; }
-
-class ScCollaboration
-{
-public:
-
- ScCollaboration();
- ~ScCollaboration();
-
- bool initManager(bool bAcceptIncoming);
- bool initAccountContact();
- bool startCollaboration();
-
- bool sendPacket( const rtl::OString& rString );
- /** Emitted when a packet is received
- */
- boost::signals2::signal<void (TeleConference*, const rtl::OString& rString )> sigPacketReceived;
-
- void sendFile( rtl::OUString &rFileURL );
- /** Emitted when a file is received
- */
- boost::signals2::signal<void ( const rtl::OUString &pFileURL )> sigFileReceived;
-
- /* Internal callbacks */
- void packetReceivedCallback( TeleConference *pConference, TelePacket &rPacket );
- void receivedFile( const rtl::OUString &rFileURL );
-
-private:
-
- TpAccount* mpAccount;
- TpContact* mpContact;
- TeleManager* mpManager;
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit cea7a660a04f3e6bbe41bc8f6a7000abb41df487
Author: Matúš Kukan <matus.kukan at gmail.com>
Date: Fri Jun 8 16:31:22 2012 +0200
remove a few unused includes
diff --git a/sc/source/ui/collab/contacts.cxx b/sc/source/ui/collab/contacts.cxx
index cfd4213..c029105 100644
--- a/sc/source/ui/collab/contacts.cxx
+++ b/sc/source/ui/collab/contacts.cxx
@@ -29,13 +29,10 @@
#include "sal/config.h"
#include <vector>
-#include "collab.hxx"
#include "contacts.hrc"
#include "scresid.hxx"
#include <svtools/filter.hxx>
#include <tubes/manager.hxx>
-#include <tubes/conference.hxx>
-#include <tubes/contact-list.hxx>
#include <vcl/fixed.hxx>
#include <vcl/dialog.hxx>
#include <svx/simptabl.hxx>
diff --git a/sc/source/ui/collab/contacts.hxx b/sc/source/ui/collab/contacts.hxx
index eba76a3..f7ff6a9 100644
--- a/sc/source/ui/collab/contacts.hxx
+++ b/sc/source/ui/collab/contacts.hxx
@@ -28,10 +28,6 @@
#include "sal/config.h"
-#include <vector>
-#include "collab.hxx"
-#include <tubes/conference.hxx>
-
class TeleManager;
namespace tubes {
void createContacts( const TeleManager &rContacts );
commit 5027968069998ba151f47c205bd0929f692e5c9a
Author: Matúš Kukan <matus.kukan at gmail.com>
Date: Fri Jun 8 16:18:33 2012 +0200
tubes: get Avatars loaded and displayed
diff --git a/sc/source/ui/collab/contacts.cxx b/sc/source/ui/collab/contacts.cxx
index bb82160..cfd4213 100644
--- a/sc/source/ui/collab/contacts.cxx
+++ b/sc/source/ui/collab/contacts.cxx
@@ -32,6 +32,7 @@
#include "collab.hxx"
#include "contacts.hrc"
#include "scresid.hxx"
+#include <svtools/filter.hxx>
#include <tubes/manager.hxx>
#include <tubes/conference.hxx>
#include <tubes/contact-list.hxx>
@@ -88,6 +89,20 @@ public:
AccountContactPairV::iterator it;
for( it = aPairs.begin(); it != aPairs.end(); it++ )
{
+ Image aImage;
+ GFile *pAvatarFile = tp_contact_get_avatar_file( it->second );
+ if( pAvatarFile )
+ {
+ const rtl::OUString sAvatarFileUrl = fromUTF8( g_file_get_path ( pAvatarFile ) );
+ Graphic aGraphic;
+ if( GRFILTER_OK == GraphicFilter::LoadGraphic( sAvatarFileUrl, rtl::OUString(""), aGraphic ) )
+ {
+ BitmapEx aBitmap = aGraphic.GetBitmapEx();
+ double fScale = 30.0 / aBitmap.GetSizePixel().Height();
+ aBitmap.Scale( fScale, fScale );
+ aImage = Image( aBitmap );
+ }
+ }
fprintf( stderr, "'%s' => '%s' '%s'\n",
tp_account_get_display_name( it->first ),
tp_contact_get_alias( it->second ),
@@ -98,7 +113,7 @@ public:
aEntry.append( sal_Unicode( '\t' ) );
aEntry.append( fromUTF8 ( tp_contact_get_identifier( it->second ) ) );
aEntry.append( sal_Unicode( '\t' ) );
- SvLBoxEntry* pEntry = maList.InsertEntry( aEntry.makeStringAndClear() );
+ SvLBoxEntry* pEntry = maList.InsertEntry( aEntry.makeStringAndClear(), aImage, aImage );
// FIXME: ref the TpContact ...
pEntry->SetUserData( it->second );
}
commit ee364060fa490d6be89beed5ec51a08ecd10099d
Author: Matúš Kukan <matus.kukan at gmail.com>
Date: Fri May 11 22:26:06 2012 +0200
tubes: improve contacts list sizing
diff --git a/sc/source/ui/collab/contacts.cxx b/sc/source/ui/collab/contacts.cxx
index 00e0392..bb82160 100644
--- a/sc/source/ui/collab/contacts.cxx
+++ b/sc/source/ui/collab/contacts.cxx
@@ -58,7 +58,7 @@ public:
{
static long aStaticTabs[]=
{
- 3 /* count */, 0, 20, 80, 150, 200
+ 3 /* count */, 0, 20, 100, 150, 200
};
maList.SvxSimpleTable::SetTabs( aStaticTabs );
diff --git a/sc/source/ui/collab/contacts.src b/sc/source/ui/collab/contacts.src
index 6a1081f..878c1ae 100644
--- a/sc/source/ui/collab/contacts.src
+++ b/sc/source/ui/collab/contacts.src
@@ -15,8 +15,8 @@ ModelessDialog RID_SCDLG_CONTACTS
FixedLine FL_LABEL
{
- Pos = MAP_APPFONT ( 6 , 3 ) ;
- Size = MAP_APPFONT ( 400 , 8 ) ;
+ Pos = MAP_APPFONT ( 8 , 2 ) ;
+ Size = MAP_APPFONT ( 198 , 8 ) ;
Text [ en-US ] = "Select a contact to collaborate with" ;
};
Control CTL_LIST
More information about the Libreoffice-commits
mailing list