-rw-r--r-- | kabc/addressbook.cpp | 42 | ||||
-rw-r--r-- | kabc/addressbook.h | 4 |
2 files changed, 35 insertions, 11 deletions
diff --git a/kabc/addressbook.cpp b/kabc/addressbook.cpp index e04f4b1..bdc2762 100644 --- a/kabc/addressbook.cpp +++ b/kabc/addressbook.cpp @@ -482,13 +482,13 @@ bool AddressBook::export2PhoneFormat( QStringList uids ,QString fileName ) } return true; } -int AddressBook::importFromFile( QString fileName, bool replaceLabel, bool removeOld ) +int AddressBook::importFromFile( QString fileName, bool replaceLabel, bool removeOld, QString resource ) { if ( removeOld ) - setUntagged( true ); + setUntagged( true, resource ); KABC::Addressee::List list; QFile file( fileName ); file.open( IO_ReadOnly ); QByteArray rawData = file.readAll(); @@ -502,13 +502,27 @@ int AddressBook::importFromFile( QString fileName, bool replaceLabel, bool remo data = QString::fromUtf8( rawData.data(), rawData.size() + 1 ); KABC::VCardTool tool; list = tool.parseVCards( data ); KABC::Addressee::List::Iterator it; + + Resource * setRes = 0; + if ( !resource.isEmpty() ) { + KRES::Manager<Resource>::ActiveIterator it; + KRES::Manager<Resource> *manager = d->mManager; + for ( it = manager->activeBegin(); it != manager->activeEnd(); ++it ) { + qDebug("SaveAB::checking resource..." ); + if ( (*it)->name() == resource ) { + setRes = (*it); + qDebug("Inserting imported contacs to resource %s", resource.latin1()); + break; + } + } + } for ( it = list.begin(); it != list.end(); ++it ) { QString id = (*it).custom( "KADDRESSBOOK", "X-ExternalID" ); if ( !id.isEmpty() ) (*it).setIDStr(id ); - (*it).setResource( 0 ); + (*it).setResource( setRes ); if ( replaceLabel ) (*it).removeVoice(); if ( removeOld ) (*it).setTagged( true ); @@ -517,19 +531,29 @@ int AddressBook::importFromFile( QString fileName, bool replaceLabel, bool remo if ( removeOld ) removeUntagged(); return list.count(); } -void AddressBook::setUntagged(bool setNonSyncTagged) // = false) +void AddressBook::setUntagged(bool setNonSyncTagged, QString resource) // = false , "") { Iterator ait; - for ( ait = begin(); ait != end(); ++ait ) { - if ( setNonSyncTagged ) { - if ( (*ait).resource() && ! (*ait).resource()->includeInSync() ) { + if ( !resource.isEmpty() ) { + for ( ait = begin(); ait != end(); ++ait ) { + if ( (*ait).resource() && (*ait).resource()->name() == resource ) { + (*ait).setTagged( false ); + } + else (*ait).setTagged( true ); + } + } else { + for ( ait = begin(); ait != end(); ++ait ) { + if ( setNonSyncTagged ) { + if ( (*ait).resource() && ! (*ait).resource()->includeInSync() ) { + (*ait).setTagged( true ); + } else + (*ait).setTagged( false ); } else (*ait).setTagged( false ); - } else - (*ait).setTagged( false ); + } } } void AddressBook::removeUntagged() { diff --git a/kabc/addressbook.h b/kabc/addressbook.h index 4a0d0a3..e6daa5e 100644 --- a/kabc/addressbook.h +++ b/kabc/addressbook.h @@ -147,10 +147,10 @@ class AddressBook : public QObject void removeSyncInfo( QString syncProfile); void preparePhoneSync( QString currentSyncDevice, bool isPreSync ); void export2File( QString fileName, QString resourceName = "" ); bool export2PhoneFormat( QStringList uids ,QString fileName ); - int importFromFile( QString fileName, bool replaceLabel = false, bool removeOld = false ); - void setUntagged( bool setNonSyncTagged = false ); + int importFromFile( QString fileName, bool replaceLabel = false, bool removeOld = false, QString resource = "" ); + void setUntagged( bool setNonSyncTagged = false, QString resource = "" ); void removeUntagged(); void findNewExtIds( QString fileName, QString currentSyncDevice ); /** Returns a iterator for first entry of address book. |