[Libreoffice-commits] .: Branch 'feature/tubes2' - sc/source tubes/inc tubes/source
Michael Meeks
michael at kemper.freedesktop.org
Fri Mar 23 10:57:34 PDT 2012
sc/source/ui/collab/contacts.cxx | 66 ++++++++++++++++++++++++++++++++++-----
sc/source/ui/collab/contacts.hxx | 3 +
sc/source/ui/collab/contacts.src | 9 ++---
sc/source/ui/collab/sendfunc.cxx | 3 +
tubes/inc/tubes/manager.hxx | 2 -
tubes/source/manager.cxx | 2 -
6 files changed, 69 insertions(+), 16 deletions(-)
New commits:
commit 5ac3317860a84750e4962bce15da76eb3cc3c84c
Author: Michael Meeks <michael.meeks at suse.com>
Date: Fri Mar 23 17:54:06 2012 +0000
tubes: make the contacts list show something
diff --git a/sc/source/ui/collab/contacts.cxx b/sc/source/ui/collab/contacts.cxx
index d517888..00e0392 100644
--- a/sc/source/ui/collab/contacts.cxx
+++ b/sc/source/ui/collab/contacts.cxx
@@ -30,15 +30,20 @@
#include <vector>
#include "collab.hxx"
+#include "contacts.hrc"
+#include "scresid.hxx"
+#include <tubes/manager.hxx>
#include <tubes/conference.hxx>
-#include <vcl/syswin.hxx>
+#include <tubes/contact-list.hxx>
+#include <vcl/fixed.hxx>
+#include <vcl/dialog.hxx>
#include <svx/simptabl.hxx>
-// #define CONTACTS
+#define CONTACTS_DLG
#ifdef CONTACTS_DLG
namespace {
-class TubeContacts : ModelessDialog
+class TubeContacts : public ModelessDialog
{
FixedLine maLabel;
SvxSimpleTableContainer maListContainer;
@@ -46,24 +51,69 @@ class TubeContacts : ModelessDialog
public:
TubeContacts() :
- ModelessDialog( NULL, RID_SCDLG_CONTACTS ),
+ ModelessDialog( NULL, ScResId( RID_SCDLG_CONTACTS ) ),
maLabel( this, ScResId( FL_LABEL ) ),
maListContainer( this, ScResId( CTL_LIST ) ),
- maList( maListContainer ),
+ maList( maListContainer )
{
- SetMinOutputSizePixel( Size( 640, 480 ) );
+ static long aStaticTabs[]=
+ {
+ 3 /* count */, 0, 20, 80, 150, 200
+ };
+
+ maList.SvxSimpleTable::SetTabs( aStaticTabs );
+ String sHeader( '\t' );
+ sHeader += String( ScResId( STR_HEADER_ALIAS ) );
+ sHeader += '\t';
+ sHeader += String( ScResId( STR_HEADER_NAME ) );
+ sHeader += '\t';
+ maList.InsertHeaderEntry( sHeader, HEADERBAR_APPEND, HIB_LEFT );
Show();
}
virtual ~TubeContacts() {}
+
+ static rtl::OUString fromUTF8( const char *pStr )
+ {
+ return rtl::OStringToOUString( rtl::OString( pStr, strlen( pStr ) ),
+ RTL_TEXTENCODING_UTF8 );
+ }
+
+ void Populate( const TeleManager &rManager )
+ {
+ ContactList *pContacts = rManager.getContactList();
+ if ( pContacts )
+ {
+ fprintf( stderr, "contacts !\n" );
+ AccountContactPairV aPairs = pContacts->getContacts();
+ AccountContactPairV::iterator it;
+ for( it = aPairs.begin(); it != aPairs.end(); it++ )
+ {
+ fprintf( stderr, "'%s' => '%s' '%s'\n",
+ tp_account_get_display_name( it->first ),
+ tp_contact_get_alias( it->second ),
+ tp_contact_get_identifier( it->second ) );
+ rtl::OUStringBuffer aEntry( 128 );
+ aEntry.append( sal_Unicode( '\t' ) );
+ aEntry.append( fromUTF8 ( tp_contact_get_alias( it->second ) ) );
+ 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() );
+ // FIXME: ref the TpContact ...
+ pEntry->SetUserData( it->second );
+ }
+ }
+ }
};
} // anonymous namespace
#endif
namespace tubes {
-void createContacts()
+void createContacts( const TeleManager &rManager )
{
#ifdef CONTACTS_DLG
- new TubeContacts();
+ TubeContacts *pContacts = new TubeContacts();
+ pContacts->Populate( rManager );
#endif
}
}
diff --git a/sc/source/ui/collab/contacts.hxx b/sc/source/ui/collab/contacts.hxx
index 657df23..eba76a3 100644
--- a/sc/source/ui/collab/contacts.hxx
+++ b/sc/source/ui/collab/contacts.hxx
@@ -32,8 +32,9 @@
#include "collab.hxx"
#include <tubes/conference.hxx>
+class TeleManager;
namespace tubes {
- void createContacts();
+ void createContacts( const TeleManager &rContacts );
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/collab/contacts.src b/sc/source/ui/collab/contacts.src
index 0972920..6a1081f 100644
--- a/sc/source/ui/collab/contacts.src
+++ b/sc/source/ui/collab/contacts.src
@@ -9,19 +9,20 @@ ModelessDialog RID_SCDLG_CONTACTS
Hide = FALSE ;
Moveable = TRUE ;
Closeable = TRUE ;
- Size = MAP_APPFONT ( 320 , 480 ) ;
+ Size = MAP_APPFONT ( 220 , 200 ) ;
+ OutputSize = TRUE ;
Text [ en-US ] = "Contacts" ;
FixedLine FL_LABEL
{
Pos = MAP_APPFONT ( 6 , 3 ) ;
Size = MAP_APPFONT ( 400 , 8 ) ;
- Text [ en-US ] = "Here are your contacts" ;
+ Text [ en-US ] = "Select a contact to collaborate with" ;
};
Control CTL_LIST
{
- Pos = MAP_APPFONT ( 21 , 38 ) ;
- Size = MAP_APPFONT ( 177 , 130 ) ;
+ Pos = MAP_APPFONT ( 8 , 10 ) ;
+ Size = MAP_APPFONT ( 200 , 190 ) ;
Border = TRUE ;
TabStop = TRUE ;
};
diff --git a/sc/source/ui/collab/sendfunc.cxx b/sc/source/ui/collab/sendfunc.cxx
index 66db1d2..0f74209 100644
--- a/sc/source/ui/collab/sendfunc.cxx
+++ b/sc/source/ui/collab/sendfunc.cxx
@@ -35,6 +35,7 @@
#include "docfunc.hxx"
#include "collab.hxx"
#include "contacts.hxx"
+#include <tubes/manager.hxx>
#include <tubes/conference.hxx>
// new file send/recv fun ...
@@ -451,7 +452,7 @@ public:
SendFile( rText );
if ( rtl::OUString( rText ) == "contacts" )
- tubes::createContacts();
+ tubes::createContacts( TeleManager::get() );
return true; // needs some code auditing action
}
diff --git a/tubes/inc/tubes/manager.hxx b/tubes/inc/tubes/manager.hxx
index 7c877f5..ec85d91 100644
--- a/tubes/inc/tubes/manager.hxx
+++ b/tubes/inc/tubes/manager.hxx
@@ -96,7 +96,7 @@ public:
/** Fetches the contact list. Returns 0 before connect() is called successfully.
Is non-functional until prepareAccountManager().
*/
- ContactList* getContactList();
+ ContactList* getContactList() const;
#if 0
/** Start a group session in a MUC.
diff --git a/tubes/source/manager.cxx b/tubes/source/manager.cxx
index 3128ea2..b9f9744 100644
--- a/tubes/source/manager.cxx
+++ b/tubes/source/manager.cxx
@@ -683,7 +683,7 @@ bool TeleManager::isAccountManagerReadyHandlerInvoked() const
return pImpl->mbAccountManagerReadyHandlerInvoked;
}
-ContactList* TeleManager::getContactList()
+ContactList* TeleManager::getContactList() const
{
return pImpl->mpContactList;
}
More information about the Libreoffice-commits
mailing list