-rw-r--r-- | core/pim/addressbook/abtable.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/core/pim/addressbook/abtable.cpp b/core/pim/addressbook/abtable.cpp index e9e6a0b..3fa1a7c 100644 --- a/core/pim/addressbook/abtable.cpp +++ b/core/pim/addressbook/abtable.cpp @@ -557,16 +557,18 @@ void AbTable::loadFile( const QString &strFile, bool journalFile ) // t.start(); QFile f( strFile ); if ( !f.open(IO_ReadOnly) ) return; QList<Contact> list; list.setAutoDelete( TRUE ); QByteArray ba = f.readAll(); f.close(); + if (ba.isEmpty() ) + return; char *uc = ba.data();//(QChar *)data.unicode(); int len = ba.size();//data.length(); bool foundAction = false; Contact::journal_action action; bool foundKey = false; int journalKey = 0; const int JOURNALACTION = Qtopia::Notes + 1; @@ -792,27 +794,34 @@ void AbTable::internalAddEntries( QList<Contact> &list ) setUpdatesEnabled( TRUE ); } void AbTable::journalFreeReplace( const Contact &cnt, int row ) { QString strName, strContact; - AbTableItem *ati; + AbTableItem *ati = 0l; strName = findContactName( cnt ); strContact = findContactContact( cnt ); ati = static_cast<AbTableItem*>(item(row, 0)); + if ( ati != 0 ) { contactList.remove( ati ); ati->setItem( strName, strContact ); contactList.insert( ati, cnt ); ati = static_cast<AbTableItem*>(item(row, 1)); ati->setItem( strContact, strName ); + }else{ + int myrows = numRows(); + setNumRows( myrows + 1 ); + insertIntoTable( cnt, myrows ); + // gets deleted when returning + } } void AbTable::journalFreeRemove( int row ) { AbTableItem *ati; ati = static_cast<AbTableItem*>(item(row, 0)); if ( !ati ) return; |