summaryrefslogtreecommitdiffabout
path: root/kabc/addressee.cpp
authorzautrix <zautrix>2004-10-13 12:38:18 (UTC)
committer zautrix <zautrix>2004-10-13 12:38:18 (UTC)
commitefdd0735bda81dcd82dfb6d6dc0d0c143f249336 (patch) (side-by-side diff)
tree8d67e4b51fbc3e8c48e1656c78054cfe6d2ead66 /kabc/addressee.cpp
parentf22ee1ec902fe2fc610786f39049fb84542b8726 (diff)
downloadkdepimpi-efdd0735bda81dcd82dfb6d6dc0d0c143f249336.zip
kdepimpi-efdd0735bda81dcd82dfb6d6dc0d0c143f249336.tar.gz
kdepimpi-efdd0735bda81dcd82dfb6d6dc0d0c143f249336.tar.bz2
mege contact fixes
Diffstat (limited to 'kabc/addressee.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/addressee.cpp75
1 files changed, 34 insertions, 41 deletions
diff --git a/kabc/addressee.cpp b/kabc/addressee.cpp
index cb10160..2aca559 100644
--- a/kabc/addressee.cpp
+++ b/kabc/addressee.cpp
@@ -304,14 +304,15 @@ void Addressee::mergeContact( const Addressee& ad , bool isSubSet) // = false)
PhoneNumber::List phoneAD = ad.phoneNumbers();
PhoneNumber::List::Iterator phoneItAD;
for ( phoneItAD = phoneAD.begin(); phoneItAD != phoneAD.end(); ++phoneItAD ) {
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;
}
}
if ( ! found )
mData->phoneNumbers.append( *phoneItAD );
}
@@ -355,54 +356,46 @@ void Addressee::mergeContact( const Addressee& ad , bool isSubSet) // = false)
}
if ( !mData->agent.isIntern() ) {
if ( mData->agent.url().isEmpty() ) {
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() );
}
bool Addressee::removeVoice()