From efdd0735bda81dcd82dfb6d6dc0d0c143f249336 Mon Sep 17 00:00:00 2001 From: zautrix Date: Wed, 13 Oct 2004 12:38:18 +0000 Subject: mege contact fixes --- (limited to 'kabc/addressee.cpp') diff --git a/kabc/addressee.cpp b/kabc/addressee.cpp index cb10160..2aca559 100644 --- a/kabc/addressee.cpp +++ b/kabc/addressee.cpp @@ -307,8 +307,9 @@ void Addressee::mergeContact( const Addressee& ad , bool isSubSet) // = false) bool found = false; PhoneNumber::List::Iterator it; for( it = mData->phoneNumbers.begin(); it != mData->phoneNumbers.end(); ++it ) { - if ( (*it) == ( *phoneItAD ) ) { + if ( ( *phoneItAD ).contains( (*it) ) ) { found = true; + (*it).setType( ( *phoneItAD ).type() ); break; } } @@ -358,48 +359,40 @@ void Addressee::mergeContact( const Addressee& ad , bool isSubSet) // = false) mData->agent = ad.mData->agent; } } - -#if 0 - - if ( mData->url.isValid() ) - if ( ! mData->url.path().isEmpty()) l.append( mData->url.path() ); - KABC::PhoneNumber::List phoneNumbers; - KABC::PhoneNumber::List::Iterator phoneIter; - - QStringList t; - for ( phoneIter = mData->phoneNumbers.begin(); phoneIter != mData->phoneNumbers.end(); - ++phoneIter ) - t.append( ( *phoneIter ).number()+QString::number( ( *phoneIter ).type() ) ); - t.sort(); - uint iii; - for ( iii = 0; iii < t.count(); ++iii) - l.append( t[iii] ); - t = mData->emails; - t.sort(); - for ( iii = 0; iii < t.count(); ++iii) - l.append( t[iii] ); - t = mData->categories; - t.sort(); - for ( iii = 0; iii < t.count(); ++iii) - l.append( t[iii] ); - t = mData->custom; - t.sort(); - for ( iii = 0; iii < t.count(); ++iii) - l.append( t[iii] ); - KABC::Address::List::Iterator addressIter; - for ( addressIter = mData->addresses.begin(); addressIter != mData->addresses.end(); - ++addressIter ) { - t = (*addressIter).asList(); - t.sort(); - for ( iii = 0; iii < t.count(); ++iii) - l.append( t[iii] ); + { + Key::List::Iterator itA; + for( itA = ad.mData->keys.begin(); itA != ad.mData->keys.end(); ++itA ) { + bool found = false; + Key::List::Iterator it; + for( it = mData->keys.begin(); it != mData->keys.end(); ++it ) { + if ( (*it) == (*itA)) { + found = true; + break; + + } + } + if ( ! found ) { + mData->keys.append( *itA ); + } + } } + KABC::Address::List::Iterator addressIterA; + for ( addressIterA = ad.mData->addresses.begin(); addressIterA != ad.mData->addresses.end(); ++addressIterA ) { + bool found = false; + KABC::Address::List::Iterator addressIter; + for ( addressIter = mData->addresses.begin(); addressIter != mData->addresses.end(); + ++addressIter ) { + if ( (*addressIter) == (*addressIterA)) { + found = true; + (*addressIter).setType( (*addressIterA).type() ); + break; + } -#endif - - // pending: - // merging addresses - // merging keys + } + if ( ! found ) { + mData->addresses.append( *addressIterA ); + } + } //qDebug("merge contact %s ", ad.uid().latin1()); setUid( ad.uid() ); setRevision( ad.revision() ); -- cgit v0.9.0.2