summaryrefslogtreecommitdiffabout
path: root/kabc/addressee.cpp
Side-by-side diff
Diffstat (limited to 'kabc/addressee.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/addressee.cpp99
1 files changed, 97 insertions, 2 deletions
diff --git a/kabc/addressee.cpp b/kabc/addressee.cpp
index 7f04d8f..0f5d605 100644
--- a/kabc/addressee.cpp
+++ b/kabc/addressee.cpp
@@ -176,2 +176,98 @@ bool Addressee::isEmpty() const
}
+ulong Addressee::getCsum4List( const QStringList & attList)
+{
+ int max = attList.count();
+ ulong cSum = 0;
+ int j,k,i;
+ int add;
+ for ( i = 0; i < max ; ++i ) {
+ QString s = attList[i];
+ if ( ! s.isEmpty() ){
+ j = s.length();
+ for ( k = 0; k < j; ++k ) {
+ int mul = k +1;
+ add = s[k].unicode ();
+ if ( k < 16 )
+ mul = mul * mul;
+ int ii = i+1;
+ add = add * mul *ii*ii*ii;
+ cSum += add;
+ }
+ }
+
+ }
+ //QString dump = attList.join(",");
+ //qDebug("csum: %d %s", cSum,dump.latin1());
+
+ return cSum;
+
+}
+void Addressee::computeCsum(const QString &dev)
+{
+ QStringList l;
+ 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->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());
+ // if ( !mData->logo.isEmpty() ) l.append( );
+ //if ( !mData->photo.isEmpty() ) l.append( );
+ //if ( !mData->sound.isEmpty() ) l.append( );
+ //if ( !mData->agent.isEmpty() ) l.append( );
+ //if ( mData->url.isValid() ) l.append( );
+#if 0
+ if ( !mData->phoneNumbers.isEmpty() ) l.append( );
+ if ( !mData->addresses.isEmpty() ) l.append( );
+ //if ( !mData->keys.isEmpty() ) l.append( );
+ if ( !mData->emails.isEmpty() ) l.append( );
+ if ( !mData->categories .isEmpty() ) l.append( );
+ if ( !mData->custom.isEmpty() ) l.append( );
+#endif
+ 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] );
+ }
+ setCsum( dev, QString::number (getCsum4List(l)) );
+}
void Addressee::removeID(const QString &prof)
@@ -1452,3 +1548,3 @@ void Addressee::insertCustom( const QString &app, const QString &name,
if ( (*it).startsWith( qualifiedName ) ) {
- (*it) = qualifiedName + value;
+ (*it) = qualifiedName + value;
return;
@@ -1456,3 +1552,2 @@ void Addressee::insertCustom( const QString &app, const QString &name,
}
-
mData->custom.append( qualifiedName + value );