-rw-r--r-- | kabc/addressee.cpp | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/kabc/addressee.cpp b/kabc/addressee.cpp index 711c261..0157721 100644 --- a/kabc/addressee.cpp +++ b/kabc/addressee.cpp @@ -260,46 +260,50 @@ void Addressee::computeCsum(const QString &dev) 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] ); } uint cs = getCsum4List(l); // qDebug("CSUM computed %d %s %s", cs,QString::number (cs ).latin1(), uid().latin1() ); setCsum( dev, QString::number (cs )); } -void Addressee::mergeContact( Addressee ad ) +void Addressee::mergeContact( const Addressee& ad ) { + + detach(); + if ( mData->name.isEmpty() ) mData->name = ad.mData->name; + if ( mData->formattedName.isEmpty() ) mData->formattedName = ad.mData->formattedName; + if ( mData->familyName.isEmpty() ) mData->familyName = ad.mData->familyName; + if ( mData->givenName.isEmpty() ) mData->givenName = ad.mData->givenName ; + if ( mData->additionalName ) mData->additionalName = ad.mData->additionalName; + if ( mData->prefix.isEmpty() ) mData->prefix = ad.mData->prefix; + if ( mData->suffix.isEmpty() ) mData->suffix = ad.mData->suffix; + if ( mData->nickName.isEmpty() ) mData->nickName = ad.mData->nickName; + if ( !mData->birthday.isValid() ) + if ( ad.mData->birthday.isValid()) + mData->birthday = ad.mData->birthday; + if ( mData->mailer.isEmpty() ) mData->mailer = ad.mData->mailer; #if 0 - if ( !mData->name.isEmpty() ) l.append(mData->name); - if ( !mData->formattedName.isEmpty() ) l.append(mData->formattedName ); - if ( !mData->familyName.isEmpty() ) l.append( mData->familyName ); - if ( !mData->givenName.isEmpty() ) l.append(mData->givenName ); - if ( !mData->additionalName ) l.append( mData->additionalName ); - if ( !mData->prefix.isEmpty() ) l.append( mData->prefix ); - if ( !mData->suffix.isEmpty() ) l.append( mData->suffix ); - if ( !mData->nickName.isEmpty() ) l.append( mData->nickName ); - if ( mData->birthday.isValid() ) l.append( mData->birthday.toString() ); - if ( !mData->mailer.isEmpty() ) l.append( mData->mailer ); - if ( mData->timeZone.isValid() ) l.append( mData->timeZone.asString() ); + 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 } void Addressee::removeID(const QString &prof) { detach(); mData->mExternalId = KIdManager::removeId ( mData->mExternalId, prof); |