summaryrefslogtreecommitdiffabout
path: root/kabc/addressee.cpp
Unidiff
Diffstat (limited to 'kabc/addressee.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/addressee.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/kabc/addressee.cpp b/kabc/addressee.cpp
index fb32f6e..7f04d8f 100644
--- a/kabc/addressee.cpp
+++ b/kabc/addressee.cpp
@@ -1,863 +1,864 @@
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 82
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 mTempSyncStat = SYNC_TEMPSTATE_INITIAL; 97 mTempSyncStat = SYNC_TEMPSTATE_INITIAL;
97} 98}
98 99
99Addressee::~Addressee() 100Addressee::~Addressee()
100{ 101{
101} 102}
102 103
103Addressee::Addressee( const Addressee &a ) 104Addressee::Addressee( const Addressee &a )
104{ 105{
105 mData = a.mData; 106 mData = a.mData;
106 mTempSyncStat = SYNC_TEMPSTATE_INITIAL; 107 mTempSyncStat = SYNC_TEMPSTATE_INITIAL;
107} 108}
108 109
109Addressee &Addressee::operator=( const Addressee &a ) 110Addressee &Addressee::operator=( const Addressee &a )
110{ 111{
111 mData = a.mData; 112 mData = a.mData;
112 return (*this); 113 return (*this);
113} 114}
114 115
115Addressee Addressee::copy() 116Addressee Addressee::copy()
116{ 117{
117 Addressee a; 118 Addressee a;
118 *(a.mData) = *mData; 119 *(a.mData) = *mData;
119 return a; 120 return a;
120} 121}
121 122
122void Addressee::detach() 123void Addressee::detach()
123{ 124{
124 if ( mData.count() == 1 ) return; 125 if ( mData.count() == 1 ) return;
125 *this = copy(); 126 *this = copy();
126} 127}
127 128
128bool Addressee::operator==( const Addressee &a ) const 129bool Addressee::operator==( const Addressee &a ) const
129{ 130{
130 if ( uid() != a.uid() ) return false; 131 if ( uid() != a.uid() ) return false;
131 if ( mData->name != a.mData->name ) return false; 132 if ( mData->name != a.mData->name ) return false;
132 if ( mData->formattedName != a.mData->formattedName ) return false; 133 if ( mData->formattedName != a.mData->formattedName ) return false;
133 if ( mData->familyName != a.mData->familyName ) return false; 134 if ( mData->familyName != a.mData->familyName ) return false;
134 if ( mData->givenName != a.mData->givenName ) return false; 135 if ( mData->givenName != a.mData->givenName ) return false;
135 if ( mData->additionalName != a.mData->additionalName ) return false; 136 if ( mData->additionalName != a.mData->additionalName ) return false;
136 if ( mData->prefix != a.mData->prefix ) return false; 137 if ( mData->prefix != a.mData->prefix ) return false;
137 if ( mData->suffix != a.mData->suffix ) return false; 138 if ( mData->suffix != a.mData->suffix ) return false;
138 if ( mData->nickName != a.mData->nickName ) return false; 139 if ( mData->nickName != a.mData->nickName ) return false;
139 if ( mData->birthday != a.mData->birthday ) return false; 140 if ( mData->birthday != a.mData->birthday ) return false;
140 if ( mData->mailer != a.mData->mailer ) return false; 141 if ( mData->mailer != a.mData->mailer ) return false;
141 if ( mData->timeZone != a.mData->timeZone ) return false; 142 if ( mData->timeZone != a.mData->timeZone ) return false;
142 if ( mData->geo != a.mData->geo ) return false; 143 if ( mData->geo != a.mData->geo ) return false;
143 if ( mData->title != a.mData->title ) return false; 144 if ( mData->title != a.mData->title ) return false;
144 if ( mData->role != a.mData->role ) return false; 145 if ( mData->role != a.mData->role ) return false;
145 if ( mData->organization != a.mData->organization ) return false; 146 if ( mData->organization != a.mData->organization ) return false;
146 if ( mData->note != a.mData->note ) return false; 147 if ( mData->note != a.mData->note ) return false;
147 if ( mData->productId != a.mData->productId ) return false; 148 if ( mData->productId != a.mData->productId ) return false;
148 if ( mData->revision != a.mData->revision ) return false; 149 if ( mData->revision != a.mData->revision ) return false;
149 if ( mData->sortString != a.mData->sortString ) return false; 150 if ( mData->sortString != a.mData->sortString ) return false;
150 if ( mData->secrecy != a.mData->secrecy ) return false; 151 if ( mData->secrecy != a.mData->secrecy ) return false;
151 if ( mData->logo != a.mData->logo ) return false; 152 if ( mData->logo != a.mData->logo ) return false;
152 if ( mData->photo != a.mData->photo ) return false; 153 if ( mData->photo != a.mData->photo ) return false;
153 if ( mData->sound != a.mData->sound ) return false; 154 if ( mData->sound != a.mData->sound ) return false;
154 if ( mData->agent != a.mData->agent ) return false; 155 if ( mData->agent != a.mData->agent ) return false;
155 if ( ( mData->url.isValid() || a.mData->url.isValid() ) && 156 if ( ( mData->url.isValid() || a.mData->url.isValid() ) &&
156 ( mData->url != a.mData->url ) ) return false; 157 ( mData->url != a.mData->url ) ) return false;
157 if ( mData->phoneNumbers != a.mData->phoneNumbers ) return false; 158 if ( mData->phoneNumbers != a.mData->phoneNumbers ) return false;
158 if ( mData->addresses != a.mData->addresses ) return false; 159 if ( mData->addresses != a.mData->addresses ) return false;
159 if ( mData->keys != a.mData->keys ) return false; 160 if ( mData->keys != a.mData->keys ) return false;
160 if ( mData->emails != a.mData->emails ) return false; 161 if ( mData->emails != a.mData->emails ) return false;
161 if ( mData->categories != a.mData->categories ) return false; 162 if ( mData->categories != a.mData->categories ) return false;
162 if ( mData->custom != a.mData->custom ) return false; 163 if ( mData->custom != a.mData->custom ) return false;
163 164
164 return true; 165 return true;
165} 166}
166 167
167bool Addressee::operator!=( const Addressee &a ) const 168bool Addressee::operator!=( const Addressee &a ) const
168{ 169{
169 return !( a == *this ); 170 return !( a == *this );
170} 171}
171 172
172bool Addressee::isEmpty() const 173bool Addressee::isEmpty() const
173{ 174{
174 return mData->empty; 175 return mData->empty;
175} 176}
176void Addressee::removeID(const QString &prof) 177void Addressee::removeID(const QString &prof)
177{ 178{
178 detach(); 179 detach();
179 mData->mExternalId = KIdManager::removeId ( mData->mExternalId, prof); 180 mData->mExternalId = KIdManager::removeId ( mData->mExternalId, prof);
180 181
181} 182}
182void Addressee::setID( const QString & prof , const QString & id ) 183void Addressee::setID( const QString & prof , const QString & id )
183{ 184{
184 detach(); 185 detach();
185 mData->mExternalId = KIdManager::setId ( mData->mExternalId, prof, id ); 186 mData->mExternalId = KIdManager::setId ( mData->mExternalId, prof, id );
186} 187}
187void Addressee::setTempSyncStat( int id ) 188void Addressee::setTempSyncStat( int id )
188{ 189{
189 mTempSyncStat = id; 190 mTempSyncStat = id;
190} 191}
191int Addressee::tempSyncStat() const 192int Addressee::tempSyncStat() const
192{ 193{
193 return mTempSyncStat; 194 return mTempSyncStat;
194} 195}
195 196
196QString Addressee::getID( const QString & prof) 197QString Addressee::getID( const QString & prof)
197{ 198{
198 return KIdManager::getId ( mData->mExternalId, prof ); 199 return KIdManager::getId ( mData->mExternalId, prof );
199} 200}
200 201
201void Addressee::setCsum( const QString & prof , const QString & id ) 202void Addressee::setCsum( const QString & prof , const QString & id )
202{ 203{
203 detach(); 204 detach();
204 mData->mExternalId = KIdManager::setCsum ( mData->mExternalId, prof, id ); 205 mData->mExternalId = KIdManager::setCsum ( mData->mExternalId, prof, id );
205} 206}
206 207
207QString Addressee::getCsum( const QString & prof) 208QString Addressee::getCsum( const QString & prof)
208{ 209{
209 return KIdManager::getCsum ( mData->mExternalId, prof ); 210 return KIdManager::getCsum ( mData->mExternalId, prof );
210} 211}
211 212
212void Addressee::setIDStr( const QString & s ) 213void Addressee::setIDStr( const QString & s )
213{ 214{
214 detach(); 215 detach();
215 mData->mExternalId = s; 216 mData->mExternalId = s;
216} 217}
217 218
218QString Addressee::IDStr() const 219QString Addressee::IDStr() const
219{ 220{
220 return mData->mExternalId; 221 return mData->mExternalId;
221} 222}
222 223
223 224
224void Addressee::setUid( const QString &id ) 225void Addressee::setUid( const QString &id )
225{ 226{
226 if ( id == mData->uid ) return; 227 if ( id == mData->uid ) return;
227 detach(); 228 detach();
228 mData->empty = false; 229 mData->empty = false;
229 mData->uid = id; 230 mData->uid = id;
230} 231}
231 232
232QString Addressee::uid() const 233QString Addressee::uid() const
233{ 234{
234 if ( mData->uid.isEmpty() ) 235 if ( mData->uid.isEmpty() )
235 mData->uid = KApplication::randomString( 10 ); 236 mData->uid = KApplication::randomString( 10 );
236 237
237 return mData->uid; 238 return mData->uid;
238} 239}
239 240
240QString Addressee::uidLabel() 241QString Addressee::uidLabel()
241{ 242{
242 return i18n("Unique Identifier"); 243 return i18n("Unique Identifier");
243} 244}
244 245
245void Addressee::setName( const QString &name ) 246void Addressee::setName( const QString &name )
246{ 247{
247 if ( name == mData->name ) return; 248 if ( name == mData->name ) return;
248 detach(); 249 detach();
249 mData->empty = false; 250 mData->empty = false;
250 mData->name = name; 251 mData->name = name;
251} 252}
252 253
253QString Addressee::name() const 254QString Addressee::name() const
254{ 255{
255 return mData->name; 256 return mData->name;
256} 257}
257 258
258QString Addressee::nameLabel() 259QString Addressee::nameLabel()
259{ 260{
260 return i18n("Name"); 261 return i18n("Name");
261} 262}
262 263
263 264
264void Addressee::setFormattedName( const QString &formattedName ) 265void Addressee::setFormattedName( const QString &formattedName )
265{ 266{
266 if ( formattedName == mData->formattedName ) return; 267 if ( formattedName == mData->formattedName ) return;
267 detach(); 268 detach();
268 mData->empty = false; 269 mData->empty = false;
269 mData->formattedName = formattedName; 270 mData->formattedName = formattedName;
270} 271}
271 272
272QString Addressee::formattedName() const 273QString Addressee::formattedName() const
273{ 274{
274 return mData->formattedName; 275 return mData->formattedName;
275} 276}
276 277
277QString Addressee::formattedNameLabel() 278QString Addressee::formattedNameLabel()
278{ 279{
279 return i18n("Formatted Name"); 280 return i18n("Formatted Name");
280} 281}
281 282
282 283
283void Addressee::setFamilyName( const QString &familyName ) 284void Addressee::setFamilyName( const QString &familyName )
284{ 285{
285 if ( familyName == mData->familyName ) return; 286 if ( familyName == mData->familyName ) return;
286 detach(); 287 detach();
287 mData->empty = false; 288 mData->empty = false;
288 mData->familyName = familyName; 289 mData->familyName = familyName;
289} 290}
290 291
291QString Addressee::familyName() const 292QString Addressee::familyName() const
292{ 293{
293 return mData->familyName; 294 return mData->familyName;
294} 295}
295 296
296QString Addressee::familyNameLabel() 297QString Addressee::familyNameLabel()
297{ 298{
298 return i18n("Family Name"); 299 return i18n("Family Name");
299} 300}
300 301
301 302
302void Addressee::setGivenName( const QString &givenName ) 303void Addressee::setGivenName( const QString &givenName )
303{ 304{
304 if ( givenName == mData->givenName ) return; 305 if ( givenName == mData->givenName ) return;
305 detach(); 306 detach();
306 mData->empty = false; 307 mData->empty = false;
307 mData->givenName = givenName; 308 mData->givenName = givenName;
308} 309}
309 310
310QString Addressee::givenName() const 311QString Addressee::givenName() const
311{ 312{
312 return mData->givenName; 313 return mData->givenName;
313} 314}
314 315
315QString Addressee::givenNameLabel() 316QString Addressee::givenNameLabel()
316{ 317{
317 return i18n("Given Name"); 318 return i18n("Given Name");
318} 319}
319 320
320 321
321void Addressee::setAdditionalName( const QString &additionalName ) 322void Addressee::setAdditionalName( const QString &additionalName )
322{ 323{
323 if ( additionalName == mData->additionalName ) return; 324 if ( additionalName == mData->additionalName ) return;
324 detach(); 325 detach();
325 mData->empty = false; 326 mData->empty = false;
326 mData->additionalName = additionalName; 327 mData->additionalName = additionalName;
327} 328}
328 329
329QString Addressee::additionalName() const 330QString Addressee::additionalName() const
330{ 331{
331 return mData->additionalName; 332 return mData->additionalName;
332} 333}
333 334
334QString Addressee::additionalNameLabel() 335QString Addressee::additionalNameLabel()
335{ 336{
336 return i18n("Additional Names"); 337 return i18n("Additional Names");
337} 338}
338 339
339 340
340void Addressee::setPrefix( const QString &prefix ) 341void Addressee::setPrefix( const QString &prefix )
341{ 342{
342 if ( prefix == mData->prefix ) return; 343 if ( prefix == mData->prefix ) return;
343 detach(); 344 detach();
344 mData->empty = false; 345 mData->empty = false;
345 mData->prefix = prefix; 346 mData->prefix = prefix;
346} 347}
347 348
348QString Addressee::prefix() const 349QString Addressee::prefix() const
349{ 350{
350 return mData->prefix; 351 return mData->prefix;
351} 352}
352 353
353QString Addressee::prefixLabel() 354QString Addressee::prefixLabel()
354{ 355{
355 return i18n("Honorific Prefixes"); 356 return i18n("Honorific Prefixes");
356} 357}
357 358
358 359
359void Addressee::setSuffix( const QString &suffix ) 360void Addressee::setSuffix( const QString &suffix )
360{ 361{
361 if ( suffix == mData->suffix ) return; 362 if ( suffix == mData->suffix ) return;
362 detach(); 363 detach();
363 mData->empty = false; 364 mData->empty = false;
364 mData->suffix = suffix; 365 mData->suffix = suffix;
365} 366}
366 367
367QString Addressee::suffix() const 368QString Addressee::suffix() const
368{ 369{
369 return mData->suffix; 370 return mData->suffix;
370} 371}
371 372
372QString Addressee::suffixLabel() 373QString Addressee::suffixLabel()
373{ 374{
374 return i18n("Honorific Suffixes"); 375 return i18n("Honorific Suffixes");
375} 376}
376 377
377 378
378void Addressee::setNickName( const QString &nickName ) 379void Addressee::setNickName( const QString &nickName )
379{ 380{
380 if ( nickName == mData->nickName ) return; 381 if ( nickName == mData->nickName ) return;
381 detach(); 382 detach();
382 mData->empty = false; 383 mData->empty = false;
383 mData->nickName = nickName; 384 mData->nickName = nickName;
384} 385}
385 386
386QString Addressee::nickName() const 387QString Addressee::nickName() const
387{ 388{
388 return mData->nickName; 389 return mData->nickName;
389} 390}
390 391
391QString Addressee::nickNameLabel() 392QString Addressee::nickNameLabel()
392{ 393{
393 return i18n("Nick Name"); 394 return i18n("Nick Name");
394} 395}
395 396
396 397
397void Addressee::setBirthday( const QDateTime &birthday ) 398void Addressee::setBirthday( const QDateTime &birthday )
398{ 399{
399 if ( birthday == mData->birthday ) return; 400 if ( birthday == mData->birthday ) return;
400 detach(); 401 detach();
401 mData->empty = false; 402 mData->empty = false;
402 mData->birthday = birthday; 403 mData->birthday = birthday;
403} 404}
404 405
405QDateTime Addressee::birthday() const 406QDateTime Addressee::birthday() const
406{ 407{
407 return mData->birthday; 408 return mData->birthday;
408} 409}
409 410
410QString Addressee::birthdayLabel() 411QString Addressee::birthdayLabel()
411{ 412{
412 return i18n("Birthday"); 413 return i18n("Birthday");
413} 414}
414 415
415 416
416QString Addressee::homeAddressStreetLabel() 417QString Addressee::homeAddressStreetLabel()
417{ 418{
418 return i18n("Home Address Street"); 419 return i18n("Home Address Street");
419} 420}
420 421
421 422
422QString Addressee::homeAddressLocalityLabel() 423QString Addressee::homeAddressLocalityLabel()
423{ 424{
424 return i18n("Home Address Locality"); 425 return i18n("Home Address Locality");
425} 426}
426 427
427 428
428QString Addressee::homeAddressRegionLabel() 429QString Addressee::homeAddressRegionLabel()
429{ 430{
430 return i18n("Home Address Region"); 431 return i18n("Home Address Region");
431} 432}
432 433
433 434
434QString Addressee::homeAddressPostalCodeLabel() 435QString Addressee::homeAddressPostalCodeLabel()
435{ 436{
436 return i18n("Home Address Postal Code"); 437 return i18n("Home Address Postal Code");
437} 438}
438 439
439 440
440QString Addressee::homeAddressCountryLabel() 441QString Addressee::homeAddressCountryLabel()
441{ 442{
442 return i18n("Home Address Country"); 443 return i18n("Home Address Country");
443} 444}
444 445
445 446
446QString Addressee::homeAddressLabelLabel() 447QString Addressee::homeAddressLabelLabel()
447{ 448{
448 return i18n("Home Address Label"); 449 return i18n("Home Address Label");
449} 450}
450 451
451 452
452QString Addressee::businessAddressStreetLabel() 453QString Addressee::businessAddressStreetLabel()
453{ 454{
454 return i18n("Business Address Street"); 455 return i18n("Business Address Street");
455} 456}
456 457
457 458
458QString Addressee::businessAddressLocalityLabel() 459QString Addressee::businessAddressLocalityLabel()
459{ 460{
460 return i18n("Business Address Locality"); 461 return i18n("Business Address Locality");
461} 462}
462 463
463 464
464QString Addressee::businessAddressRegionLabel() 465QString Addressee::businessAddressRegionLabel()
465{ 466{
466 return i18n("Business Address Region"); 467 return i18n("Business Address Region");
467} 468}
468 469
469 470
470QString Addressee::businessAddressPostalCodeLabel() 471QString Addressee::businessAddressPostalCodeLabel()
471{ 472{
472 return i18n("Business Address Postal Code"); 473 return i18n("Business Address Postal Code");
473} 474}
474 475
475 476
476QString Addressee::businessAddressCountryLabel() 477QString Addressee::businessAddressCountryLabel()
477{ 478{
478 return i18n("Business Address Country"); 479 return i18n("Business Address Country");
479} 480}
480 481
481 482
482QString Addressee::businessAddressLabelLabel() 483QString Addressee::businessAddressLabelLabel()
483{ 484{
484 return i18n("Business Address Label"); 485 return i18n("Business Address Label");
485} 486}
486 487
487 488
488QString Addressee::homePhoneLabel() 489QString Addressee::homePhoneLabel()
489{ 490{
490 return i18n("Home Phone"); 491 return i18n("Home Phone");
491} 492}
492 493
493 494
494QString Addressee::businessPhoneLabel() 495QString Addressee::businessPhoneLabel()
495{ 496{
496 return i18n("Business Phone"); 497 return i18n("Business Phone");
497} 498}
498 499
499 500
500QString Addressee::mobilePhoneLabel() 501QString Addressee::mobilePhoneLabel()
501{ 502{
502 return i18n("Mobile Phone"); 503 return i18n("Mobile Phone");
503} 504}
504 505
505 506
506QString Addressee::homeFaxLabel() 507QString Addressee::homeFaxLabel()
507{ 508{
508 return i18n("Home Fax"); 509 return i18n("Home Fax");
509} 510}
510 511
511 512
512QString Addressee::businessFaxLabel() 513QString Addressee::businessFaxLabel()
513{ 514{
514 return i18n("Business Fax"); 515 return i18n("Business Fax");
515} 516}
516 517
517 518
518QString Addressee::carPhoneLabel() 519QString Addressee::carPhoneLabel()
519{ 520{
520 return i18n("Car Phone"); 521 return i18n("Car Phone");
521} 522}
522 523
523 524
524QString Addressee::isdnLabel() 525QString Addressee::isdnLabel()
525{ 526{
526 return i18n("ISDN"); 527 return i18n("ISDN");
527} 528}
528 529
529 530
530QString Addressee::pagerLabel() 531QString Addressee::pagerLabel()
531{ 532{
532 return i18n("Pager"); 533 return i18n("Pager");
533} 534}
534 535
535QString Addressee::sipLabel() 536QString Addressee::sipLabel()
536{ 537{
537 return i18n("SIP"); 538 return i18n("SIP");
538} 539}
539 540
540QString Addressee::emailLabel() 541QString Addressee::emailLabel()
541{ 542{
542 return i18n("Email Address"); 543 return i18n("Email Address");
543} 544}
544 545
545 546
546void Addressee::setMailer( const QString &mailer ) 547void Addressee::setMailer( const QString &mailer )
547{ 548{
548 if ( mailer == mData->mailer ) return; 549 if ( mailer == mData->mailer ) return;
549 detach(); 550 detach();
550 mData->empty = false; 551 mData->empty = false;
551 mData->mailer = mailer; 552 mData->mailer = mailer;
552} 553}
553 554
554QString Addressee::mailer() const 555QString Addressee::mailer() const
555{ 556{
556 return mData->mailer; 557 return mData->mailer;
557} 558}
558 559
559QString Addressee::mailerLabel() 560QString Addressee::mailerLabel()
560{ 561{
561 return i18n("Mail Client"); 562 return i18n("Mail Client");
562} 563}
563 564
564 565
565void Addressee::setTimeZone( const TimeZone &timeZone ) 566void Addressee::setTimeZone( const TimeZone &timeZone )
566{ 567{
567 if ( timeZone == mData->timeZone ) return; 568 if ( timeZone == mData->timeZone ) return;
568 detach(); 569 detach();
569 mData->empty = false; 570 mData->empty = false;
570 mData->timeZone = timeZone; 571 mData->timeZone = timeZone;
571} 572}
572 573
573TimeZone Addressee::timeZone() const 574TimeZone Addressee::timeZone() const
574{ 575{
575 return mData->timeZone; 576 return mData->timeZone;
576} 577}
577 578
578QString Addressee::timeZoneLabel() 579QString Addressee::timeZoneLabel()
579{ 580{
580 return i18n("Time Zone"); 581 return i18n("Time Zone");
581} 582}
582 583
583 584
584void Addressee::setGeo( const Geo &geo ) 585void Addressee::setGeo( const Geo &geo )
585{ 586{
586 if ( geo == mData->geo ) return; 587 if ( geo == mData->geo ) return;
587 detach(); 588 detach();
588 mData->empty = false; 589 mData->empty = false;
589 mData->geo = geo; 590 mData->geo = geo;
590} 591}
591 592
592Geo Addressee::geo() const 593Geo Addressee::geo() const
593{ 594{
594 return mData->geo; 595 return mData->geo;
595} 596}
596 597
597QString Addressee::geoLabel() 598QString Addressee::geoLabel()
598{ 599{
599 return i18n("Geographic Position"); 600 return i18n("Geographic Position");
600} 601}
601 602
602 603
603void Addressee::setTitle( const QString &title ) 604void Addressee::setTitle( const QString &title )
604{ 605{
605 if ( title == mData->title ) return; 606 if ( title == mData->title ) return;
606 detach(); 607 detach();
607 mData->empty = false; 608 mData->empty = false;
608 mData->title = title; 609 mData->title = title;
609} 610}
610 611
611QString Addressee::title() const 612QString Addressee::title() const
612{ 613{
613 return mData->title; 614 return mData->title;
614} 615}
615 616
616QString Addressee::titleLabel() 617QString Addressee::titleLabel()
617{ 618{
618 return i18n("Title"); 619 return i18n("Title");
619} 620}
620 621
621 622
622void Addressee::setRole( const QString &role ) 623void Addressee::setRole( const QString &role )
623{ 624{
624 if ( role == mData->role ) return; 625 if ( role == mData->role ) return;
625 detach(); 626 detach();
626 mData->empty = false; 627 mData->empty = false;
627 mData->role = role; 628 mData->role = role;
628} 629}
629 630
630QString Addressee::role() const 631QString Addressee::role() const
631{ 632{
632 return mData->role; 633 return mData->role;
633} 634}
634 635
635QString Addressee::roleLabel() 636QString Addressee::roleLabel()
636{ 637{
637 return i18n("Role"); 638 return i18n("Role");
638} 639}
639 640
640 641
641void Addressee::setOrganization( const QString &organization ) 642void Addressee::setOrganization( const QString &organization )
642{ 643{
643 if ( organization == mData->organization ) return; 644 if ( organization == mData->organization ) return;
644 detach(); 645 detach();
645 mData->empty = false; 646 mData->empty = false;
646 mData->organization = organization; 647 mData->organization = organization;
647} 648}
648 649
649QString Addressee::organization() const 650QString Addressee::organization() const
650{ 651{
651 return mData->organization; 652 return mData->organization;
652} 653}
653 654
654QString Addressee::organizationLabel() 655QString Addressee::organizationLabel()
655{ 656{
656 return i18n("Organization"); 657 return i18n("Organization");
657} 658}
658 659
659 660
660void Addressee::setNote( const QString &note ) 661void Addressee::setNote( const QString &note )
661{ 662{
662 if ( note == mData->note ) return; 663 if ( note == mData->note ) return;
663 detach(); 664 detach();
664 mData->empty = false; 665 mData->empty = false;
665 mData->note = note; 666 mData->note = note;
666} 667}
667 668
668QString Addressee::note() const 669QString Addressee::note() const
669{ 670{
670 return mData->note; 671 return mData->note;
671} 672}
672 673
673QString Addressee::noteLabel() 674QString Addressee::noteLabel()
674{ 675{
675 return i18n("Note"); 676 return i18n("Note");
676} 677}
677 678
678 679
679void Addressee::setProductId( const QString &productId ) 680void Addressee::setProductId( const QString &productId )
680{ 681{
681 if ( productId == mData->productId ) return; 682 if ( productId == mData->productId ) return;
682 detach(); 683 detach();
683 mData->empty = false; 684 mData->empty = false;
684 mData->productId = productId; 685 mData->productId = productId;
685} 686}
686 687
687QString Addressee::productId() const 688QString Addressee::productId() const
688{ 689{
689 return mData->productId; 690 return mData->productId;
690} 691}
691 692
692QString Addressee::productIdLabel() 693QString Addressee::productIdLabel()
693{ 694{
694 return i18n("Product Identifier"); 695 return i18n("Product Identifier");
695} 696}
696 697
697 698
698void Addressee::setRevision( const QDateTime &revision ) 699void Addressee::setRevision( const QDateTime &revision )
699{ 700{
700 if ( revision == mData->revision ) return; 701 if ( revision == mData->revision ) return;
701 detach(); 702 detach();
702 mData->empty = false; 703 mData->empty = false;
703 mData->revision = revision; 704 mData->revision = revision;
704} 705}
705 706
706QDateTime Addressee::revision() const 707QDateTime Addressee::revision() const
707{ 708{
708 return mData->revision; 709 return mData->revision;
709} 710}
710 711
711QString Addressee::revisionLabel() 712QString Addressee::revisionLabel()
712{ 713{
713 return i18n("Revision Date"); 714 return i18n("Revision Date");
714} 715}
715 716
716 717
717void Addressee::setSortString( const QString &sortString ) 718void Addressee::setSortString( const QString &sortString )
718{ 719{
719 if ( sortString == mData->sortString ) return; 720 if ( sortString == mData->sortString ) return;
720 detach(); 721 detach();
721 mData->empty = false; 722 mData->empty = false;
722 mData->sortString = sortString; 723 mData->sortString = sortString;
723} 724}
724 725
725QString Addressee::sortString() const 726QString Addressee::sortString() const
726{ 727{
727 return mData->sortString; 728 return mData->sortString;
728} 729}
729 730
730QString Addressee::sortStringLabel() 731QString Addressee::sortStringLabel()
731{ 732{
732 return i18n("Sort String"); 733 return i18n("Sort String");
733} 734}
734 735
735 736
736void Addressee::setUrl( const KURL &url ) 737void Addressee::setUrl( const KURL &url )
737{ 738{
738 if ( url == mData->url ) return; 739 if ( url == mData->url ) return;
739 detach(); 740 detach();
740 mData->empty = false; 741 mData->empty = false;
741 mData->url = url; 742 mData->url = url;
742} 743}
743 744
744KURL Addressee::url() const 745KURL Addressee::url() const
745{ 746{
746 return mData->url; 747 return mData->url;
747} 748}
748 749
749QString Addressee::urlLabel() 750QString Addressee::urlLabel()
750{ 751{
751 return i18n("URL"); 752 return i18n("URL");
752} 753}
753 754
754 755
755void Addressee::setSecrecy( const Secrecy &secrecy ) 756void Addressee::setSecrecy( const Secrecy &secrecy )
756{ 757{
757 if ( secrecy == mData->secrecy ) return; 758 if ( secrecy == mData->secrecy ) return;
758 detach(); 759 detach();
759 mData->empty = false; 760 mData->empty = false;
760 mData->secrecy = secrecy; 761 mData->secrecy = secrecy;
761} 762}
762 763
763Secrecy Addressee::secrecy() const 764Secrecy Addressee::secrecy() const
764{ 765{
765 return mData->secrecy; 766 return mData->secrecy;
766} 767}
767 768
768QString Addressee::secrecyLabel() 769QString Addressee::secrecyLabel()
769{ 770{
770 return i18n("Security Class"); 771 return i18n("Security Class");
771} 772}
772 773
773 774
774void Addressee::setLogo( const Picture &logo ) 775void Addressee::setLogo( const Picture &logo )
775{ 776{
776 if ( logo == mData->logo ) return; 777 if ( logo == mData->logo ) return;
777 detach(); 778 detach();
778 mData->empty = false; 779 mData->empty = false;
779 mData->logo = logo; 780 mData->logo = logo;
780} 781}
781 782
782Picture Addressee::logo() const 783Picture Addressee::logo() const
783{ 784{
784 return mData->logo; 785 return mData->logo;
785} 786}
786 787
787QString Addressee::logoLabel() 788QString Addressee::logoLabel()
788{ 789{
789 return i18n("Logo"); 790 return i18n("Logo");
790} 791}
791 792
792 793
793void Addressee::setPhoto( const Picture &photo ) 794void Addressee::setPhoto( const Picture &photo )
794{ 795{
795 if ( photo == mData->photo ) return; 796 if ( photo == mData->photo ) return;
796 detach(); 797 detach();
797 mData->empty = false; 798 mData->empty = false;
798 mData->photo = photo; 799 mData->photo = photo;
799} 800}
800 801
801Picture Addressee::photo() const 802Picture Addressee::photo() const
802{ 803{
803 return mData->photo; 804 return mData->photo;
804} 805}
805 806
806QString Addressee::photoLabel() 807QString Addressee::photoLabel()
807{ 808{
808 return i18n("Photo"); 809 return i18n("Photo");
809} 810}
810 811
811 812
812void Addressee::setSound( const Sound &sound ) 813void Addressee::setSound( const Sound &sound )
813{ 814{
814 if ( sound == mData->sound ) return; 815 if ( sound == mData->sound ) return;
815 detach(); 816 detach();
816 mData->empty = false; 817 mData->empty = false;
817 mData->sound = sound; 818 mData->sound = sound;
818} 819}
819 820
820Sound Addressee::sound() const 821Sound Addressee::sound() const
821{ 822{
822 return mData->sound; 823 return mData->sound;
823} 824}
824 825
825QString Addressee::soundLabel() 826QString Addressee::soundLabel()
826{ 827{
827 return i18n("Sound"); 828 return i18n("Sound");
828} 829}
829 830
830 831
831void Addressee::setAgent( const Agent &agent ) 832void Addressee::setAgent( const Agent &agent )
832{ 833{
833 if ( agent == mData->agent ) return; 834 if ( agent == mData->agent ) return;
834 detach(); 835 detach();
835 mData->empty = false; 836 mData->empty = false;
836 mData->agent = agent; 837 mData->agent = agent;
837} 838}
838 839
839Agent Addressee::agent() const 840Agent Addressee::agent() const
840{ 841{
841 return mData->agent; 842 return mData->agent;
842} 843}
843 844
844QString Addressee::agentLabel() 845QString Addressee::agentLabel()
845{ 846{
846 return i18n("Agent"); 847 return i18n("Agent");
847} 848}
848 849
849 850
850 851
851void Addressee::setNameFromString( const QString &str ) 852void Addressee::setNameFromString( const QString &str )
852{ 853{
853 setFormattedName( str ); 854 setFormattedName( str );
854 setName( str ); 855 setName( str );
855 856
856 static bool first = true; 857 static bool first = true;
857 static QStringList titles; 858 static QStringList titles;
858 static QStringList suffixes; 859 static QStringList suffixes;
859 static QStringList prefixes; 860 static QStringList prefixes;
860 861
861 if ( first ) { 862 if ( first ) {
862 first = false; 863 first = false;
863 titles += i18n( "Dr." ); 864 titles += i18n( "Dr." );