summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/addressbook/ablabel.cpp7
-rw-r--r--core/pim/addressbook/abtable.cpp113
-rw-r--r--core/pim/addressbook/abtable.h16
-rw-r--r--core/pim/addressbook/abview.cpp31
-rw-r--r--core/pim/addressbook/addressbook.cpp2
-rw-r--r--core/pim/addressbook/version.h2
6 files changed, 105 insertions, 66 deletions
diff --git a/core/pim/addressbook/ablabel.cpp b/core/pim/addressbook/ablabel.cpp
index 6d8de91..1914f71 100644
--- a/core/pim/addressbook/ablabel.cpp
+++ b/core/pim/addressbook/ablabel.cpp
@@ -68,16 +68,19 @@ OContact AbLabel::currentEntry()
}
bool AbLabel::selectContact( int UID )
{
- for ( m_itCurContact = m_viewList.begin(); m_itCurContact != m_viewList.end(); ++m_itCurContact){
- if ( (*m_itCurContact).uid() == UID )
+ for ( int r = 0; r < m_viewList.count(); ++r ) {
+ if ( m_viewList.uidAt( r ) == UID ){
+ m_itCurContact.setCurrent( r );
break;
+ }
}
+
sync();
return true;
}
diff --git a/core/pim/addressbook/abtable.cpp b/core/pim/addressbook/abtable.cpp
index a2617fa..4705c78 100644
--- a/core/pim/addressbook/abtable.cpp
+++ b/core/pim/addressbook/abtable.cpp
@@ -41,12 +41,14 @@
#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
*/
@@ -109,12 +111,14 @@ 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
*/
@@ -132,13 +136,13 @@ AbTable::AbTable( const QValueList<int> order, QWidget *parent, const char *name
setSelectionMode( NoSelection );
init();
setSorting( TRUE );
connect( this, SIGNAL(clicked(int,int,int,const QPoint &)),
this, SLOT(itemClicked(int,int)) );
- contactList.clear();
+ // contactList.clear();
// qWarning("C'tor end");
}
AbTable::~AbTable()
{
}
@@ -155,29 +159,29 @@ void AbTable::init()
verticalHeader()->hide();
columnVisible = true;
}
void AbTable::setContacts( const OContactAccess::List& viewList )
{
- // qWarning("AbTable::setContacts()");
+ qWarning("AbTable::setContacts()");
clear();
m_viewList = viewList;
setSorting( false );
setPaintingEnabled( FALSE );
OContactAccess::List::Iterator it;
setNumRows( m_viewList.count() );
- int row = 0;
- for ( it = m_viewList.begin(); it != m_viewList.end(); ++it )
- insertIntoTable( *it, row++ );
+// int row = 0;
+// for ( it = m_viewList.begin(); it != m_viewList.end(); ++it )
+// insertIntoTable( *it, row++ );
- setSorting( true );
+// setSorting( true );
- resort();
+// resort();
updateVisible();
setPaintingEnabled( TRUE );
}
@@ -187,43 +191,43 @@ void AbTable::setOrderedList( const QValueList<int> ordered )
intFields = ordered;
}
bool AbTable::selectContact( int UID )
{
- // qWarning( "AbTable::selectContact( %d )", UID );
+ qWarning( "AbTable::selectContact( %d )", UID );
int rows = numRows();
- AbTableItem *abi;
OContact* foundContact = 0l;
bool found = false;
setPaintingEnabled( FALSE );
+ qWarning( "search start" );
for ( int r = 0; r < rows; ++r ) {
- abi = static_cast<AbTableItem*>( item(r, 0) );
- foundContact = &contactList[abi];
- if ( foundContact -> uid() == UID ){
+ if ( m_viewList.uidAt( r ) == UID ){
ensureCellVisible( r, 0 );
setCurrentCell( r, 0 );
found = true;
break;
}
}
+ qWarning( "search end" );
if ( !found ){
ensureCellVisible( 0,0 );
setCurrentCell( 0, 0 );
}
setPaintingEnabled( TRUE );
return true;
}
+#if 0
void AbTable::insertIntoTable( const OContact& cnt, int row )
{
- // qWarning( "void AbTable::insertIntoTable( const OContact& cnt, %d )", row );
+ qWarning( "void AbTable::insertIntoTable( const OContact& cnt, %d )", row );
QString strName;
ContactItem contactItem;
strName = findContactName( cnt );
contactItem = findContactContact( cnt, row );
@@ -237,13 +241,13 @@ void AbTable::insertIntoTable( const OContact& cnt, int row )
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;
@@ -260,46 +264,40 @@ void AbTable::columnClicked( int col )
//QMessageBox::information( this, "resort", "columnClicked" );
resort();
}
void AbTable::resort()
{
- // qWarning( "void AbTable::resort()" );
+ qWarning( "void AbTable::resort() NOT POSSIBLE !!" );
+#if 0
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()
-{
- // qWarning( "OContact AbTable::currentEntry()" );
- OContact cnt;
- AbTableItem *abItem;
- abItem = static_cast<AbTableItem*>(item( currentRow(), 0 ));
- if ( abItem ) {
- cnt = contactList[abItem];
- //cnt = contactList[currentRow()];
- }
- return cnt;
+{
+ return m_viewList[currentRow()];
}
int AbTable::currentEntry_UID()
{
return ( currentEntry().uid() );
}
void AbTable::clear()
{
- // qWarning( "void AbTable::clear()" );
- contactList.clear();
+ qWarning( "void AbTable::clear()" );
+ // contactList.clear();
setPaintingEnabled( FALSE );
for ( int r = 0; r < numRows(); ++r ) {
for ( int c = 0; c < numCols(); ++c ) {
if ( cellWidget( r, c ) )
clearCellWidget( r, c );
@@ -310,13 +308,15 @@ void AbTable::clear()
setPaintingEnabled( TRUE );
}
// Refresh updates column 2 if the contactsettings changed
void AbTable::refresh()
{
- // qWarning( "void AbTable::refresh()" );
+ qWarning( "void AbTable::refresh() NOT IMPLEMENTED !!" );
+
+#if 0
int rows = numRows();
AbTableItem *abi;
ContactItem contactItem;
setPaintingEnabled( FALSE );
for ( int r = 0; r < rows; ++r ) {
@@ -330,12 +330,14 @@ void AbTable::refresh()
static_cast<AbTableItem*>( item(r, 1) )->
setPixmap( QPixmap() );
}
}
resort();
setPaintingEnabled( TRUE );
+
+#endif
}
void AbTable::keyPressEvent( QKeyEvent *e )
{
char key = toupper( e->ascii() );
@@ -362,14 +364,15 @@ void AbTable::keyPressEvent( QKeyEvent *e )
}
}
void AbTable::moveTo( char c )
{
- qWarning( "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;
@@ -391,15 +394,18 @@ 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 )
{
// We use the fileAs, then company, defaultEmail
QString str;
str = entry.fileAs();
if ( str.isEmpty() ) {
@@ -407,13 +413,13 @@ QString AbTable::findContactName( const OContact &entry )
if ( str.isEmpty() ) {
str = entry.defaultEmail();
}
}
return str;
}
-
+#endif
void AbTable::resizeRows() {
/*
if (numRows()) {
for (int i = 0; i < numRows(); i++) {
@@ -503,12 +509,13 @@ void AbTable::show()
{
// qWarning( "void AbTable::show()" );
realignTable();
QTable::show();
}
+#if 0
void AbTable::setChoiceNames( const QStringList& list)
{
choicenames = list;
if ( choicenames.isEmpty() ) {
// hide pick column
setNumCols( 2 );
@@ -517,29 +524,32 @@ void AbTable::setChoiceNames( const QStringList& list)
setNumCols( 3 );
setColumnWidth( 2, fontMetrics().width(tr( "Pick" ))+8 );
horizontalHeader()->setLabel( 2, tr( "Pick" ));
}
fitColumns();
}
+#endif
void AbTable::itemClicked(int,int col)
{
// qWarning( "AbTable::itemClicked(int, col:%d)", col);
if ( col == 2 ) {
return;
} else {
// qWarning ("Emitting signalSwitch()");
emit signalSwitch();
}
}
+#if 0
QStringList AbTable::choiceNames() const
{
return choicenames;
}
+#endif
void AbTable::setChoiceSelection( const QValueList<int>& list )
{
intFields = list;
}
QStringList AbTable::choiceSelection(int /*index*/) const
@@ -557,14 +567,12 @@ QStringList AbTable::choiceSelection(int /*index*/) const
*/
return r;
}
-
-
void AbTable::updateVisible()
{
// qWarning("void AbTable::updateVisible()");
int visible,
totalRows,
@@ -627,12 +635,16 @@ void AbTable::viewportPaintEvent( QPaintEvent* 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];
+
// 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 {
@@ -644,23 +656,38 @@ void AbTable::paintCell(QPainter* p, int row, int col, const QRect& cr, bool )
QFontMetrics fm(f);
int marg = 2;
int x = 0;
int y = ( cr.height() - 14 ) / 2;
- QPixmap pic = pixmap( row, col );
- if ( !pic.isNull() )
- {
- p->drawPixmap( x + marg, y, pixmap( row, col ) );
- p->drawText( x + marg + pixmap( row, col ).width() + 4,2 + fm.ascent(), text( row, col ) );
- }
- else
- {
- p->drawText( x + marg,2 + fm.ascent(), text( row, col ) );
- }
+ QString nameText = act_contact.fileAs();
+
+ switch( col ){
+ 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()
+ + 4,2 + fm.ascent(), contactText );
+ }
+ else
+ {
+ p->drawText( x + marg,2 + fm.ascent(), contactText );
+ }
+ }
+ break;
+ }
p->restore();
}
void AbTable::rowHeightChanged( int row )
{
if ( enablePainting )
diff --git a/core/pim/addressbook/abtable.h b/core/pim/addressbook/abtable.h
index 0f7bc29..b9ebe27 100644
--- a/core/pim/addressbook/abtable.h
+++ b/core/pim/addressbook/abtable.h
@@ -29,12 +29,13 @@
#include <qmap.h>
#include <qtable.h>
#include <qstringlist.h>
#include <qcombobox.h>
#include <qpixmap.h>
+#if 0
class AbTableItem : public QTableItem
{
public:
AbTableItem( QTable *t, EditType et, const QString &s,
const QString &secondSortKey);
QString entryKey() const;
@@ -44,33 +45,38 @@ public:
void setItem( const QString &txt, const QString &secondKey );
private:
QString sortKey;
};
+#endif
+
// This is a simple container, storing all contact
// information
class ContactItem
{
public:
QPixmap icon;
QString value;
};
+#if 0
class AbPickItem : public QTableItem
{
public:
AbPickItem( QTable *t );
QWidget *createEditor() const;
void setContentFromEditor( QWidget *w );
private:
QGuardedPtr<QComboBox> cb;
};
+#endif
+
class AbTable : public QTable
{
Q_OBJECT
public:
AbTable( const QValueList<int> ordered, QWidget *parent, const char *name=0 );
@@ -88,26 +94,26 @@ public:
// Get the current selected entry
OContact currentEntry();
// Get the UID of the current selected Entry
int currentEntry_UID();
- QString findContactName( const OContact &entry );
+ // QString findContactName( const OContact &entry );
void init();
void clear();
void refresh();
void show();
void setPaintingEnabled( bool e );
void viewportPaintEvent( QPaintEvent* e);
void paintCell(QPainter* p, int row, int col, const QRect&, bool );
// addresspicker mode (What's that ? se)
- void setChoiceNames( const QStringList& list);
- QStringList choiceNames() const;
+ // void setChoiceNames( const QStringList& list);
+ // QStringList choiceNames() const;
void setChoiceSelection( const QValueList<int>& list );
QStringList choiceSelection(int index) const;
signals:
void signalSwitch();
void signalEditor();
@@ -126,23 +132,23 @@ protected slots:
void moveTo( char );
virtual void columnClicked( int col );
void itemClicked(int,int col);
void rowHeightChanged( int row );
private:
- void insertIntoTable( const OContact &cnt, int row );
+ // void insertIntoTable( const OContact &cnt, int row );
ContactItem findContactContact( const OContact &entry, int row );
void fitColumns();
void resizeRows();
void realignTable();
void resort();
void updateVisible();
int lastSortCol;
bool asc;
- QMap<AbTableItem*, OContact> contactList;
+ // QMap<AbTableItem*, OContact> contactList;
QValueList<int> intFields;
QStringList choicenames;
bool enablePainting;
bool columnVisible;
int countNested;
diff --git a/core/pim/addressbook/abview.cpp b/core/pim/addressbook/abview.cpp
index 477f85b..6cbd556 100644
--- a/core/pim/addressbook/abview.cpp
+++ b/core/pim/addressbook/abview.cpp
@@ -48,12 +48,13 @@ AbView::AbView ( QWidget* parent, const QValueList<int>& ordered ):
m_contactdb ( 0l ),
m_storedDB ( 0l ),
m_viewStack( 0l ),
m_abTable( 0l ),
m_orderedFields( ordered )
{
+ qWarning("AbView::c'tor");
// Load default database and handle syncing myself.. !
m_contactdb = new OContactAccess ( "addressbook", 0l, 0l, false ),
mCat.load( categoryFileName() );
// Create Layout and put WidgetStack into it.
QVBoxLayout *vb = new QVBoxLayout( this );
@@ -94,34 +95,34 @@ AbView::~AbView()
}
}
void AbView::setView( Views view )
{
- // qWarning("AbView::setView( Views view )");
+ qWarning("AbView::setView( Views view )");
m_curr_View = view;
load();
}
void AbView::addEntry( const OContact &newContact )
{
- // qWarning("abview:AddContact");
+ qWarning("abview:AddContact");
m_contactdb->add ( newContact );
load();
}
void AbView::removeEntry( const int UID )
{
- // qWarning("abview:RemoveContact");
+ qWarning("abview:RemoveContact");
m_contactdb->remove( UID );
load();
}
void AbView::replaceEntry( const OContact &contact )
{
- // qWarning("abview:ReplaceContact");
+ qWarning("abview:ReplaceContact");
m_contactdb->replace( contact );
load();
}
OContact AbView::currentEntry()
@@ -146,47 +147,48 @@ bool AbView::save()
return m_contactdb->save();
}
void AbView::load()
{
- // qWarning("abView:Load data");
+ qWarning("abView:Load data");
// Letter Search is stopped at this place
emit signalClearLetterPicker();
if ( m_inPersonal )
// VCard Backend does not sort..
m_list = m_contactdb->allRecords();
else{
m_list = m_contactdb->sorted( true, 0, 0, 0 );
- clearForCategory();
+ if ( m_curr_category != -1 )
+ clearForCategory();
}
qWarning ("Number of contacts: %d", m_list.count());
updateView( true );
}
void AbView::reload()
{
- // qWarning( "void AbView::reload()" );
+ qWarning( "void AbView::reload()" );
m_contactdb->reload();
load();
}
void AbView::clear()
{
// :SX
}
void AbView::setShowByCategory( const QString& cat )
{
- // qWarning("AbView::setShowCategory( const QString& cat )");
+ qWarning("AbView::setShowCategory( const QString& cat )");
int intCat = 0;
// All (cat == NULL) will be stored as -1
if ( cat.isNull() )
intCat = -1;
@@ -204,17 +206,16 @@ void AbView::setShowByCategory( const QString& cat )
}
}
void AbView::setShowToView( Views view )
{
- // qWarning("void AbView::setShowToView( View %d )", view);
-
- // qWarning ("Change the View (Category is: %d)", m_curr_category);
+ qWarning("void AbView::setShowToView( View %d )", view);
if ( m_curr_View != view ){
+ qWarning ("Change the View (Category is: %d)", m_curr_category);
m_prev_View = m_curr_View;
m_curr_View = view;
updateView();
}
@@ -247,13 +248,14 @@ void AbView::setShowByLetter( char c, AbConfig::LPSearchMode mode )
default:
qWarning( "Unknown Searchmode for AbView::setShowByLetter ! -> %d", mode );
qWarning( "I will ignore it.." );
return;
}
m_list = m_contactdb->queryByExample( query, OContactAccess::WildCards | OContactAccess::IgnoreCase );
- clearForCategory();
+ if ( m_curr_category != -1 )
+ clearForCategory();
m_curr_Contact = 0;
}
updateView( true );
}
void AbView::setListOrder( const QValueList<int>& ordered )
@@ -271,13 +273,13 @@ QString AbView::showCategory() const
{
return mCat.label( "Contacts", m_curr_category );
}
void AbView::showPersonal( bool personal )
{
- // qWarning ("void AbView::showPersonal( %d )", personal);
+ qWarning ("void AbView::showPersonal( %d )", personal);
if ( personal ){
if ( m_inPersonal )
return;
@@ -359,13 +361,14 @@ void AbView::slotDoFind( const QString &str, bool caseSensitive, bool useRegExp,
return;
}
// Now remove all contacts with wrong category (if any selected)
// This algorithm is a litte bit ineffective, but
// we will not have a lot of matching entries..
- clearForCategory();
+ if ( m_curr_category != -1 )
+ clearForCategory();
// Now show all found entries
updateView( true );
}
void AbView::offSearch()
diff --git a/core/pim/addressbook/addressbook.cpp b/core/pim/addressbook/addressbook.cpp
index 03c96c8..0ba024e 100644
--- a/core/pim/addressbook/addressbook.cpp
+++ b/core/pim/addressbook/addressbook.cpp
@@ -245,13 +245,13 @@ AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name,
connect( m_abView, SIGNAL( signalViewSwitched ( int ) ),
this, SLOT( slotViewSwitched( int ) ) );
QObject::connect( m_abView, SIGNAL(signalNotFound()), this, SLOT(slotNotFound()) );
- m_abView->load();
+ // m_abView->load(); // Already done by c'tor .
// Letter Picker
pLabel = new LetterPicker( listContainer );
connect(pLabel, SIGNAL(letterClicked(char)), this, SLOT(slotSetLetter(char)));
connect(m_abView, SIGNAL( signalClearLetterPicker() ), pLabel, SLOT( clear() ) );
diff --git a/core/pim/addressbook/version.h b/core/pim/addressbook/version.h
index 9621826..790aa95 100644
--- a/core/pim/addressbook/version.h
+++ b/core/pim/addressbook/version.h
@@ -1,10 +1,10 @@
#ifndef _VERSION_H_
#define _VERSION_H_
#define MAINVERSION "1"
-#define SUBVERSION "0"
+#define SUBVERSION "1"
#define PATCHVERSION "0"
#define APPNAME "OPIE_ADDRESSBOOK"
#endif