summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/pim/ocontact.cpp122
-rw-r--r--libopie2/opiepim/ocontact.cpp122
2 files changed, 154 insertions, 90 deletions
diff --git a/libopie/pim/ocontact.cpp b/libopie/pim/ocontact.cpp
index c9084ad..9230b8b 100644
--- a/libopie/pim/ocontact.cpp
+++ b/libopie/pim/ocontact.cpp
@@ -312,428 +312,460 @@ OContact::~OContact()
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 QString str;
441 bool marker = false;
440 442
441 // name, jobtitle and company 443 // name, jobtitle and company
442 if ( !(value = fullName()).isEmpty() ) 444 if ( !(value = fullName()).isEmpty() )
443 text += "<b>" + Qtopia::escapeString(value) + "</b><br>"; 445 text += "<b><h3>" + Qtopia::escapeString(value) + "</h3></b><br>";
444 if ( !(value = jobTitle()).isEmpty() ) 446 if ( !(value = jobTitle()).isEmpty() )
445 text += Qtopia::escapeString(value) + "<br>"; 447 text += Qtopia::escapeString(value) + "<br>";
446 448
447 comp = company(); 449 comp = company();
448 if ( !(value = department()).isEmpty() ) { 450 if ( !(value = department()).isEmpty() ) {
449 text += Qtopia::escapeString(value); 451 text += Qtopia::escapeString(value);
450 if ( comp ) 452 if ( comp )
451 text += ", "; 453 text += ", ";
452 else 454 else
453 text += "<br>"; 455 text += "<br>";
454 } 456 }
455 if ( !comp.isEmpty() ) 457 if ( !comp.isEmpty() )
456 text += Qtopia::escapeString(comp) + "<br>"; 458 text += Qtopia::escapeString(comp) + "<br>";
457 459
460 QString defEmail = defaultEmail();
461 if ( !defEmail.isEmpty() )
462 text += "<b>" + QObject::tr("Default Email: ") + "</b>"
463 + Qtopia::escapeString(defEmail) + "<br>";
464
465 text += "<hr>";
466
458 // business address 467 // business address
459 if ( !businessStreet().isEmpty() || !businessCity().isEmpty() || 468 if ( !businessStreet().isEmpty() || !businessCity().isEmpty() ||
460 !businessZip().isEmpty() || !businessCountry().isEmpty() ) { 469 !businessZip().isEmpty() || !businessCountry().isEmpty() ) {
461 text += "<br>"; 470 text += "<br>";
462 text += QObject::tr( "<b>Work Address:</b>" ); 471 text += QObject::tr( "<b>Work Address:</b>" );
463 text += "<br>"; 472 text += "<br>";
473 marker = true;
464 } 474 }
465 475
466 if ( !(value = businessStreet()).isEmpty() ) 476 if ( !(value = businessStreet()).isEmpty() )
467 text += Qtopia::escapeString(value) + "<br>"; 477 text += Qtopia::escapeString(value) + "<br>";
468 state = businessState(); 478 state = businessState();
469 if ( !(value = businessCity()).isEmpty() ) { 479 if ( !(value = businessCity()).isEmpty() ) {
470 text += Qtopia::escapeString(value); 480 text += Qtopia::escapeString(value);
471 if ( state ) 481 if ( state )
472 text += ", " + Qtopia::escapeString(state); 482 text += ", " + Qtopia::escapeString(state);
473 text += "<br>"; 483 text += "<br>";
474 } else if ( !state.isEmpty() ) 484 } else if ( !state.isEmpty() )
475 text += Qtopia::escapeString(state) + "<br>"; 485 text += Qtopia::escapeString(state) + "<br>";
476 if ( !(value = businessZip()).isEmpty() ) 486 if ( !(value = businessZip()).isEmpty() )
477 text += Qtopia::escapeString(value) + "<br>"; 487 text += Qtopia::escapeString(value) + "<br>";
478 if ( !(value = businessCountry()).isEmpty() ) 488 if ( !(value = businessCountry()).isEmpty() )
479 text += Qtopia::escapeString(value) + "<br>"; 489 text += Qtopia::escapeString(value) + "<br>";
480 490
491 // rest of Business data
492 str = office();
493 if ( !str.isEmpty() ){
494 text += "<b>" + QObject::tr("Office: ") + "</b>"
495 + Qtopia::escapeString(str) + "<br>";
496 marker = true;
497 }
498 str = businessWebpage();
499 if ( !str.isEmpty() ){
500 text += "<b>" + QObject::tr("Business Web Page: ") + "</b>"
501 + Qtopia::escapeString(str) + "<br>";
502 marker = true;
503 }
504 str = businessPhone();
505 if ( !str.isEmpty() ){
506 text += "<b>" + QObject::tr("Business Phone: ") + "</b>"
507 + Qtopia::escapeString(str) + "<br>";
508 marker = true;
509 }
510 str = businessFax();
511 if ( !str.isEmpty() ){
512 text += "<b>" + QObject::tr("Business Fax: ") + "</b>"
513 + Qtopia::escapeString(str) + "<br>";
514 marker = true;
515 }
516 str = businessMobile();
517 if ( !str.isEmpty() ){
518 text += "<b>" + QObject::tr("Business Mobile: ") + "</b>"
519 + Qtopia::escapeString(str) + "<br>";
520 marker = true;
521 }
522 str = businessPager();
523 if ( !str.isEmpty() ){
524 text += "<b>" + QObject::tr("Business Pager: ") + "</b>"
525 + Qtopia::escapeString(str) + "<br>";
526 marker = true;
527 }
528
481 // home address 529 // home address
482 if ( !homeStreet().isEmpty() || !homeCity().isEmpty() || 530 if ( !homeStreet().isEmpty() || !homeCity().isEmpty() ||
483 !homeZip().isEmpty() || !homeCountry().isEmpty() ) { 531 !homeZip().isEmpty() || !homeCountry().isEmpty() ) {
484 text += "<br>"; 532 text += "<br>";
485 text += QObject::tr( "<b>Home Address:</b>" ); 533 text += QObject::tr( "<b>Home Address:</b>" );
486 text += "<br>"; 534 text += "<br>";
487 } 535 }
488 536
489 if ( !(value = homeStreet()).isEmpty() ) 537 if ( !(value = homeStreet()).isEmpty() )
490 text += Qtopia::escapeString(value) + "<br>"; 538 text += Qtopia::escapeString(value) + "<br>";
491 state = homeState(); 539 state = homeState();
492 if ( !(value = homeCity()).isEmpty() ) { 540 if ( !(value = homeCity()).isEmpty() ) {
493 text += Qtopia::escapeString(value); 541 text += Qtopia::escapeString(value);
494 if ( !state.isEmpty() ) 542 if ( !state.isEmpty() )
495 text += ", " + Qtopia::escapeString(state); 543 text += ", " + Qtopia::escapeString(state);
496 text += "<br>"; 544 text += "<br>";
497 } else if (!state.isEmpty()) 545 } else if (!state.isEmpty())
498 text += Qtopia::escapeString(state) + "<br>"; 546 text += Qtopia::escapeString(state) + "<br>";
499 if ( !(value = homeZip()).isEmpty() ) 547 if ( !(value = homeZip()).isEmpty() )
500 text += Qtopia::escapeString(value) + "<br>"; 548 text += Qtopia::escapeString(value) + "<br>";
501 if ( !(value = homeCountry()).isEmpty() ) 549 if ( !(value = homeCountry()).isEmpty() )
502 text += Qtopia::escapeString(value) + "<br>"; 550 text += Qtopia::escapeString(value) + "<br>";
503 551
504 // the others... 552 // rest of Home data
505 QString str; 553 str = homeWebpage();
506 QString defEmail = defaultEmail(); 554 if ( !str.isEmpty() ){
507 if ( !defEmail.isEmpty() ) 555 text += "<b>" + QObject::tr("Home Web Page: ") + "</b>"
508 text += "<b>" + QObject::tr("Default Email: ") + "</b>"
509 + Qtopia::escapeString(defEmail) + "<br>";
510 str = emails();
511 if ( !str.isEmpty() && ( str != defEmail ) )
512 text += "<b>" + QObject::tr("All Emails: ") + "</b>"
513 + Qtopia::escapeString(str) + "<br>"; 556 + Qtopia::escapeString(str) + "<br>";
557 marker = true;
558 }
514 str = homePhone(); 559 str = homePhone();
515 if ( !str.isEmpty() ) 560 if ( !str.isEmpty() ){
516 text += "<b>" + QObject::tr("Home Phone: ") + "</b>" 561 text += "<b>" + QObject::tr("Home Phone: ") + "</b>"
517 + Qtopia::escapeString(str) + "<br>"; 562 + Qtopia::escapeString(str) + "<br>";
563 marker = true;
564 }
518 str = homeFax(); 565 str = homeFax();
519 if ( !str.isEmpty() ) 566 if ( !str.isEmpty() ){
520 text += "<b>" + QObject::tr("Home Fax: ") + "</b>" 567 text += "<b>" + QObject::tr("Home Fax: ") + "</b>"
521 + Qtopia::escapeString(str) + "<br>"; 568 + Qtopia::escapeString(str) + "<br>";
569 marker = true;
570 }
522 str = homeMobile(); 571 str = homeMobile();
523 if ( !str.isEmpty() ) 572 if ( !str.isEmpty() ){
524 text += "<b>" + QObject::tr("Home Mobile: ") + "</b>" 573 text += "<b>" + QObject::tr("Home Mobile: ") + "</b>"
525 + Qtopia::escapeString(str) + "<br>"; 574 + Qtopia::escapeString(str) + "<br>";
526 str = homeWebpage(); 575 marker = true;
527 if ( !str.isEmpty() ) 576 }
528 text += "<b>" + QObject::tr("Home Web Page: ") + "</b>" 577
529 + Qtopia::escapeString(str) + "<br>"; 578 if ( marker )
530 str = businessWebpage(); 579 text += "<br><hr><br>";
531 if ( !str.isEmpty() ) 580 // the others...
532 text += "<b>" + QObject::tr("Business Web Page: ") + "</b>" 581 str = emails();
533 + Qtopia::escapeString(str) + "<br>"; 582 if ( !str.isEmpty() && ( str != defEmail ) )
534 str = office(); 583 text += "<b>" + QObject::tr("All Emails: ") + "</b>"
535 if ( !str.isEmpty() )
536 text += "<b>" + QObject::tr("Office: ") + "</b>"
537 + Qtopia::escapeString(str) + "<br>";
538 str = businessPhone();
539 if ( !str.isEmpty() )
540 text += "<b>" + QObject::tr("Business Phone: ") + "</b>"
541 + Qtopia::escapeString(str) + "<br>";
542 str = businessFax();
543 if ( !str.isEmpty() )
544 text += "<b>" + QObject::tr("Business Fax: ") + "</b>"
545 + Qtopia::escapeString(str) + "<br>";
546 str = businessMobile();
547 if ( !str.isEmpty() )
548 text += "<b>" + QObject::tr("Business Mobile: ") + "</b>"
549 + Qtopia::escapeString(str) + "<br>";
550 str = businessPager();
551 if ( !str.isEmpty() )
552 text += "<b>" + QObject::tr("Business Pager: ") + "</b>"
553 + Qtopia::escapeString(str) + "<br>"; 584 + Qtopia::escapeString(str) + "<br>";
554 str = profession(); 585 str = profession();
555 if ( !str.isEmpty() ) 586 if ( !str.isEmpty() )
556 text += "<b>" + QObject::tr("Profession: ") + "</b>" 587 text += "<b>" + QObject::tr("Profession: ") + "</b>"
557 + Qtopia::escapeString(str) + "<br>"; 588 + Qtopia::escapeString(str) + "<br>";
558 str = assistant(); 589 str = assistant();
559 if ( !str.isEmpty() ) 590 if ( !str.isEmpty() )
560 text += "<b>" + QObject::tr("Assistant: ") + "</b>" 591 text += "<b>" + QObject::tr("Assistant: ") + "</b>"
561 + Qtopia::escapeString(str) + "<br>"; 592 + Qtopia::escapeString(str) + "<br>";
562 str = manager(); 593 str = manager();
563 if ( !str.isEmpty() ) 594 if ( !str.isEmpty() )
564 text += "<b>" + QObject::tr("Manager: ") + "</b>" 595 text += "<b>" + QObject::tr("Manager: ") + "</b>"
565 + Qtopia::escapeString(str) + "<br>"; 596 + Qtopia::escapeString(str) + "<br>";
566 str = gender(); 597 str = gender();
567 if ( !str.isEmpty() && str.toInt() != 0 ) { 598 if ( !str.isEmpty() && str.toInt() != 0 ) {
568 if ( str.toInt() == 1 ) 599 if ( str.toInt() == 1 )
569 str = QObject::tr( "Male" ); 600 str = QObject::tr( "Male" );
570 else if ( str.toInt() == 2 ) 601 else if ( str.toInt() == 2 )
571 str = QObject::tr( "Female" ); 602 str = QObject::tr( "Female" );
572 text += "<b>" + QObject::tr("Gender: ") + "</b>" + str + "<br>"; 603 text += "<b>" + QObject::tr("Gender: ") + "</b>" + str + "<br>";
573 } 604 }
574 str = spouse(); 605 str = spouse();
575 if ( !str.isEmpty() ) 606 if ( !str.isEmpty() )
576 text += "<b>" + QObject::tr("Spouse: ") + "</b>" 607 text += "<b>" + QObject::tr("Spouse: ") + "</b>"
577 + Qtopia::escapeString(str) + "<br>"; 608 + Qtopia::escapeString(str) + "<br>";
578 if ( birthday().isValid() ){ 609 if ( birthday().isValid() ){
579 str = TimeString::numberDateString( birthday() ); 610 str = TimeString::numberDateString( birthday() );
580 text += "<b>" + QObject::tr("Birthday: ") + "</b>" 611 text += "<b>" + QObject::tr("Birthday: ") + "</b>"
581 + Qtopia::escapeString(str) + "<br>"; 612 + Qtopia::escapeString(str) + "<br>";
582 } 613 }
583 if ( anniversary().isValid() ){ 614 if ( anniversary().isValid() ){
584 str = TimeString::numberDateString( anniversary() ); 615 str = TimeString::numberDateString( anniversary() );
585 text += "<b>" + QObject::tr("Anniversary: ") + "</b>" 616 text += "<b>" + QObject::tr("Anniversary: ") + "</b>"
586 + Qtopia::escapeString(str) + "<br>"; 617 + Qtopia::escapeString(str) + "<br>";
587 } 618 }
588 str = children(); 619 str = children();
589 if ( !str.isEmpty() ) 620 if ( !str.isEmpty() )
590 text += "<b>" + QObject::tr("Children: ") + "</b>" 621 text += "<b>" + QObject::tr("Children: ") + "</b>"
591 + Qtopia::escapeString(str) + "<br>"; 622 + Qtopia::escapeString(str) + "<br>";
592 623
593 str = nickname(); 624 str = nickname();
594 if ( !str.isEmpty() ) 625 if ( !str.isEmpty() )
595 text += "<b>" + QObject::tr("Nickname: ") + "</b>" 626 text += "<b>" + QObject::tr("Nickname: ") + "</b>"
596 + Qtopia::escapeString(str) + "<br>"; 627 + Qtopia::escapeString(str) + "<br>";
597 628
598 if ( categoryNames().count() ){ 629 if ( categoryNames().count() ){
599 text += "<b>" + QObject::tr( "Category:") + "</b> "; 630 text += "<b>" + QObject::tr( "Category:") + "</b> ";
600 text += categoryNames().join(", "); 631 text += categoryNames().join(", ");
601 text += "<br>"; 632 text += "<br>";
602 } 633 }
603 634
604 // notes last 635 // notes last
605 if ( (value = notes()) ) { 636 if ( (value = notes()) ) {
606 QRegExp reg("\n"); 637 text += "<br><hr><b>" + QObject::tr( "Notes:") + "</b> ";
638 QRegExp reg("\n");
607 639
608 //QString tmp = Qtopia::escapeString(value); 640 //QString tmp = Qtopia::escapeString(value);
609 QString tmp = QStyleSheet::convertFromPlainText(value); 641 QString tmp = QStyleSheet::convertFromPlainText(value);
610 //tmp.replace( reg, "<br>" ); 642 //tmp.replace( reg, "<br>" );
611 text += "<br>" + tmp + "<br>"; 643 text += "<br>" + tmp + "<br>";
612 } 644 }
613 return text; 645 return text;
614} 646}
615 647
616/*! 648/*!
617 \internal 649 \internal
618*/ 650*/
619void OContact::insert( int key, const QString &v ) 651void OContact::insert( int key, const QString &v )
620{ 652{
621 QString value = v.stripWhiteSpace(); 653 QString value = v.stripWhiteSpace();
622 if ( value.isEmpty() ) 654 if ( value.isEmpty() )
623 mMap.remove( key ); 655 mMap.remove( key );
624 else 656 else
625 mMap.insert( key, value ); 657 mMap.insert( key, value );
626} 658}
627 659
628/*! 660/*!
629 \internal 661 \internal
630*/ 662*/
631void OContact::replace( int key, const QString & v ) 663void OContact::replace( int key, const QString & v )
632{ 664{
633 QString value = v.stripWhiteSpace(); 665 QString value = v.stripWhiteSpace();
634 if ( value.isEmpty() ) 666 if ( value.isEmpty() )
635 mMap.remove( key ); 667 mMap.remove( key );
636 else 668 else
637 mMap.replace( key, value ); 669 mMap.replace( key, value );
638} 670}
639 671
640/*! 672/*!
641 \internal 673 \internal
642*/ 674*/
643QString OContact::find( int key ) const 675QString OContact::find( int key ) const
644{ 676{
645 return mMap[key]; 677 return mMap[key];
646} 678}
647 679
648/*! 680/*!
649 \internal 681 \internal
650*/ 682*/
651QString OContact::displayAddress( const QString &street, 683QString OContact::displayAddress( const QString &street,
652 const QString &city, 684 const QString &city,
653 const QString &state, 685 const QString &state,
654 const QString &zip, 686 const QString &zip,
655 const QString &country ) const 687 const QString &country ) const
656{ 688{
657 QString s = street; 689 QString s = street;
658 if ( !street.isEmpty() ) 690 if ( !street.isEmpty() )
659 s+= "\n"; 691 s+= "\n";
660 s += city; 692 s += city;
661 if ( !city.isEmpty() && !state.isEmpty() ) 693 if ( !city.isEmpty() && !state.isEmpty() )
662 s += ", "; 694 s += ", ";
663 s += state; 695 s += state;
664 if ( !state.isEmpty() && !zip.isEmpty() ) 696 if ( !state.isEmpty() && !zip.isEmpty() )
665 s += " "; 697 s += " ";
666 s += zip; 698 s += zip;
667 if ( !country.isEmpty() && !s.isEmpty() ) 699 if ( !country.isEmpty() && !s.isEmpty() )
668 s += "\n"; 700 s += "\n";
669 s += country; 701 s += country;
670 return s; 702 return s;
671} 703}
672 704
673/*! 705/*!
674 \internal 706 \internal
675*/ 707*/
676QString OContact::displayBusinessAddress() const 708QString OContact::displayBusinessAddress() const
677{ 709{
678 return displayAddress( businessStreet(), businessCity(), 710 return displayAddress( businessStreet(), businessCity(),
679 businessState(), businessZip(), 711 businessState(), businessZip(),
680 businessCountry() ); 712 businessCountry() );
681} 713}
682 714
683/*! 715/*!
684 \internal 716 \internal
685*/ 717*/
686QString OContact::displayHomeAddress() const 718QString OContact::displayHomeAddress() const
687{ 719{
688 return displayAddress( homeStreet(), homeCity(), 720 return displayAddress( homeStreet(), homeCity(),
689 homeState(), homeZip(), 721 homeState(), homeZip(),
690 homeCountry() ); 722 homeCountry() );
691} 723}
692 724
693/*! 725/*!
694 Returns the full name of the contact 726 Returns the full name of the contact
695*/ 727*/
696QString OContact::fullName() const 728QString OContact::fullName() const
697{ 729{
698 QString title = find( Qtopia::Title ); 730 QString title = find( Qtopia::Title );
699 QString firstName = find( Qtopia::FirstName ); 731 QString firstName = find( Qtopia::FirstName );
700 QString middleName = find( Qtopia::MiddleName ); 732 QString middleName = find( Qtopia::MiddleName );
701 QString lastName = find( Qtopia::LastName ); 733 QString lastName = find( Qtopia::LastName );
702 QString suffix = find( Qtopia::Suffix ); 734 QString suffix = find( Qtopia::Suffix );
703 735
704 QString name = title; 736 QString name = title;
705 if ( !firstName.isEmpty() ) { 737 if ( !firstName.isEmpty() ) {
706 if ( !name.isEmpty() ) 738 if ( !name.isEmpty() )
707 name += " "; 739 name += " ";
708 name += firstName; 740 name += firstName;
709 } 741 }
710 if ( !middleName.isEmpty() ) { 742 if ( !middleName.isEmpty() ) {
711 if ( !name.isEmpty() ) 743 if ( !name.isEmpty() )
712 name += " "; 744 name += " ";
713 name += middleName; 745 name += middleName;
714 } 746 }
715 if ( !lastName.isEmpty() ) { 747 if ( !lastName.isEmpty() ) {
716 if ( !name.isEmpty() ) 748 if ( !name.isEmpty() )
717 name += " "; 749 name += " ";
718 name += lastName; 750 name += lastName;
719 } 751 }
720 if ( !suffix.isEmpty() ) { 752 if ( !suffix.isEmpty() ) {
721 if ( !name.isEmpty() ) 753 if ( !name.isEmpty() )
722 name += " "; 754 name += " ";
723 name += suffix; 755 name += suffix;
724 } 756 }
725 return name.simplifyWhiteSpace(); 757 return name.simplifyWhiteSpace();
726} 758}
727 759
728/*! 760/*!
729 Returns a list of the names of the children of the contact. 761 Returns a list of the names of the children of the contact.
730*/ 762*/
731QStringList OContact::childrenList() const 763QStringList OContact::childrenList() const
732{ 764{
733 return QStringList::split( " ", find( Qtopia::Children ) ); 765 return QStringList::split( " ", find( Qtopia::Children ) );
734} 766}
735 767
736/*! \fn void OContact::insertEmail( const QString &email ) 768/*! \fn void OContact::insertEmail( const QString &email )
737 769
738 Insert \a email into the email list. Ensures \a email can only be added 770 Insert \a email into the email list. Ensures \a email can only be added
739 once. If there is no default email address set, it sets it to the \a email. 771 once. If there is no default email address set, it sets it to the \a email.
diff --git a/libopie2/opiepim/ocontact.cpp b/libopie2/opiepim/ocontact.cpp
index c9084ad..9230b8b 100644
--- a/libopie2/opiepim/ocontact.cpp
+++ b/libopie2/opiepim/ocontact.cpp
@@ -312,428 +312,460 @@ OContact::~OContact()
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 QString str;
441 bool marker = false;
440 442
441 // name, jobtitle and company 443 // name, jobtitle and company
442 if ( !(value = fullName()).isEmpty() ) 444 if ( !(value = fullName()).isEmpty() )
443 text += "<b>" + Qtopia::escapeString(value) + "</b><br>"; 445 text += "<b><h3>" + Qtopia::escapeString(value) + "</h3></b><br>";
444 if ( !(value = jobTitle()).isEmpty() ) 446 if ( !(value = jobTitle()).isEmpty() )
445 text += Qtopia::escapeString(value) + "<br>"; 447 text += Qtopia::escapeString(value) + "<br>";
446 448
447 comp = company(); 449 comp = company();
448 if ( !(value = department()).isEmpty() ) { 450 if ( !(value = department()).isEmpty() ) {
449 text += Qtopia::escapeString(value); 451 text += Qtopia::escapeString(value);
450 if ( comp ) 452 if ( comp )
451 text += ", "; 453 text += ", ";
452 else 454 else
453 text += "<br>"; 455 text += "<br>";
454 } 456 }
455 if ( !comp.isEmpty() ) 457 if ( !comp.isEmpty() )
456 text += Qtopia::escapeString(comp) + "<br>"; 458 text += Qtopia::escapeString(comp) + "<br>";
457 459
460 QString defEmail = defaultEmail();
461 if ( !defEmail.isEmpty() )
462 text += "<b>" + QObject::tr("Default Email: ") + "</b>"
463 + Qtopia::escapeString(defEmail) + "<br>";
464
465 text += "<hr>";
466
458 // business address 467 // business address
459 if ( !businessStreet().isEmpty() || !businessCity().isEmpty() || 468 if ( !businessStreet().isEmpty() || !businessCity().isEmpty() ||
460 !businessZip().isEmpty() || !businessCountry().isEmpty() ) { 469 !businessZip().isEmpty() || !businessCountry().isEmpty() ) {
461 text += "<br>"; 470 text += "<br>";
462 text += QObject::tr( "<b>Work Address:</b>" ); 471 text += QObject::tr( "<b>Work Address:</b>" );
463 text += "<br>"; 472 text += "<br>";
473 marker = true;
464 } 474 }
465 475
466 if ( !(value = businessStreet()).isEmpty() ) 476 if ( !(value = businessStreet()).isEmpty() )
467 text += Qtopia::escapeString(value) + "<br>"; 477 text += Qtopia::escapeString(value) + "<br>";
468 state = businessState(); 478 state = businessState();
469 if ( !(value = businessCity()).isEmpty() ) { 479 if ( !(value = businessCity()).isEmpty() ) {
470 text += Qtopia::escapeString(value); 480 text += Qtopia::escapeString(value);
471 if ( state ) 481 if ( state )
472 text += ", " + Qtopia::escapeString(state); 482 text += ", " + Qtopia::escapeString(state);
473 text += "<br>"; 483 text += "<br>";
474 } else if ( !state.isEmpty() ) 484 } else if ( !state.isEmpty() )
475 text += Qtopia::escapeString(state) + "<br>"; 485 text += Qtopia::escapeString(state) + "<br>";
476 if ( !(value = businessZip()).isEmpty() ) 486 if ( !(value = businessZip()).isEmpty() )
477 text += Qtopia::escapeString(value) + "<br>"; 487 text += Qtopia::escapeString(value) + "<br>";
478 if ( !(value = businessCountry()).isEmpty() ) 488 if ( !(value = businessCountry()).isEmpty() )
479 text += Qtopia::escapeString(value) + "<br>"; 489 text += Qtopia::escapeString(value) + "<br>";
480 490
491 // rest of Business data
492 str = office();
493 if ( !str.isEmpty() ){
494 text += "<b>" + QObject::tr("Office: ") + "</b>"
495 + Qtopia::escapeString(str) + "<br>";
496 marker = true;
497 }
498 str = businessWebpage();
499 if ( !str.isEmpty() ){
500 text += "<b>" + QObject::tr("Business Web Page: ") + "</b>"
501 + Qtopia::escapeString(str) + "<br>";
502 marker = true;
503 }
504 str = businessPhone();
505 if ( !str.isEmpty() ){
506 text += "<b>" + QObject::tr("Business Phone: ") + "</b>"
507 + Qtopia::escapeString(str) + "<br>";
508 marker = true;
509 }
510 str = businessFax();
511 if ( !str.isEmpty() ){
512 text += "<b>" + QObject::tr("Business Fax: ") + "</b>"
513 + Qtopia::escapeString(str) + "<br>";
514 marker = true;
515 }
516 str = businessMobile();
517 if ( !str.isEmpty() ){
518 text += "<b>" + QObject::tr("Business Mobile: ") + "</b>"
519 + Qtopia::escapeString(str) + "<br>";
520 marker = true;
521 }
522 str = businessPager();
523 if ( !str.isEmpty() ){
524 text += "<b>" + QObject::tr("Business Pager: ") + "</b>"
525 + Qtopia::escapeString(str) + "<br>";
526 marker = true;
527 }
528
481 // home address 529 // home address
482 if ( !homeStreet().isEmpty() || !homeCity().isEmpty() || 530 if ( !homeStreet().isEmpty() || !homeCity().isEmpty() ||
483 !homeZip().isEmpty() || !homeCountry().isEmpty() ) { 531 !homeZip().isEmpty() || !homeCountry().isEmpty() ) {
484 text += "<br>"; 532 text += "<br>";
485 text += QObject::tr( "<b>Home Address:</b>" ); 533 text += QObject::tr( "<b>Home Address:</b>" );
486 text += "<br>"; 534 text += "<br>";
487 } 535 }
488 536
489 if ( !(value = homeStreet()).isEmpty() ) 537 if ( !(value = homeStreet()).isEmpty() )
490 text += Qtopia::escapeString(value) + "<br>"; 538 text += Qtopia::escapeString(value) + "<br>";
491 state = homeState(); 539 state = homeState();
492 if ( !(value = homeCity()).isEmpty() ) { 540 if ( !(value = homeCity()).isEmpty() ) {
493 text += Qtopia::escapeString(value); 541 text += Qtopia::escapeString(value);
494 if ( !state.isEmpty() ) 542 if ( !state.isEmpty() )
495 text += ", " + Qtopia::escapeString(state); 543 text += ", " + Qtopia::escapeString(state);
496 text += "<br>"; 544 text += "<br>";
497 } else if (!state.isEmpty()) 545 } else if (!state.isEmpty())
498 text += Qtopia::escapeString(state) + "<br>"; 546 text += Qtopia::escapeString(state) + "<br>";
499 if ( !(value = homeZip()).isEmpty() ) 547 if ( !(value = homeZip()).isEmpty() )
500 text += Qtopia::escapeString(value) + "<br>"; 548 text += Qtopia::escapeString(value) + "<br>";
501 if ( !(value = homeCountry()).isEmpty() ) 549 if ( !(value = homeCountry()).isEmpty() )
502 text += Qtopia::escapeString(value) + "<br>"; 550 text += Qtopia::escapeString(value) + "<br>";
503 551
504 // the others... 552 // rest of Home data
505 QString str; 553 str = homeWebpage();
506 QString defEmail = defaultEmail(); 554 if ( !str.isEmpty() ){
507 if ( !defEmail.isEmpty() ) 555 text += "<b>" + QObject::tr("Home Web Page: ") + "</b>"
508 text += "<b>" + QObject::tr("Default Email: ") + "</b>"
509 + Qtopia::escapeString(defEmail) + "<br>";
510 str = emails();
511 if ( !str.isEmpty() && ( str != defEmail ) )
512 text += "<b>" + QObject::tr("All Emails: ") + "</b>"
513 + Qtopia::escapeString(str) + "<br>"; 556 + Qtopia::escapeString(str) + "<br>";
557 marker = true;
558 }
514 str = homePhone(); 559 str = homePhone();
515 if ( !str.isEmpty() ) 560 if ( !str.isEmpty() ){
516 text += "<b>" + QObject::tr("Home Phone: ") + "</b>" 561 text += "<b>" + QObject::tr("Home Phone: ") + "</b>"
517 + Qtopia::escapeString(str) + "<br>"; 562 + Qtopia::escapeString(str) + "<br>";
563 marker = true;
564 }
518 str = homeFax(); 565 str = homeFax();
519 if ( !str.isEmpty() ) 566 if ( !str.isEmpty() ){
520 text += "<b>" + QObject::tr("Home Fax: ") + "</b>" 567 text += "<b>" + QObject::tr("Home Fax: ") + "</b>"
521 + Qtopia::escapeString(str) + "<br>"; 568 + Qtopia::escapeString(str) + "<br>";
569 marker = true;
570 }
522 str = homeMobile(); 571 str = homeMobile();
523 if ( !str.isEmpty() ) 572 if ( !str.isEmpty() ){
524 text += "<b>" + QObject::tr("Home Mobile: ") + "</b>" 573 text += "<b>" + QObject::tr("Home Mobile: ") + "</b>"
525 + Qtopia::escapeString(str) + "<br>"; 574 + Qtopia::escapeString(str) + "<br>";
526 str = homeWebpage(); 575 marker = true;
527 if ( !str.isEmpty() ) 576 }
528 text += "<b>" + QObject::tr("Home Web Page: ") + "</b>" 577
529 + Qtopia::escapeString(str) + "<br>"; 578 if ( marker )
530 str = businessWebpage(); 579 text += "<br><hr><br>";
531 if ( !str.isEmpty() ) 580 // the others...
532 text += "<b>" + QObject::tr("Business Web Page: ") + "</b>" 581 str = emails();
533 + Qtopia::escapeString(str) + "<br>"; 582 if ( !str.isEmpty() && ( str != defEmail ) )
534 str = office(); 583 text += "<b>" + QObject::tr("All Emails: ") + "</b>"
535 if ( !str.isEmpty() )
536 text += "<b>" + QObject::tr("Office: ") + "</b>"
537 + Qtopia::escapeString(str) + "<br>";
538 str = businessPhone();
539 if ( !str.isEmpty() )
540 text += "<b>" + QObject::tr("Business Phone: ") + "</b>"
541 + Qtopia::escapeString(str) + "<br>";
542 str = businessFax();
543 if ( !str.isEmpty() )
544 text += "<b>" + QObject::tr("Business Fax: ") + "</b>"
545 + Qtopia::escapeString(str) + "<br>";
546 str = businessMobile();
547 if ( !str.isEmpty() )
548 text += "<b>" + QObject::tr("Business Mobile: ") + "</b>"
549 + Qtopia::escapeString(str) + "<br>";
550 str = businessPager();
551 if ( !str.isEmpty() )
552 text += "<b>" + QObject::tr("Business Pager: ") + "</b>"
553 + Qtopia::escapeString(str) + "<br>"; 584 + Qtopia::escapeString(str) + "<br>";
554 str = profession(); 585 str = profession();
555 if ( !str.isEmpty() ) 586 if ( !str.isEmpty() )
556 text += "<b>" + QObject::tr("Profession: ") + "</b>" 587 text += "<b>" + QObject::tr("Profession: ") + "</b>"
557 + Qtopia::escapeString(str) + "<br>"; 588 + Qtopia::escapeString(str) + "<br>";
558 str = assistant(); 589 str = assistant();
559 if ( !str.isEmpty() ) 590 if ( !str.isEmpty() )
560 text += "<b>" + QObject::tr("Assistant: ") + "</b>" 591 text += "<b>" + QObject::tr("Assistant: ") + "</b>"
561 + Qtopia::escapeString(str) + "<br>"; 592 + Qtopia::escapeString(str) + "<br>";
562 str = manager(); 593 str = manager();
563 if ( !str.isEmpty() ) 594 if ( !str.isEmpty() )
564 text += "<b>" + QObject::tr("Manager: ") + "</b>" 595 text += "<b>" + QObject::tr("Manager: ") + "</b>"
565 + Qtopia::escapeString(str) + "<br>"; 596 + Qtopia::escapeString(str) + "<br>";
566 str = gender(); 597 str = gender();
567 if ( !str.isEmpty() && str.toInt() != 0 ) { 598 if ( !str.isEmpty() && str.toInt() != 0 ) {
568 if ( str.toInt() == 1 ) 599 if ( str.toInt() == 1 )
569 str = QObject::tr( "Male" ); 600 str = QObject::tr( "Male" );
570 else if ( str.toInt() == 2 ) 601 else if ( str.toInt() == 2 )
571 str = QObject::tr( "Female" ); 602 str = QObject::tr( "Female" );
572 text += "<b>" + QObject::tr("Gender: ") + "</b>" + str + "<br>"; 603 text += "<b>" + QObject::tr("Gender: ") + "</b>" + str + "<br>";
573 } 604 }
574 str = spouse(); 605 str = spouse();
575 if ( !str.isEmpty() ) 606 if ( !str.isEmpty() )
576 text += "<b>" + QObject::tr("Spouse: ") + "</b>" 607 text += "<b>" + QObject::tr("Spouse: ") + "</b>"
577 + Qtopia::escapeString(str) + "<br>"; 608 + Qtopia::escapeString(str) + "<br>";
578 if ( birthday().isValid() ){ 609 if ( birthday().isValid() ){
579 str = TimeString::numberDateString( birthday() ); 610 str = TimeString::numberDateString( birthday() );
580 text += "<b>" + QObject::tr("Birthday: ") + "</b>" 611 text += "<b>" + QObject::tr("Birthday: ") + "</b>"
581 + Qtopia::escapeString(str) + "<br>"; 612 + Qtopia::escapeString(str) + "<br>";
582 } 613 }
583 if ( anniversary().isValid() ){ 614 if ( anniversary().isValid() ){
584 str = TimeString::numberDateString( anniversary() ); 615 str = TimeString::numberDateString( anniversary() );
585 text += "<b>" + QObject::tr("Anniversary: ") + "</b>" 616 text += "<b>" + QObject::tr("Anniversary: ") + "</b>"
586 + Qtopia::escapeString(str) + "<br>"; 617 + Qtopia::escapeString(str) + "<br>";
587 } 618 }
588 str = children(); 619 str = children();
589 if ( !str.isEmpty() ) 620 if ( !str.isEmpty() )
590 text += "<b>" + QObject::tr("Children: ") + "</b>" 621 text += "<b>" + QObject::tr("Children: ") + "</b>"
591 + Qtopia::escapeString(str) + "<br>"; 622 + Qtopia::escapeString(str) + "<br>";
592 623
593 str = nickname(); 624 str = nickname();
594 if ( !str.isEmpty() ) 625 if ( !str.isEmpty() )
595 text += "<b>" + QObject::tr("Nickname: ") + "</b>" 626 text += "<b>" + QObject::tr("Nickname: ") + "</b>"
596 + Qtopia::escapeString(str) + "<br>"; 627 + Qtopia::escapeString(str) + "<br>";
597 628
598 if ( categoryNames().count() ){ 629 if ( categoryNames().count() ){
599 text += "<b>" + QObject::tr( "Category:") + "</b> "; 630 text += "<b>" + QObject::tr( "Category:") + "</b> ";
600 text += categoryNames().join(", "); 631 text += categoryNames().join(", ");
601 text += "<br>"; 632 text += "<br>";
602 } 633 }
603 634
604 // notes last 635 // notes last
605 if ( (value = notes()) ) { 636 if ( (value = notes()) ) {
606 QRegExp reg("\n"); 637 text += "<br><hr><b>" + QObject::tr( "Notes:") + "</b> ";
638 QRegExp reg("\n");
607 639
608 //QString tmp = Qtopia::escapeString(value); 640 //QString tmp = Qtopia::escapeString(value);
609 QString tmp = QStyleSheet::convertFromPlainText(value); 641 QString tmp = QStyleSheet::convertFromPlainText(value);
610 //tmp.replace( reg, "<br>" ); 642 //tmp.replace( reg, "<br>" );
611 text += "<br>" + tmp + "<br>"; 643 text += "<br>" + tmp + "<br>";
612 } 644 }
613 return text; 645 return text;
614} 646}
615 647
616/*! 648/*!
617 \internal 649 \internal
618*/ 650*/
619void OContact::insert( int key, const QString &v ) 651void OContact::insert( int key, const QString &v )
620{ 652{
621 QString value = v.stripWhiteSpace(); 653 QString value = v.stripWhiteSpace();
622 if ( value.isEmpty() ) 654 if ( value.isEmpty() )
623 mMap.remove( key ); 655 mMap.remove( key );
624 else 656 else
625 mMap.insert( key, value ); 657 mMap.insert( key, value );
626} 658}
627 659
628/*! 660/*!
629 \internal 661 \internal
630*/ 662*/
631void OContact::replace( int key, const QString & v ) 663void OContact::replace( int key, const QString & v )
632{ 664{
633 QString value = v.stripWhiteSpace(); 665 QString value = v.stripWhiteSpace();
634 if ( value.isEmpty() ) 666 if ( value.isEmpty() )
635 mMap.remove( key ); 667 mMap.remove( key );
636 else 668 else
637 mMap.replace( key, value ); 669 mMap.replace( key, value );
638} 670}
639 671
640/*! 672/*!
641 \internal 673 \internal
642*/ 674*/
643QString OContact::find( int key ) const 675QString OContact::find( int key ) const
644{ 676{
645 return mMap[key]; 677 return mMap[key];
646} 678}
647 679
648/*! 680/*!
649 \internal 681 \internal
650*/ 682*/
651QString OContact::displayAddress( const QString &street, 683QString OContact::displayAddress( const QString &street,
652 const QString &city, 684 const QString &city,
653 const QString &state, 685 const QString &state,
654 const QString &zip, 686 const QString &zip,
655 const QString &country ) const 687 const QString &country ) const
656{ 688{
657 QString s = street; 689 QString s = street;
658 if ( !street.isEmpty() ) 690 if ( !street.isEmpty() )
659 s+= "\n"; 691 s+= "\n";
660 s += city; 692 s += city;
661 if ( !city.isEmpty() && !state.isEmpty() ) 693 if ( !city.isEmpty() && !state.isEmpty() )
662 s += ", "; 694 s += ", ";
663 s += state; 695 s += state;
664 if ( !state.isEmpty() && !zip.isEmpty() ) 696 if ( !state.isEmpty() && !zip.isEmpty() )
665 s += " "; 697 s += " ";
666 s += zip; 698 s += zip;
667 if ( !country.isEmpty() && !s.isEmpty() ) 699 if ( !country.isEmpty() && !s.isEmpty() )
668 s += "\n"; 700 s += "\n";
669 s += country; 701 s += country;
670 return s; 702 return s;
671} 703}
672 704
673/*! 705/*!
674 \internal 706 \internal
675*/ 707*/
676QString OContact::displayBusinessAddress() const 708QString OContact::displayBusinessAddress() const
677{ 709{
678 return displayAddress( businessStreet(), businessCity(), 710 return displayAddress( businessStreet(), businessCity(),
679 businessState(), businessZip(), 711 businessState(), businessZip(),
680 businessCountry() ); 712 businessCountry() );
681} 713}
682 714
683/*! 715/*!
684 \internal 716 \internal
685*/ 717*/
686QString OContact::displayHomeAddress() const 718QString OContact::displayHomeAddress() const
687{ 719{
688 return displayAddress( homeStreet(), homeCity(), 720 return displayAddress( homeStreet(), homeCity(),
689 homeState(), homeZip(), 721 homeState(), homeZip(),
690 homeCountry() ); 722 homeCountry() );
691} 723}
692 724
693/*! 725/*!
694 Returns the full name of the contact 726 Returns the full name of the contact
695*/ 727*/
696QString OContact::fullName() const 728QString OContact::fullName() const
697{ 729{
698 QString title = find( Qtopia::Title ); 730 QString title = find( Qtopia::Title );
699 QString firstName = find( Qtopia::FirstName ); 731 QString firstName = find( Qtopia::FirstName );
700 QString middleName = find( Qtopia::MiddleName ); 732 QString middleName = find( Qtopia::MiddleName );
701 QString lastName = find( Qtopia::LastName ); 733 QString lastName = find( Qtopia::LastName );
702 QString suffix = find( Qtopia::Suffix ); 734 QString suffix = find( Qtopia::Suffix );
703 735
704 QString name = title; 736 QString name = title;
705 if ( !firstName.isEmpty() ) { 737 if ( !firstName.isEmpty() ) {
706 if ( !name.isEmpty() ) 738 if ( !name.isEmpty() )
707 name += " "; 739 name += " ";
708 name += firstName; 740 name += firstName;
709 } 741 }
710 if ( !middleName.isEmpty() ) { 742 if ( !middleName.isEmpty() ) {
711 if ( !name.isEmpty() ) 743 if ( !name.isEmpty() )
712 name += " "; 744 name += " ";
713 name += middleName; 745 name += middleName;
714 } 746 }
715 if ( !lastName.isEmpty() ) { 747 if ( !lastName.isEmpty() ) {
716 if ( !name.isEmpty() ) 748 if ( !name.isEmpty() )
717 name += " "; 749 name += " ";
718 name += lastName; 750 name += lastName;
719 } 751 }
720 if ( !suffix.isEmpty() ) { 752 if ( !suffix.isEmpty() ) {
721 if ( !name.isEmpty() ) 753 if ( !name.isEmpty() )
722 name += " "; 754 name += " ";
723 name += suffix; 755 name += suffix;
724 } 756 }
725 return name.simplifyWhiteSpace(); 757 return name.simplifyWhiteSpace();
726} 758}
727 759
728/*! 760/*!
729 Returns a list of the names of the children of the contact. 761 Returns a list of the names of the children of the contact.
730*/ 762*/
731QStringList OContact::childrenList() const 763QStringList OContact::childrenList() const
732{ 764{
733 return QStringList::split( " ", find( Qtopia::Children ) ); 765 return QStringList::split( " ", find( Qtopia::Children ) );
734} 766}
735 767
736/*! \fn void OContact::insertEmail( const QString &email ) 768/*! \fn void OContact::insertEmail( const QString &email )
737 769
738 Insert \a email into the email list. Ensures \a email can only be added 770 Insert \a email into the email list. Ensures \a email can only be added
739 once. If there is no default email address set, it sets it to the \a email. 771 once. If there is no default email address set, it sets it to the \a email.