summaryrefslogtreecommitdiff
path: root/core/pim/addressbook/abtable.cpp
Side-by-side diff
Diffstat (limited to 'core/pim/addressbook/abtable.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/addressbook/abtable.cpp85
1 files changed, 42 insertions, 43 deletions
diff --git a/core/pim/addressbook/abtable.cpp b/core/pim/addressbook/abtable.cpp
index 29f4383..cd77b13 100644
--- a/core/pim/addressbook/abtable.cpp
+++ b/core/pim/addressbook/abtable.cpp
@@ -11,44 +11,43 @@
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
+#include <opie2/opimrecordlist.h>
+
#include <qpe/timestring.h>
#include <qpe/resource.h>
-#include <opie/orecordlist.h>
-
-
#include "abtable.h"
#include <errno.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#include <ctype.h> //toupper() for key hack
#if 0
/*!
\class AbTableItem abtable.h
-
+
\brief QTableItem based class for showing a field of an entry
*/
AbTableItem::AbTableItem( QTable *t, EditType et, const QString &s,
const QString &secondSortKey)
: QTableItem( t, et, s )
{
// sortKey = s.lower() + QChar( '\0' ) + secondSortKey.lower();
sortKey = Qtopia::buildSortKey( s, secondSortKey );
}
int AbTableItem::alignment() const
@@ -57,31 +56,31 @@ int AbTableItem::alignment() const
}
QString AbTableItem::key() const
{
return sortKey;
}
// A way to reset the item, without out doing a delete or a new...
void AbTableItem::setItem( const QString &txt, const QString &secondKey )
{
setText( txt );
sortKey = Qtopia::buildSortKey( txt, secondKey );
-
+
// sortKey = txt.lower() + QChar( '\0' ) + secondKey.lower();
}
/*!
\class AbPickItem abtable.h
-
+
\brief QTableItem based class for showing slection of an entry
*/
AbPickItem::AbPickItem( QTable *t ) :
QTableItem(t, WhenCurrent, "?")
{
}
QWidget *AbPickItem::createEditor() const
{
QComboBox* combo = new QComboBox( table()->viewport() );
( (AbPickItem*)this )->cb = combo;
@@ -100,25 +99,25 @@ QWidget *AbPickItem::createEditor() const
void AbPickItem::setContentFromEditor( QWidget *w )
{
if ( w->inherits("QComboBox") )
setText( ( (QComboBox*)w )->currentText() );
else
QTableItem::setContentFromEditor( w );
}
#endif
/*!
\class AbTable abtable.h
-
+
\brief QTable based class for showing a list of entries
*/
AbTable::AbTable( const QValueList<int> order, QWidget *parent, const char *name )
: QTable( parent, name ),
lastSortCol( -1 ),
asc( TRUE ),
intFields( order ),
enablePainting( true ),
columnVisible( true ),
countNested( 0 )
{
@@ -134,69 +133,69 @@ AbTable::AbTable( const QValueList<int> order, QWidget *parent, const char *name
// qWarning("C'tor end");
}
AbTable::~AbTable()
{
}
void AbTable::init()
{
// :SX showChar = '\0';
setNumRows( 0 );
setNumCols( 2 );
-
+
horizontalHeader()->setLabel( 0, tr( "Full Name" ));
horizontalHeader()->setLabel( 1, tr( "Contact" ));
setLeftMargin( 0 );
verticalHeader()->hide();
columnVisible = true;
}
-void AbTable::setContacts( const OContactAccess::List& viewList )
+void AbTable::setContacts( const Opie::OPimContactAccess::List& viewList )
{
qWarning("AbTable::setContacts()");
clear();
m_viewList = viewList;
setSorting( false );
setPaintingEnabled( FALSE );
-
- OContactAccess::List::Iterator it;
+
+ Opie::OPimContactAccess::List::Iterator it;
setNumRows( m_viewList.count() );
// int row = 0;
// for ( it = m_viewList.begin(); it != m_viewList.end(); ++it )
// insertIntoTable( *it, row++ );
-
+
// setSorting( true );
// resort();
updateVisible();
setPaintingEnabled( TRUE );
}
void AbTable::setOrderedList( const QValueList<int> ordered )
{
intFields = ordered;
}
bool AbTable::selectContact( int UID )
{
qWarning( "AbTable::selectContact( %d )", UID );
int rows = numRows();
- OContact* foundContact = 0l;
+ Opie::OPimContact* foundContact = 0l;
bool found = false;
setPaintingEnabled( FALSE );
qWarning( "search start" );
for ( int r = 0; r < rows; ++r ) {
if ( m_viewList.uidAt( r ) == UID ){
ensureCellVisible( r, 0 );
setCurrentCell( r, 0 );
found = true;
break;
}
}
@@ -204,57 +203,57 @@ bool AbTable::selectContact( int UID )
if ( !found ){
ensureCellVisible( 0,0 );
setCurrentCell( 0, 0 );
}
setPaintingEnabled( TRUE );
return true;
}
#if 0
-void AbTable::insertIntoTable( const OContact& cnt, int row )
+void AbTable::insertIntoTable( const Opie::OPimContact& cnt, int row )
{
- qWarning( "void AbTable::insertIntoTable( const OContact& cnt, %d )", row );
+ qWarning( "void AbTable::insertIntoTable( const Opie::OPimContact& cnt, %d )", row );
QString strName;
ContactItem contactItem;
-
+
strName = findContactName( cnt );
contactItem = findContactContact( cnt, row );
-
+
AbTableItem *ati;
ati = new AbTableItem( this, QTableItem::Never, strName, contactItem.value );
contactList.insert( ati, cnt );
setItem( row, 0, ati );
ati = new AbTableItem( this, QTableItem::Never, contactItem.value, strName);
if ( !contactItem.icon.isNull() )
ati->setPixmap( contactItem.icon );
setItem( row, 1, ati );
-
+
//### cannot do this; table only has two columns at this point
// setItem( row, 2, new AbPickItem( this ) );
-
+
}
#endif
void AbTable::columnClicked( int col )
{
if ( !sorting() )
return;
-
+
if ( lastSortCol == -1 )
lastSortCol = col;
-
+
if ( col == lastSortCol ) {
asc = !asc;
} else {
lastSortCol = col;
asc = TRUE;
}
//QMessageBox::information( this, "resort", "columnClicked" );
resort();
}
void AbTable::resort()
{
@@ -263,26 +262,26 @@ void AbTable::resort()
setPaintingEnabled( FALSE );
if ( sorting() ) {
if ( lastSortCol == -1 )
lastSortCol = 0;
sortColumn( lastSortCol, asc, TRUE );
//QMessageBox::information( this, "resort", "resort" );
updateVisible();
}
setPaintingEnabled( TRUE );
#endif
}
-OContact AbTable::currentEntry()
-{
+Opie::OPimContact AbTable::currentEntry()
+{
return m_viewList[currentRow()];
}
int AbTable::currentEntry_UID()
{
return ( currentEntry().uid() );
}
void AbTable::clear()
{
qWarning( "void AbTable::clear()" );
// contactList.clear();
@@ -322,53 +321,53 @@ void AbTable::refresh()
setPixmap( QPixmap() );
}
}
resort();
setPaintingEnabled( TRUE );
#endif
}
void AbTable::keyPressEvent( QKeyEvent *e )
{
char key = toupper( e->ascii() );
-
+
if ( key >= 'A' && key <= 'Z' )
moveTo( key );
-
+
// qWarning("Received key ..");
switch( e->key() ) {
case Qt::Key_Space:
case Qt::Key_Return:
case Qt::Key_Enter:
emit signalSwitch();
break;
// case Qt::Key_Up:
// qWarning("a");
// emit signalKeyUp();
// break;
// case Qt::Key_Down:
// qWarning("b");
// emit signalKeyDown();
// break;
default:
QTable::keyPressEvent( e );
}
-
+
}
void AbTable::moveTo( char c )
{
qWarning( "void AbTable::moveTo( char c ) NOT IMPLEMENTED !!" );
-
+
#if 0
int rows = numRows();
QString value;
AbTableItem *abi;
int r;
if ( asc ) {
r = 0;
while ( r < rows-1) {
abi = static_cast<AbTableItem*>( item(r, 0) );
QChar first = abi->key()[0];
//### is there a bug in QChar to char comparison???
if ( first.row() || first.cell() >= c )
@@ -385,25 +384,25 @@ void AbTable::moveTo( char c )
if ( first.row() || first.cell() >= c )
break;
r--;
}
}
setCurrentCell( r, currentColumn() );
#endif
}
#if 0
// Useless.. Nobody uses it .. (se)
-QString AbTable::findContactName( const OContact &entry )
+QString AbTable::findContactName( const Opie::OPimContact &entry )
{
// We use the fileAs, then company, defaultEmail
QString str;
str = entry.fileAs();
if ( str.isEmpty() ) {
str = entry.company();
if ( str.isEmpty() ) {
str = entry.defaultEmail();
}
}
return str;
}
@@ -466,35 +465,35 @@ void QTable::paintEmptyArea( QPainter *p, int cx, int cy, int cw, int ch )
// }
// int AbTable::rowAt( int pos ) const
// {
// return QMIN( pos/18, numRows()-1 );
// }
void AbTable::fitColumns()
{
qWarning( "void AbTable::fitColumns()" );
- int contentsWidth = visibleWidth() / 2;
+ int contentsWidth = visibleWidth() / 2;
// Fix to better value
- // contentsWidth = 130;
+ // contentsWidth = 130;
setPaintingEnabled( FALSE );
-
+
if ( columnVisible == false ){
showColumn(0);
columnVisible = true;
}
-
+
// qWarning("Width: %d", contentsWidth);
setColumnWidth( 0, contentsWidth );
adjustColumn(1);
if ( columnWidth(1) < contentsWidth )
setColumnWidth( 1, contentsWidth );
setPaintingEnabled( TRUE );
}
void AbTable::show()
{
@@ -538,70 +537,70 @@ QStringList AbTable::choiceNames() const
}
#endif
void AbTable::setChoiceSelection( const QValueList<int>& list )
{
intFields = list;
}
QStringList AbTable::choiceSelection(int /*index*/) const
{
QStringList r;
/* ######
-
+
QString selname = choicenames.at(index);
for (each row) {
- OContact *c = contactForRow(row);
+ Opie::OPimContact *c = contactForRow(row);
if ( text(row,2) == selname ) {
r.append(c->email);
}
}
-
+
*/
return r;
}
void AbTable::updateVisible()
{
// qWarning("void AbTable::updateVisible()");
int visible,
totalRows,
row,
selectedRow = 0;
-
+
visible = 0;
-
+
setPaintingEnabled( FALSE );
realignTable();
totalRows = numRows();
for ( row = 0; row < totalRows; row++ ) {
if ( rowHeight(row) == 0 ) {
showRow( row );
adjustRow( row );
if ( isSelected( row,0 ) || isSelected( row,1 ) )
selectedRow = row;
}
visible++;
}
if ( selectedRow )
setCurrentCell( selectedRow, 0 );
if ( !visible )
setCurrentCell( -1, 0 );
-
+
setPaintingEnabled( TRUE );
}
void AbTable::setPaintingEnabled( bool e )
{
// qWarning("IN void AbTable::setPaintingEnabled( %d )->Nested: %d", e, countNested );
if ( e ) {
if ( countNested > 0 )
--countNested;
if ( ! countNested ){
@@ -622,78 +621,78 @@ void AbTable::viewportPaintEvent( QPaintEvent* e ) {
// qWarning(" void AbTable::viewportPaintEvent( QPaintEvent* e ) -> %d", enablePainting);
if ( enablePainting )
QTable::viewportPaintEvent( e );
}
void AbTable::paintCell(QPainter* p, int row, int col, const QRect& cr, bool ) {
const QColorGroup &cg = colorGroup();
p->save();
//qWarning( "Paint row: %d", row );
- OContact act_contact = m_viewList[row];
+ Opie::OPimContact act_contact = m_viewList[row];
// Paint alternating background bars
if ( (row % 2 ) == 0 ) {
p->fillRect( 0, 0, cr.width(), cr.height(), cg.brush( QColorGroup::Base ) );
p->setPen( QPen( cg.text() ) );
}
else {
p->fillRect( 0, 0, cr.width(), cr.height(), cg.brush( QColorGroup::Background ) );
p->setPen( QPen( cg.buttonText() ) );
}
QFont f = p->font();
QFontMetrics fm(f);
int marg = 2;
int x = 0;
int y = ( cr.height() - 14 ) / 2;
QString nameText = act_contact.fileAs();
switch( col ){
- case 0:
+ case 0:
p->drawText( x + marg,2 + fm.ascent(), nameText );
break;
case 1:{
ContactItem contactItem = findContactContact( act_contact, 0 );
QPixmap contactPic = contactItem.icon; /* pixmap( row, col ); */
QString contactText = contactItem.value;
-
+
if ( !contactPic.isNull() )
{
p->drawPixmap( x + marg, y, contactPic );
- p->drawText( x + marg + contactPic.width()
+ p->drawText( x + marg + contactPic.width()
+ 4,2 + fm.ascent(), contactText );
}
else
{
p->drawText( x + marg,2 + fm.ascent(), contactText );
}
}
break;
}
p->restore();
}
void AbTable::rowHeightChanged( int row )
{
if ( enablePainting )
QTable::rowHeightChanged( row );
}
-ContactItem AbTable::findContactContact( const OContact &entry, int /* row */ )
+ContactItem AbTable::findContactContact( const Opie::OPimContact &entry, int /* row */ )
{
ContactItem item;
item.value = "";
for ( QValueList<int>::ConstIterator it = intFields.begin();
it != intFields.end(); ++it ) {
switch ( *it ) {
default:
break;
case Qtopia::Title: