summaryrefslogtreecommitdiffabout
path: root/kabc/addressee.cpp
authorzautrix <zautrix>2005-10-28 03:24:50 (UTC)
committer zautrix <zautrix>2005-10-28 03:24:50 (UTC)
commitf83a59cf4f9d0cff4111b6f5c88e88e6dc96e79e (patch) (unidiff)
tree969e6cf85499e3b1dcaa4dc24c972b65c906cfa9 /kabc/addressee.cpp
parentcbda16d4966c7483d20d1b6b5a64c8af367ea732 (diff)
downloadkdepimpi-f83a59cf4f9d0cff4111b6f5c88e88e6dc96e79e.zip
kdepimpi-f83a59cf4f9d0cff4111b6f5c88e88e6dc96e79e.tar.gz
kdepimpi-f83a59cf4f9d0cff4111b6f5c88e88e6dc96e79e.tar.bz2
many new bugs...
Diffstat (limited to 'kabc/addressee.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/addressee.cpp74
1 files changed, 68 insertions, 6 deletions
diff --git a/kabc/addressee.cpp b/kabc/addressee.cpp
index 7e1e414..661bdf6 100644
--- a/kabc/addressee.cpp
+++ b/kabc/addressee.cpp
@@ -461,257 +461,309 @@ void Addressee::mergeContact( const Addressee& ad , bool isSubSet) // = false)
461 break; 461 break;
462 462
463 } 463 }
464 } 464 }
465 if ( ! found ) { 465 if ( ! found ) {
466 mData->keys.append( *itA ); 466 mData->keys.append( *itA );
467 } 467 }
468 } 468 }
469 } 469 }
470 if ( isSubSet ) { 470 if ( isSubSet ) {
471 KABC::Address::List::Iterator addressIterA; 471 KABC::Address::List::Iterator addressIterA;
472 for ( addressIterA = ad.mData->addresses.begin(); addressIterA != ad.mData->addresses.end(); ++addressIterA ) { 472 for ( addressIterA = ad.mData->addresses.begin(); addressIterA != ad.mData->addresses.end(); ++addressIterA ) {
473 bool found = false; 473 bool found = false;
474 KABC::Address::List::Iterator addressIter; 474 KABC::Address::List::Iterator addressIter;
475 for ( addressIter = mData->addresses.begin(); addressIter != mData->addresses.end(); 475 for ( addressIter = mData->addresses.begin(); addressIter != mData->addresses.end();
476 ++addressIter ) { 476 ++addressIter ) {
477 if ( (*addressIter) == (*addressIterA)) { 477 if ( (*addressIter) == (*addressIterA)) {
478 found = true; 478 found = true;
479 (*addressIter).setType( (*addressIterA).type() ); 479 (*addressIter).setType( (*addressIterA).type() );
480 break; 480 break;
481 } 481 }
482 482
483 } 483 }
484 if ( isSubSet && ! found ) { 484 if ( isSubSet && ! found ) {
485 mData->addresses.append( *addressIterA ); 485 mData->addresses.append( *addressIterA );
486 } 486 }
487 } 487 }
488 } 488 }
489 //qDebug("merge contact %s ", ad.uid().latin1()); 489 //qDebug("merge contact %s ", ad.uid().latin1());
490 setUid( ad.uid() ); 490 setUid( ad.uid() );
491 setRevision( ad.revision() ); 491 setRevision( ad.revision() );
492} 492}
493 493
494bool Addressee::removeVoice() 494bool Addressee::removeVoice()
495{ 495{
496 PhoneNumber::List phoneN = phoneNumbers(); 496 PhoneNumber::List phoneN = phoneNumbers();
497 PhoneNumber::List::Iterator phoneIt; 497 PhoneNumber::List::Iterator phoneIt;
498 bool found = false; 498 bool found = false;
499 for ( phoneIt = phoneN.begin(); phoneIt != phoneN.end(); ++phoneIt ) { 499 for ( phoneIt = phoneN.begin(); phoneIt != phoneN.end(); ++phoneIt ) {
500 if ( (*phoneIt).type() & PhoneNumber::Voice) { // voice found 500 if ( (*phoneIt).type() & PhoneNumber::Voice) { // voice found
501 if ((*phoneIt).type() - PhoneNumber::Voice ) { 501 if ((*phoneIt).type() - PhoneNumber::Voice ) {
502 (*phoneIt).setType((*phoneIt).type() - PhoneNumber::Voice ); 502 (*phoneIt).setType((*phoneIt).type() - PhoneNumber::Voice );
503 insertPhoneNumber( (*phoneIt) ); 503 insertPhoneNumber( (*phoneIt) );
504 found = true; 504 found = true;
505 } 505 }
506 } 506 }
507 507
508 } 508 }
509 return found; 509 return found;
510} 510}
511 511
512bool Addressee::containsAdr(const Addressee& ad ) 512bool Addressee::containsAdr(const Addressee& ad )
513{ 513{
514 if ( ! ad.mData->familyName.isEmpty() ) if ( mData->familyName != ad.mData->familyName) return false; 514 if ( ! ad.mData->familyName.isEmpty() ) if ( mData->familyName != ad.mData->familyName) return false;
515 if ( ! ad.mData->givenName.isEmpty() )if ( mData->givenName != ad.mData->givenName ) return false; 515 if ( ! ad.mData->givenName.isEmpty() )if ( mData->givenName != ad.mData->givenName ) return false;
516 if ( ad.mData->url.isValid() ) if (mData->url != ad.mData->url) return false ; 516 if ( ad.mData->url.isValid() ) if (mData->url != ad.mData->url) return false ;
517 if ( ! ad.mData->role.isEmpty() ) if (mData->role != ad.mData->role) return false ; 517 if ( ! ad.mData->role.isEmpty() ) if (mData->role != ad.mData->role) return false ;
518 if ( ! ad.mData->organization.isEmpty() ) if (mData->organization != ad.mData->organization) return false ; 518 if ( ! ad.mData->organization.isEmpty() ) if (mData->organization != ad.mData->organization) return false ;
519 if ( ! ad.mData->note.isEmpty() ) if (mData->note != ad.mData->note) return false ; 519 if ( ! ad.mData->note.isEmpty() ) if (mData->note != ad.mData->note) return false ;
520 if ( ! ad.mData->title .isEmpty() ) if (mData->title != ad.mData->title ) return false ; 520 if ( ! ad.mData->title .isEmpty() ) if (mData->title != ad.mData->title ) return false ;
521 521
522 // compare phone numbers 522 // compare phone numbers
523 PhoneNumber::List phoneN = ad.phoneNumbers(); 523 PhoneNumber::List phoneN = ad.phoneNumbers();
524 PhoneNumber::List::Iterator phoneIt; 524 PhoneNumber::List::Iterator phoneIt;
525 bool found = false; 525 bool found = false;
526 for ( phoneIt = phoneN.begin(); phoneIt != phoneN.end(); ++phoneIt ) { 526 for ( phoneIt = phoneN.begin(); phoneIt != phoneN.end(); ++phoneIt ) {
527 bool found = false; 527 bool found = false;
528 PhoneNumber::List phoneL = ad.phoneNumbers(); 528 PhoneNumber::List phoneL = ad.phoneNumbers();
529 PhoneNumber::List::Iterator phoneItL; 529 PhoneNumber::List::Iterator phoneItL;
530 for ( phoneItL = phoneL.begin(); phoneItL != phoneL.end(); ++phoneItL ) { 530 for ( phoneItL = phoneL.begin(); phoneItL != phoneL.end(); ++phoneItL ) {
531 if ( ( *phoneItL ).number() == ( *phoneIt ).number() ) { 531 if ( ( *phoneItL ).number() == ( *phoneIt ).number() ) {
532 found = true; 532 found = true;
533 break; 533 break;
534 } 534 }
535 } 535 }
536 if ( ! found ) 536 if ( ! found )
537 return false; 537 return false;
538 } 538 }
539 return true; 539 return true;
540 540
541} 541}
542void Addressee::simplifyAddresses() 542void Addressee::simplifyAddresses()
543{ 543{
544 544
545 545
546 Address::List list; 546 Address::List list;
547 Address::List::Iterator it; 547 Address::List::Iterator it;
548 Address::List::Iterator it2; 548 Address::List::Iterator it2;
549 for( it = mData->addresses.begin(); it != mData->addresses.end(); ++it ) { 549 for( it = mData->addresses.begin(); it != mData->addresses.end(); ++it ) {
550 it2 = it; 550 it2 = it;
551 ++it2; 551 ++it2;
552 for( ; it2 != mData->addresses.end(); ++it2 ) { 552 for( ; it2 != mData->addresses.end(); ++it2 ) {
553 if ( (*it) == (*it2) ) { 553 if ( (*it) == (*it2) ) {
554 list.append( *it ); 554 list.append( *it );
555 break; 555 break;
556 } 556 }
557 } 557 }
558 } 558 }
559 for( it = list.begin(); it != list.end(); ++it ) { 559 for( it = list.begin(); it != list.end(); ++it ) {
560 removeAddress( (*it) ); 560 removeAddress( (*it) );
561 } 561 }
562 562
563 list.clear(); 563 list.clear();
564 int max = 2; 564 int max = 2;
565 if ( mData->url.isValid() ) 565 if ( mData->url.isValid() )
566 max = 1; 566 max = 1;
567 if ( mData->addresses.count() <= max ) return ; 567 if ( mData->addresses.count() <= max ) return ;
568 int count = 0; 568 int count = 0;
569 for( it = mData->addresses.begin(); it != mData->addresses.end(); ++it ) { 569 for( it = mData->addresses.begin(); it != mData->addresses.end(); ++it ) {
570 if ( count >= max ) 570 if ( count >= max )
571 list.append( *it ); 571 list.append( *it );
572 ++count; 572 ++count;
573 } 573 }
574 for( it = list.begin(); it != list.end(); ++it ) { 574 for( it = list.begin(); it != list.end(); ++it ) {
575 removeAddress( (*it) ); 575 removeAddress( (*it) );
576 } 576 }
577} 577}
578 578
579// removes all emails but the first 579// removes all emails but the first
580// needed by phone sync 580// needed by phone sync
581void Addressee::simplifyEmails() 581void Addressee::simplifyEmails()
582{ 582{
583 if ( mData->emails.count() == 0 ) return ; 583 if ( mData->emails.count() == 0 ) return ;
584 QString email = mData->emails.first(); 584 QString email = mData->emails.first();
585 detach(); 585 detach();
586 mData->emails.clear(); 586 mData->emails.clear();
587 mData->emails.append( email ); 587 mData->emails.append( email );
588} 588}
589void Addressee::makePhoneNumbersOLcompatible()
590{
591 KABC::PhoneNumber::List::Iterator phoneIter;
592 KABC::PhoneNumber::List::Iterator phoneIter2;
593 for ( phoneIter = mData->phoneNumbers.begin(); phoneIter != mData->phoneNumbers.end();
594 ++phoneIter ) {
595 ( *phoneIter ).makeCompat();
596 }
597 int hasHome = hasPhoneNumberType( PhoneNumber::Home | PhoneNumber::Pref );
598 int hasHome2 = hasPhoneNumberType( PhoneNumber::Home );
599 int hasWork = hasPhoneNumberType( PhoneNumber::Work | PhoneNumber::Pref );
600 int hasWork2 = hasPhoneNumberType( PhoneNumber::Work );
601 int hasCell = hasPhoneNumberType( PhoneNumber::Cell );
602 int hasCell2 = hasPhoneNumberType( PhoneNumber::Car );
603 for ( phoneIter = mData->phoneNumbers.begin(); phoneIter != mData->phoneNumbers.end();
604 ++phoneIter ) {
605 if ( (*phoneIter).type() == PhoneNumber::Home && ! hasHome ) {
606 (*phoneIter).setType( PhoneNumber::Home | PhoneNumber::Pref );
607 ++hasHome;
608 if ( hasHome2 ) --hasHome2;
609 } else if ( ( (*phoneIter).type() == PhoneNumber::Home | PhoneNumber::Pref) && hasHome>1 && !hasHome2 ) {
610 (*phoneIter).setType( PhoneNumber::Home );
611 --hasHome;
612 ++hasHome2;
613 } else if ( (*phoneIter).type() == PhoneNumber::Work && ! hasWork ) {
614 (*phoneIter).setType( PhoneNumber::Work | PhoneNumber::Pref );
615 ++hasWork;
616 if ( hasWork2 ) --hasWork2;
617 } else if ( ( (*phoneIter).type() == PhoneNumber::Work | PhoneNumber::Pref) && hasWork > 1 && ! hasWork2 ) {
618 (*phoneIter).setType( PhoneNumber::Work );
619 --hasWork;
620 ++hasWork2;
621 } else if ( (*phoneIter).type() == PhoneNumber::Cell && hasCell > 1 && !hasCell2) {
622 (*phoneIter).setType( PhoneNumber::Car );
623 ++hasCell2;
624 --hasCell;
625 } else if ( (*phoneIter).type() == PhoneNumber::Car && hasCell2 > 1 && !hasCell) {
626 (*phoneIter).setType( PhoneNumber::Cell );
627 ++hasCell;
628 --hasCell2;
629 } else{
630 phoneIter2 = phoneIter;
631 ++phoneIter2;
632 for ( ; phoneIter2 != mData->phoneNumbers.end();
633 ++phoneIter2 ) {
634 if ( (*phoneIter2).type() == (*phoneIter).type() ) {
635 (*phoneIter2).setType( PhoneNumber::Voice );
589 636
637 }
638 }
639 }
640 }
641}
590void Addressee::simplifyPhoneNumbers() 642void Addressee::simplifyPhoneNumbers()
591{ 643{
592 int max = 4; 644 int max = 4;
593 int inList = mData->phoneNumbers.count(); 645 int inList = mData->phoneNumbers.count();
594 KABC::PhoneNumber::List removeNumbers; 646 KABC::PhoneNumber::List removeNumbers;
595 KABC::PhoneNumber::List::Iterator phoneIter; 647 KABC::PhoneNumber::List::Iterator phoneIter;
596 if ( inList > max ) { 648 if ( inList > max ) {
597 // delete non-preferred numbers 649 // delete non-preferred numbers
598 for ( phoneIter = mData->phoneNumbers.begin(); phoneIter != mData->phoneNumbers.end(); 650 for ( phoneIter = mData->phoneNumbers.begin(); phoneIter != mData->phoneNumbers.end();
599 ++phoneIter ) { 651 ++phoneIter ) {
600 if ( inList > max ) { 652 if ( inList > max ) {
601 if ( ! (( *phoneIter ).type() & PhoneNumber::Pref )) { 653 if ( ! (( *phoneIter ).type() & PhoneNumber::Pref )) {
602 removeNumbers.append( ( *phoneIter ) ); 654 removeNumbers.append( ( *phoneIter ) );
603 --inList; 655 --inList;
604 } 656 }
605 } else 657 } else
606 break; 658 break;
607 } 659 }
608 for ( phoneIter = removeNumbers.begin(); phoneIter != removeNumbers.end(); 660 for ( phoneIter = removeNumbers.begin(); phoneIter != removeNumbers.end();
609 ++phoneIter ) { 661 ++phoneIter ) {
610 removePhoneNumber(( *phoneIter )); 662 removePhoneNumber(( *phoneIter ));
611 } 663 }
612 // delete preferred numbers 664 // delete preferred numbers
613 if ( inList > max ) { 665 if ( inList > max ) {
614 for ( phoneIter = mData->phoneNumbers.begin(); phoneIter != mData->phoneNumbers.end(); 666 for ( phoneIter = mData->phoneNumbers.begin(); phoneIter != mData->phoneNumbers.end();
615 ++phoneIter ) { 667 ++phoneIter ) {
616 if ( inList > max ) { 668 if ( inList > max ) {
617 removeNumbers.append( ( *phoneIter ) ); 669 removeNumbers.append( ( *phoneIter ) );
618 --inList; 670 --inList;
619 } else 671 } else
620 break; 672 break;
621 } 673 }
622 for ( phoneIter = removeNumbers.begin(); phoneIter != removeNumbers.end(); 674 for ( phoneIter = removeNumbers.begin(); phoneIter != removeNumbers.end();
623 ++phoneIter ) { 675 ++phoneIter ) {
624 removePhoneNumber(( *phoneIter )); 676 removePhoneNumber(( *phoneIter ));
625 } 677 }
626 } 678 }
627 } 679 }
628 // remove non-numeric characters 680 // remove non-numeric characters
629 for ( phoneIter = mData->phoneNumbers.begin(); phoneIter != mData->phoneNumbers.end(); 681 for ( phoneIter = mData->phoneNumbers.begin(); phoneIter != mData->phoneNumbers.end();
630 ++phoneIter ) { 682 ++phoneIter ) {
631 if ( ! ( *phoneIter ).simplifyNumber() ) 683 if ( ! ( *phoneIter ).simplifyNumber() )
632 removeNumbers.append( ( *phoneIter ) ); 684 removeNumbers.append( ( *phoneIter ) );
633 } 685 }
634 for ( phoneIter = removeNumbers.begin(); phoneIter != removeNumbers.end(); 686 for ( phoneIter = removeNumbers.begin(); phoneIter != removeNumbers.end();
635 ++phoneIter ) { 687 ++phoneIter ) {
636 removePhoneNumber(( *phoneIter )); 688 removePhoneNumber(( *phoneIter ));
637 } 689 }
638} 690}
639void Addressee::simplifyPhoneNumberTypes() 691void Addressee::simplifyPhoneNumberTypes()
640{ 692{
641 KABC::PhoneNumber::List::Iterator phoneIter; 693 KABC::PhoneNumber::List::Iterator phoneIter;
642 for ( phoneIter = mData->phoneNumbers.begin(); phoneIter != mData->phoneNumbers.end(); 694 for ( phoneIter = mData->phoneNumbers.begin(); phoneIter != mData->phoneNumbers.end();
643 ++phoneIter ) 695 ++phoneIter )
644 ( *phoneIter ).simplifyType(); 696 ( *phoneIter ).simplifyType();
645} 697}
646void Addressee::removeID(const QString &prof) 698void Addressee::removeID(const QString &prof)
647{ 699{
648 detach(); 700 detach();
649 if ( prof.isEmpty() ) 701 if ( prof.isEmpty() )
650 mData->mExternalId = ":"; 702 mData->mExternalId = ":";
651 else 703 else
652 mData->mExternalId = KIdManager::removeId ( mData->mExternalId, prof); 704 mData->mExternalId = KIdManager::removeId ( mData->mExternalId, prof);
653 705
654} 706}
655void Addressee::setID( const QString & prof , const QString & id ) 707void Addressee::setID( const QString & prof , const QString & id )
656{ 708{
657 detach(); 709 detach();
658 mData->mExternalId = KIdManager::setId ( mData->mExternalId, prof, id ); 710 mData->mExternalId = KIdManager::setId ( mData->mExternalId, prof, id );
659 //qDebug("setID2 %s %s %s",mData->mExternalId.latin1(), prof.latin1(), id.latin1() ); 711 //qDebug("setID2 %s %s %s",mData->mExternalId.latin1(), prof.latin1(), id.latin1() );
660} 712}
661void Addressee::setTempSyncStat( int id ) 713void Addressee::setTempSyncStat( int id )
662{ 714{
663 if ( mData->mTempSyncStat == id ) return; 715 if ( mData->mTempSyncStat == id ) return;
664 detach(); 716 detach();
665 mData->mTempSyncStat = id; 717 mData->mTempSyncStat = id;
666} 718}
667int Addressee::tempSyncStat() const 719int Addressee::tempSyncStat() const
668{ 720{
669 return mData->mTempSyncStat; 721 return mData->mTempSyncStat;
670} 722}
671 723
672const QString Addressee::getID( const QString & prof) const 724const QString Addressee::getID( const QString & prof) const
673{ 725{
674 return KIdManager::getId ( mData->mExternalId, prof ); 726 return KIdManager::getId ( mData->mExternalId, prof );
675} 727}
676 728
677void Addressee::setCsum( const QString & prof , const QString & id ) 729void Addressee::setCsum( const QString & prof , const QString & id )
678{ 730{
679 detach(); 731 detach();
680 //qDebug("setcsum1 %s %s %s",mData->mExternalId.latin1(), prof.latin1(), id.latin1() ); 732 //qDebug("setcsum1 %s %s %s",mData->mExternalId.latin1(), prof.latin1(), id.latin1() );
681 mData->mExternalId = KIdManager::setCsum ( mData->mExternalId, prof, id ); 733 mData->mExternalId = KIdManager::setCsum ( mData->mExternalId, prof, id );
682 //qDebug("setcsum2 %s ",mData->mExternalId.latin1() ); 734 //qDebug("setcsum2 %s ",mData->mExternalId.latin1() );
683} 735}
684 736
685const QString Addressee::getCsum( const QString & prof) const 737const QString Addressee::getCsum( const QString & prof) const
686{ 738{
687 return KIdManager::getCsum ( mData->mExternalId, prof ); 739 return KIdManager::getCsum ( mData->mExternalId, prof );
688} 740}
689 741
690void Addressee::setIDStr( const QString & s ) 742void Addressee::setIDStr( const QString & s )
691{ 743{
692 detach(); 744 detach();
693 mData->mExternalId = s; 745 mData->mExternalId = s;
694} 746}
695 747
696const QString Addressee::IDStr() const 748const QString Addressee::IDStr() const
697{ 749{
698 return mData->mExternalId; 750 return mData->mExternalId;
699} 751}
700 752
701void Addressee::setExternalUID( const QString &id ) 753void Addressee::setExternalUID( const QString &id )
702{ 754{
703 if ( id == mData->externalUID ) return; 755 if ( id == mData->externalUID ) return;
704 detach(); 756 detach();
705 mData->empty = false; 757 mData->empty = false;
706 mData->externalUID = id; 758 mData->externalUID = id;
707} 759}
708 760
709const QString Addressee::externalUID() const 761const QString Addressee::externalUID() const
710{ 762{
711 return mData->externalUID; 763 return mData->externalUID;
712} 764}
713void Addressee::setOriginalExternalUID( const QString &id ) 765void Addressee::setOriginalExternalUID( const QString &id )
714{ 766{
715 if ( id == mData->originalExternalUID ) return; 767 if ( id == mData->originalExternalUID ) return;
716 detach(); 768 detach();
717 mData->empty = false; 769 mData->empty = false;
@@ -872,289 +924,289 @@ QString Addressee::suffix() const
872{ 924{
873 return mData->suffix; 925 return mData->suffix;
874} 926}
875 927
876QString Addressee::suffixLabel() 928QString Addressee::suffixLabel()
877{ 929{
878 return i18n("Honorific Suffixes"); 930 return i18n("Honorific Suffixes");
879} 931}
880 932
881 933
882void Addressee::setNickName( const QString &nickName ) 934void Addressee::setNickName( const QString &nickName )
883{ 935{
884 if ( nickName == mData->nickName ) return; 936 if ( nickName == mData->nickName ) return;
885 detach(); 937 detach();
886 mData->empty = false; 938 mData->empty = false;
887 mData->nickName = nickName; 939 mData->nickName = nickName;
888} 940}
889 941
890QString Addressee::nickName() const 942QString Addressee::nickName() const
891{ 943{
892 return mData->nickName; 944 return mData->nickName;
893} 945}
894 946
895QString Addressee::nickNameLabel() 947QString Addressee::nickNameLabel()
896{ 948{
897 return i18n("Nick Name"); 949 return i18n("Nick Name");
898} 950}
899 951
900 952
901void Addressee::setBirthday( const QDateTime &birthday ) 953void Addressee::setBirthday( const QDateTime &birthday )
902{ 954{
903 if ( birthday == mData->birthday ) return; 955 if ( birthday == mData->birthday ) return;
904 detach(); 956 detach();
905 mData->empty = false; 957 mData->empty = false;
906 mData->birthday = birthday; 958 mData->birthday = birthday;
907} 959}
908 960
909QDateTime Addressee::birthday() const 961QDateTime Addressee::birthday() const
910{ 962{
911 return mData->birthday; 963 return mData->birthday;
912} 964}
913 965
914QString Addressee::birthdayLabel() 966QString Addressee::birthdayLabel()
915{ 967{
916 return i18n("Birthday"); 968 return i18n("Birthday");
917} 969}
918 970
919 971
920QString Addressee::homeAddressStreetLabel() 972QString Addressee::homeAddressStreetLabel()
921{ 973{
922 return i18n("Home Address Street"); 974 return i18n("Home Address Street");
923} 975}
924 976
925 977
926QString Addressee::homeAddressLocalityLabel() 978QString Addressee::homeAddressLocalityLabel()
927{ 979{
928 return i18n("Home Address Locality"); 980 return i18n("Home Address Locality");
929} 981}
930 982
931 983
932QString Addressee::homeAddressRegionLabel() 984QString Addressee::homeAddressRegionLabel()
933{ 985{
934 return i18n("Home Address Region"); 986 return i18n("Home Address Region");
935} 987}
936 988
937 989
938QString Addressee::homeAddressPostalCodeLabel() 990QString Addressee::homeAddressPostalCodeLabel()
939{ 991{
940 return i18n("Home Address Postal Code"); 992 return i18n("Home Address Postal Code");
941} 993}
942 994
943 995
944QString Addressee::homeAddressCountryLabel() 996QString Addressee::homeAddressCountryLabel()
945{ 997{
946 return i18n("Home Address Country"); 998 return i18n("Home Address Country");
947} 999}
948 1000
949 1001
950QString Addressee::homeAddressLabelLabel() 1002QString Addressee::homeAddressLabelLabel()
951{ 1003{
952 return i18n("Home Address Label"); 1004 return i18n("Home Address Label");
953} 1005}
954 1006
955 1007
956QString Addressee::businessAddressStreetLabel() 1008QString Addressee::businessAddressStreetLabel()
957{ 1009{
958 return i18n("Business Address Street"); 1010 return i18n("Business Address Street");
959} 1011}
960 1012
961 1013
962QString Addressee::businessAddressLocalityLabel() 1014QString Addressee::businessAddressLocalityLabel()
963{ 1015{
964 return i18n("Business Address Locality"); 1016 return i18n("Business Address Locality");
965} 1017}
966 1018
967 1019
968QString Addressee::businessAddressRegionLabel() 1020QString Addressee::businessAddressRegionLabel()
969{ 1021{
970 return i18n("Business Address Region"); 1022 return i18n("Business Address Region");
971} 1023}
972 1024
973 1025
974QString Addressee::businessAddressPostalCodeLabel() 1026QString Addressee::businessAddressPostalCodeLabel()
975{ 1027{
976 return i18n("Business Address Postal Code"); 1028 return i18n("Business Address Postal Code");
977} 1029}
978 1030
979 1031
980QString Addressee::businessAddressCountryLabel() 1032QString Addressee::businessAddressCountryLabel()
981{ 1033{
982 return i18n("Business Address Country"); 1034 return i18n("Business Address Country");
983} 1035}
984 1036
985 1037
986QString Addressee::businessAddressLabelLabel() 1038QString Addressee::businessAddressLabelLabel()
987{ 1039{
988 return i18n("Business Address Label"); 1040 return i18n("Business Address Label");
989} 1041}
990 1042
991 1043
992QString Addressee::homePhoneLabel() 1044QString Addressee::homePhoneLabel()
993{ 1045{
994 return i18n("Home Phone"); 1046 return i18n("Home Phone");
995} 1047}
996 1048
997 1049
998QString Addressee::businessPhoneLabel() 1050QString Addressee::businessPhoneLabel()
999{ 1051{
1000 return i18n("Business Phone"); 1052 return i18n("Work Phone");
1001} 1053}
1002 1054
1003 1055
1004QString Addressee::mobilePhoneLabel() 1056QString Addressee::mobilePhoneLabel()
1005{ 1057{
1006 return i18n("Mobile Phone"); 1058 return i18n("Mobile Phone");
1007} 1059}
1008QString Addressee::mobileWorkPhoneLabel() 1060QString Addressee::mobileWorkPhoneLabel()
1009{ 1061{
1010 return i18n("Mobile (work)"); 1062 return i18n("Mobile2 (work)");
1011} 1063}
1012QString Addressee::mobileHomePhoneLabel() 1064QString Addressee::mobileHomePhoneLabel()
1013{ 1065{
1014 return i18n("Mobile (home)"); 1066 return i18n("Mobile");
1015} 1067}
1016 1068
1017 1069
1018QString Addressee::homeFaxLabel() 1070QString Addressee::homeFaxLabel()
1019{ 1071{
1020 return i18n("Home Fax"); 1072 return i18n("Fax (Home)");
1021} 1073}
1022 1074
1023 1075
1024QString Addressee::businessFaxLabel() 1076QString Addressee::businessFaxLabel()
1025{ 1077{
1026 return i18n("Business Fax"); 1078 return i18n("Fax (Work)");
1027} 1079}
1028 1080
1029 1081
1030QString Addressee::carPhoneLabel() 1082QString Addressee::carPhoneLabel()
1031{ 1083{
1032 return i18n("Car Phone"); 1084 return i18n("Mobile2 (work)");
1033} 1085}
1034 1086
1035 1087
1036QString Addressee::isdnLabel() 1088QString Addressee::isdnLabel()
1037{ 1089{
1038 return i18n("ISDN"); 1090 return i18n("ISDN");
1039} 1091}
1040 1092
1041 1093
1042QString Addressee::pagerLabel() 1094QString Addressee::pagerLabel()
1043{ 1095{
1044 return i18n("Pager"); 1096 return i18n("Pager");
1045} 1097}
1046 1098
1047QString Addressee::sipLabel() 1099QString Addressee::sipLabel()
1048{ 1100{
1049 return i18n("SIP"); 1101 return i18n("SIP");
1050} 1102}
1051 1103
1052QString Addressee::emailLabel() 1104QString Addressee::emailLabel()
1053{ 1105{
1054 return i18n("Email Address"); 1106 return i18n("Email Address");
1055} 1107}
1056 1108
1057 1109
1058void Addressee::setMailer( const QString &mailer ) 1110void Addressee::setMailer( const QString &mailer )
1059{ 1111{
1060 if ( mailer == mData->mailer ) return; 1112 if ( mailer == mData->mailer ) return;
1061 detach(); 1113 detach();
1062 mData->empty = false; 1114 mData->empty = false;
1063 mData->mailer = mailer; 1115 mData->mailer = mailer;
1064} 1116}
1065 1117
1066QString Addressee::mailer() const 1118QString Addressee::mailer() const
1067{ 1119{
1068 return mData->mailer; 1120 return mData->mailer;
1069} 1121}
1070 1122
1071QString Addressee::mailerLabel() 1123QString Addressee::mailerLabel()
1072{ 1124{
1073 return i18n("Mail Client"); 1125 return i18n("Mail Client");
1074} 1126}
1075 1127
1076 1128
1077void Addressee::setTimeZone( const TimeZone &timeZone ) 1129void Addressee::setTimeZone( const TimeZone &timeZone )
1078{ 1130{
1079 if ( timeZone == mData->timeZone ) return; 1131 if ( timeZone == mData->timeZone ) return;
1080 detach(); 1132 detach();
1081 mData->empty = false; 1133 mData->empty = false;
1082 mData->timeZone = timeZone; 1134 mData->timeZone = timeZone;
1083} 1135}
1084 1136
1085TimeZone Addressee::timeZone() const 1137TimeZone Addressee::timeZone() const
1086{ 1138{
1087 return mData->timeZone; 1139 return mData->timeZone;
1088} 1140}
1089 1141
1090QString Addressee::timeZoneLabel() 1142QString Addressee::timeZoneLabel()
1091{ 1143{
1092 return i18n("Time Zone"); 1144 return i18n("Time Zone");
1093} 1145}
1094 1146
1095 1147
1096void Addressee::setGeo( const Geo &geo ) 1148void Addressee::setGeo( const Geo &geo )
1097{ 1149{
1098 if ( geo == mData->geo ) return; 1150 if ( geo == mData->geo ) return;
1099 detach(); 1151 detach();
1100 mData->empty = false; 1152 mData->empty = false;
1101 mData->geo = geo; 1153 mData->geo = geo;
1102} 1154}
1103 1155
1104Geo Addressee::geo() const 1156Geo Addressee::geo() const
1105{ 1157{
1106 return mData->geo; 1158 return mData->geo;
1107} 1159}
1108 1160
1109QString Addressee::geoLabel() 1161QString Addressee::geoLabel()
1110{ 1162{
1111 return i18n("Geographic Position"); 1163 return i18n("Geographic Position");
1112} 1164}
1113 1165
1114 1166
1115void Addressee::setTitle( const QString &title ) 1167void Addressee::setTitle( const QString &title )
1116{ 1168{
1117 if ( title == mData->title ) return; 1169 if ( title == mData->title ) return;
1118 detach(); 1170 detach();
1119 mData->empty = false; 1171 mData->empty = false;
1120 mData->title = title; 1172 mData->title = title;
1121} 1173}
1122 1174
1123QString Addressee::title() const 1175QString Addressee::title() const
1124{ 1176{
1125 return mData->title; 1177 return mData->title;
1126} 1178}
1127 1179
1128QString Addressee::titleLabel() 1180QString Addressee::titleLabel()
1129{ 1181{
1130 return i18n("Title"); 1182 return i18n("Title");
1131} 1183}
1132 1184
1133 1185
1134void Addressee::setRole( const QString &role ) 1186void Addressee::setRole( const QString &role )
1135{ 1187{
1136 if ( role == mData->role ) return; 1188 if ( role == mData->role ) return;
1137 detach(); 1189 detach();
1138 mData->empty = false; 1190 mData->empty = false;
1139 mData->role = role; 1191 mData->role = role;
1140} 1192}
1141 1193
1142QString Addressee::role() const 1194QString Addressee::role() const
1143{ 1195{
1144 return mData->role; 1196 return mData->role;
1145} 1197}
1146 1198
1147QString Addressee::roleLabel() 1199QString Addressee::roleLabel()
1148{ 1200{
1149 return i18n("Role"); 1201 return i18n("Role");
1150} 1202}
1151 1203
1152 1204
1153void Addressee::setOrganization( const QString &organization ) 1205void Addressee::setOrganization( const QString &organization )
1154{ 1206{
1155 if ( organization == mData->organization ) return; 1207 if ( organization == mData->organization ) return;
1156 detach(); 1208 detach();
1157 mData->empty = false; 1209 mData->empty = false;
1158 mData->organization = organization; 1210 mData->organization = organization;
1159} 1211}
1160 1212
@@ -1527,256 +1579,266 @@ QString Addressee::realName() const
1527 QString n = assembledName(); 1579 QString n = assembledName();
1528 1580
1529 if ( n.isEmpty() ) 1581 if ( n.isEmpty() )
1530 n = name(); 1582 n = name();
1531 if ( n.isEmpty() ) 1583 if ( n.isEmpty() )
1532 n = organization(); 1584 n = organization();
1533 return n; 1585 return n;
1534} 1586}
1535 1587
1536QString Addressee::assembledName() const 1588QString Addressee::assembledName() const
1537{ 1589{
1538 QString name = prefix() + " " + givenName() + " " + additionalName() + " " + 1590 QString name = prefix() + " " + givenName() + " " + additionalName() + " " +
1539 familyName() + " " + suffix(); 1591 familyName() + " " + suffix();
1540 1592
1541 return name.simplifyWhiteSpace(); 1593 return name.simplifyWhiteSpace();
1542} 1594}
1543 1595
1544QString Addressee::fullEmail( const QString &email ) const 1596QString Addressee::fullEmail( const QString &email ) const
1545{ 1597{
1546 QString e; 1598 QString e;
1547 if ( email.isNull() ) { 1599 if ( email.isNull() ) {
1548 e = preferredEmail(); 1600 e = preferredEmail();
1549 } else { 1601 } else {
1550 e = email; 1602 e = email;
1551 } 1603 }
1552 if ( e.isEmpty() ) return QString::null; 1604 if ( e.isEmpty() ) return QString::null;
1553 1605
1554 QString text; 1606 QString text;
1555 if ( realName().isEmpty() ) 1607 if ( realName().isEmpty() )
1556 text = e; 1608 text = e;
1557 else 1609 else
1558 text = assembledName() + " <" + e + ">"; 1610 text = assembledName() + " <" + e + ">";
1559 1611
1560 return text; 1612 return text;
1561} 1613}
1562 1614
1563void Addressee::insertEmail( const QString &email, bool preferred ) 1615void Addressee::insertEmail( const QString &email, bool preferred )
1564{ 1616{
1565 detach(); 1617 detach();
1566 1618
1567 QStringList::Iterator it = mData->emails.find( email ); 1619 QStringList::Iterator it = mData->emails.find( email );
1568 1620
1569 if ( it != mData->emails.end() ) { 1621 if ( it != mData->emails.end() ) {
1570 if ( !preferred || it == mData->emails.begin() ) return; 1622 if ( !preferred || it == mData->emails.begin() ) return;
1571 mData->emails.remove( it ); 1623 mData->emails.remove( it );
1572 mData->emails.prepend( email ); 1624 mData->emails.prepend( email );
1573 } else { 1625 } else {
1574 if ( preferred ) { 1626 if ( preferred ) {
1575 mData->emails.prepend( email ); 1627 mData->emails.prepend( email );
1576 } else { 1628 } else {
1577 mData->emails.append( email ); 1629 mData->emails.append( email );
1578 } 1630 }
1579 } 1631 }
1580} 1632}
1581 1633
1582void Addressee::removeEmail( const QString &email ) 1634void Addressee::removeEmail( const QString &email )
1583{ 1635{
1584 detach(); 1636 detach();
1585 1637
1586 QStringList::Iterator it = mData->emails.find( email ); 1638 QStringList::Iterator it = mData->emails.find( email );
1587 if ( it == mData->emails.end() ) return; 1639 if ( it == mData->emails.end() ) return;
1588 1640
1589 mData->emails.remove( it ); 1641 mData->emails.remove( it );
1590} 1642}
1591 1643
1592QString Addressee::preferredEmail() const 1644QString Addressee::preferredEmail() const
1593{ 1645{
1594 if ( mData->emails.count() == 0 ) return QString::null; 1646 if ( mData->emails.count() == 0 ) return QString::null;
1595 else return mData->emails.first(); 1647 else return mData->emails.first();
1596} 1648}
1597 1649
1598QStringList Addressee::emails() const 1650QStringList Addressee::emails() const
1599{ 1651{
1600 return mData->emails; 1652 return mData->emails;
1601} 1653}
1602void Addressee::setEmails( const QStringList& emails ) { 1654void Addressee::setEmails( const QStringList& emails ) {
1603 detach(); 1655 detach();
1604 mData->emails = emails; 1656 mData->emails = emails;
1605} 1657}
1606void Addressee::insertPhoneNumber( const PhoneNumber &phoneNumber ) 1658void Addressee::insertPhoneNumber( const PhoneNumber &phoneNumber )
1607{ 1659{
1608 detach(); 1660 detach();
1609 mData->empty = false; 1661 mData->empty = false;
1610 1662
1611 PhoneNumber::List::Iterator it; 1663 PhoneNumber::List::Iterator it;
1612 for( it = mData->phoneNumbers.begin(); it != mData->phoneNumbers.end(); ++it ) { 1664 for( it = mData->phoneNumbers.begin(); it != mData->phoneNumbers.end(); ++it ) {
1613 if ( (*it).id() == phoneNumber.id() ) { 1665 if ( (*it).id() == phoneNumber.id() ) {
1614 *it = phoneNumber; 1666 *it = phoneNumber;
1615 return; 1667 return;
1616 } 1668 }
1617 } 1669 }
1618 mData->phoneNumbers.append( phoneNumber ); 1670 mData->phoneNumbers.append( phoneNumber );
1619} 1671}
1620 1672
1621void Addressee::removePhoneNumber( const PhoneNumber &phoneNumber ) 1673void Addressee::removePhoneNumber( const PhoneNumber &phoneNumber )
1622{ 1674{
1623 detach(); 1675 detach();
1624 1676
1625 PhoneNumber::List::Iterator it; 1677 PhoneNumber::List::Iterator it;
1626 for( it = mData->phoneNumbers.begin(); it != mData->phoneNumbers.end(); ++it ) { 1678 for( it = mData->phoneNumbers.begin(); it != mData->phoneNumbers.end(); ++it ) {
1627 if ( (*it).id() == phoneNumber.id() ) { 1679 if ( (*it).id() == phoneNumber.id() ) {
1628 mData->phoneNumbers.remove( it ); 1680 mData->phoneNumbers.remove( it );
1629 return; 1681 return;
1630 } 1682 }
1631 } 1683 }
1632} 1684}
1633 1685
1634PhoneNumber Addressee::phoneNumber( int type ) const 1686PhoneNumber Addressee::phoneNumber( int type ) const
1635{ 1687{
1636 PhoneNumber phoneNumber( "", type ); 1688 PhoneNumber phoneNumber( "", type );
1637 PhoneNumber::List::ConstIterator it; 1689 PhoneNumber::List::ConstIterator it;
1638 for( it = mData->phoneNumbers.begin(); it != mData->phoneNumbers.end(); ++it ) { 1690 for( it = mData->phoneNumbers.begin(); it != mData->phoneNumbers.end(); ++it ) {
1639 if ( matchBinaryPatternP( (*it).type(), type ) ) { 1691 if ( matchBinaryPatternP( (*it).type(), type ) ) {
1640 if ( (*it).type() & PhoneNumber::Pref ) 1692 if ( (*it).type() & PhoneNumber::Pref )
1641 return (*it); 1693 return (*it);
1642 else if ( phoneNumber.number().isEmpty() ) 1694 else if ( phoneNumber.number().isEmpty() )
1643 phoneNumber = (*it); 1695 phoneNumber = (*it);
1644 } 1696 }
1645 } 1697 }
1646 1698
1647 return phoneNumber; 1699 return phoneNumber;
1648} 1700}
1649 1701
1650PhoneNumber::List Addressee::phoneNumbers() const 1702PhoneNumber::List Addressee::phoneNumbers() const
1651{ 1703{
1652 return mData->phoneNumbers; 1704 return mData->phoneNumbers;
1653} 1705}
1654 1706
1707int Addressee::hasPhoneNumberType( int type )
1708{
1709 int retval = 0;
1710 PhoneNumber::List::ConstIterator it;
1711 for( it = mData->phoneNumbers.begin(); it != mData->phoneNumbers.end(); ++it ) {
1712 if ( (*it).type() == type )
1713 ++retval;
1714 }
1715 return retval;
1716}
1655PhoneNumber::List Addressee::phoneNumbers( int type ) const 1717PhoneNumber::List Addressee::phoneNumbers( int type ) const
1656{ 1718{
1657 PhoneNumber::List list; 1719 PhoneNumber::List list;
1658 1720
1659 PhoneNumber::List::ConstIterator it; 1721 PhoneNumber::List::ConstIterator it;
1660 for( it = mData->phoneNumbers.begin(); it != mData->phoneNumbers.end(); ++it ) { 1722 for( it = mData->phoneNumbers.begin(); it != mData->phoneNumbers.end(); ++it ) {
1661 if ( matchBinaryPattern( (*it).type(), type ) ) { 1723 if ( matchBinaryPattern( (*it).type(), type ) ) {
1662 list.append( *it ); 1724 list.append( *it );
1663 } 1725 }
1664 } 1726 }
1665 return list; 1727 return list;
1666} 1728}
1667 1729
1668PhoneNumber Addressee::findPhoneNumber( const QString &id ) const 1730PhoneNumber Addressee::findPhoneNumber( const QString &id ) const
1669{ 1731{
1670 PhoneNumber::List::ConstIterator it; 1732 PhoneNumber::List::ConstIterator it;
1671 for( it = mData->phoneNumbers.begin(); it != mData->phoneNumbers.end(); ++it ) { 1733 for( it = mData->phoneNumbers.begin(); it != mData->phoneNumbers.end(); ++it ) {
1672 if ( (*it).id() == id ) { 1734 if ( (*it).id() == id ) {
1673 return *it; 1735 return *it;
1674 } 1736 }
1675 } 1737 }
1676 return PhoneNumber(); 1738 return PhoneNumber();
1677} 1739}
1678 1740
1679void Addressee::insertKey( const Key &key ) 1741void Addressee::insertKey( const Key &key )
1680{ 1742{
1681 detach(); 1743 detach();
1682 mData->empty = false; 1744 mData->empty = false;
1683 1745
1684 Key::List::Iterator it; 1746 Key::List::Iterator it;
1685 for( it = mData->keys.begin(); it != mData->keys.end(); ++it ) { 1747 for( it = mData->keys.begin(); it != mData->keys.end(); ++it ) {
1686 if ( (*it).id() == key.id() ) { 1748 if ( (*it).id() == key.id() ) {
1687 *it = key; 1749 *it = key;
1688 return; 1750 return;
1689 } 1751 }
1690 } 1752 }
1691 mData->keys.append( key ); 1753 mData->keys.append( key );
1692} 1754}
1693 1755
1694void Addressee::removeKey( const Key &key ) 1756void Addressee::removeKey( const Key &key )
1695{ 1757{
1696 detach(); 1758 detach();
1697 1759
1698 Key::List::Iterator it; 1760 Key::List::Iterator it;
1699 for( it = mData->keys.begin(); it != mData->keys.end(); ++it ) { 1761 for( it = mData->keys.begin(); it != mData->keys.end(); ++it ) {
1700 if ( (*it).id() == key.id() ) { 1762 if ( (*it).id() == key.id() ) {
1701 mData->keys.remove( key ); 1763 mData->keys.remove( key );
1702 return; 1764 return;
1703 } 1765 }
1704 } 1766 }
1705} 1767}
1706 1768
1707Key Addressee::key( int type, QString customTypeString ) const 1769Key Addressee::key( int type, QString customTypeString ) const
1708{ 1770{
1709 Key::List::ConstIterator it; 1771 Key::List::ConstIterator it;
1710 for( it = mData->keys.begin(); it != mData->keys.end(); ++it ) { 1772 for( it = mData->keys.begin(); it != mData->keys.end(); ++it ) {
1711 if ( (*it).type() == type ) { 1773 if ( (*it).type() == type ) {
1712 if ( type == Key::Custom ) { 1774 if ( type == Key::Custom ) {
1713 if ( customTypeString.isEmpty() ) { 1775 if ( customTypeString.isEmpty() ) {
1714 return *it; 1776 return *it;
1715 } else { 1777 } else {
1716 if ( (*it).customTypeString() == customTypeString ) 1778 if ( (*it).customTypeString() == customTypeString )
1717 return (*it); 1779 return (*it);
1718 } 1780 }
1719 } else { 1781 } else {
1720 return *it; 1782 return *it;
1721 } 1783 }
1722 } 1784 }
1723 } 1785 }
1724 return Key( QString(), type ); 1786 return Key( QString(), type );
1725} 1787}
1726void Addressee::setKeys( const Key::List& list ) { 1788void Addressee::setKeys( const Key::List& list ) {
1727 detach(); 1789 detach();
1728 mData->keys = list; 1790 mData->keys = list;
1729} 1791}
1730 1792
1731Key::List Addressee::keys() const 1793Key::List Addressee::keys() const
1732{ 1794{
1733 return mData->keys; 1795 return mData->keys;
1734} 1796}
1735 1797
1736Key::List Addressee::keys( int type, QString customTypeString ) const 1798Key::List Addressee::keys( int type, QString customTypeString ) const
1737{ 1799{
1738 Key::List list; 1800 Key::List list;
1739 1801
1740 Key::List::ConstIterator it; 1802 Key::List::ConstIterator it;
1741 for( it = mData->keys.begin(); it != mData->keys.end(); ++it ) { 1803 for( it = mData->keys.begin(); it != mData->keys.end(); ++it ) {
1742 if ( (*it).type() == type ) { 1804 if ( (*it).type() == type ) {
1743 if ( type == Key::Custom ) { 1805 if ( type == Key::Custom ) {
1744 if ( customTypeString.isEmpty() ) { 1806 if ( customTypeString.isEmpty() ) {
1745 list.append(*it); 1807 list.append(*it);
1746 } else { 1808 } else {
1747 if ( (*it).customTypeString() == customTypeString ) 1809 if ( (*it).customTypeString() == customTypeString )
1748 list.append(*it); 1810 list.append(*it);
1749 } 1811 }
1750 } else { 1812 } else {
1751 list.append(*it); 1813 list.append(*it);
1752 } 1814 }
1753 } 1815 }
1754 } 1816 }
1755 return list; 1817 return list;
1756} 1818}
1757 1819
1758Key Addressee::findKey( const QString &id ) const 1820Key Addressee::findKey( const QString &id ) const
1759{ 1821{
1760 Key::List::ConstIterator it; 1822 Key::List::ConstIterator it;
1761 for( it = mData->keys.begin(); it != mData->keys.end(); ++it ) { 1823 for( it = mData->keys.begin(); it != mData->keys.end(); ++it ) {
1762 if ( (*it).id() == id ) { 1824 if ( (*it).id() == id ) {
1763 return *it; 1825 return *it;
1764 } 1826 }
1765 } 1827 }
1766 return Key(); 1828 return Key();
1767} 1829}
1768 1830
1769QString Addressee::asString() const 1831QString Addressee::asString() const
1770{ 1832{
1771 return "Smith, agent Smith..."; 1833 return "Smith, agent Smith...";
1772} 1834}
1773 1835
1774void Addressee::dump() const 1836void Addressee::dump() const
1775{ 1837{
1776 return; 1838 return;
1777#if 0 1839#if 0
1778 kdDebug(5700) << "Addressee {" << endl; 1840 kdDebug(5700) << "Addressee {" << endl;
1779 1841
1780 kdDebug(5700) << " Uid: '" << uid() << "'" << endl; 1842 kdDebug(5700) << " Uid: '" << uid() << "'" << endl;
1781 1843
1782 kdDebug(5700) << " Name: '" << name() << "'" << endl; 1844 kdDebug(5700) << " Name: '" << name() << "'" << endl;