summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--kabc/addressee.cpp31
1 files changed, 19 insertions, 12 deletions
diff --git a/kabc/addressee.cpp b/kabc/addressee.cpp
index 0157721..3a2dc5f 100644
--- a/kabc/addressee.cpp
+++ b/kabc/addressee.cpp
@@ -147,5 +147,5 @@ bool Addressee::operator==( const Addressee &a ) const
if ( mData->note != a.mData->note ) return false;
if ( mData->productId != a.mData->productId ) return false;
- if ( mData->revision != a.mData->revision ) return false;
+ //if ( mData->revision != a.mData->revision ) return false;
if ( mData->sortString != a.mData->sortString ) return false;
if ( mData->secrecy != a.mData->secrecy ) return false;
@@ -290,15 +290,22 @@ void Addressee::mergeContact( const Addressee& ad )
mData->birthday = ad.mData->birthday;
if ( mData->mailer.isEmpty() ) mData->mailer = ad.mData->mailer;
-#if 0
- if ( !mData->timeZone.isValid() ) l.append( mData->timeZone.asString() );
- if ( mData->geo.isValid() ) l.append( mData->geo.asString() );
- if ( !mData->title .isEmpty() ) l.append( mData->title );
- if ( !mData->role.isEmpty() ) l.append( mData->role );
- if ( !mData->organization.isEmpty() ) l.append( mData->organization );
- if ( !mData->note.isEmpty() ) l.append( mData->note );
- if ( !mData->productId.isEmpty() ) l.append(mData->productId );
- if ( !mData->sortString.isEmpty() ) l.append( mData->sortString );
- if ( mData->secrecy.isValid() ) l.append( mData->secrecy.asString());
-#endif
+ if ( !mData->timeZone.isValid() ) mData->timeZone = ad.mData->timeZone;
+ if ( !mData->geo.isValid() ) mData->geo = ad.mData->geo;
+ if ( mData->title .isEmpty() ) mData->title = ad.mData->title ;
+ if ( mData->role.isEmpty() ) mData->role = ad.mData->role ;
+ if ( mData->organization.isEmpty() ) mData->organization = ad.mData->organization ;
+ if ( mData->note.isEmpty() ) mData->note = ad.mData->note ;
+ if ( mData->productId.isEmpty() ) mData->productId = ad.mData->productId;
+ 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
}