summaryrefslogtreecommitdiffabout
path: root/kabc
Unidiff
Diffstat (limited to 'kabc') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/addressee.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/kabc/addressee.cpp b/kabc/addressee.cpp
index d6b70c4..c34f671 100644
--- a/kabc/addressee.cpp
+++ b/kabc/addressee.cpp
@@ -1,820 +1,819 @@
1/*** Warning! This file has been generated by the script makeaddressee ***/ 1/*** Warning! This file has been generated by the script makeaddressee ***/
2/* 2/*
3 This file is part of libkabc. 3 This file is part of libkabc.
4 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 4 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
5 5
6 This library is free software; you can redistribute it and/or 6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Library General Public 7 modify it under the terms of the GNU Library General Public
8 License as published by the Free Software Foundation; either 8 License as published by the Free Software Foundation; either
9 version 2 of the License, or (at your option) any later version. 9 version 2 of the License, or (at your option) any later version.
10 10
11 This library is distributed in the hope that it will be useful, 11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Library General Public License for more details. 14 Library General Public License for more details.
15 15
16 You should have received a copy of the GNU Library General Public License 16 You should have received a copy of the GNU Library General Public License
17 along with this library; see the file COPYING.LIB. If not, write to 17 along with this library; see the file COPYING.LIB. If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. 19 Boston, MA 02111-1307, USA.
20*/ 20*/
21 21
22/* 22/*
23Enhanced Version of the file for platform independent KDE tools. 23Enhanced Version of the file for platform independent KDE tools.
24Copyright (c) 2004 Ulf Schenk 24Copyright (c) 2004 Ulf Schenk
25 25
26$Id$ 26$Id$
27*/ 27*/
28 28
29#include <kconfig.h> 29#include <kconfig.h>
30 30
31#include <ksharedptr.h> 31#include <ksharedptr.h>
32#include <kdebug.h> 32#include <kdebug.h>
33#include <kapplication.h> 33#include <kapplication.h>
34#include <klocale.h> 34#include <klocale.h>
35#include <kidmanager.h> 35#include <kidmanager.h>
36//US 36//US
37#include <kstandarddirs.h> 37#include <kstandarddirs.h>
38#include <libkcal/syncdefines.h> 38#include <libkcal/syncdefines.h>
39 39
40//US #include "resource.h" 40//US #include "resource.h"
41#include "addressee.h" 41#include "addressee.h"
42 42
43using namespace KABC; 43using namespace KABC;
44 44
45static bool matchBinaryPattern( int value, int pattern ); 45static bool matchBinaryPattern( int value, int pattern );
46 46
47struct Addressee::AddresseeData : public KShared 47struct Addressee::AddresseeData : public KShared
48{ 48{
49 QString uid; 49 QString uid;
50 QString name; 50 QString name;
51 QString formattedName; 51 QString formattedName;
52 QString familyName; 52 QString familyName;
53 QString givenName; 53 QString givenName;
54 QString additionalName; 54 QString additionalName;
55 QString prefix; 55 QString prefix;
56 QString suffix; 56 QString suffix;
57 QString nickName; 57 QString nickName;
58 QDateTime birthday; 58 QDateTime birthday;
59 QString mailer; 59 QString mailer;
60 TimeZone timeZone; 60 TimeZone timeZone;
61 Geo geo; 61 Geo geo;
62 QString title; 62 QString title;
63 QString role; 63 QString role;
64 QString organization; 64 QString organization;
65 QString note; 65 QString note;
66 QString productId; 66 QString productId;
67 QDateTime revision; 67 QDateTime revision;
68 QString sortString; 68 QString sortString;
69 KURL url; 69 KURL url;
70 Secrecy secrecy; 70 Secrecy secrecy;
71 Picture logo; 71 Picture logo;
72 Picture photo; 72 Picture photo;
73 Sound sound; 73 Sound sound;
74 Agent agent; 74 Agent agent;
75 QString mExternalId; 75 QString mExternalId;
76 PhoneNumber::List phoneNumbers; 76 PhoneNumber::List phoneNumbers;
77 Address::List addresses; 77 Address::List addresses;
78 Key::List keys; 78 Key::List keys;
79 QStringList emails; 79 QStringList emails;
80 QStringList categories; 80 QStringList categories;
81 QStringList custom; 81 QStringList custom;
82 int mTempSyncStat; 82 int mTempSyncStat;
83 Resource *resource; 83 Resource *resource;
84 84
85 bool empty :1; 85 bool empty :1;
86 bool changed :1; 86 bool changed :1;
87}; 87};
88 88
89Addressee::Addressee() 89Addressee::Addressee()
90{ 90{
91 mData = new AddresseeData; 91 mData = new AddresseeData;
92 mData->empty = true; 92 mData->empty = true;
93 mData->changed = false; 93 mData->changed = false;
94 mData->resource = 0; 94 mData->resource = 0;
95 mData->mExternalId = ":"; 95 mData->mExternalId = ":";
96 mData->revision = QDateTime ( QDate( 2004,1,1)); 96 mData->revision = QDateTime ( QDate( 2004,1,1));
97 mData->mTempSyncStat = SYNC_TEMPSTATE_INITIAL; 97 mData->mTempSyncStat = SYNC_TEMPSTATE_INITIAL;
98} 98}
99 99
100Addressee::~Addressee() 100Addressee::~Addressee()
101{ 101{
102} 102}
103 103
104Addressee::Addressee( const Addressee &a ) 104Addressee::Addressee( const Addressee &a )
105{ 105{
106 mData = a.mData; 106 mData = a.mData;
107} 107}
108 108
109Addressee &Addressee::operator=( const Addressee &a ) 109Addressee &Addressee::operator=( const Addressee &a )
110{ 110{
111 mData = a.mData; 111 mData = a.mData;
112 return (*this); 112 return (*this);
113} 113}
114 114
115Addressee Addressee::copy() 115Addressee Addressee::copy()
116{ 116{
117 Addressee a; 117 Addressee a;
118 *(a.mData) = *mData; 118 *(a.mData) = *mData;
119 return a; 119 return a;
120} 120}
121 121
122void Addressee::detach() 122void Addressee::detach()
123{ 123{
124 if ( mData.count() == 1 ) return; 124 if ( mData.count() == 1 ) return;
125 *this = copy(); 125 *this = copy();
126} 126}
127 127
128bool Addressee::operator==( const Addressee &a ) const 128bool Addressee::operator==( const Addressee &a ) const
129{ 129{
130 if ( uid() != a.uid() ) return false; 130 if ( uid() != a.uid() ) return false;
131 if ( mData->name != a.mData->name ) return false; 131 if ( mData->name != a.mData->name ) return false;
132 if ( mData->formattedName != a.mData->formattedName ) return false; 132 if ( mData->formattedName != a.mData->formattedName ) return false;
133 if ( mData->familyName != a.mData->familyName ) return false; 133 if ( mData->familyName != a.mData->familyName ) return false;
134 if ( mData->givenName != a.mData->givenName ) return false; 134 if ( mData->givenName != a.mData->givenName ) return false;
135 if ( mData->additionalName != a.mData->additionalName ) return false; 135 if ( mData->additionalName != a.mData->additionalName ) return false;
136 if ( mData->prefix != a.mData->prefix ) return false; 136 if ( mData->prefix != a.mData->prefix ) return false;
137 if ( mData->suffix != a.mData->suffix ) return false; 137 if ( mData->suffix != a.mData->suffix ) return false;
138 if ( mData->nickName != a.mData->nickName ) return false; 138 if ( mData->nickName != a.mData->nickName ) return false;
139 if ( mData->birthday != a.mData->birthday ) return false; 139 if ( mData->birthday != a.mData->birthday ) return false;
140 if ( mData->mailer != a.mData->mailer ) return false; 140 if ( mData->mailer != a.mData->mailer ) return false;
141 if ( mData->timeZone != a.mData->timeZone ) return false; 141 if ( mData->timeZone != a.mData->timeZone ) return false;
142 if ( mData->geo != a.mData->geo ) return false; 142 if ( mData->geo != a.mData->geo ) return false;
143 if ( mData->title != a.mData->title ) return false; 143 if ( mData->title != a.mData->title ) return false;
144 if ( mData->role != a.mData->role ) return false; 144 if ( mData->role != a.mData->role ) return false;
145 if ( mData->organization != a.mData->organization ) return false; 145 if ( mData->organization != a.mData->organization ) return false;
146 if ( mData->note != a.mData->note ) return false; 146 if ( mData->note != a.mData->note ) return false;
147 if ( mData->productId != a.mData->productId ) return false; 147 if ( mData->productId != a.mData->productId ) return false;
148 if ( mData->revision != a.mData->revision ) return false; 148 if ( mData->revision != a.mData->revision ) return false;
149 if ( mData->sortString != a.mData->sortString ) return false; 149 if ( mData->sortString != a.mData->sortString ) return false;
150 if ( mData->secrecy != a.mData->secrecy ) return false; 150 if ( mData->secrecy != a.mData->secrecy ) return false;
151 if ( mData->logo != a.mData->logo ) return false; 151 if ( mData->logo != a.mData->logo ) return false;
152 if ( mData->photo != a.mData->photo ) return false; 152 if ( mData->photo != a.mData->photo ) return false;
153 if ( mData->sound != a.mData->sound ) return false; 153 if ( mData->sound != a.mData->sound ) return false;
154 if ( mData->agent != a.mData->agent ) return false; 154 if ( mData->agent != a.mData->agent ) return false;
155 if ( ( mData->url.isValid() || a.mData->url.isValid() ) && 155 if ( ( mData->url.isValid() || a.mData->url.isValid() ) &&
156 ( mData->url != a.mData->url ) ) return false; 156 ( mData->url != a.mData->url ) ) return false;
157 if ( mData->phoneNumbers != a.mData->phoneNumbers ) return false; 157 if ( mData->phoneNumbers != a.mData->phoneNumbers ) return false;
158 if ( mData->addresses != a.mData->addresses ) return false; 158 if ( mData->addresses != a.mData->addresses ) return false;
159 if ( mData->keys != a.mData->keys ) return false; 159 if ( mData->keys != a.mData->keys ) return false;
160 if ( mData->emails != a.mData->emails ) return false; 160 if ( mData->emails != a.mData->emails ) return false;
161 if ( mData->categories != a.mData->categories ) return false; 161 if ( mData->categories != a.mData->categories ) return false;
162 if ( mData->custom != a.mData->custom ) return false; 162 if ( mData->custom != a.mData->custom ) return false;
163 163
164 return true; 164 return true;
165} 165}
166 166
167bool Addressee::operator!=( const Addressee &a ) const 167bool Addressee::operator!=( const Addressee &a ) const
168{ 168{
169 return !( a == *this ); 169 return !( a == *this );
170} 170}
171 171
172bool Addressee::isEmpty() const 172bool Addressee::isEmpty() const
173{ 173{
174 return mData->empty; 174 return mData->empty;
175} 175}
176ulong Addressee::getCsum4List( const QStringList & attList) 176ulong Addressee::getCsum4List( const QStringList & attList)
177{ 177{
178 int max = attList.count(); 178 int max = attList.count();
179 ulong cSum = 0; 179 ulong cSum = 0;
180 int j,k,i; 180 int j,k,i;
181 int add; 181 int add;
182 for ( i = 0; i < max ; ++i ) { 182 for ( i = 0; i < max ; ++i ) {
183 QString s = attList[i]; 183 QString s = attList[i];
184 if ( ! s.isEmpty() ){ 184 if ( ! s.isEmpty() ){
185 j = s.length(); 185 j = s.length();
186 for ( k = 0; k < j; ++k ) { 186 for ( k = 0; k < j; ++k ) {
187 int mul = k +1; 187 int mul = k +1;
188 add = s[k].unicode (); 188 add = s[k].unicode ();
189 if ( k < 16 ) 189 if ( k < 16 )
190 mul = mul * mul; 190 mul = mul * mul;
191 int ii = i+1; 191 int ii = i+1;
192 add = add * mul *ii*ii*ii; 192 add = add * mul *ii*ii*ii;
193 cSum += add; 193 cSum += add;
194 } 194 }
195 } 195 }
196 196
197 } 197 }
198 //QString dump = attList.join(","); 198 //QString dump = attList.join(",");
199 //qDebug("csum: %d %s", cSum,dump.latin1()); 199 //qDebug("csum: %d %s", cSum,dump.latin1());
200 200
201 return cSum; 201 return cSum;
202 202
203} 203}
204void Addressee::computeCsum(const QString &dev) 204void Addressee::computeCsum(const QString &dev)
205{ 205{
206 QStringList l; 206 QStringList l;
207 if ( !mData->name.isEmpty() ) l.append(mData->name); 207 if ( !mData->name.isEmpty() ) l.append(mData->name);
208 if ( !mData->formattedName.isEmpty() ) l.append(mData->formattedName ); 208 if ( !mData->formattedName.isEmpty() ) l.append(mData->formattedName );
209 if ( !mData->familyName.isEmpty() ) l.append( mData->familyName ); 209 if ( !mData->familyName.isEmpty() ) l.append( mData->familyName );
210 if ( !mData->givenName.isEmpty() ) l.append(mData->givenName ); 210 if ( !mData->givenName.isEmpty() ) l.append(mData->givenName );
211 if ( !mData->additionalName ) l.append( mData->additionalName ); 211 if ( !mData->additionalName ) l.append( mData->additionalName );
212 if ( !mData->prefix.isEmpty() ) l.append( mData->prefix ); 212 if ( !mData->prefix.isEmpty() ) l.append( mData->prefix );
213 if ( !mData->suffix.isEmpty() ) l.append( mData->suffix ); 213 if ( !mData->suffix.isEmpty() ) l.append( mData->suffix );
214 if ( !mData->nickName.isEmpty() ) l.append( mData->nickName ); 214 if ( !mData->nickName.isEmpty() ) l.append( mData->nickName );
215 if ( mData->birthday.isValid() ) l.append( mData->birthday.toString() ); 215 if ( mData->birthday.isValid() ) l.append( mData->birthday.toString() );
216 if ( !mData->mailer.isEmpty() ) l.append( mData->mailer ); 216 if ( !mData->mailer.isEmpty() ) l.append( mData->mailer );
217 if ( mData->timeZone.isValid() ) l.append( mData->timeZone.asString() ); 217 if ( mData->timeZone.isValid() ) l.append( mData->timeZone.asString() );
218 if ( mData->geo.isValid() ) l.append( mData->geo.asString() ); 218 if ( mData->geo.isValid() ) l.append( mData->geo.asString() );
219 if ( !mData->title .isEmpty() ) l.append( mData->title ); 219 if ( !mData->title .isEmpty() ) l.append( mData->title );
220 if ( !mData->role.isEmpty() ) l.append( mData->role ); 220 if ( !mData->role.isEmpty() ) l.append( mData->role );
221 if ( !mData->organization.isEmpty() ) l.append( mData->organization ); 221 if ( !mData->organization.isEmpty() ) l.append( mData->organization );
222 if ( !mData->note.isEmpty() ) l.append( mData->note ); 222 if ( !mData->note.isEmpty() ) l.append( mData->note );
223 if ( !mData->productId.isEmpty() ) l.append(mData->productId ); 223 if ( !mData->productId.isEmpty() ) l.append(mData->productId );
224 if ( !mData->sortString.isEmpty() ) l.append( mData->sortString ); 224 if ( !mData->sortString.isEmpty() ) l.append( mData->sortString );
225 if ( mData->secrecy.isValid() ) l.append( mData->secrecy.asString()); 225 if ( mData->secrecy.isValid() ) l.append( mData->secrecy.asString());
226 // if ( !mData->logo.isEmpty() ) l.append( ); 226 // if ( !mData->logo.isEmpty() ) l.append( );
227 //if ( !mData->photo.isEmpty() ) l.append( ); 227 //if ( !mData->photo.isEmpty() ) l.append( );
228 //if ( !mData->sound.isEmpty() ) l.append( ); 228 //if ( !mData->sound.isEmpty() ) l.append( );
229 //if ( !mData->agent.isEmpty() ) l.append( ); 229 //if ( !mData->agent.isEmpty() ) l.append( );
230 //if ( mData->url.isValid() ) l.append( ); 230 //if ( mData->url.isValid() ) l.append( );
231#if 0 231#if 0
232 if ( !mData->phoneNumbers.isEmpty() ) l.append( ); 232 if ( !mData->phoneNumbers.isEmpty() ) l.append( );
233 if ( !mData->addresses.isEmpty() ) l.append( ); 233 if ( !mData->addresses.isEmpty() ) l.append( );
234 //if ( !mData->keys.isEmpty() ) l.append( ); 234 //if ( !mData->keys.isEmpty() ) l.append( );
235 if ( !mData->emails.isEmpty() ) l.append( ); 235 if ( !mData->emails.isEmpty() ) l.append( );
236 if ( !mData->categories .isEmpty() ) l.append( ); 236 if ( !mData->categories .isEmpty() ) l.append( );
237 if ( !mData->custom.isEmpty() ) l.append( ); 237 if ( !mData->custom.isEmpty() ) l.append( );
238#endif 238#endif
239 KABC::PhoneNumber::List phoneNumbers; 239 KABC::PhoneNumber::List phoneNumbers;
240 KABC::PhoneNumber::List::Iterator phoneIter; 240 KABC::PhoneNumber::List::Iterator phoneIter;
241 241
242 QStringList t; 242 QStringList t;
243 for ( phoneIter = mData->phoneNumbers.begin(); phoneIter != mData->phoneNumbers.end(); 243 for ( phoneIter = mData->phoneNumbers.begin(); phoneIter != mData->phoneNumbers.end();
244 ++phoneIter ) 244 ++phoneIter )
245 t.append( ( *phoneIter ).number()+QString::number( ( *phoneIter ).type() ) ); 245 t.append( ( *phoneIter ).number()+QString::number( ( *phoneIter ).type() ) );
246 t.sort(); 246 t.sort();
247 uint iii; 247 uint iii;
248 for ( iii = 0; iii < t.count(); ++iii) 248 for ( iii = 0; iii < t.count(); ++iii)
249 l.append( t[iii] ); 249 l.append( t[iii] );
250 t = mData->emails; 250 t = mData->emails;
251 t.sort(); 251 t.sort();
252 for ( iii = 0; iii < t.count(); ++iii) 252 for ( iii = 0; iii < t.count(); ++iii)
253 l.append( t[iii] ); 253 l.append( t[iii] );
254 t = mData->categories; 254 t = mData->categories;
255 t.sort(); 255 t.sort();
256 for ( iii = 0; iii < t.count(); ++iii) 256 for ( iii = 0; iii < t.count(); ++iii)
257 l.append( t[iii] ); 257 l.append( t[iii] );
258 t = mData->custom; 258 t = mData->custom;
259 t.sort(); 259 t.sort();
260 for ( iii = 0; iii < t.count(); ++iii) 260 for ( iii = 0; iii < t.count(); ++iii)
261 l.append( t[iii] ); 261 l.append( t[iii] );
262 KABC::Address::List::Iterator addressIter; 262 KABC::Address::List::Iterator addressIter;
263 for ( addressIter = mData->addresses.begin(); addressIter != mData->addresses.end(); 263 for ( addressIter = mData->addresses.begin(); addressIter != mData->addresses.end();
264 ++addressIter ) { 264 ++addressIter ) {
265 t = (*addressIter).asList(); 265 t = (*addressIter).asList();
266 t.sort(); 266 t.sort();
267 for ( iii = 0; iii < t.count(); ++iii) 267 for ( iii = 0; iii < t.count(); ++iii)
268 l.append( t[iii] ); 268 l.append( t[iii] );
269 } 269 }
270 uint cs = getCsum4List(l); 270 uint cs = getCsum4List(l);
271 qDebug("CSUM computed %d %s %s", cs,QString::number (cs ).latin1(), uid().latin1() ); 271 // qDebug("CSUM computed %d %s %s", cs,QString::number (cs ).latin1(), uid().latin1() );
272 setCsum( dev, QString::number (cs )); 272 setCsum( dev, QString::number (cs ));
273} 273}
274void Addressee::removeID(const QString &prof) 274void Addressee::removeID(const QString &prof)
275{ 275{
276 detach(); 276 detach();
277 mData->mExternalId = KIdManager::removeId ( mData->mExternalId, prof); 277 mData->mExternalId = KIdManager::removeId ( mData->mExternalId, prof);
278 278
279} 279}
280void Addressee::setID( const QString & prof , const QString & id ) 280void Addressee::setID( const QString & prof , const QString & id )
281{ 281{
282 detach(); 282 detach();
283 qDebug("setID1 %s %s %s",mData->mExternalId.latin1(), prof.latin1(), id.latin1() );
284 mData->mExternalId = KIdManager::setId ( mData->mExternalId, prof, id ); 283 mData->mExternalId = KIdManager::setId ( mData->mExternalId, prof, id );
285 qDebug("setID2 %s %s %s",mData->mExternalId.latin1(), prof.latin1(), id.latin1() ); 284 //qDebug("setID2 %s %s %s",mData->mExternalId.latin1(), prof.latin1(), id.latin1() );
286} 285}
287void Addressee::setTempSyncStat( int id ) 286void Addressee::setTempSyncStat( int id )
288{ 287{
289 if ( mData->mTempSyncStat == id ) return; 288 if ( mData->mTempSyncStat == id ) return;
290 detach(); 289 detach();
291 mData->mTempSyncStat = id; 290 mData->mTempSyncStat = id;
292} 291}
293int Addressee::tempSyncStat() const 292int Addressee::tempSyncStat() const
294{ 293{
295 return mData->mTempSyncStat; 294 return mData->mTempSyncStat;
296} 295}
297 296
298QString Addressee::getID( const QString & prof) 297QString Addressee::getID( const QString & prof)
299{ 298{
300 return KIdManager::getId ( mData->mExternalId, prof ); 299 return KIdManager::getId ( mData->mExternalId, prof );
301} 300}
302 301
303void Addressee::setCsum( const QString & prof , const QString & id ) 302void Addressee::setCsum( const QString & prof , const QString & id )
304{ 303{
305 detach(); 304 detach();
306 qDebug("setcsum1 %s %s %s",mData->mExternalId.latin1(), prof.latin1(), id.latin1() ); 305 //qDebug("setcsum1 %s %s %s",mData->mExternalId.latin1(), prof.latin1(), id.latin1() );
307 mData->mExternalId = KIdManager::setCsum ( mData->mExternalId, prof, id ); 306 mData->mExternalId = KIdManager::setCsum ( mData->mExternalId, prof, id );
308 qDebug("setcsum2 %s ",mData->mExternalId.latin1() ); 307 //qDebug("setcsum2 %s ",mData->mExternalId.latin1() );
309} 308}
310 309
311QString Addressee::getCsum( const QString & prof) 310QString Addressee::getCsum( const QString & prof)
312{ 311{
313 return KIdManager::getCsum ( mData->mExternalId, prof ); 312 return KIdManager::getCsum ( mData->mExternalId, prof );
314} 313}
315 314
316void Addressee::setIDStr( const QString & s ) 315void Addressee::setIDStr( const QString & s )
317{ 316{
318 detach(); 317 detach();
319 mData->mExternalId = s; 318 mData->mExternalId = s;
320} 319}
321 320
322QString Addressee::IDStr() const 321QString Addressee::IDStr() const
323{ 322{
324 return mData->mExternalId; 323 return mData->mExternalId;
325} 324}
326 325
327 326
328void Addressee::setUid( const QString &id ) 327void Addressee::setUid( const QString &id )
329{ 328{
330 if ( id == mData->uid ) return; 329 if ( id == mData->uid ) return;
331 detach(); 330 detach();
332 mData->empty = false; 331 mData->empty = false;
333 mData->uid = id; 332 mData->uid = id;
334} 333}
335 334
336QString Addressee::uid() const 335QString Addressee::uid() const
337{ 336{
338 if ( mData->uid.isEmpty() ) 337 if ( mData->uid.isEmpty() )
339 mData->uid = KApplication::randomString( 10 ); 338 mData->uid = KApplication::randomString( 10 );
340 339
341 return mData->uid; 340 return mData->uid;
342} 341}
343 342
344QString Addressee::uidLabel() 343QString Addressee::uidLabel()
345{ 344{
346 return i18n("Unique Identifier"); 345 return i18n("Unique Identifier");
347} 346}
348 347
349void Addressee::setName( const QString &name ) 348void Addressee::setName( const QString &name )
350{ 349{
351 if ( name == mData->name ) return; 350 if ( name == mData->name ) return;
352 detach(); 351 detach();
353 mData->empty = false; 352 mData->empty = false;
354 mData->name = name; 353 mData->name = name;
355} 354}
356 355
357QString Addressee::name() const 356QString Addressee::name() const
358{ 357{
359 return mData->name; 358 return mData->name;
360} 359}
361 360
362QString Addressee::nameLabel() 361QString Addressee::nameLabel()
363{ 362{
364 return i18n("Name"); 363 return i18n("Name");
365} 364}
366 365
367 366
368void Addressee::setFormattedName( const QString &formattedName ) 367void Addressee::setFormattedName( const QString &formattedName )
369{ 368{
370 if ( formattedName == mData->formattedName ) return; 369 if ( formattedName == mData->formattedName ) return;
371 detach(); 370 detach();
372 mData->empty = false; 371 mData->empty = false;
373 mData->formattedName = formattedName; 372 mData->formattedName = formattedName;
374} 373}
375 374
376QString Addressee::formattedName() const 375QString Addressee::formattedName() const
377{ 376{
378 return mData->formattedName; 377 return mData->formattedName;
379} 378}
380 379
381QString Addressee::formattedNameLabel() 380QString Addressee::formattedNameLabel()
382{ 381{
383 return i18n("Formatted Name"); 382 return i18n("Formatted Name");
384} 383}
385 384
386 385
387void Addressee::setFamilyName( const QString &familyName ) 386void Addressee::setFamilyName( const QString &familyName )
388{ 387{
389 if ( familyName == mData->familyName ) return; 388 if ( familyName == mData->familyName ) return;
390 detach(); 389 detach();
391 mData->empty = false; 390 mData->empty = false;
392 mData->familyName = familyName; 391 mData->familyName = familyName;
393} 392}
394 393
395QString Addressee::familyName() const 394QString Addressee::familyName() const
396{ 395{
397 return mData->familyName; 396 return mData->familyName;
398} 397}
399 398
400QString Addressee::familyNameLabel() 399QString Addressee::familyNameLabel()
401{ 400{
402 return i18n("Family Name"); 401 return i18n("Family Name");
403} 402}
404 403
405 404
406void Addressee::setGivenName( const QString &givenName ) 405void Addressee::setGivenName( const QString &givenName )
407{ 406{
408 if ( givenName == mData->givenName ) return; 407 if ( givenName == mData->givenName ) return;
409 detach(); 408 detach();
410 mData->empty = false; 409 mData->empty = false;
411 mData->givenName = givenName; 410 mData->givenName = givenName;
412} 411}
413 412
414QString Addressee::givenName() const 413QString Addressee::givenName() const
415{ 414{
416 return mData->givenName; 415 return mData->givenName;
417} 416}
418 417
419QString Addressee::givenNameLabel() 418QString Addressee::givenNameLabel()
420{ 419{
421 return i18n("Given Name"); 420 return i18n("Given Name");
422} 421}
423 422
424 423
425void Addressee::setAdditionalName( const QString &additionalName ) 424void Addressee::setAdditionalName( const QString &additionalName )
426{ 425{
427 if ( additionalName == mData->additionalName ) return; 426 if ( additionalName == mData->additionalName ) return;
428 detach(); 427 detach();
429 mData->empty = false; 428 mData->empty = false;
430 mData->additionalName = additionalName; 429 mData->additionalName = additionalName;
431} 430}
432 431
433QString Addressee::additionalName() const 432QString Addressee::additionalName() const
434{ 433{
435 return mData->additionalName; 434 return mData->additionalName;
436} 435}
437 436
438QString Addressee::additionalNameLabel() 437QString Addressee::additionalNameLabel()
439{ 438{
440 return i18n("Additional Names"); 439 return i18n("Additional Names");
441} 440}
442 441
443 442
444void Addressee::setPrefix( const QString &prefix ) 443void Addressee::setPrefix( const QString &prefix )
445{ 444{
446 if ( prefix == mData->prefix ) return; 445 if ( prefix == mData->prefix ) return;
447 detach(); 446 detach();
448 mData->empty = false; 447 mData->empty = false;
449 mData->prefix = prefix; 448 mData->prefix = prefix;
450} 449}
451 450
452QString Addressee::prefix() const 451QString Addressee::prefix() const
453{ 452{
454 return mData->prefix; 453 return mData->prefix;
455} 454}
456 455
457QString Addressee::prefixLabel() 456QString Addressee::prefixLabel()
458{ 457{
459 return i18n("Honorific Prefixes"); 458 return i18n("Honorific Prefixes");
460} 459}
461 460
462 461
463void Addressee::setSuffix( const QString &suffix ) 462void Addressee::setSuffix( const QString &suffix )
464{ 463{
465 if ( suffix == mData->suffix ) return; 464 if ( suffix == mData->suffix ) return;
466 detach(); 465 detach();
467 mData->empty = false; 466 mData->empty = false;
468 mData->suffix = suffix; 467 mData->suffix = suffix;
469} 468}
470 469
471QString Addressee::suffix() const 470QString Addressee::suffix() const
472{ 471{
473 return mData->suffix; 472 return mData->suffix;
474} 473}
475 474
476QString Addressee::suffixLabel() 475QString Addressee::suffixLabel()
477{ 476{
478 return i18n("Honorific Suffixes"); 477 return i18n("Honorific Suffixes");
479} 478}
480 479
481 480
482void Addressee::setNickName( const QString &nickName ) 481void Addressee::setNickName( const QString &nickName )
483{ 482{
484 if ( nickName == mData->nickName ) return; 483 if ( nickName == mData->nickName ) return;
485 detach(); 484 detach();
486 mData->empty = false; 485 mData->empty = false;
487 mData->nickName = nickName; 486 mData->nickName = nickName;
488} 487}
489 488
490QString Addressee::nickName() const 489QString Addressee::nickName() const
491{ 490{
492 return mData->nickName; 491 return mData->nickName;
493} 492}
494 493
495QString Addressee::nickNameLabel() 494QString Addressee::nickNameLabel()
496{ 495{
497 return i18n("Nick Name"); 496 return i18n("Nick Name");
498} 497}
499 498
500 499
501void Addressee::setBirthday( const QDateTime &birthday ) 500void Addressee::setBirthday( const QDateTime &birthday )
502{ 501{
503 if ( birthday == mData->birthday ) return; 502 if ( birthday == mData->birthday ) return;
504 detach(); 503 detach();
505 mData->empty = false; 504 mData->empty = false;
506 mData->birthday = birthday; 505 mData->birthday = birthday;
507} 506}
508 507
509QDateTime Addressee::birthday() const 508QDateTime Addressee::birthday() const
510{ 509{
511 return mData->birthday; 510 return mData->birthday;
512} 511}
513 512
514QString Addressee::birthdayLabel() 513QString Addressee::birthdayLabel()
515{ 514{
516 return i18n("Birthday"); 515 return i18n("Birthday");
517} 516}
518 517
519 518
520QString Addressee::homeAddressStreetLabel() 519QString Addressee::homeAddressStreetLabel()
521{ 520{
522 return i18n("Home Address Street"); 521 return i18n("Home Address Street");
523} 522}
524 523
525 524
526QString Addressee::homeAddressLocalityLabel() 525QString Addressee::homeAddressLocalityLabel()
527{ 526{
528 return i18n("Home Address Locality"); 527 return i18n("Home Address Locality");
529} 528}
530 529
531 530
532QString Addressee::homeAddressRegionLabel() 531QString Addressee::homeAddressRegionLabel()
533{ 532{
534 return i18n("Home Address Region"); 533 return i18n("Home Address Region");
535} 534}
536 535
537 536
538QString Addressee::homeAddressPostalCodeLabel() 537QString Addressee::homeAddressPostalCodeLabel()
539{ 538{
540 return i18n("Home Address Postal Code"); 539 return i18n("Home Address Postal Code");
541} 540}
542 541
543 542
544QString Addressee::homeAddressCountryLabel() 543QString Addressee::homeAddressCountryLabel()
545{ 544{
546 return i18n("Home Address Country"); 545 return i18n("Home Address Country");
547} 546}
548 547
549 548
550QString Addressee::homeAddressLabelLabel() 549QString Addressee::homeAddressLabelLabel()
551{ 550{
552 return i18n("Home Address Label"); 551 return i18n("Home Address Label");
553} 552}
554 553
555 554
556QString Addressee::businessAddressStreetLabel() 555QString Addressee::businessAddressStreetLabel()
557{ 556{
558 return i18n("Business Address Street"); 557 return i18n("Business Address Street");
559} 558}
560 559
561 560
562QString Addressee::businessAddressLocalityLabel() 561QString Addressee::businessAddressLocalityLabel()
563{ 562{
564 return i18n("Business Address Locality"); 563 return i18n("Business Address Locality");
565} 564}
566 565
567 566
568QString Addressee::businessAddressRegionLabel() 567QString Addressee::businessAddressRegionLabel()
569{ 568{
570 return i18n("Business Address Region"); 569 return i18n("Business Address Region");
571} 570}
572 571
573 572
574QString Addressee::businessAddressPostalCodeLabel() 573QString Addressee::businessAddressPostalCodeLabel()
575{ 574{
576 return i18n("Business Address Postal Code"); 575 return i18n("Business Address Postal Code");
577} 576}
578 577
579 578
580QString Addressee::businessAddressCountryLabel() 579QString Addressee::businessAddressCountryLabel()
581{ 580{
582 return i18n("Business Address Country"); 581 return i18n("Business Address Country");
583} 582}
584 583
585 584
586QString Addressee::businessAddressLabelLabel() 585QString Addressee::businessAddressLabelLabel()
587{ 586{
588 return i18n("Business Address Label"); 587 return i18n("Business Address Label");
589} 588}
590 589
591 590
592QString Addressee::homePhoneLabel() 591QString Addressee::homePhoneLabel()
593{ 592{
594 return i18n("Home Phone"); 593 return i18n("Home Phone");
595} 594}
596 595
597 596
598QString Addressee::businessPhoneLabel() 597QString Addressee::businessPhoneLabel()
599{ 598{
600 return i18n("Business Phone"); 599 return i18n("Business Phone");
601} 600}
602 601
603 602
604QString Addressee::mobilePhoneLabel() 603QString Addressee::mobilePhoneLabel()
605{ 604{
606 return i18n("Mobile Phone"); 605 return i18n("Mobile Phone");
607} 606}
608 607
609 608
610QString Addressee::homeFaxLabel() 609QString Addressee::homeFaxLabel()
611{ 610{
612 return i18n("Home Fax"); 611 return i18n("Home Fax");
613} 612}
614 613
615 614
616QString Addressee::businessFaxLabel() 615QString Addressee::businessFaxLabel()
617{ 616{
618 return i18n("Business Fax"); 617 return i18n("Business Fax");
619} 618}
620 619
621 620
622QString Addressee::carPhoneLabel() 621QString Addressee::carPhoneLabel()
623{ 622{
624 return i18n("Car Phone"); 623 return i18n("Car Phone");
625} 624}
626 625
627 626
628QString Addressee::isdnLabel() 627QString Addressee::isdnLabel()
629{ 628{
630 return i18n("ISDN"); 629 return i18n("ISDN");
631} 630}
632 631
633 632
634QString Addressee::pagerLabel() 633QString Addressee::pagerLabel()
635{ 634{
636 return i18n("Pager"); 635 return i18n("Pager");
637} 636}
638 637
639QString Addressee::sipLabel() 638QString Addressee::sipLabel()
640{ 639{
641 return i18n("SIP"); 640 return i18n("SIP");
642} 641}
643 642
644QString Addressee::emailLabel() 643QString Addressee::emailLabel()
645{ 644{
646 return i18n("Email Address"); 645 return i18n("Email Address");
647} 646}
648 647
649 648
650void Addressee::setMailer( const QString &mailer ) 649void Addressee::setMailer( const QString &mailer )
651{ 650{
652 if ( mailer == mData->mailer ) return; 651 if ( mailer == mData->mailer ) return;
653 detach(); 652 detach();
654 mData->empty = false; 653 mData->empty = false;
655 mData->mailer = mailer; 654 mData->mailer = mailer;
656} 655}
657 656
658QString Addressee::mailer() const 657QString Addressee::mailer() const
659{ 658{
660 return mData->mailer; 659 return mData->mailer;
661} 660}
662 661
663QString Addressee::mailerLabel() 662QString Addressee::mailerLabel()
664{ 663{
665 return i18n("Mail Client"); 664 return i18n("Mail Client");
666} 665}
667 666
668 667
669void Addressee::setTimeZone( const TimeZone &timeZone ) 668void Addressee::setTimeZone( const TimeZone &timeZone )
670{ 669{
671 if ( timeZone == mData->timeZone ) return; 670 if ( timeZone == mData->timeZone ) return;
672 detach(); 671 detach();
673 mData->empty = false; 672 mData->empty = false;
674 mData->timeZone = timeZone; 673 mData->timeZone = timeZone;
675} 674}
676 675
677TimeZone Addressee::timeZone() const 676TimeZone Addressee::timeZone() const
678{ 677{
679 return mData->timeZone; 678 return mData->timeZone;
680} 679}
681 680
682QString Addressee::timeZoneLabel() 681QString Addressee::timeZoneLabel()
683{ 682{
684 return i18n("Time Zone"); 683 return i18n("Time Zone");
685} 684}
686 685
687 686
688void Addressee::setGeo( const Geo &geo ) 687void Addressee::setGeo( const Geo &geo )
689{ 688{
690 if ( geo == mData->geo ) return; 689 if ( geo == mData->geo ) return;
691 detach(); 690 detach();
692 mData->empty = false; 691 mData->empty = false;
693 mData->geo = geo; 692 mData->geo = geo;
694} 693}
695 694
696Geo Addressee::geo() const 695Geo Addressee::geo() const
697{ 696{
698 return mData->geo; 697 return mData->geo;
699} 698}
700 699
701QString Addressee::geoLabel() 700QString Addressee::geoLabel()
702{ 701{
703 return i18n("Geographic Position"); 702 return i18n("Geographic Position");
704} 703}
705 704
706 705
707void Addressee::setTitle( const QString &title ) 706void Addressee::setTitle( const QString &title )
708{ 707{
709 if ( title == mData->title ) return; 708 if ( title == mData->title ) return;
710 detach(); 709 detach();
711 mData->empty = false; 710 mData->empty = false;
712 mData->title = title; 711 mData->title = title;
713} 712}
714 713
715QString Addressee::title() const 714QString Addressee::title() const
716{ 715{
717 return mData->title; 716 return mData->title;
718} 717}
719 718
720QString Addressee::titleLabel() 719QString Addressee::titleLabel()
721{ 720{
722 return i18n("Title"); 721 return i18n("Title");
723} 722}
724 723
725 724
726void Addressee::setRole( const QString &role ) 725void Addressee::setRole( const QString &role )
727{ 726{
728 if ( role == mData->role ) return; 727 if ( role == mData->role ) return;
729 detach(); 728 detach();
730 mData->empty = false; 729 mData->empty = false;
731 mData->role = role; 730 mData->role = role;
732} 731}
733 732
734QString Addressee::role() const 733QString Addressee::role() const
735{ 734{
736 return mData->role; 735 return mData->role;
737} 736}
738 737
739QString Addressee::roleLabel() 738QString Addressee::roleLabel()
740{ 739{
741 return i18n("Role"); 740 return i18n("Role");
742} 741}
743 742
744 743
745void Addressee::setOrganization( const QString &organization ) 744void Addressee::setOrganization( const QString &organization )
746{ 745{
747 if ( organization == mData->organization ) return; 746 if ( organization == mData->organization ) return;
748 detach(); 747 detach();
749 mData->empty = false; 748 mData->empty = false;
750 mData->organization = organization; 749 mData->organization = organization;
751} 750}
752 751
753QString Addressee::organization() const 752QString Addressee::organization() const
754{ 753{
755 return mData->organization; 754 return mData->organization;
756} 755}
757 756
758QString Addressee::organizationLabel() 757QString Addressee::organizationLabel()
759{ 758{
760 return i18n("Organization"); 759 return i18n("Organization");
761} 760}
762 761
763 762
764void Addressee::setNote( const QString &note ) 763void Addressee::setNote( const QString &note )
765{ 764{
766 if ( note == mData->note ) return; 765 if ( note == mData->note ) return;
767 detach(); 766 detach();
768 mData->empty = false; 767 mData->empty = false;
769 mData->note = note; 768 mData->note = note;
770} 769}
771 770
772QString Addressee::note() const 771QString Addressee::note() const
773{ 772{
774 return mData->note; 773 return mData->note;
775} 774}
776 775
777QString Addressee::noteLabel() 776QString Addressee::noteLabel()
778{ 777{
779 return i18n("Note"); 778 return i18n("Note");
780} 779}
781 780
782 781
783void Addressee::setProductId( const QString &productId ) 782void Addressee::setProductId( const QString &productId )
784{ 783{
785 if ( productId == mData->productId ) return; 784 if ( productId == mData->productId ) return;
786 detach(); 785 detach();
787 mData->empty = false; 786 mData->empty = false;
788 mData->productId = productId; 787 mData->productId = productId;
789} 788}
790 789
791QString Addressee::productId() const 790QString Addressee::productId() const
792{ 791{
793 return mData->productId; 792 return mData->productId;
794} 793}
795 794
796QString Addressee::productIdLabel() 795QString Addressee::productIdLabel()
797{ 796{
798 return i18n("Product Identifier"); 797 return i18n("Product Identifier");
799} 798}
800 799
801 800
802void Addressee::setRevision( const QDateTime &revision ) 801void Addressee::setRevision( const QDateTime &revision )
803{ 802{
804 if ( revision == mData->revision ) return; 803 if ( revision == mData->revision ) return;
805 detach(); 804 detach();
806 mData->empty = false; 805 mData->empty = false;
807 mData->revision = revision; 806 mData->revision = revision;
808} 807}
809 808
810QDateTime Addressee::revision() const 809QDateTime Addressee::revision() const
811{ 810{
812 return mData->revision; 811 return mData->revision;
813} 812}
814 813
815QString Addressee::revisionLabel() 814QString Addressee::revisionLabel()
816{ 815{
817 return i18n("Revision Date"); 816 return i18n("Revision Date");
818} 817}
819 818
820 819