-rw-r--r-- | kabc/addressee.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/kabc/addressee.cpp b/kabc/addressee.cpp index 25c77f6..e571980 100644 --- a/kabc/addressee.cpp +++ b/kabc/addressee.cpp @@ -302,32 +302,64 @@ void Addressee::mergeContact( const Addressee& ad ) if ( mData->sortString.isEmpty() ) mData->sortString = ad.mData->sortString; if ( !mData->secrecy.isValid() ) mData->secrecy = ad.mData->secrecy; if ( ( !mData->url.isValid() && ad.mData->url.isValid() ) ) mData->url = ad.mData->url ; // pending: // merging phonenumbers // merging addresses // merging emails; // merging categories; // merging custom; // merging keys qDebug("merge contact %s ", ad.uid().latin1()); setUid( ad.uid() ); setRevision( ad.revision() ); } +// removes all emails but the first +// needed by phone sync +void Addressee::simplifyEmails() +{ + if ( mData->emails.count() == 0 ) return ; + QString email = mData->emails.first(); + detach(); + mData->emails.clear(); + mData->emails.append( email ); +} + +void Addressee::simplifyPhoneNumbers() +{ + KABC::PhoneNumber::List removeNumbers; + KABC::PhoneNumber::List::Iterator phoneIter; + for ( phoneIter = mData->phoneNumbers.begin(); phoneIter != mData->phoneNumbers.end(); + ++phoneIter ) { + if ( ! ( *phoneIter ).simplifyNumber() ) + removeNumbers.append( ( *phoneIter ) ); + } + for ( phoneIter = removeNumbers.begin(); phoneIter != removeNumbers.end(); + ++phoneIter ) { + removePhoneNumber(( *phoneIter )); + } +} +void Addressee::simplifyPhoneNumberTypes() +{ + KABC::PhoneNumber::List::Iterator phoneIter; + for ( phoneIter = mData->phoneNumbers.begin(); phoneIter != mData->phoneNumbers.end(); + ++phoneIter ) + ( *phoneIter ).simplifyType(); +} void Addressee::removeID(const QString &prof) { detach(); mData->mExternalId = KIdManager::removeId ( mData->mExternalId, prof); } void Addressee::setID( const QString & prof , const QString & id ) { detach(); mData->mExternalId = KIdManager::setId ( mData->mExternalId, prof, id ); //qDebug("setID2 %s %s %s",mData->mExternalId.latin1(), prof.latin1(), id.latin1() ); } void Addressee::setTempSyncStat( int id ) { if ( mData->mTempSyncStat == id ) return; detach(); |