summaryrefslogtreecommitdiff
authoreilers <eilers>2002-12-27 12:24:32 (UTC)
committer eilers <eilers>2002-12-27 12:24:32 (UTC)
commiteea5575187d95968ad76b49e4334e1165952163c (patch) (unidiff)
treeeee185b3e936f12d07d8d31656f9f61b994172c5
parent497a1cbad9b685ba7e08720d4337589dc6b9fbd2 (diff)
downloadopie-eea5575187d95968ad76b49e4334e1165952163c.zip
opie-eea5575187d95968ad76b49e4334e1165952163c.tar.gz
opie-eea5575187d95968ad76b49e4334e1165952163c.tar.bz2
Childrens are now shown in detail view..
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/pim/ocontact.cpp5
-rw-r--r--libopie2/opiepim/ocontact.cpp5
2 files changed, 10 insertions, 0 deletions
diff --git a/libopie/pim/ocontact.cpp b/libopie/pim/ocontact.cpp
index 38cba72..c9084ad 100644
--- a/libopie/pim/ocontact.cpp
+++ b/libopie/pim/ocontact.cpp
@@ -204,768 +204,773 @@ OContact::~OContact()
204*/ 204*/
205 205
206/*! \fn void OContact::setBusinessWebpage( const QString &str ) 206/*! \fn void OContact::setBusinessWebpage( const QString &str )
207 Sets the business webpage of the contact to \a str. 207 Sets the business webpage of the contact to \a str.
208*/ 208*/
209 209
210/*! \fn void OContact::setProfession( const QString &str ) 210/*! \fn void OContact::setProfession( const QString &str )
211 Sets the profession of the contact to \a str. 211 Sets the profession of the contact to \a str.
212*/ 212*/
213 213
214/*! \fn void OContact::setAssistant( const QString &str ) 214/*! \fn void OContact::setAssistant( const QString &str )
215 Sets the assistant of the contact to \a str. 215 Sets the assistant of the contact to \a str.
216*/ 216*/
217 217
218/*! \fn void OContact::setManager( const QString &str ) 218/*! \fn void OContact::setManager( const QString &str )
219 Sets the manager of the contact to \a str. 219 Sets the manager of the contact to \a str.
220*/ 220*/
221 221
222/*! \fn void OContact::setSpouse( const QString &str ) 222/*! \fn void OContact::setSpouse( const QString &str )
223 Sets the spouse of the contact to \a str. 223 Sets the spouse of the contact to \a str.
224*/ 224*/
225 225
226/*! \fn void OContact::setGender( const QString &str ) 226/*! \fn void OContact::setGender( const QString &str )
227 Sets the gender of the contact to \a str. 227 Sets the gender of the contact to \a str.
228*/ 228*/
229 229
230/*! \fn void OContact::setNickname( const QString &str ) 230/*! \fn void OContact::setNickname( const QString &str )
231 Sets the nickname of the contact to \a str. 231 Sets the nickname of the contact to \a str.
232*/ 232*/
233 233
234/*! \fn void OContact::setNotes( const QString &str ) 234/*! \fn void OContact::setNotes( const QString &str )
235 Sets the notes about the contact to \a str. 235 Sets the notes about the contact to \a str.
236*/ 236*/
237 237
238/*! \fn QString OContact::title() const 238/*! \fn QString OContact::title() const
239 Returns the title of the contact. 239 Returns the title of the contact.
240*/ 240*/
241 241
242/*! \fn QString OContact::firstName() const 242/*! \fn QString OContact::firstName() const
243 Returns the first name of the contact. 243 Returns the first name of the contact.
244*/ 244*/
245 245
246/*! \fn QString OContact::middleName() const 246/*! \fn QString OContact::middleName() const
247 Returns the middle name of the contact. 247 Returns the middle name of the contact.
248*/ 248*/
249 249
250/*! \fn QString OContact::lastName() const 250/*! \fn QString OContact::lastName() const
251 Returns the last name of the contact. 251 Returns the last name of the contact.
252*/ 252*/
253 253
254/*! \fn QString OContact::suffix() const 254/*! \fn QString OContact::suffix() const
255 Returns the suffix of the contact. 255 Returns the suffix of the contact.
256*/ 256*/
257 257
258/*! \fn QString OContact::fileAs() const 258/*! \fn QString OContact::fileAs() const
259 Returns the string the contact is filed as. 259 Returns the string the contact is filed as.
260*/ 260*/
261 261
262/*! \fn QString OContact::defaultEmail() const 262/*! \fn QString OContact::defaultEmail() const
263 Returns the default email address of the contact. 263 Returns the default email address of the contact.
264*/ 264*/
265 265
266/*! \fn QString OContact::emails() const 266/*! \fn QString OContact::emails() const
267 Returns the list of email address for a contact separated by ';'s in a single 267 Returns the list of email address for a contact separated by ';'s in a single
268 string. 268 string.
269*/ 269*/
270 270
271/*! \fn QString OContact::homeStreet() const 271/*! \fn QString OContact::homeStreet() const
272 Returns the home street address of the contact. 272 Returns the home street address of the contact.
273*/ 273*/
274 274
275/*! \fn QString OContact::homeCity() const 275/*! \fn QString OContact::homeCity() const
276 Returns the home city of the contact. 276 Returns the home city of the contact.
277*/ 277*/
278 278
279/*! \fn QString OContact::homeState() const 279/*! \fn QString OContact::homeState() const
280 Returns the home state of the contact. 280 Returns the home state of the contact.
281*/ 281*/
282 282
283/*! \fn QString OContact::homeZip() const 283/*! \fn QString OContact::homeZip() const
284 Returns the home zip of the contact. 284 Returns the home zip of the contact.
285*/ 285*/
286 286
287/*! \fn QString OContact::homeCountry() const 287/*! \fn QString OContact::homeCountry() const
288 Returns the home country of the contact. 288 Returns the home country of the contact.
289*/ 289*/
290 290
291/*! \fn QString OContact::homePhone() const 291/*! \fn QString OContact::homePhone() const
292 Returns the home phone number of the contact. 292 Returns the home phone number of the contact.
293*/ 293*/
294 294
295/*! \fn QString OContact::homeFax() const 295/*! \fn QString OContact::homeFax() const
296 Returns the home fax number of the contact. 296 Returns the home fax number of the contact.
297*/ 297*/
298 298
299/*! \fn QString OContact::homeMobile() const 299/*! \fn QString OContact::homeMobile() const
300 Returns the home mobile number of the contact. 300 Returns the home mobile number of the contact.
301*/ 301*/
302 302
303/*! \fn QString OContact::homeWebpage() const 303/*! \fn QString OContact::homeWebpage() const
304 Returns the home webpage of the contact. 304 Returns the home webpage of the contact.
305*/ 305*/
306 306
307/*! \fn QString OContact::company() const 307/*! \fn QString OContact::company() const
308 Returns the company for the contact. 308 Returns the company for the contact.
309*/ 309*/
310 310
311/*! \fn QString OContact::department() const 311/*! \fn QString OContact::department() const
312 Returns the department for the contact. 312 Returns the department for the contact.
313*/ 313*/
314 314
315/*! \fn QString OContact::office() const 315/*! \fn QString OContact::office() const
316 Returns the office for the contact. 316 Returns the office for the contact.
317*/ 317*/
318 318
319/*! \fn QString OContact::jobTitle() const 319/*! \fn QString OContact::jobTitle() const
320 Returns the job title of the contact. 320 Returns the job title of the contact.
321*/ 321*/
322 322
323/*! \fn QString OContact::profession() const 323/*! \fn QString OContact::profession() const
324 Returns the profession of the contact. 324 Returns the profession of the contact.
325*/ 325*/
326 326
327/*! \fn QString OContact::assistant() const 327/*! \fn QString OContact::assistant() const
328 Returns the assistant of the contact. 328 Returns the assistant of the contact.
329*/ 329*/
330 330
331/*! \fn QString OContact::manager() const 331/*! \fn QString OContact::manager() const
332 Returns the manager of the contact. 332 Returns the manager of the contact.
333*/ 333*/
334 334
335/*! \fn QString OContact::businessStreet() const 335/*! \fn QString OContact::businessStreet() const
336 Returns the business street address of the contact. 336 Returns the business street address of the contact.
337*/ 337*/
338 338
339/*! \fn QString OContact::businessCity() const 339/*! \fn QString OContact::businessCity() const
340 Returns the business city of the contact. 340 Returns the business city of the contact.
341*/ 341*/
342 342
343/*! \fn QString OContact::businessState() const 343/*! \fn QString OContact::businessState() const
344 Returns the business state of the contact. 344 Returns the business state of the contact.
345*/ 345*/
346 346
347/*! \fn QString OContact::businessZip() const 347/*! \fn QString OContact::businessZip() const
348 Returns the business zip of the contact. 348 Returns the business zip of the contact.
349*/ 349*/
350 350
351/*! \fn QString OContact::businessCountry() const 351/*! \fn QString OContact::businessCountry() const
352 Returns the business country of the contact. 352 Returns the business country of the contact.
353*/ 353*/
354 354
355/*! \fn QString OContact::businessPhone() const 355/*! \fn QString OContact::businessPhone() const
356 Returns the business phone number of the contact. 356 Returns the business phone number of the contact.
357*/ 357*/
358 358
359/*! \fn QString OContact::businessFax() const 359/*! \fn QString OContact::businessFax() const
360 Returns the business fax number of the contact. 360 Returns the business fax number of the contact.
361*/ 361*/
362 362
363/*! \fn QString OContact::businessMobile() const 363/*! \fn QString OContact::businessMobile() const
364 Returns the business mobile number of the contact. 364 Returns the business mobile number of the contact.
365*/ 365*/
366 366
367/*! \fn QString OContact::businessPager() const 367/*! \fn QString OContact::businessPager() const
368 Returns the business pager number of the contact. 368 Returns the business pager number of the contact.
369*/ 369*/
370 370
371/*! \fn QString OContact::businessWebpage() const 371/*! \fn QString OContact::businessWebpage() const
372 Returns the business webpage of the contact. 372 Returns the business webpage of the contact.
373*/ 373*/
374 374
375/*! \fn QString OContact::spouse() const 375/*! \fn QString OContact::spouse() const
376 Returns the spouse of the contact. 376 Returns the spouse of the contact.
377*/ 377*/
378 378
379/*! \fn QString OContact::gender() const 379/*! \fn QString OContact::gender() const
380 Returns the gender of the contact. 380 Returns the gender of the contact.
381*/ 381*/
382 382
383/*! \fn QString OContact::nickname() const 383/*! \fn QString OContact::nickname() const
384 Returns the nickname of the contact. 384 Returns the nickname of the contact.
385*/ 385*/
386 386
387/*! \fn QString OContact::children() const 387/*! \fn QString OContact::children() const
388 Returns the children of the contact. 388 Returns the children of the contact.
389*/ 389*/
390 390
391/*! \fn QString OContact::notes() const 391/*! \fn QString OContact::notes() const
392 Returns the notes relating to the the contact. 392 Returns the notes relating to the the contact.
393*/ 393*/
394 394
395/*! \fn QString OContact::groups() const 395/*! \fn QString OContact::groups() const
396 \internal 396 \internal
397 Returns the groups for the contact. 397 Returns the groups for the contact.
398*/ 398*/
399 399
400/*! \fn QStringList OContact::groupList() const 400/*! \fn QStringList OContact::groupList() const
401 \internal 401 \internal
402*/ 402*/
403 403
404/*! \fn QString OContact::field(int) const 404/*! \fn QString OContact::field(int) const
405 \internal 405 \internal
406*/ 406*/
407 407
408/*! \fn void OContact::saveJournal( journal_action, const QString & = QString::null ) 408/*! \fn void OContact::saveJournal( journal_action, const QString & = QString::null )
409 \internal 409 \internal
410*/ 410*/
411 411
412/*! \fn void OContact::setUid( int id ) 412/*! \fn void OContact::setUid( int id )
413 \internal 413 \internal
414 Sets the uid for this record to \a id. 414 Sets the uid for this record to \a id.
415*/ 415*/
416 416
417/*! \enum OContact::journal_action 417/*! \enum OContact::journal_action
418 \internal 418 \internal
419*/ 419*/
420 420
421/*! 421/*!
422 \internal 422 \internal
423*/ 423*/
424QMap<int, QString> OContact::toMap() const 424QMap<int, QString> OContact::toMap() const
425{ 425{
426 QMap<int, QString> map = mMap; 426 QMap<int, QString> map = mMap;
427 QString cats = idsToString( categories() ); 427 QString cats = idsToString( categories() );
428 if ( !cats.isEmpty() ) 428 if ( !cats.isEmpty() )
429 map.insert( Qtopia::AddressCategory, cats ); 429 map.insert( Qtopia::AddressCategory, cats );
430 return map; 430 return map;
431} 431}
432 432
433/*! 433/*!
434 Returns a rich text formatted QString representing the contents the contact. 434 Returns a rich text formatted QString representing the contents the contact.
435*/ 435*/
436QString OContact::toRichText() const 436QString OContact::toRichText() const
437{ 437{
438 QString text; 438 QString text;
439 QString value, comp, state; 439 QString value, comp, state;
440 440
441 // name, jobtitle and company 441 // name, jobtitle and company
442 if ( !(value = fullName()).isEmpty() ) 442 if ( !(value = fullName()).isEmpty() )
443 text += "<b>" + Qtopia::escapeString(value) + "</b><br>"; 443 text += "<b>" + Qtopia::escapeString(value) + "</b><br>";
444 if ( !(value = jobTitle()).isEmpty() ) 444 if ( !(value = jobTitle()).isEmpty() )
445 text += Qtopia::escapeString(value) + "<br>"; 445 text += Qtopia::escapeString(value) + "<br>";
446 446
447 comp = company(); 447 comp = company();
448 if ( !(value = department()).isEmpty() ) { 448 if ( !(value = department()).isEmpty() ) {
449 text += Qtopia::escapeString(value); 449 text += Qtopia::escapeString(value);
450 if ( comp ) 450 if ( comp )
451 text += ", "; 451 text += ", ";
452 else 452 else
453 text += "<br>"; 453 text += "<br>";
454 } 454 }
455 if ( !comp.isEmpty() ) 455 if ( !comp.isEmpty() )
456 text += Qtopia::escapeString(comp) + "<br>"; 456 text += Qtopia::escapeString(comp) + "<br>";
457 457
458 // business address 458 // business address
459 if ( !businessStreet().isEmpty() || !businessCity().isEmpty() || 459 if ( !businessStreet().isEmpty() || !businessCity().isEmpty() ||
460 !businessZip().isEmpty() || !businessCountry().isEmpty() ) { 460 !businessZip().isEmpty() || !businessCountry().isEmpty() ) {
461 text += "<br>"; 461 text += "<br>";
462 text += QObject::tr( "<b>Work Address:</b>" ); 462 text += QObject::tr( "<b>Work Address:</b>" );
463 text += "<br>"; 463 text += "<br>";
464 } 464 }
465 465
466 if ( !(value = businessStreet()).isEmpty() ) 466 if ( !(value = businessStreet()).isEmpty() )
467 text += Qtopia::escapeString(value) + "<br>"; 467 text += Qtopia::escapeString(value) + "<br>";
468 state = businessState(); 468 state = businessState();
469 if ( !(value = businessCity()).isEmpty() ) { 469 if ( !(value = businessCity()).isEmpty() ) {
470 text += Qtopia::escapeString(value); 470 text += Qtopia::escapeString(value);
471 if ( state ) 471 if ( state )
472 text += ", " + Qtopia::escapeString(state); 472 text += ", " + Qtopia::escapeString(state);
473 text += "<br>"; 473 text += "<br>";
474 } else if ( !state.isEmpty() ) 474 } else if ( !state.isEmpty() )
475 text += Qtopia::escapeString(state) + "<br>"; 475 text += Qtopia::escapeString(state) + "<br>";
476 if ( !(value = businessZip()).isEmpty() ) 476 if ( !(value = businessZip()).isEmpty() )
477 text += Qtopia::escapeString(value) + "<br>"; 477 text += Qtopia::escapeString(value) + "<br>";
478 if ( !(value = businessCountry()).isEmpty() ) 478 if ( !(value = businessCountry()).isEmpty() )
479 text += Qtopia::escapeString(value) + "<br>"; 479 text += Qtopia::escapeString(value) + "<br>";
480 480
481 // home address 481 // home address
482 if ( !homeStreet().isEmpty() || !homeCity().isEmpty() || 482 if ( !homeStreet().isEmpty() || !homeCity().isEmpty() ||
483 !homeZip().isEmpty() || !homeCountry().isEmpty() ) { 483 !homeZip().isEmpty() || !homeCountry().isEmpty() ) {
484 text += "<br>"; 484 text += "<br>";
485 text += QObject::tr( "<b>Home Address:</b>" ); 485 text += QObject::tr( "<b>Home Address:</b>" );
486 text += "<br>"; 486 text += "<br>";
487 } 487 }
488 488
489 if ( !(value = homeStreet()).isEmpty() ) 489 if ( !(value = homeStreet()).isEmpty() )
490 text += Qtopia::escapeString(value) + "<br>"; 490 text += Qtopia::escapeString(value) + "<br>";
491 state = homeState(); 491 state = homeState();
492 if ( !(value = homeCity()).isEmpty() ) { 492 if ( !(value = homeCity()).isEmpty() ) {
493 text += Qtopia::escapeString(value); 493 text += Qtopia::escapeString(value);
494 if ( !state.isEmpty() ) 494 if ( !state.isEmpty() )
495 text += ", " + Qtopia::escapeString(state); 495 text += ", " + Qtopia::escapeString(state);
496 text += "<br>"; 496 text += "<br>";
497 } else if (!state.isEmpty()) 497 } else if (!state.isEmpty())
498 text += Qtopia::escapeString(state) + "<br>"; 498 text += Qtopia::escapeString(state) + "<br>";
499 if ( !(value = homeZip()).isEmpty() ) 499 if ( !(value = homeZip()).isEmpty() )
500 text += Qtopia::escapeString(value) + "<br>"; 500 text += Qtopia::escapeString(value) + "<br>";
501 if ( !(value = homeCountry()).isEmpty() ) 501 if ( !(value = homeCountry()).isEmpty() )
502 text += Qtopia::escapeString(value) + "<br>"; 502 text += Qtopia::escapeString(value) + "<br>";
503 503
504 // the others... 504 // the others...
505 QString str; 505 QString str;
506 QString defEmail = defaultEmail(); 506 QString defEmail = defaultEmail();
507 if ( !defEmail.isEmpty() ) 507 if ( !defEmail.isEmpty() )
508 text += "<b>" + QObject::tr("Default Email: ") + "</b>" 508 text += "<b>" + QObject::tr("Default Email: ") + "</b>"
509 + Qtopia::escapeString(defEmail) + "<br>"; 509 + Qtopia::escapeString(defEmail) + "<br>";
510 str = emails(); 510 str = emails();
511 if ( !str.isEmpty() && ( str != defEmail ) ) 511 if ( !str.isEmpty() && ( str != defEmail ) )
512 text += "<b>" + QObject::tr("All Emails: ") + "</b>" 512 text += "<b>" + QObject::tr("All Emails: ") + "</b>"
513 + Qtopia::escapeString(str) + "<br>"; 513 + Qtopia::escapeString(str) + "<br>";
514 str = homePhone(); 514 str = homePhone();
515 if ( !str.isEmpty() ) 515 if ( !str.isEmpty() )
516 text += "<b>" + QObject::tr("Home Phone: ") + "</b>" 516 text += "<b>" + QObject::tr("Home Phone: ") + "</b>"
517 + Qtopia::escapeString(str) + "<br>"; 517 + Qtopia::escapeString(str) + "<br>";
518 str = homeFax(); 518 str = homeFax();
519 if ( !str.isEmpty() ) 519 if ( !str.isEmpty() )
520 text += "<b>" + QObject::tr("Home Fax: ") + "</b>" 520 text += "<b>" + QObject::tr("Home Fax: ") + "</b>"
521 + Qtopia::escapeString(str) + "<br>"; 521 + Qtopia::escapeString(str) + "<br>";
522 str = homeMobile(); 522 str = homeMobile();
523 if ( !str.isEmpty() ) 523 if ( !str.isEmpty() )
524 text += "<b>" + QObject::tr("Home Mobile: ") + "</b>" 524 text += "<b>" + QObject::tr("Home Mobile: ") + "</b>"
525 + Qtopia::escapeString(str) + "<br>"; 525 + Qtopia::escapeString(str) + "<br>";
526 str = homeWebpage(); 526 str = homeWebpage();
527 if ( !str.isEmpty() ) 527 if ( !str.isEmpty() )
528 text += "<b>" + QObject::tr("Home Web Page: ") + "</b>" 528 text += "<b>" + QObject::tr("Home Web Page: ") + "</b>"
529 + Qtopia::escapeString(str) + "<br>"; 529 + Qtopia::escapeString(str) + "<br>";
530 str = businessWebpage(); 530 str = businessWebpage();
531 if ( !str.isEmpty() ) 531 if ( !str.isEmpty() )
532 text += "<b>" + QObject::tr("Business Web Page: ") + "</b>" 532 text += "<b>" + QObject::tr("Business Web Page: ") + "</b>"
533 + Qtopia::escapeString(str) + "<br>"; 533 + Qtopia::escapeString(str) + "<br>";
534 str = office(); 534 str = office();
535 if ( !str.isEmpty() ) 535 if ( !str.isEmpty() )
536 text += "<b>" + QObject::tr("Office: ") + "</b>" 536 text += "<b>" + QObject::tr("Office: ") + "</b>"
537 + Qtopia::escapeString(str) + "<br>"; 537 + Qtopia::escapeString(str) + "<br>";
538 str = businessPhone(); 538 str = businessPhone();
539 if ( !str.isEmpty() ) 539 if ( !str.isEmpty() )
540 text += "<b>" + QObject::tr("Business Phone: ") + "</b>" 540 text += "<b>" + QObject::tr("Business Phone: ") + "</b>"
541 + Qtopia::escapeString(str) + "<br>"; 541 + Qtopia::escapeString(str) + "<br>";
542 str = businessFax(); 542 str = businessFax();
543 if ( !str.isEmpty() ) 543 if ( !str.isEmpty() )
544 text += "<b>" + QObject::tr("Business Fax: ") + "</b>" 544 text += "<b>" + QObject::tr("Business Fax: ") + "</b>"
545 + Qtopia::escapeString(str) + "<br>"; 545 + Qtopia::escapeString(str) + "<br>";
546 str = businessMobile(); 546 str = businessMobile();
547 if ( !str.isEmpty() ) 547 if ( !str.isEmpty() )
548 text += "<b>" + QObject::tr("Business Mobile: ") + "</b>" 548 text += "<b>" + QObject::tr("Business Mobile: ") + "</b>"
549 + Qtopia::escapeString(str) + "<br>"; 549 + Qtopia::escapeString(str) + "<br>";
550 str = businessPager(); 550 str = businessPager();
551 if ( !str.isEmpty() ) 551 if ( !str.isEmpty() )
552 text += "<b>" + QObject::tr("Business Pager: ") + "</b>" 552 text += "<b>" + QObject::tr("Business Pager: ") + "</b>"
553 + Qtopia::escapeString(str) + "<br>"; 553 + Qtopia::escapeString(str) + "<br>";
554 str = profession(); 554 str = profession();
555 if ( !str.isEmpty() ) 555 if ( !str.isEmpty() )
556 text += "<b>" + QObject::tr("Profession: ") + "</b>" 556 text += "<b>" + QObject::tr("Profession: ") + "</b>"
557 + Qtopia::escapeString(str) + "<br>"; 557 + Qtopia::escapeString(str) + "<br>";
558 str = assistant(); 558 str = assistant();
559 if ( !str.isEmpty() ) 559 if ( !str.isEmpty() )
560 text += "<b>" + QObject::tr("Assistant: ") + "</b>" 560 text += "<b>" + QObject::tr("Assistant: ") + "</b>"
561 + Qtopia::escapeString(str) + "<br>"; 561 + Qtopia::escapeString(str) + "<br>";
562 str = manager(); 562 str = manager();
563 if ( !str.isEmpty() ) 563 if ( !str.isEmpty() )
564 text += "<b>" + QObject::tr("Manager: ") + "</b>" 564 text += "<b>" + QObject::tr("Manager: ") + "</b>"
565 + Qtopia::escapeString(str) + "<br>"; 565 + Qtopia::escapeString(str) + "<br>";
566 str = gender(); 566 str = gender();
567 if ( !str.isEmpty() && str.toInt() != 0 ) { 567 if ( !str.isEmpty() && str.toInt() != 0 ) {
568 if ( str.toInt() == 1 ) 568 if ( str.toInt() == 1 )
569 str = QObject::tr( "Male" ); 569 str = QObject::tr( "Male" );
570 else if ( str.toInt() == 2 ) 570 else if ( str.toInt() == 2 )
571 str = QObject::tr( "Female" ); 571 str = QObject::tr( "Female" );
572 text += "<b>" + QObject::tr("Gender: ") + "</b>" + str + "<br>"; 572 text += "<b>" + QObject::tr("Gender: ") + "</b>" + str + "<br>";
573 } 573 }
574 str = spouse(); 574 str = spouse();
575 if ( !str.isEmpty() ) 575 if ( !str.isEmpty() )
576 text += "<b>" + QObject::tr("Spouse: ") + "</b>" 576 text += "<b>" + QObject::tr("Spouse: ") + "</b>"
577 + Qtopia::escapeString(str) + "<br>"; 577 + Qtopia::escapeString(str) + "<br>";
578 if ( birthday().isValid() ){ 578 if ( birthday().isValid() ){
579 str = TimeString::numberDateString( birthday() ); 579 str = TimeString::numberDateString( birthday() );
580 text += "<b>" + QObject::tr("Birthday: ") + "</b>" 580 text += "<b>" + QObject::tr("Birthday: ") + "</b>"
581 + Qtopia::escapeString(str) + "<br>"; 581 + Qtopia::escapeString(str) + "<br>";
582 } 582 }
583 if ( anniversary().isValid() ){ 583 if ( anniversary().isValid() ){
584 str = TimeString::numberDateString( anniversary() ); 584 str = TimeString::numberDateString( anniversary() );
585 text += "<b>" + QObject::tr("Anniversary: ") + "</b>" 585 text += "<b>" + QObject::tr("Anniversary: ") + "</b>"
586 + Qtopia::escapeString(str) + "<br>"; 586 + Qtopia::escapeString(str) + "<br>";
587 } 587 }
588 str = children();
589 if ( !str.isEmpty() )
590 text += "<b>" + QObject::tr("Children: ") + "</b>"
591 + Qtopia::escapeString(str) + "<br>";
592
588 str = nickname(); 593 str = nickname();
589 if ( !str.isEmpty() ) 594 if ( !str.isEmpty() )
590 text += "<b>" + QObject::tr("Nickname: ") + "</b>" 595 text += "<b>" + QObject::tr("Nickname: ") + "</b>"
591 + Qtopia::escapeString(str) + "<br>"; 596 + Qtopia::escapeString(str) + "<br>";
592 597
593 if ( categoryNames().count() ){ 598 if ( categoryNames().count() ){
594 text += "<b>" + QObject::tr( "Category:") + "</b> "; 599 text += "<b>" + QObject::tr( "Category:") + "</b> ";
595 text += categoryNames().join(", "); 600 text += categoryNames().join(", ");
596 text += "<br>"; 601 text += "<br>";
597 } 602 }
598 603
599 // notes last 604 // notes last
600 if ( (value = notes()) ) { 605 if ( (value = notes()) ) {
601 QRegExp reg("\n"); 606 QRegExp reg("\n");
602 607
603 //QString tmp = Qtopia::escapeString(value); 608 //QString tmp = Qtopia::escapeString(value);
604 QString tmp = QStyleSheet::convertFromPlainText(value); 609 QString tmp = QStyleSheet::convertFromPlainText(value);
605 //tmp.replace( reg, "<br>" ); 610 //tmp.replace( reg, "<br>" );
606 text += "<br>" + tmp + "<br>"; 611 text += "<br>" + tmp + "<br>";
607 } 612 }
608 return text; 613 return text;
609} 614}
610 615
611/*! 616/*!
612 \internal 617 \internal
613*/ 618*/
614void OContact::insert( int key, const QString &v ) 619void OContact::insert( int key, const QString &v )
615{ 620{
616 QString value = v.stripWhiteSpace(); 621 QString value = v.stripWhiteSpace();
617 if ( value.isEmpty() ) 622 if ( value.isEmpty() )
618 mMap.remove( key ); 623 mMap.remove( key );
619 else 624 else
620 mMap.insert( key, value ); 625 mMap.insert( key, value );
621} 626}
622 627
623/*! 628/*!
624 \internal 629 \internal
625*/ 630*/
626void OContact::replace( int key, const QString & v ) 631void OContact::replace( int key, const QString & v )
627{ 632{
628 QString value = v.stripWhiteSpace(); 633 QString value = v.stripWhiteSpace();
629 if ( value.isEmpty() ) 634 if ( value.isEmpty() )
630 mMap.remove( key ); 635 mMap.remove( key );
631 else 636 else
632 mMap.replace( key, value ); 637 mMap.replace( key, value );
633} 638}
634 639
635/*! 640/*!
636 \internal 641 \internal
637*/ 642*/
638QString OContact::find( int key ) const 643QString OContact::find( int key ) const
639{ 644{
640 return mMap[key]; 645 return mMap[key];
641} 646}
642 647
643/*! 648/*!
644 \internal 649 \internal
645*/ 650*/
646QString OContact::displayAddress( const QString &street, 651QString OContact::displayAddress( const QString &street,
647 const QString &city, 652 const QString &city,
648 const QString &state, 653 const QString &state,
649 const QString &zip, 654 const QString &zip,
650 const QString &country ) const 655 const QString &country ) const
651{ 656{
652 QString s = street; 657 QString s = street;
653 if ( !street.isEmpty() ) 658 if ( !street.isEmpty() )
654 s+= "\n"; 659 s+= "\n";
655 s += city; 660 s += city;
656 if ( !city.isEmpty() && !state.isEmpty() ) 661 if ( !city.isEmpty() && !state.isEmpty() )
657 s += ", "; 662 s += ", ";
658 s += state; 663 s += state;
659 if ( !state.isEmpty() && !zip.isEmpty() ) 664 if ( !state.isEmpty() && !zip.isEmpty() )
660 s += " "; 665 s += " ";
661 s += zip; 666 s += zip;
662 if ( !country.isEmpty() && !s.isEmpty() ) 667 if ( !country.isEmpty() && !s.isEmpty() )
663 s += "\n"; 668 s += "\n";
664 s += country; 669 s += country;
665 return s; 670 return s;
666} 671}
667 672
668/*! 673/*!
669 \internal 674 \internal
670*/ 675*/
671QString OContact::displayBusinessAddress() const 676QString OContact::displayBusinessAddress() const
672{ 677{
673 return displayAddress( businessStreet(), businessCity(), 678 return displayAddress( businessStreet(), businessCity(),
674 businessState(), businessZip(), 679 businessState(), businessZip(),
675 businessCountry() ); 680 businessCountry() );
676} 681}
677 682
678/*! 683/*!
679 \internal 684 \internal
680*/ 685*/
681QString OContact::displayHomeAddress() const 686QString OContact::displayHomeAddress() const
682{ 687{
683 return displayAddress( homeStreet(), homeCity(), 688 return displayAddress( homeStreet(), homeCity(),
684 homeState(), homeZip(), 689 homeState(), homeZip(),
685 homeCountry() ); 690 homeCountry() );
686} 691}
687 692
688/*! 693/*!
689 Returns the full name of the contact 694 Returns the full name of the contact
690*/ 695*/
691QString OContact::fullName() const 696QString OContact::fullName() const
692{ 697{
693 QString title = find( Qtopia::Title ); 698 QString title = find( Qtopia::Title );
694 QString firstName = find( Qtopia::FirstName ); 699 QString firstName = find( Qtopia::FirstName );
695 QString middleName = find( Qtopia::MiddleName ); 700 QString middleName = find( Qtopia::MiddleName );
696 QString lastName = find( Qtopia::LastName ); 701 QString lastName = find( Qtopia::LastName );
697 QString suffix = find( Qtopia::Suffix ); 702 QString suffix = find( Qtopia::Suffix );
698 703
699 QString name = title; 704 QString name = title;
700 if ( !firstName.isEmpty() ) { 705 if ( !firstName.isEmpty() ) {
701 if ( !name.isEmpty() ) 706 if ( !name.isEmpty() )
702 name += " "; 707 name += " ";
703 name += firstName; 708 name += firstName;
704 } 709 }
705 if ( !middleName.isEmpty() ) { 710 if ( !middleName.isEmpty() ) {
706 if ( !name.isEmpty() ) 711 if ( !name.isEmpty() )
707 name += " "; 712 name += " ";
708 name += middleName; 713 name += middleName;
709 } 714 }
710 if ( !lastName.isEmpty() ) { 715 if ( !lastName.isEmpty() ) {
711 if ( !name.isEmpty() ) 716 if ( !name.isEmpty() )
712 name += " "; 717 name += " ";
713 name += lastName; 718 name += lastName;
714 } 719 }
715 if ( !suffix.isEmpty() ) { 720 if ( !suffix.isEmpty() ) {
716 if ( !name.isEmpty() ) 721 if ( !name.isEmpty() )
717 name += " "; 722 name += " ";
718 name += suffix; 723 name += suffix;
719 } 724 }
720 return name.simplifyWhiteSpace(); 725 return name.simplifyWhiteSpace();
721} 726}
722 727
723/*! 728/*!
724 Returns a list of the names of the children of the contact. 729 Returns a list of the names of the children of the contact.
725*/ 730*/
726QStringList OContact::childrenList() const 731QStringList OContact::childrenList() const
727{ 732{
728 return QStringList::split( " ", find( Qtopia::Children ) ); 733 return QStringList::split( " ", find( Qtopia::Children ) );
729} 734}
730 735
731/*! \fn void OContact::insertEmail( const QString &email ) 736/*! \fn void OContact::insertEmail( const QString &email )
732 737
733 Insert \a email into the email list. Ensures \a email can only be added 738 Insert \a email into the email list. Ensures \a email can only be added
734 once. If there is no default email address set, it sets it to the \a email. 739 once. If there is no default email address set, it sets it to the \a email.
735*/ 740*/
736 741
737/*! \fn void OContact::removeEmail( const QString &email ) 742/*! \fn void OContact::removeEmail( const QString &email )
738 743
739 Removes the \a email from the email list. If the default email was \a email, 744 Removes the \a email from the email list. If the default email was \a email,
740 then the default email address is assigned to the first email in the 745 then the default email address is assigned to the first email in the
741 email list 746 email list
742*/ 747*/
743 748
744/*! \fn void OContact::clearEmails() 749/*! \fn void OContact::clearEmails()
745 750
746 Clears the email list. 751 Clears the email list.
747 */ 752 */
748 753
749/*! \fn void OContact::insertEmails( const QStringList &emailList ) 754/*! \fn void OContact::insertEmails( const QStringList &emailList )
750 755
751 Appends the \a emailList to the exiting email list 756 Appends the \a emailList to the exiting email list
752 */ 757 */
753 758
754/*! 759/*!
755 Returns a list of email addresses belonging to the contact, including 760 Returns a list of email addresses belonging to the contact, including
756 the default email address. 761 the default email address.
757*/ 762*/
758QStringList OContact::emailList() const 763QStringList OContact::emailList() const
759{ 764{
760 QString emailStr = emails(); 765 QString emailStr = emails();
761 766
762 QStringList r; 767 QStringList r;
763 if ( !emailStr.isEmpty() ) { 768 if ( !emailStr.isEmpty() ) {
764 qDebug(" emailstr "); 769 qDebug(" emailstr ");
765 QStringList l = QStringList::split( emailSeparator(), emailStr ); 770 QStringList l = QStringList::split( emailSeparator(), emailStr );
766 for ( QStringList::ConstIterator it = l.begin();it != l.end();++it ) 771 for ( QStringList::ConstIterator it = l.begin();it != l.end();++it )
767 r += (*it).simplifyWhiteSpace(); 772 r += (*it).simplifyWhiteSpace();
768 } 773 }
769 774
770 return r; 775 return r;
771} 776}
772 777
773/*! 778/*!
774 \overload 779 \overload
775 780
776 Generates the string for the contact to be filed as from the first, 781 Generates the string for the contact to be filed as from the first,
777 middle and last name of the contact. 782 middle and last name of the contact.
778*/ 783*/
779void OContact::setFileAs() 784void OContact::setFileAs()
780{ 785{
781 QString lastName, firstName, middleName, fileas; 786 QString lastName, firstName, middleName, fileas;
782 787
783 lastName = find( Qtopia::LastName ); 788 lastName = find( Qtopia::LastName );
784 firstName = find( Qtopia::FirstName ); 789 firstName = find( Qtopia::FirstName );
785 middleName = find( Qtopia::MiddleName ); 790 middleName = find( Qtopia::MiddleName );
786 if ( !lastName.isEmpty() && !firstName.isEmpty() 791 if ( !lastName.isEmpty() && !firstName.isEmpty()
787 && !middleName.isEmpty() ) 792 && !middleName.isEmpty() )
788 fileas = lastName + ", " + firstName + " " + middleName; 793 fileas = lastName + ", " + firstName + " " + middleName;
789 else if ( !lastName.isEmpty() && !firstName.isEmpty() ) 794 else if ( !lastName.isEmpty() && !firstName.isEmpty() )
790 fileas = lastName + ", " + firstName; 795 fileas = lastName + ", " + firstName;
791 else if ( !lastName.isEmpty() || !firstName.isEmpty() || 796 else if ( !lastName.isEmpty() || !firstName.isEmpty() ||
792 !middleName.isEmpty() ) 797 !middleName.isEmpty() )
793 fileas = firstName + ( firstName.isEmpty() ? "" : " " ) 798 fileas = firstName + ( firstName.isEmpty() ? "" : " " )
794 + middleName + ( middleName.isEmpty() ? "" : " " ) 799 + middleName + ( middleName.isEmpty() ? "" : " " )
795 + lastName; 800 + lastName;
796 801
797 replace( Qtopia::FileAs, fileas ); 802 replace( Qtopia::FileAs, fileas );
798} 803}
799 804
800/*! 805/*!
801 \internal 806 \internal
802 Appends the contact information to \a buf. 807 Appends the contact information to \a buf.
803*/ 808*/
804void OContact::save( QString &buf ) const 809void OContact::save( QString &buf ) const
805{ 810{
806 static const QStringList SLFIELDS = fields(); 811 static const QStringList SLFIELDS = fields();
807 // I'm expecting "<Contact " in front of this... 812 // I'm expecting "<Contact " in front of this...
808 for ( QMap<int, QString>::ConstIterator it = mMap.begin(); 813 for ( QMap<int, QString>::ConstIterator it = mMap.begin();
809 it != mMap.end(); ++it ) { 814 it != mMap.end(); ++it ) {
810 const QString &value = it.data(); 815 const QString &value = it.data();
811 int key = it.key(); 816 int key = it.key();
812 if ( !value.isEmpty() ) { 817 if ( !value.isEmpty() ) {
813 if ( key == Qtopia::AddressCategory || key == Qtopia::AddressUid) 818 if ( key == Qtopia::AddressCategory || key == Qtopia::AddressUid)
814 continue; 819 continue;
815 820
816 key -= Qtopia::AddressCategory+1; 821 key -= Qtopia::AddressCategory+1;
817 buf += SLFIELDS[key]; 822 buf += SLFIELDS[key];
818 buf += "=\"" + Qtopia::escapeString(value) + "\" "; 823 buf += "=\"" + Qtopia::escapeString(value) + "\" ";
819 } 824 }
820 } 825 }
821 buf += customToXml(); 826 buf += customToXml();
822 if ( categories().count() > 0 ) 827 if ( categories().count() > 0 )
823 buf += "Categories=\"" + idsToString( categories() ) + "\" "; 828 buf += "Categories=\"" + idsToString( categories() ) + "\" ";
824 buf += "Uid=\"" + QString::number( uid() ) + "\" "; 829 buf += "Uid=\"" + QString::number( uid() ) + "\" ";
825 // You need to close this yourself 830 // You need to close this yourself
826} 831}
827 832
828 833
829/*! 834/*!
830 \internal 835 \internal
831 Returns the list of fields belonging to a contact 836 Returns the list of fields belonging to a contact
832 Never change order of this list ! It has to be regarding 837 Never change order of this list ! It has to be regarding
833 enum AddressBookFields !! 838 enum AddressBookFields !!
834*/ 839*/
835QStringList OContact::fields() 840QStringList OContact::fields()
836{ 841{
837 QStringList list; 842 QStringList list;
838 843
839 list.append( "Title" ); // Not Used! 844 list.append( "Title" ); // Not Used!
840 list.append( "FirstName" ); 845 list.append( "FirstName" );
841 list.append( "MiddleName" ); 846 list.append( "MiddleName" );
842 list.append( "LastName" ); 847 list.append( "LastName" );
843 list.append( "Suffix" ); 848 list.append( "Suffix" );
844 list.append( "FileAs" ); 849 list.append( "FileAs" );
845 850
846 list.append( "JobTitle" ); 851 list.append( "JobTitle" );
847 list.append( "Department" ); 852 list.append( "Department" );
848 list.append( "Company" ); 853 list.append( "Company" );
849 list.append( "BusinessPhone" ); 854 list.append( "BusinessPhone" );
850 list.append( "BusinessFax" ); 855 list.append( "BusinessFax" );
851 list.append( "BusinessMobile" ); 856 list.append( "BusinessMobile" );
852 857
853 list.append( "DefaultEmail" ); 858 list.append( "DefaultEmail" );
854 list.append( "Emails" ); 859 list.append( "Emails" );
855 860
856 list.append( "HomePhone" ); 861 list.append( "HomePhone" );
857 list.append( "HomeFax" ); 862 list.append( "HomeFax" );
858 list.append( "HomeMobile" ); 863 list.append( "HomeMobile" );
859 864
860 list.append( "BusinessStreet" ); 865 list.append( "BusinessStreet" );
861 list.append( "BusinessCity" ); 866 list.append( "BusinessCity" );
862 list.append( "BusinessState" ); 867 list.append( "BusinessState" );
863 list.append( "BusinessZip" ); 868 list.append( "BusinessZip" );
864 list.append( "BusinessCountry" ); 869 list.append( "BusinessCountry" );
865 list.append( "BusinessPager" ); 870 list.append( "BusinessPager" );
866 list.append( "BusinessWebPage" ); 871 list.append( "BusinessWebPage" );
867 872
868 list.append( "Office" ); 873 list.append( "Office" );
869 list.append( "Profession" ); 874 list.append( "Profession" );
870 list.append( "Assistant" ); 875 list.append( "Assistant" );
871 list.append( "Manager" ); 876 list.append( "Manager" );
872 877
873 list.append( "HomeStreet" ); 878 list.append( "HomeStreet" );
874 list.append( "HomeCity" ); 879 list.append( "HomeCity" );
875 list.append( "HomeState" ); 880 list.append( "HomeState" );
876 list.append( "HomeZip" ); 881 list.append( "HomeZip" );
877 list.append( "HomeCountry" ); 882 list.append( "HomeCountry" );
878 list.append( "HomeWebPage" ); 883 list.append( "HomeWebPage" );
879 884
880 list.append( "Spouse" ); 885 list.append( "Spouse" );
881 list.append( "Gender" ); 886 list.append( "Gender" );
882 list.append( "Birthday" ); 887 list.append( "Birthday" );
883 list.append( "Anniversary" ); 888 list.append( "Anniversary" );
884 list.append( "Nickname" ); 889 list.append( "Nickname" );
885 list.append( "Children" ); 890 list.append( "Children" );
886 891
887 list.append( "Notes" ); 892 list.append( "Notes" );
888 list.append( "Groups" ); 893 list.append( "Groups" );
889 894
890 return list; 895 return list;
891} 896}
892 897
893 898
894/*! 899/*!
895 Sets the list of email address for contact to those contained in \a str. 900 Sets the list of email address for contact to those contained in \a str.
896 Email address should be separated by ';'s. 901 Email address should be separated by ';'s.
897*/ 902*/
898void OContact::setEmails( const QString &str ) 903void OContact::setEmails( const QString &str )
899{ 904{
900 replace( Qtopia::Emails, str ); 905 replace( Qtopia::Emails, str );
901 if ( str.isEmpty() ) 906 if ( str.isEmpty() )
902 setDefaultEmail( QString::null ); 907 setDefaultEmail( QString::null );
903} 908}
904 909
905/*! 910/*!
906 Sets the list of children for the contact to those contained in \a str. 911 Sets the list of children for the contact to those contained in \a str.
907*/ 912*/
908void OContact::setChildren( const QString &str ) 913void OContact::setChildren( const QString &str )
909{ 914{
910 replace( Qtopia::Children, str ); 915 replace( Qtopia::Children, str );
911} 916}
912 917
913/*! 918/*!
914 Returns TRUE if the contact matches the regular expression \a regexp. 919 Returns TRUE if the contact matches the regular expression \a regexp.
915 Otherwise returns FALSE. 920 Otherwise returns FALSE.
916*/ 921*/
917bool OContact::match( const QString &regexp ) const 922bool OContact::match( const QString &regexp ) const
918{ 923{
919 return match(QRegExp(regexp)); 924 return match(QRegExp(regexp));
920} 925}
921 926
922/*! 927/*!
923 \overload 928 \overload
924 Returns TRUE if the contact matches the regular expression \a regexp. 929 Returns TRUE if the contact matches the regular expression \a regexp.
925 Otherwise returns FALSE. 930 Otherwise returns FALSE.
926*/ 931*/
927bool OContact::match( const QRegExp &r ) const 932bool OContact::match( const QRegExp &r ) const
928{ 933{
929 bool match; 934 bool match;
930 match = false; 935 match = false;
931 QMap<int, QString>::ConstIterator it; 936 QMap<int, QString>::ConstIterator it;
932 for ( it = mMap.begin(); it != mMap.end(); ++it ) { 937 for ( it = mMap.begin(); it != mMap.end(); ++it ) {
933 if ( (*it).find( r ) > -1 ) { 938 if ( (*it).find( r ) > -1 ) {
934 match = true; 939 match = true;
935 break; 940 break;
936 } 941 }
937 } 942 }
938 return match; 943 return match;
939} 944}
940 945
941 946
942QString OContact::toShortText() const 947QString OContact::toShortText() const
943{ 948{
944 return ( fullName() ); 949 return ( fullName() );
945} 950}
946QString OContact::type() const 951QString OContact::type() const
947{ 952{
948 return QString::fromLatin1( "OContact" ); 953 return QString::fromLatin1( "OContact" );
949} 954}
950 955
951// Definition is missing ! (se) 956// Definition is missing ! (se)
952QMap<QString,QString> OContact::toExtraMap() const 957QMap<QString,QString> OContact::toExtraMap() const
953{ 958{
954 qWarning ("Function not implemented: OContact::toExtraMap()"); 959 qWarning ("Function not implemented: OContact::toExtraMap()");
955 QMap <QString,QString> useless; 960 QMap <QString,QString> useless;
956 return useless; 961 return useless;
957} 962}
958 963
959class QString OContact::recordField( int pos ) const 964class QString OContact::recordField( int pos ) const
960{ 965{
961 QStringList SLFIELDS = fields(); // ?? why this ? (se) 966 QStringList SLFIELDS = fields(); // ?? why this ? (se)
962 return SLFIELDS[pos]; 967 return SLFIELDS[pos];
963} 968}
964 969
965// In future releases, we should store birthday and anniversary 970// In future releases, we should store birthday and anniversary
966// internally as QDate instead of QString ! 971// internally as QDate instead of QString !
967// QString is always too complicate to interprete (DD.MM.YY, DD/MM/YY, MM/DD/YY, etc..)(se) 972// QString is always too complicate to interprete (DD.MM.YY, DD/MM/YY, MM/DD/YY, etc..)(se)
968 973
969/*! \fn void OContact::setBirthday( const QDate& date ) 974/*! \fn void OContact::setBirthday( const QDate& date )
970 Sets the birthday for the contact to \a date. If date is null 975 Sets the birthday for the contact to \a date. If date is null
971 the current stored date will be removed. 976 the current stored date will be removed.
diff --git a/libopie2/opiepim/ocontact.cpp b/libopie2/opiepim/ocontact.cpp
index 38cba72..c9084ad 100644
--- a/libopie2/opiepim/ocontact.cpp
+++ b/libopie2/opiepim/ocontact.cpp
@@ -204,768 +204,773 @@ OContact::~OContact()
204*/ 204*/
205 205
206/*! \fn void OContact::setBusinessWebpage( const QString &str ) 206/*! \fn void OContact::setBusinessWebpage( const QString &str )
207 Sets the business webpage of the contact to \a str. 207 Sets the business webpage of the contact to \a str.
208*/ 208*/
209 209
210/*! \fn void OContact::setProfession( const QString &str ) 210/*! \fn void OContact::setProfession( const QString &str )
211 Sets the profession of the contact to \a str. 211 Sets the profession of the contact to \a str.
212*/ 212*/
213 213
214/*! \fn void OContact::setAssistant( const QString &str ) 214/*! \fn void OContact::setAssistant( const QString &str )
215 Sets the assistant of the contact to \a str. 215 Sets the assistant of the contact to \a str.
216*/ 216*/
217 217
218/*! \fn void OContact::setManager( const QString &str ) 218/*! \fn void OContact::setManager( const QString &str )
219 Sets the manager of the contact to \a str. 219 Sets the manager of the contact to \a str.
220*/ 220*/
221 221
222/*! \fn void OContact::setSpouse( const QString &str ) 222/*! \fn void OContact::setSpouse( const QString &str )
223 Sets the spouse of the contact to \a str. 223 Sets the spouse of the contact to \a str.
224*/ 224*/
225 225
226/*! \fn void OContact::setGender( const QString &str ) 226/*! \fn void OContact::setGender( const QString &str )
227 Sets the gender of the contact to \a str. 227 Sets the gender of the contact to \a str.
228*/ 228*/
229 229
230/*! \fn void OContact::setNickname( const QString &str ) 230/*! \fn void OContact::setNickname( const QString &str )
231 Sets the nickname of the contact to \a str. 231 Sets the nickname of the contact to \a str.
232*/ 232*/
233 233
234/*! \fn void OContact::setNotes( const QString &str ) 234/*! \fn void OContact::setNotes( const QString &str )
235 Sets the notes about the contact to \a str. 235 Sets the notes about the contact to \a str.
236*/ 236*/
237 237
238/*! \fn QString OContact::title() const 238/*! \fn QString OContact::title() const
239 Returns the title of the contact. 239 Returns the title of the contact.
240*/ 240*/
241 241
242/*! \fn QString OContact::firstName() const 242/*! \fn QString OContact::firstName() const
243 Returns the first name of the contact. 243 Returns the first name of the contact.
244*/ 244*/
245 245
246/*! \fn QString OContact::middleName() const 246/*! \fn QString OContact::middleName() const
247 Returns the middle name of the contact. 247 Returns the middle name of the contact.
248*/ 248*/
249 249
250/*! \fn QString OContact::lastName() const 250/*! \fn QString OContact::lastName() const
251 Returns the last name of the contact. 251 Returns the last name of the contact.
252*/ 252*/
253 253
254/*! \fn QString OContact::suffix() const 254/*! \fn QString OContact::suffix() const
255 Returns the suffix of the contact. 255 Returns the suffix of the contact.
256*/ 256*/
257 257
258/*! \fn QString OContact::fileAs() const 258/*! \fn QString OContact::fileAs() const
259 Returns the string the contact is filed as. 259 Returns the string the contact is filed as.
260*/ 260*/
261 261
262/*! \fn QString OContact::defaultEmail() const 262/*! \fn QString OContact::defaultEmail() const
263 Returns the default email address of the contact. 263 Returns the default email address of the contact.
264*/ 264*/
265 265
266/*! \fn QString OContact::emails() const 266/*! \fn QString OContact::emails() const
267 Returns the list of email address for a contact separated by ';'s in a single 267 Returns the list of email address for a contact separated by ';'s in a single
268 string. 268 string.
269*/ 269*/
270 270
271/*! \fn QString OContact::homeStreet() const 271/*! \fn QString OContact::homeStreet() const
272 Returns the home street address of the contact. 272 Returns the home street address of the contact.
273*/ 273*/
274 274
275/*! \fn QString OContact::homeCity() const 275/*! \fn QString OContact::homeCity() const
276 Returns the home city of the contact. 276 Returns the home city of the contact.
277*/ 277*/
278 278
279/*! \fn QString OContact::homeState() const 279/*! \fn QString OContact::homeState() const
280 Returns the home state of the contact. 280 Returns the home state of the contact.
281*/ 281*/
282 282
283/*! \fn QString OContact::homeZip() const 283/*! \fn QString OContact::homeZip() const
284 Returns the home zip of the contact. 284 Returns the home zip of the contact.
285*/ 285*/
286 286
287/*! \fn QString OContact::homeCountry() const 287/*! \fn QString OContact::homeCountry() const
288 Returns the home country of the contact. 288 Returns the home country of the contact.
289*/ 289*/
290 290
291/*! \fn QString OContact::homePhone() const 291/*! \fn QString OContact::homePhone() const
292 Returns the home phone number of the contact. 292 Returns the home phone number of the contact.
293*/ 293*/
294 294
295/*! \fn QString OContact::homeFax() const 295/*! \fn QString OContact::homeFax() const
296 Returns the home fax number of the contact. 296 Returns the home fax number of the contact.
297*/ 297*/
298 298
299/*! \fn QString OContact::homeMobile() const 299/*! \fn QString OContact::homeMobile() const
300 Returns the home mobile number of the contact. 300 Returns the home mobile number of the contact.
301*/ 301*/
302 302
303/*! \fn QString OContact::homeWebpage() const 303/*! \fn QString OContact::homeWebpage() const
304 Returns the home webpage of the contact. 304 Returns the home webpage of the contact.
305*/ 305*/
306 306
307/*! \fn QString OContact::company() const 307/*! \fn QString OContact::company() const
308 Returns the company for the contact. 308 Returns the company for the contact.
309*/ 309*/
310 310
311/*! \fn QString OContact::department() const 311/*! \fn QString OContact::department() const
312 Returns the department for the contact. 312 Returns the department for the contact.
313*/ 313*/
314 314
315/*! \fn QString OContact::office() const 315/*! \fn QString OContact::office() const
316 Returns the office for the contact. 316 Returns the office for the contact.
317*/ 317*/
318 318
319/*! \fn QString OContact::jobTitle() const 319/*! \fn QString OContact::jobTitle() const
320 Returns the job title of the contact. 320 Returns the job title of the contact.
321*/ 321*/
322 322
323/*! \fn QString OContact::profession() const 323/*! \fn QString OContact::profession() const
324 Returns the profession of the contact. 324 Returns the profession of the contact.
325*/ 325*/
326 326
327/*! \fn QString OContact::assistant() const 327/*! \fn QString OContact::assistant() const
328 Returns the assistant of the contact. 328 Returns the assistant of the contact.
329*/ 329*/
330 330
331/*! \fn QString OContact::manager() const 331/*! \fn QString OContact::manager() const
332 Returns the manager of the contact. 332 Returns the manager of the contact.
333*/ 333*/
334 334
335/*! \fn QString OContact::businessStreet() const 335/*! \fn QString OContact::businessStreet() const
336 Returns the business street address of the contact. 336 Returns the business street address of the contact.
337*/ 337*/
338 338
339/*! \fn QString OContact::businessCity() const 339/*! \fn QString OContact::businessCity() const
340 Returns the business city of the contact. 340 Returns the business city of the contact.
341*/ 341*/
342 342
343/*! \fn QString OContact::businessState() const 343/*! \fn QString OContact::businessState() const
344 Returns the business state of the contact. 344 Returns the business state of the contact.
345*/ 345*/
346 346
347/*! \fn QString OContact::businessZip() const 347/*! \fn QString OContact::businessZip() const
348 Returns the business zip of the contact. 348 Returns the business zip of the contact.
349*/ 349*/
350 350
351/*! \fn QString OContact::businessCountry() const 351/*! \fn QString OContact::businessCountry() const
352 Returns the business country of the contact. 352 Returns the business country of the contact.
353*/ 353*/
354 354
355/*! \fn QString OContact::businessPhone() const 355/*! \fn QString OContact::businessPhone() const
356 Returns the business phone number of the contact. 356 Returns the business phone number of the contact.
357*/ 357*/
358 358
359/*! \fn QString OContact::businessFax() const 359/*! \fn QString OContact::businessFax() const
360 Returns the business fax number of the contact. 360 Returns the business fax number of the contact.
361*/ 361*/
362 362
363/*! \fn QString OContact::businessMobile() const 363/*! \fn QString OContact::businessMobile() const
364 Returns the business mobile number of the contact. 364 Returns the business mobile number of the contact.
365*/ 365*/
366 366
367/*! \fn QString OContact::businessPager() const 367/*! \fn QString OContact::businessPager() const
368 Returns the business pager number of the contact. 368 Returns the business pager number of the contact.
369*/ 369*/
370 370
371/*! \fn QString OContact::businessWebpage() const 371/*! \fn QString OContact::businessWebpage() const
372 Returns the business webpage of the contact. 372 Returns the business webpage of the contact.
373*/ 373*/
374 374
375/*! \fn QString OContact::spouse() const 375/*! \fn QString OContact::spouse() const
376 Returns the spouse of the contact. 376 Returns the spouse of the contact.
377*/ 377*/
378 378
379/*! \fn QString OContact::gender() const 379/*! \fn QString OContact::gender() const
380 Returns the gender of the contact. 380 Returns the gender of the contact.
381*/ 381*/
382 382
383/*! \fn QString OContact::nickname() const 383/*! \fn QString OContact::nickname() const
384 Returns the nickname of the contact. 384 Returns the nickname of the contact.
385*/ 385*/
386 386
387/*! \fn QString OContact::children() const 387/*! \fn QString OContact::children() const
388 Returns the children of the contact. 388 Returns the children of the contact.
389*/ 389*/
390 390
391/*! \fn QString OContact::notes() const 391/*! \fn QString OContact::notes() const
392 Returns the notes relating to the the contact. 392 Returns the notes relating to the the contact.
393*/ 393*/
394 394
395/*! \fn QString OContact::groups() const 395/*! \fn QString OContact::groups() const
396 \internal 396 \internal
397 Returns the groups for the contact. 397 Returns the groups for the contact.
398*/ 398*/
399 399
400/*! \fn QStringList OContact::groupList() const 400/*! \fn QStringList OContact::groupList() const
401 \internal 401 \internal
402*/ 402*/
403 403
404/*! \fn QString OContact::field(int) const 404/*! \fn QString OContact::field(int) const
405 \internal 405 \internal
406*/ 406*/
407 407
408/*! \fn void OContact::saveJournal( journal_action, const QString & = QString::null ) 408/*! \fn void OContact::saveJournal( journal_action, const QString & = QString::null )
409 \internal 409 \internal
410*/ 410*/
411 411
412/*! \fn void OContact::setUid( int id ) 412/*! \fn void OContact::setUid( int id )
413 \internal 413 \internal
414 Sets the uid for this record to \a id. 414 Sets the uid for this record to \a id.
415*/ 415*/
416 416
417/*! \enum OContact::journal_action 417/*! \enum OContact::journal_action
418 \internal 418 \internal
419*/ 419*/
420 420
421/*! 421/*!
422 \internal 422 \internal
423*/ 423*/
424QMap<int, QString> OContact::toMap() const 424QMap<int, QString> OContact::toMap() const
425{ 425{
426 QMap<int, QString> map = mMap; 426 QMap<int, QString> map = mMap;
427 QString cats = idsToString( categories() ); 427 QString cats = idsToString( categories() );
428 if ( !cats.isEmpty() ) 428 if ( !cats.isEmpty() )
429 map.insert( Qtopia::AddressCategory, cats ); 429 map.insert( Qtopia::AddressCategory, cats );
430 return map; 430 return map;
431} 431}
432 432
433/*! 433/*!
434 Returns a rich text formatted QString representing the contents the contact. 434 Returns a rich text formatted QString representing the contents the contact.
435*/ 435*/
436QString OContact::toRichText() const 436QString OContact::toRichText() const
437{ 437{
438 QString text; 438 QString text;
439 QString value, comp, state; 439 QString value, comp, state;
440 440
441 // name, jobtitle and company 441 // name, jobtitle and company
442 if ( !(value = fullName()).isEmpty() ) 442 if ( !(value = fullName()).isEmpty() )
443 text += "<b>" + Qtopia::escapeString(value) + "</b><br>"; 443 text += "<b>" + Qtopia::escapeString(value) + "</b><br>";
444 if ( !(value = jobTitle()).isEmpty() ) 444 if ( !(value = jobTitle()).isEmpty() )
445 text += Qtopia::escapeString(value) + "<br>"; 445 text += Qtopia::escapeString(value) + "<br>";
446 446
447 comp = company(); 447 comp = company();
448 if ( !(value = department()).isEmpty() ) { 448 if ( !(value = department()).isEmpty() ) {
449 text += Qtopia::escapeString(value); 449 text += Qtopia::escapeString(value);
450 if ( comp ) 450 if ( comp )
451 text += ", "; 451 text += ", ";
452 else 452 else
453 text += "<br>"; 453 text += "<br>";
454 } 454 }
455 if ( !comp.isEmpty() ) 455 if ( !comp.isEmpty() )
456 text += Qtopia::escapeString(comp) + "<br>"; 456 text += Qtopia::escapeString(comp) + "<br>";
457 457
458 // business address 458 // business address
459 if ( !businessStreet().isEmpty() || !businessCity().isEmpty() || 459 if ( !businessStreet().isEmpty() || !businessCity().isEmpty() ||
460 !businessZip().isEmpty() || !businessCountry().isEmpty() ) { 460 !businessZip().isEmpty() || !businessCountry().isEmpty() ) {
461 text += "<br>"; 461 text += "<br>";
462 text += QObject::tr( "<b>Work Address:</b>" ); 462 text += QObject::tr( "<b>Work Address:</b>" );
463 text += "<br>"; 463 text += "<br>";
464 } 464 }
465 465
466 if ( !(value = businessStreet()).isEmpty() ) 466 if ( !(value = businessStreet()).isEmpty() )
467 text += Qtopia::escapeString(value) + "<br>"; 467 text += Qtopia::escapeString(value) + "<br>";
468 state = businessState(); 468 state = businessState();
469 if ( !(value = businessCity()).isEmpty() ) { 469 if ( !(value = businessCity()).isEmpty() ) {
470 text += Qtopia::escapeString(value); 470 text += Qtopia::escapeString(value);
471 if ( state ) 471 if ( state )
472 text += ", " + Qtopia::escapeString(state); 472 text += ", " + Qtopia::escapeString(state);
473 text += "<br>"; 473 text += "<br>";
474 } else if ( !state.isEmpty() ) 474 } else if ( !state.isEmpty() )
475 text += Qtopia::escapeString(state) + "<br>"; 475 text += Qtopia::escapeString(state) + "<br>";
476 if ( !(value = businessZip()).isEmpty() ) 476 if ( !(value = businessZip()).isEmpty() )
477 text += Qtopia::escapeString(value) + "<br>"; 477 text += Qtopia::escapeString(value) + "<br>";
478 if ( !(value = businessCountry()).isEmpty() ) 478 if ( !(value = businessCountry()).isEmpty() )
479 text += Qtopia::escapeString(value) + "<br>"; 479 text += Qtopia::escapeString(value) + "<br>";
480 480
481 // home address 481 // home address
482 if ( !homeStreet().isEmpty() || !homeCity().isEmpty() || 482 if ( !homeStreet().isEmpty() || !homeCity().isEmpty() ||
483 !homeZip().isEmpty() || !homeCountry().isEmpty() ) { 483 !homeZip().isEmpty() || !homeCountry().isEmpty() ) {
484 text += "<br>"; 484 text += "<br>";
485 text += QObject::tr( "<b>Home Address:</b>" ); 485 text += QObject::tr( "<b>Home Address:</b>" );
486 text += "<br>"; 486 text += "<br>";
487 } 487 }
488 488
489 if ( !(value = homeStreet()).isEmpty() ) 489 if ( !(value = homeStreet()).isEmpty() )
490 text += Qtopia::escapeString(value) + "<br>"; 490 text += Qtopia::escapeString(value) + "<br>";
491 state = homeState(); 491 state = homeState();
492 if ( !(value = homeCity()).isEmpty() ) { 492 if ( !(value = homeCity()).isEmpty() ) {
493 text += Qtopia::escapeString(value); 493 text += Qtopia::escapeString(value);
494 if ( !state.isEmpty() ) 494 if ( !state.isEmpty() )
495 text += ", " + Qtopia::escapeString(state); 495 text += ", " + Qtopia::escapeString(state);
496 text += "<br>"; 496 text += "<br>";
497 } else if (!state.isEmpty()) 497 } else if (!state.isEmpty())
498 text += Qtopia::escapeString(state) + "<br>"; 498 text += Qtopia::escapeString(state) + "<br>";
499 if ( !(value = homeZip()).isEmpty() ) 499 if ( !(value = homeZip()).isEmpty() )
500 text += Qtopia::escapeString(value) + "<br>"; 500 text += Qtopia::escapeString(value) + "<br>";
501 if ( !(value = homeCountry()).isEmpty() ) 501 if ( !(value = homeCountry()).isEmpty() )
502 text += Qtopia::escapeString(value) + "<br>"; 502 text += Qtopia::escapeString(value) + "<br>";
503 503
504 // the others... 504 // the others...
505 QString str; 505 QString str;
506 QString defEmail = defaultEmail(); 506 QString defEmail = defaultEmail();
507 if ( !defEmail.isEmpty() ) 507 if ( !defEmail.isEmpty() )
508 text += "<b>" + QObject::tr("Default Email: ") + "</b>" 508 text += "<b>" + QObject::tr("Default Email: ") + "</b>"
509 + Qtopia::escapeString(defEmail) + "<br>"; 509 + Qtopia::escapeString(defEmail) + "<br>";
510 str = emails(); 510 str = emails();
511 if ( !str.isEmpty() && ( str != defEmail ) ) 511 if ( !str.isEmpty() && ( str != defEmail ) )
512 text += "<b>" + QObject::tr("All Emails: ") + "</b>" 512 text += "<b>" + QObject::tr("All Emails: ") + "</b>"
513 + Qtopia::escapeString(str) + "<br>"; 513 + Qtopia::escapeString(str) + "<br>";
514 str = homePhone(); 514 str = homePhone();
515 if ( !str.isEmpty() ) 515 if ( !str.isEmpty() )
516 text += "<b>" + QObject::tr("Home Phone: ") + "</b>" 516 text += "<b>" + QObject::tr("Home Phone: ") + "</b>"
517 + Qtopia::escapeString(str) + "<br>"; 517 + Qtopia::escapeString(str) + "<br>";
518 str = homeFax(); 518 str = homeFax();
519 if ( !str.isEmpty() ) 519 if ( !str.isEmpty() )
520 text += "<b>" + QObject::tr("Home Fax: ") + "</b>" 520 text += "<b>" + QObject::tr("Home Fax: ") + "</b>"
521 + Qtopia::escapeString(str) + "<br>"; 521 + Qtopia::escapeString(str) + "<br>";
522 str = homeMobile(); 522 str = homeMobile();
523 if ( !str.isEmpty() ) 523 if ( !str.isEmpty() )
524 text += "<b>" + QObject::tr("Home Mobile: ") + "</b>" 524 text += "<b>" + QObject::tr("Home Mobile: ") + "</b>"
525 + Qtopia::escapeString(str) + "<br>"; 525 + Qtopia::escapeString(str) + "<br>";
526 str = homeWebpage(); 526 str = homeWebpage();
527 if ( !str.isEmpty() ) 527 if ( !str.isEmpty() )
528 text += "<b>" + QObject::tr("Home Web Page: ") + "</b>" 528 text += "<b>" + QObject::tr("Home Web Page: ") + "</b>"
529 + Qtopia::escapeString(str) + "<br>"; 529 + Qtopia::escapeString(str) + "<br>";
530 str = businessWebpage(); 530 str = businessWebpage();
531 if ( !str.isEmpty() ) 531 if ( !str.isEmpty() )
532 text += "<b>" + QObject::tr("Business Web Page: ") + "</b>" 532 text += "<b>" + QObject::tr("Business Web Page: ") + "</b>"
533 + Qtopia::escapeString(str) + "<br>"; 533 + Qtopia::escapeString(str) + "<br>";
534 str = office(); 534 str = office();
535 if ( !str.isEmpty() ) 535 if ( !str.isEmpty() )
536 text += "<b>" + QObject::tr("Office: ") + "</b>" 536 text += "<b>" + QObject::tr("Office: ") + "</b>"
537 + Qtopia::escapeString(str) + "<br>"; 537 + Qtopia::escapeString(str) + "<br>";
538 str = businessPhone(); 538 str = businessPhone();
539 if ( !str.isEmpty() ) 539 if ( !str.isEmpty() )
540 text += "<b>" + QObject::tr("Business Phone: ") + "</b>" 540 text += "<b>" + QObject::tr("Business Phone: ") + "</b>"
541 + Qtopia::escapeString(str) + "<br>"; 541 + Qtopia::escapeString(str) + "<br>";
542 str = businessFax(); 542 str = businessFax();
543 if ( !str.isEmpty() ) 543 if ( !str.isEmpty() )
544 text += "<b>" + QObject::tr("Business Fax: ") + "</b>" 544 text += "<b>" + QObject::tr("Business Fax: ") + "</b>"
545 + Qtopia::escapeString(str) + "<br>"; 545 + Qtopia::escapeString(str) + "<br>";
546 str = businessMobile(); 546 str = businessMobile();
547 if ( !str.isEmpty() ) 547 if ( !str.isEmpty() )
548 text += "<b>" + QObject::tr("Business Mobile: ") + "</b>" 548 text += "<b>" + QObject::tr("Business Mobile: ") + "</b>"
549 + Qtopia::escapeString(str) + "<br>"; 549 + Qtopia::escapeString(str) + "<br>";
550 str = businessPager(); 550 str = businessPager();
551 if ( !str.isEmpty() ) 551 if ( !str.isEmpty() )
552 text += "<b>" + QObject::tr("Business Pager: ") + "</b>" 552 text += "<b>" + QObject::tr("Business Pager: ") + "</b>"
553 + Qtopia::escapeString(str) + "<br>"; 553 + Qtopia::escapeString(str) + "<br>";
554 str = profession(); 554 str = profession();
555 if ( !str.isEmpty() ) 555 if ( !str.isEmpty() )
556 text += "<b>" + QObject::tr("Profession: ") + "</b>" 556 text += "<b>" + QObject::tr("Profession: ") + "</b>"
557 + Qtopia::escapeString(str) + "<br>"; 557 + Qtopia::escapeString(str) + "<br>";
558 str = assistant(); 558 str = assistant();
559 if ( !str.isEmpty() ) 559 if ( !str.isEmpty() )
560 text += "<b>" + QObject::tr("Assistant: ") + "</b>" 560 text += "<b>" + QObject::tr("Assistant: ") + "</b>"
561 + Qtopia::escapeString(str) + "<br>"; 561 + Qtopia::escapeString(str) + "<br>";
562 str = manager(); 562 str = manager();
563 if ( !str.isEmpty() ) 563 if ( !str.isEmpty() )
564 text += "<b>" + QObject::tr("Manager: ") + "</b>" 564 text += "<b>" + QObject::tr("Manager: ") + "</b>"
565 + Qtopia::escapeString(str) + "<br>"; 565 + Qtopia::escapeString(str) + "<br>";
566 str = gender(); 566 str = gender();
567 if ( !str.isEmpty() && str.toInt() != 0 ) { 567 if ( !str.isEmpty() && str.toInt() != 0 ) {
568 if ( str.toInt() == 1 ) 568 if ( str.toInt() == 1 )
569 str = QObject::tr( "Male" ); 569 str = QObject::tr( "Male" );
570 else if ( str.toInt() == 2 ) 570 else if ( str.toInt() == 2 )
571 str = QObject::tr( "Female" ); 571 str = QObject::tr( "Female" );
572 text += "<b>" + QObject::tr("Gender: ") + "</b>" + str + "<br>"; 572 text += "<b>" + QObject::tr("Gender: ") + "</b>" + str + "<br>";
573 } 573 }
574 str = spouse(); 574 str = spouse();
575 if ( !str.isEmpty() ) 575 if ( !str.isEmpty() )
576 text += "<b>" + QObject::tr("Spouse: ") + "</b>" 576 text += "<b>" + QObject::tr("Spouse: ") + "</b>"
577 + Qtopia::escapeString(str) + "<br>"; 577 + Qtopia::escapeString(str) + "<br>";
578 if ( birthday().isValid() ){ 578 if ( birthday().isValid() ){
579 str = TimeString::numberDateString( birthday() ); 579 str = TimeString::numberDateString( birthday() );
580 text += "<b>" + QObject::tr("Birthday: ") + "</b>" 580 text += "<b>" + QObject::tr("Birthday: ") + "</b>"
581 + Qtopia::escapeString(str) + "<br>"; 581 + Qtopia::escapeString(str) + "<br>";
582 } 582 }
583 if ( anniversary().isValid() ){ 583 if ( anniversary().isValid() ){
584 str = TimeString::numberDateString( anniversary() ); 584 str = TimeString::numberDateString( anniversary() );
585 text += "<b>" + QObject::tr("Anniversary: ") + "</b>" 585 text += "<b>" + QObject::tr("Anniversary: ") + "</b>"
586 + Qtopia::escapeString(str) + "<br>"; 586 + Qtopia::escapeString(str) + "<br>";
587 } 587 }
588 str = children();
589 if ( !str.isEmpty() )
590 text += "<b>" + QObject::tr("Children: ") + "</b>"
591 + Qtopia::escapeString(str) + "<br>";
592
588 str = nickname(); 593 str = nickname();
589 if ( !str.isEmpty() ) 594 if ( !str.isEmpty() )
590 text += "<b>" + QObject::tr("Nickname: ") + "</b>" 595 text += "<b>" + QObject::tr("Nickname: ") + "</b>"
591 + Qtopia::escapeString(str) + "<br>"; 596 + Qtopia::escapeString(str) + "<br>";
592 597
593 if ( categoryNames().count() ){ 598 if ( categoryNames().count() ){
594 text += "<b>" + QObject::tr( "Category:") + "</b> "; 599 text += "<b>" + QObject::tr( "Category:") + "</b> ";
595 text += categoryNames().join(", "); 600 text += categoryNames().join(", ");
596 text += "<br>"; 601 text += "<br>";
597 } 602 }
598 603
599 // notes last 604 // notes last
600 if ( (value = notes()) ) { 605 if ( (value = notes()) ) {
601 QRegExp reg("\n"); 606 QRegExp reg("\n");
602 607
603 //QString tmp = Qtopia::escapeString(value); 608 //QString tmp = Qtopia::escapeString(value);
604 QString tmp = QStyleSheet::convertFromPlainText(value); 609 QString tmp = QStyleSheet::convertFromPlainText(value);
605 //tmp.replace( reg, "<br>" ); 610 //tmp.replace( reg, "<br>" );
606 text += "<br>" + tmp + "<br>"; 611 text += "<br>" + tmp + "<br>";
607 } 612 }
608 return text; 613 return text;
609} 614}
610 615
611/*! 616/*!
612 \internal 617 \internal
613*/ 618*/
614void OContact::insert( int key, const QString &v ) 619void OContact::insert( int key, const QString &v )
615{ 620{
616 QString value = v.stripWhiteSpace(); 621 QString value = v.stripWhiteSpace();
617 if ( value.isEmpty() ) 622 if ( value.isEmpty() )
618 mMap.remove( key ); 623 mMap.remove( key );
619 else 624 else
620 mMap.insert( key, value ); 625 mMap.insert( key, value );
621} 626}
622 627
623/*! 628/*!
624 \internal 629 \internal
625*/ 630*/
626void OContact::replace( int key, const QString & v ) 631void OContact::replace( int key, const QString & v )
627{ 632{
628 QString value = v.stripWhiteSpace(); 633 QString value = v.stripWhiteSpace();
629 if ( value.isEmpty() ) 634 if ( value.isEmpty() )
630 mMap.remove( key ); 635 mMap.remove( key );
631 else 636 else
632 mMap.replace( key, value ); 637 mMap.replace( key, value );
633} 638}
634 639
635/*! 640/*!
636 \internal 641 \internal
637*/ 642*/
638QString OContact::find( int key ) const 643QString OContact::find( int key ) const
639{ 644{
640 return mMap[key]; 645 return mMap[key];
641} 646}
642 647
643/*! 648/*!
644 \internal 649 \internal
645*/ 650*/
646QString OContact::displayAddress( const QString &street, 651QString OContact::displayAddress( const QString &street,
647 const QString &city, 652 const QString &city,
648 const QString &state, 653 const QString &state,
649 const QString &zip, 654 const QString &zip,
650 const QString &country ) const 655 const QString &country ) const
651{ 656{
652 QString s = street; 657 QString s = street;
653 if ( !street.isEmpty() ) 658 if ( !street.isEmpty() )
654 s+= "\n"; 659 s+= "\n";
655 s += city; 660 s += city;
656 if ( !city.isEmpty() && !state.isEmpty() ) 661 if ( !city.isEmpty() && !state.isEmpty() )
657 s += ", "; 662 s += ", ";
658 s += state; 663 s += state;
659 if ( !state.isEmpty() && !zip.isEmpty() ) 664 if ( !state.isEmpty() && !zip.isEmpty() )
660 s += " "; 665 s += " ";
661 s += zip; 666 s += zip;
662 if ( !country.isEmpty() && !s.isEmpty() ) 667 if ( !country.isEmpty() && !s.isEmpty() )
663 s += "\n"; 668 s += "\n";
664 s += country; 669 s += country;
665 return s; 670 return s;
666} 671}
667 672
668/*! 673/*!
669 \internal 674 \internal
670*/ 675*/
671QString OContact::displayBusinessAddress() const 676QString OContact::displayBusinessAddress() const
672{ 677{
673 return displayAddress( businessStreet(), businessCity(), 678 return displayAddress( businessStreet(), businessCity(),
674 businessState(), businessZip(), 679 businessState(), businessZip(),
675 businessCountry() ); 680 businessCountry() );
676} 681}
677 682
678/*! 683/*!
679 \internal 684 \internal
680*/ 685*/
681QString OContact::displayHomeAddress() const 686QString OContact::displayHomeAddress() const
682{ 687{
683 return displayAddress( homeStreet(), homeCity(), 688 return displayAddress( homeStreet(), homeCity(),
684 homeState(), homeZip(), 689 homeState(), homeZip(),
685 homeCountry() ); 690 homeCountry() );
686} 691}
687 692
688/*! 693/*!
689 Returns the full name of the contact 694 Returns the full name of the contact
690*/ 695*/
691QString OContact::fullName() const 696QString OContact::fullName() const
692{ 697{
693 QString title = find( Qtopia::Title ); 698 QString title = find( Qtopia::Title );
694 QString firstName = find( Qtopia::FirstName ); 699 QString firstName = find( Qtopia::FirstName );
695 QString middleName = find( Qtopia::MiddleName ); 700 QString middleName = find( Qtopia::MiddleName );
696 QString lastName = find( Qtopia::LastName ); 701 QString lastName = find( Qtopia::LastName );
697 QString suffix = find( Qtopia::Suffix ); 702 QString suffix = find( Qtopia::Suffix );
698 703
699 QString name = title; 704 QString name = title;
700 if ( !firstName.isEmpty() ) { 705 if ( !firstName.isEmpty() ) {
701 if ( !name.isEmpty() ) 706 if ( !name.isEmpty() )
702 name += " "; 707 name += " ";
703 name += firstName; 708 name += firstName;
704 } 709 }
705 if ( !middleName.isEmpty() ) { 710 if ( !middleName.isEmpty() ) {
706 if ( !name.isEmpty() ) 711 if ( !name.isEmpty() )
707 name += " "; 712 name += " ";
708 name += middleName; 713 name += middleName;
709 } 714 }
710 if ( !lastName.isEmpty() ) { 715 if ( !lastName.isEmpty() ) {
711 if ( !name.isEmpty() ) 716 if ( !name.isEmpty() )
712 name += " "; 717 name += " ";
713 name += lastName; 718 name += lastName;
714 } 719 }
715 if ( !suffix.isEmpty() ) { 720 if ( !suffix.isEmpty() ) {
716 if ( !name.isEmpty() ) 721 if ( !name.isEmpty() )
717 name += " "; 722 name += " ";
718 name += suffix; 723 name += suffix;
719 } 724 }
720 return name.simplifyWhiteSpace(); 725 return name.simplifyWhiteSpace();
721} 726}
722 727
723/*! 728/*!
724 Returns a list of the names of the children of the contact. 729 Returns a list of the names of the children of the contact.
725*/ 730*/
726QStringList OContact::childrenList() const 731QStringList OContact::childrenList() const
727{ 732{
728 return QStringList::split( " ", find( Qtopia::Children ) ); 733 return QStringList::split( " ", find( Qtopia::Children ) );
729} 734}
730 735
731/*! \fn void OContact::insertEmail( const QString &email ) 736/*! \fn void OContact::insertEmail( const QString &email )
732 737
733 Insert \a email into the email list. Ensures \a email can only be added 738 Insert \a email into the email list. Ensures \a email can only be added
734 once. If there is no default email address set, it sets it to the \a email. 739 once. If there is no default email address set, it sets it to the \a email.
735*/ 740*/
736 741
737/*! \fn void OContact::removeEmail( const QString &email ) 742/*! \fn void OContact::removeEmail( const QString &email )
738 743
739 Removes the \a email from the email list. If the default email was \a email, 744 Removes the \a email from the email list. If the default email was \a email,
740 then the default email address is assigned to the first email in the 745 then the default email address is assigned to the first email in the
741 email list 746 email list
742*/ 747*/
743 748
744/*! \fn void OContact::clearEmails() 749/*! \fn void OContact::clearEmails()
745 750
746 Clears the email list. 751 Clears the email list.
747 */ 752 */
748 753
749/*! \fn void OContact::insertEmails( const QStringList &emailList ) 754/*! \fn void OContact::insertEmails( const QStringList &emailList )
750 755
751 Appends the \a emailList to the exiting email list 756 Appends the \a emailList to the exiting email list
752 */ 757 */
753 758
754/*! 759/*!
755 Returns a list of email addresses belonging to the contact, including 760 Returns a list of email addresses belonging to the contact, including
756 the default email address. 761 the default email address.
757*/ 762*/
758QStringList OContact::emailList() const 763QStringList OContact::emailList() const
759{ 764{
760 QString emailStr = emails(); 765 QString emailStr = emails();
761 766
762 QStringList r; 767 QStringList r;
763 if ( !emailStr.isEmpty() ) { 768 if ( !emailStr.isEmpty() ) {
764 qDebug(" emailstr "); 769 qDebug(" emailstr ");
765 QStringList l = QStringList::split( emailSeparator(), emailStr ); 770 QStringList l = QStringList::split( emailSeparator(), emailStr );
766 for ( QStringList::ConstIterator it = l.begin();it != l.end();++it ) 771 for ( QStringList::ConstIterator it = l.begin();it != l.end();++it )
767 r += (*it).simplifyWhiteSpace(); 772 r += (*it).simplifyWhiteSpace();
768 } 773 }
769 774
770 return r; 775 return r;
771} 776}
772 777
773/*! 778/*!
774 \overload 779 \overload
775 780
776 Generates the string for the contact to be filed as from the first, 781 Generates the string for the contact to be filed as from the first,
777 middle and last name of the contact. 782 middle and last name of the contact.
778*/ 783*/
779void OContact::setFileAs() 784void OContact::setFileAs()
780{ 785{
781 QString lastName, firstName, middleName, fileas; 786 QString lastName, firstName, middleName, fileas;
782 787
783 lastName = find( Qtopia::LastName ); 788 lastName = find( Qtopia::LastName );
784 firstName = find( Qtopia::FirstName ); 789 firstName = find( Qtopia::FirstName );
785 middleName = find( Qtopia::MiddleName ); 790 middleName = find( Qtopia::MiddleName );
786 if ( !lastName.isEmpty() && !firstName.isEmpty() 791 if ( !lastName.isEmpty() && !firstName.isEmpty()
787 && !middleName.isEmpty() ) 792 && !middleName.isEmpty() )
788 fileas = lastName + ", " + firstName + " " + middleName; 793 fileas = lastName + ", " + firstName + " " + middleName;
789 else if ( !lastName.isEmpty() && !firstName.isEmpty() ) 794 else if ( !lastName.isEmpty() && !firstName.isEmpty() )
790 fileas = lastName + ", " + firstName; 795 fileas = lastName + ", " + firstName;
791 else if ( !lastName.isEmpty() || !firstName.isEmpty() || 796 else if ( !lastName.isEmpty() || !firstName.isEmpty() ||
792 !middleName.isEmpty() ) 797 !middleName.isEmpty() )
793 fileas = firstName + ( firstName.isEmpty() ? "" : " " ) 798 fileas = firstName + ( firstName.isEmpty() ? "" : " " )
794 + middleName + ( middleName.isEmpty() ? "" : " " ) 799 + middleName + ( middleName.isEmpty() ? "" : " " )
795 + lastName; 800 + lastName;
796 801
797 replace( Qtopia::FileAs, fileas ); 802 replace( Qtopia::FileAs, fileas );
798} 803}
799 804
800/*! 805/*!
801 \internal 806 \internal
802 Appends the contact information to \a buf. 807 Appends the contact information to \a buf.
803*/ 808*/
804void OContact::save( QString &buf ) const 809void OContact::save( QString &buf ) const
805{ 810{
806 static const QStringList SLFIELDS = fields(); 811 static const QStringList SLFIELDS = fields();
807 // I'm expecting "<Contact " in front of this... 812 // I'm expecting "<Contact " in front of this...
808 for ( QMap<int, QString>::ConstIterator it = mMap.begin(); 813 for ( QMap<int, QString>::ConstIterator it = mMap.begin();
809 it != mMap.end(); ++it ) { 814 it != mMap.end(); ++it ) {
810 const QString &value = it.data(); 815 const QString &value = it.data();
811 int key = it.key(); 816 int key = it.key();
812 if ( !value.isEmpty() ) { 817 if ( !value.isEmpty() ) {
813 if ( key == Qtopia::AddressCategory || key == Qtopia::AddressUid) 818 if ( key == Qtopia::AddressCategory || key == Qtopia::AddressUid)
814 continue; 819 continue;
815 820
816 key -= Qtopia::AddressCategory+1; 821 key -= Qtopia::AddressCategory+1;
817 buf += SLFIELDS[key]; 822 buf += SLFIELDS[key];
818 buf += "=\"" + Qtopia::escapeString(value) + "\" "; 823 buf += "=\"" + Qtopia::escapeString(value) + "\" ";
819 } 824 }
820 } 825 }
821 buf += customToXml(); 826 buf += customToXml();
822 if ( categories().count() > 0 ) 827 if ( categories().count() > 0 )
823 buf += "Categories=\"" + idsToString( categories() ) + "\" "; 828 buf += "Categories=\"" + idsToString( categories() ) + "\" ";
824 buf += "Uid=\"" + QString::number( uid() ) + "\" "; 829 buf += "Uid=\"" + QString::number( uid() ) + "\" ";
825 // You need to close this yourself 830 // You need to close this yourself
826} 831}
827 832
828 833
829/*! 834/*!
830 \internal 835 \internal
831 Returns the list of fields belonging to a contact 836 Returns the list of fields belonging to a contact
832 Never change order of this list ! It has to be regarding 837 Never change order of this list ! It has to be regarding
833 enum AddressBookFields !! 838 enum AddressBookFields !!
834*/ 839*/
835QStringList OContact::fields() 840QStringList OContact::fields()
836{ 841{
837 QStringList list; 842 QStringList list;
838 843
839 list.append( "Title" ); // Not Used! 844 list.append( "Title" ); // Not Used!
840 list.append( "FirstName" ); 845 list.append( "FirstName" );
841 list.append( "MiddleName" ); 846 list.append( "MiddleName" );
842 list.append( "LastName" ); 847 list.append( "LastName" );
843 list.append( "Suffix" ); 848 list.append( "Suffix" );
844 list.append( "FileAs" ); 849 list.append( "FileAs" );
845 850
846 list.append( "JobTitle" ); 851 list.append( "JobTitle" );
847 list.append( "Department" ); 852 list.append( "Department" );
848 list.append( "Company" ); 853 list.append( "Company" );
849 list.append( "BusinessPhone" ); 854 list.append( "BusinessPhone" );
850 list.append( "BusinessFax" ); 855 list.append( "BusinessFax" );
851 list.append( "BusinessMobile" ); 856 list.append( "BusinessMobile" );
852 857
853 list.append( "DefaultEmail" ); 858 list.append( "DefaultEmail" );
854 list.append( "Emails" ); 859 list.append( "Emails" );
855 860
856 list.append( "HomePhone" ); 861 list.append( "HomePhone" );
857 list.append( "HomeFax" ); 862 list.append( "HomeFax" );
858 list.append( "HomeMobile" ); 863 list.append( "HomeMobile" );
859 864
860 list.append( "BusinessStreet" ); 865 list.append( "BusinessStreet" );
861 list.append( "BusinessCity" ); 866 list.append( "BusinessCity" );
862 list.append( "BusinessState" ); 867 list.append( "BusinessState" );
863 list.append( "BusinessZip" ); 868 list.append( "BusinessZip" );
864 list.append( "BusinessCountry" ); 869 list.append( "BusinessCountry" );
865 list.append( "BusinessPager" ); 870 list.append( "BusinessPager" );
866 list.append( "BusinessWebPage" ); 871 list.append( "BusinessWebPage" );
867 872
868 list.append( "Office" ); 873 list.append( "Office" );
869 list.append( "Profession" ); 874 list.append( "Profession" );
870 list.append( "Assistant" ); 875 list.append( "Assistant" );
871 list.append( "Manager" ); 876 list.append( "Manager" );
872 877
873 list.append( "HomeStreet" ); 878 list.append( "HomeStreet" );
874 list.append( "HomeCity" ); 879 list.append( "HomeCity" );
875 list.append( "HomeState" ); 880 list.append( "HomeState" );
876 list.append( "HomeZip" ); 881 list.append( "HomeZip" );
877 list.append( "HomeCountry" ); 882 list.append( "HomeCountry" );
878 list.append( "HomeWebPage" ); 883 list.append( "HomeWebPage" );
879 884
880 list.append( "Spouse" ); 885 list.append( "Spouse" );
881 list.append( "Gender" ); 886 list.append( "Gender" );
882 list.append( "Birthday" ); 887 list.append( "Birthday" );
883 list.append( "Anniversary" ); 888 list.append( "Anniversary" );
884 list.append( "Nickname" ); 889 list.append( "Nickname" );
885 list.append( "Children" ); 890 list.append( "Children" );
886 891
887 list.append( "Notes" ); 892 list.append( "Notes" );
888 list.append( "Groups" ); 893 list.append( "Groups" );
889 894
890 return list; 895 return list;
891} 896}
892 897
893 898
894/*! 899/*!
895 Sets the list of email address for contact to those contained in \a str. 900 Sets the list of email address for contact to those contained in \a str.
896 Email address should be separated by ';'s. 901 Email address should be separated by ';'s.
897*/ 902*/
898void OContact::setEmails( const QString &str ) 903void OContact::setEmails( const QString &str )
899{ 904{
900 replace( Qtopia::Emails, str ); 905 replace( Qtopia::Emails, str );
901 if ( str.isEmpty() ) 906 if ( str.isEmpty() )
902 setDefaultEmail( QString::null ); 907 setDefaultEmail( QString::null );
903} 908}
904 909
905/*! 910/*!
906 Sets the list of children for the contact to those contained in \a str. 911 Sets the list of children for the contact to those contained in \a str.
907*/ 912*/
908void OContact::setChildren( const QString &str ) 913void OContact::setChildren( const QString &str )
909{ 914{
910 replace( Qtopia::Children, str ); 915 replace( Qtopia::Children, str );
911} 916}
912 917
913/*! 918/*!
914 Returns TRUE if the contact matches the regular expression \a regexp. 919 Returns TRUE if the contact matches the regular expression \a regexp.
915 Otherwise returns FALSE. 920 Otherwise returns FALSE.
916*/ 921*/
917bool OContact::match( const QString &regexp ) const 922bool OContact::match( const QString &regexp ) const
918{ 923{
919 return match(QRegExp(regexp)); 924 return match(QRegExp(regexp));
920} 925}
921 926
922/*! 927/*!
923 \overload 928 \overload
924 Returns TRUE if the contact matches the regular expression \a regexp. 929 Returns TRUE if the contact matches the regular expression \a regexp.
925 Otherwise returns FALSE. 930 Otherwise returns FALSE.
926*/ 931*/
927bool OContact::match( const QRegExp &r ) const 932bool OContact::match( const QRegExp &r ) const
928{ 933{
929 bool match; 934 bool match;
930 match = false; 935 match = false;
931 QMap<int, QString>::ConstIterator it; 936 QMap<int, QString>::ConstIterator it;
932 for ( it = mMap.begin(); it != mMap.end(); ++it ) { 937 for ( it = mMap.begin(); it != mMap.end(); ++it ) {
933 if ( (*it).find( r ) > -1 ) { 938 if ( (*it).find( r ) > -1 ) {
934 match = true; 939 match = true;
935 break; 940 break;
936 } 941 }
937 } 942 }
938 return match; 943 return match;
939} 944}
940 945
941 946
942QString OContact::toShortText() const 947QString OContact::toShortText() const
943{ 948{
944 return ( fullName() ); 949 return ( fullName() );
945} 950}
946QString OContact::type() const 951QString OContact::type() const
947{ 952{
948 return QString::fromLatin1( "OContact" ); 953 return QString::fromLatin1( "OContact" );
949} 954}
950 955
951// Definition is missing ! (se) 956// Definition is missing ! (se)
952QMap<QString,QString> OContact::toExtraMap() const 957QMap<QString,QString> OContact::toExtraMap() const
953{ 958{
954 qWarning ("Function not implemented: OContact::toExtraMap()"); 959 qWarning ("Function not implemented: OContact::toExtraMap()");
955 QMap <QString,QString> useless; 960 QMap <QString,QString> useless;
956 return useless; 961 return useless;
957} 962}
958 963
959class QString OContact::recordField( int pos ) const 964class QString OContact::recordField( int pos ) const
960{ 965{
961 QStringList SLFIELDS = fields(); // ?? why this ? (se) 966 QStringList SLFIELDS = fields(); // ?? why this ? (se)
962 return SLFIELDS[pos]; 967 return SLFIELDS[pos];
963} 968}
964 969
965// In future releases, we should store birthday and anniversary 970// In future releases, we should store birthday and anniversary
966// internally as QDate instead of QString ! 971// internally as QDate instead of QString !
967// QString is always too complicate to interprete (DD.MM.YY, DD/MM/YY, MM/DD/YY, etc..)(se) 972// QString is always too complicate to interprete (DD.MM.YY, DD/MM/YY, MM/DD/YY, etc..)(se)
968 973
969/*! \fn void OContact::setBirthday( const QDate& date ) 974/*! \fn void OContact::setBirthday( const QDate& date )
970 Sets the birthday for the contact to \a date. If date is null 975 Sets the birthday for the contact to \a date. If date is null
971 the current stored date will be removed. 976 the current stored date will be removed.