-rw-r--r-- | kaddressbook/kabcore.cpp | 52 |
1 files changed, 32 insertions, 20 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index 6538295..d1d385c 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp | |||
@@ -453,418 +453,430 @@ void KABCore::setContactSelected( const QString &uid ) | |||
453 | if ( pic.isIntern() ) { | 453 | if ( pic.isIntern() ) { |
454 | //US emit contactSelected( pic.data() ); | 454 | //US emit contactSelected( pic.data() ); |
455 | //US instead use: | 455 | //US instead use: |
456 | QPixmap px; | 456 | QPixmap px; |
457 | if (pic.data().isNull() != true) | 457 | if (pic.data().isNull() != true) |
458 | { | 458 | { |
459 | px.convertFromImage(pic.data()); | 459 | px.convertFromImage(pic.data()); |
460 | } | 460 | } |
461 | 461 | ||
462 | emit contactSelected( px ); | 462 | emit contactSelected( px ); |
463 | } | 463 | } |
464 | } | 464 | } |
465 | 465 | ||
466 | 466 | ||
467 | mExtensionManager->setSelectionChanged(); | 467 | mExtensionManager->setSelectionChanged(); |
468 | 468 | ||
469 | // update the actions | 469 | // update the actions |
470 | bool selected = !uid.isEmpty(); | 470 | bool selected = !uid.isEmpty(); |
471 | 471 | ||
472 | if ( mReadWrite ) { | 472 | if ( mReadWrite ) { |
473 | mActionCut->setEnabled( selected ); | 473 | mActionCut->setEnabled( selected ); |
474 | mActionPaste->setEnabled( selected ); | 474 | mActionPaste->setEnabled( selected ); |
475 | } | 475 | } |
476 | 476 | ||
477 | mActionCopy->setEnabled( selected ); | 477 | mActionCopy->setEnabled( selected ); |
478 | mActionDelete->setEnabled( selected ); | 478 | mActionDelete->setEnabled( selected ); |
479 | mActionEditAddressee->setEnabled( selected ); | 479 | mActionEditAddressee->setEnabled( selected ); |
480 | mActionMail->setEnabled( selected ); | 480 | mActionMail->setEnabled( selected ); |
481 | mActionMailVCard->setEnabled( selected ); | 481 | mActionMailVCard->setEnabled( selected ); |
482 | //if (mActionBeam) | 482 | //if (mActionBeam) |
483 | //mActionBeam->setEnabled( selected ); | 483 | //mActionBeam->setEnabled( selected ); |
484 | 484 | ||
485 | if (mActionBeamVCard) | 485 | if (mActionBeamVCard) |
486 | mActionBeamVCard->setEnabled( selected ); | 486 | mActionBeamVCard->setEnabled( selected ); |
487 | 487 | ||
488 | mActionWhoAmI->setEnabled( selected ); | 488 | mActionWhoAmI->setEnabled( selected ); |
489 | mActionCategories->setEnabled( selected ); | 489 | mActionCategories->setEnabled( selected ); |
490 | } | 490 | } |
491 | 491 | ||
492 | void KABCore::sendMail() | 492 | void KABCore::sendMail() |
493 | { | 493 | { |
494 | sendMail( mViewManager->selectedEmails().join( ", " ) ); | 494 | sendMail( mViewManager->selectedEmails().join( ", " ) ); |
495 | } | 495 | } |
496 | 496 | ||
497 | void KABCore::sendMail( const QString& emaillist ) | 497 | void KABCore::sendMail( const QString& emaillist ) |
498 | { | 498 | { |
499 | // the parameter has the form "name1 <abc@aol.com>,name2 <abc@aol.com>;... " | 499 | // the parameter has the form "name1 <abc@aol.com>,name2 <abc@aol.com>;... " |
500 | if (emaillist.contains(",") > 0) | 500 | if (emaillist.contains(",") > 0) |
501 | ExternalAppHandler::instance()->mailToMultipleContacts( emaillist, QString::null ); | 501 | ExternalAppHandler::instance()->mailToMultipleContacts( emaillist, QString::null ); |
502 | else | 502 | else |
503 | ExternalAppHandler::instance()->mailToOneContact( emaillist ); | 503 | ExternalAppHandler::instance()->mailToOneContact( emaillist ); |
504 | } | 504 | } |
505 | 505 | ||
506 | 506 | ||
507 | 507 | ||
508 | void KABCore::mailVCard() | 508 | void KABCore::mailVCard() |
509 | { | 509 | { |
510 | QStringList uids = mViewManager->selectedUids(); | 510 | QStringList uids = mViewManager->selectedUids(); |
511 | if ( !uids.isEmpty() ) | 511 | if ( !uids.isEmpty() ) |
512 | mailVCard( uids ); | 512 | mailVCard( uids ); |
513 | } | 513 | } |
514 | 514 | ||
515 | void KABCore::mailVCard( const QStringList& uids ) | 515 | void KABCore::mailVCard( const QStringList& uids ) |
516 | { | 516 | { |
517 | QStringList urls; | 517 | QStringList urls; |
518 | 518 | ||
519 | // QString tmpdir = locateLocal("tmp", KGlobal::getAppName()); | 519 | // QString tmpdir = locateLocal("tmp", KGlobal::getAppName()); |
520 | 520 | ||
521 | QString dirName = "/tmp/" + KApplication::randomString( 8 ); | 521 | QString dirName = "/tmp/" + KApplication::randomString( 8 ); |
522 | 522 | ||
523 | 523 | ||
524 | 524 | ||
525 | QDir().mkdir( dirName, true ); | 525 | QDir().mkdir( dirName, true ); |
526 | 526 | ||
527 | for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) { | 527 | for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) { |
528 | KABC::Addressee a = mAddressBook->findByUid( *it ); | 528 | KABC::Addressee a = mAddressBook->findByUid( *it ); |
529 | 529 | ||
530 | if ( a.isEmpty() ) | 530 | if ( a.isEmpty() ) |
531 | continue; | 531 | continue; |
532 | 532 | ||
533 | QString name = a.givenName() + "_" + a.familyName() + ".vcf"; | 533 | QString name = a.givenName() + "_" + a.familyName() + ".vcf"; |
534 | 534 | ||
535 | QString fileName = dirName + "/" + name; | 535 | QString fileName = dirName + "/" + name; |
536 | 536 | ||
537 | QFile outFile(fileName); | 537 | QFile outFile(fileName); |
538 | 538 | ||
539 | if ( outFile.open(IO_WriteOnly) ) { // file opened successfully | 539 | if ( outFile.open(IO_WriteOnly) ) { // file opened successfully |
540 | KABC::VCardConverter converter; | 540 | KABC::VCardConverter converter; |
541 | QString vcard; | 541 | QString vcard; |
542 | 542 | ||
543 | converter.addresseeToVCard( a, vcard ); | 543 | converter.addresseeToVCard( a, vcard ); |
544 | 544 | ||
545 | QTextStream t( &outFile ); // use a text stream | 545 | QTextStream t( &outFile ); // use a text stream |
546 | t.setEncoding( QTextStream::UnicodeUTF8 ); | 546 | t.setEncoding( QTextStream::UnicodeUTF8 ); |
547 | t << vcard; | 547 | t << vcard; |
548 | 548 | ||
549 | outFile.close(); | 549 | outFile.close(); |
550 | 550 | ||
551 | urls.append( fileName ); | 551 | urls.append( fileName ); |
552 | } | 552 | } |
553 | } | 553 | } |
554 | 554 | ||
555 | bool result = ExternalAppHandler::instance()->mailToMultipleContacts( QString::null, urls.join(", ") ); | 555 | bool result = ExternalAppHandler::instance()->mailToMultipleContacts( QString::null, urls.join(", ") ); |
556 | 556 | ||
557 | 557 | ||
558 | /*US | 558 | /*US |
559 | kapp->invokeMailer( QString::null, QString::null, QString::null, | 559 | kapp->invokeMailer( QString::null, QString::null, QString::null, |
560 | QString::null, // subject | 560 | QString::null, // subject |
561 | QString::null, // body | 561 | QString::null, // body |
562 | QString::null, | 562 | QString::null, |
563 | urls ); // attachments | 563 | urls ); // attachments |
564 | */ | 564 | */ |
565 | 565 | ||
566 | } | 566 | } |
567 | 567 | ||
568 | /** | 568 | /** |
569 | Beams the "WhoAmI contact. | 569 | Beams the "WhoAmI contact. |
570 | */ | 570 | */ |
571 | void KABCore::beamMySelf() | 571 | void KABCore::beamMySelf() |
572 | { | 572 | { |
573 | KABC::Addressee a = KABC::StdAddressBook::self()->whoAmI(); | 573 | KABC::Addressee a = KABC::StdAddressBook::self()->whoAmI(); |
574 | if (!a.isEmpty()) | 574 | if (!a.isEmpty()) |
575 | { | 575 | { |
576 | QStringList uids; | 576 | QStringList uids; |
577 | uids << a.uid(); | 577 | uids << a.uid(); |
578 | 578 | ||
579 | beamVCard(uids); | 579 | beamVCard(uids); |
580 | } else { | 580 | } else { |
581 | KMessageBox::information( this, i18n( "Your personal contact is\nnot set! Please select it\nand set it with menu:\nSettings - Set Who Am I\n" ) ); | 581 | KMessageBox::information( this, i18n( "Your personal contact is\nnot set! Please select it\nand set it with menu:\nSettings - Set Who Am I\n" ) ); |
582 | 582 | ||
583 | 583 | ||
584 | } | 584 | } |
585 | } | 585 | } |
586 | 586 | ||
587 | void KABCore::beamVCard() | 587 | void KABCore::beamVCard() |
588 | { | 588 | { |
589 | QStringList uids = mViewManager->selectedUids(); | 589 | QStringList uids = mViewManager->selectedUids(); |
590 | if ( !uids.isEmpty() ) | 590 | if ( !uids.isEmpty() ) |
591 | beamVCard( uids ); | 591 | beamVCard( uids ); |
592 | } | 592 | } |
593 | 593 | ||
594 | 594 | ||
595 | void KABCore::beamVCard(const QStringList& uids) | 595 | void KABCore::beamVCard(const QStringList& uids) |
596 | { | 596 | { |
597 | /*US | 597 | /*US |
598 | QString beamFilename; | 598 | QString beamFilename; |
599 | Opie::OPimContact c; | 599 | Opie::OPimContact c; |
600 | if ( actionPersonal->isOn() ) { | 600 | if ( actionPersonal->isOn() ) { |
601 | beamFilename = addressbookPersonalVCardName(); | 601 | beamFilename = addressbookPersonalVCardName(); |
602 | if ( !QFile::exists( beamFilename ) ) | 602 | if ( !QFile::exists( beamFilename ) ) |
603 | return; // can't beam a non-existent file | 603 | return; // can't beam a non-existent file |
604 | Opie::OPimContactAccessBackend* vcard_backend = new Opie::OPimContactAccessBackend_VCard( QString::null, | 604 | Opie::OPimContactAccessBackend* vcard_backend = new Opie::OPimContactAccessBackend_VCard( QString::null, |
605 | beamFilename ); | 605 | beamFilename ); |
606 | Opie::OPimContactAccess* access = new Opie::OPimContactAccess ( "addressbook", QString::null , vcard_backend, true ); | 606 | Opie::OPimContactAccess* access = new Opie::OPimContactAccess ( "addressbook", QString::null , vcard_backend, true ); |
607 | Opie::OPimContactAccess::List allList = access->allRecords(); | 607 | Opie::OPimContactAccess::List allList = access->allRecords(); |
608 | Opie::OPimContactAccess::List::Iterator it = allList.begin(); // Just take first | 608 | Opie::OPimContactAccess::List::Iterator it = allList.begin(); // Just take first |
609 | c = *it; | 609 | c = *it; |
610 | 610 | ||
611 | delete access; | 611 | delete access; |
612 | } else { | 612 | } else { |
613 | unlink( beamfile ); // delete if exists | 613 | unlink( beamfile ); // delete if exists |
614 | mkdir("/tmp/obex/", 0755); | 614 | mkdir("/tmp/obex/", 0755); |
615 | c = m_abView -> currentEntry(); | 615 | c = m_abView -> currentEntry(); |
616 | Opie::OPimContactAccessBackend* vcard_backend = new Opie::OPimContactAccessBackend_VCard( QString::null, | 616 | Opie::OPimContactAccessBackend* vcard_backend = new Opie::OPimContactAccessBackend_VCard( QString::null, |
617 | beamfile ); | 617 | beamfile ); |
618 | Opie::OPimContactAccess* access = new Opie::OPimContactAccess ( "addressbook", QString::null , vcard_backend, true ); | 618 | Opie::OPimContactAccess* access = new Opie::OPimContactAccess ( "addressbook", QString::null , vcard_backend, true ); |
619 | access->add( c ); | 619 | access->add( c ); |
620 | access->save(); | 620 | access->save(); |
621 | delete access; | 621 | delete access; |
622 | 622 | ||
623 | beamFilename = beamfile; | 623 | beamFilename = beamfile; |
624 | } | 624 | } |
625 | 625 | ||
626 | owarn << "Beaming: " << beamFilename << oendl; | 626 | owarn << "Beaming: " << beamFilename << oendl; |
627 | */ | 627 | */ |
628 | 628 | ||
629 | #if 0 | 629 | #if 0 |
630 | QString tmpdir = locateLocal("tmp", KGlobal::getAppName()); | 630 | QString tmpdir = locateLocal("tmp", KGlobal::getAppName()); |
631 | 631 | ||
632 | QString dirName = tmpdir + "/" + KApplication::randomString( 8 ); | 632 | QString dirName = tmpdir + "/" + KApplication::randomString( 8 ); |
633 | 633 | ||
634 | QString name = "contact.vcf"; | 634 | QString name = "contact.vcf"; |
635 | 635 | ||
636 | QString fileName = dirName + "/" + name; | 636 | QString fileName = dirName + "/" + name; |
637 | #endif | 637 | #endif |
638 | // LR: we should use the /tmp dir, because: /tmp = RAM, (HOME)/kdepim = flash memory | 638 | // LR: we should use the /tmp dir, because: /tmp = RAM, (HOME)/kdepim = flash memory |
639 | // | 639 | // |
640 | QString fileName = "/tmp/kapibeamfile.vcf"; | 640 | QString fileName = "/tmp/kapibeamfile.vcf"; |
641 | 641 | ||
642 | 642 | ||
643 | //QDir().mkdir( dirName, true ); | 643 | //QDir().mkdir( dirName, true ); |
644 | 644 | ||
645 | QFile outFile(fileName); | 645 | |
646 | KABC::VCardConverter converter; | 646 | KABC::VCardConverter converter; |
647 | QString description; | 647 | QString description; |
648 | 648 | QString datastream; | |
649 | if ( outFile.open(IO_WriteOnly) ) { // file opened successfully | 649 | for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) { |
650 | |||
651 | QTextStream t( &outFile ); // use a text stream | ||
652 | t.setEncoding( QTextStream::UnicodeUTF8 ); | ||
653 | |||
654 | for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) { | ||
655 | KABC::Addressee a = mAddressBook->findByUid( *it ); | 650 | KABC::Addressee a = mAddressBook->findByUid( *it ); |
656 | 651 | ||
657 | if ( a.isEmpty() ) | 652 | if ( a.isEmpty() ) |
658 | continue; | 653 | continue; |
659 | 654 | ||
660 | if (description.isEmpty()) | 655 | if (description.isEmpty()) |
661 | description = a.formattedName(); | 656 | description = a.formattedName(); |
662 | 657 | ||
663 | QString vcard; | 658 | QString vcard; |
664 | converter.addresseeToVCard( a, vcard ); | 659 | converter.addresseeToVCard( a, vcard ); |
665 | t << vcard; | 660 | int start = 0; |
666 | 661 | int next; | |
667 | } | 662 | while ( (next = vcard.find("TYPE=", start) )>= 0 ) { |
663 | int semi = vcard.find(";", next); | ||
664 | int dopp = vcard.find(":", next); | ||
665 | int sep; | ||
666 | if ( semi < dopp && semi >= 0 ) | ||
667 | sep = semi ; | ||
668 | else | ||
669 | sep = dopp; | ||
670 | datastream +=vcard.mid( start, next - start); | ||
671 | datastream +=vcard.mid( next+5,sep -next -5 ).upper(); | ||
672 | start = sep; | ||
673 | } | ||
674 | datastream += vcard.mid( start,vcard.length() ); | ||
675 | } | ||
676 | #ifndef DESKTOP_VERSION | ||
677 | QFile outFile(fileName); | ||
678 | if ( outFile.open(IO_WriteOnly) ) { | ||
679 | datastream.replace ( QRegExp("VERSION:3.0") , "VERSION:2.1" ); | ||
680 | QTextStream t( &outFile ); // use a text stream | ||
681 | t.setEncoding( QTextStream::UnicodeUTF8 ); | ||
682 | t <<datastream; | ||
683 | outFile.close(); | ||
684 | Ir *ir = new Ir( this ); | ||
685 | connect( ir, SIGNAL( done(Ir*) ), this, SLOT( beamDone(Ir*) ) ); | ||
686 | ir->send( fileName, description, "text/x-vCard" ); | ||
668 | } else { | 687 | } else { |
669 | qDebug("Error open temp beam file "); | 688 | qDebug("Error open temp beam file "); |
670 | return; | 689 | return; |
671 | } | 690 | } |
672 | |||
673 | outFile.close(); | ||
674 | |||
675 | #ifndef DESKTOP_VERSION | ||
676 | Ir *ir = new Ir( this ); | ||
677 | connect( ir, SIGNAL( done(Ir*) ), this, SLOT( beamDone(Ir*) ) ); | ||
678 | ir->send( fileName, description, "text/x-vCard" ); | ||
679 | #endif | 691 | #endif |
680 | 692 | ||
681 | } | 693 | } |
682 | 694 | ||
683 | void KABCore::beamDone( Ir *ir ) | 695 | void KABCore::beamDone( Ir *ir ) |
684 | { | 696 | { |
685 | #ifndef DESKTOP_VERSION | 697 | #ifndef DESKTOP_VERSION |
686 | delete ir; | 698 | delete ir; |
687 | #endif | 699 | #endif |
688 | } | 700 | } |
689 | 701 | ||
690 | 702 | ||
691 | void KABCore::browse( const QString& url ) | 703 | void KABCore::browse( const QString& url ) |
692 | { | 704 | { |
693 | #ifndef KAB_EMBEDDED | 705 | #ifndef KAB_EMBEDDED |
694 | kapp->invokeBrowser( url ); | 706 | kapp->invokeBrowser( url ); |
695 | #else //KAB_EMBEDDED | 707 | #else //KAB_EMBEDDED |
696 | qDebug("KABCore::browse must be fixed"); | 708 | qDebug("KABCore::browse must be fixed"); |
697 | #endif //KAB_EMBEDDED | 709 | #endif //KAB_EMBEDDED |
698 | } | 710 | } |
699 | 711 | ||
700 | void KABCore::selectAllContacts() | 712 | void KABCore::selectAllContacts() |
701 | { | 713 | { |
702 | mViewManager->setSelected( QString::null, true ); | 714 | mViewManager->setSelected( QString::null, true ); |
703 | } | 715 | } |
704 | 716 | ||
705 | void KABCore::deleteContacts() | 717 | void KABCore::deleteContacts() |
706 | { | 718 | { |
707 | QStringList uidList = mViewManager->selectedUids(); | 719 | QStringList uidList = mViewManager->selectedUids(); |
708 | deleteContacts( uidList ); | 720 | deleteContacts( uidList ); |
709 | } | 721 | } |
710 | 722 | ||
711 | void KABCore::deleteContacts( const QStringList &uids ) | 723 | void KABCore::deleteContacts( const QStringList &uids ) |
712 | { | 724 | { |
713 | if ( uids.count() > 0 ) { | 725 | if ( uids.count() > 0 ) { |
714 | PwDeleteCommand *command = new PwDeleteCommand( mAddressBook, uids ); | 726 | PwDeleteCommand *command = new PwDeleteCommand( mAddressBook, uids ); |
715 | UndoStack::instance()->push( command ); | 727 | UndoStack::instance()->push( command ); |
716 | RedoStack::instance()->clear(); | 728 | RedoStack::instance()->clear(); |
717 | 729 | ||
718 | // now if we deleted anything, refresh | 730 | // now if we deleted anything, refresh |
719 | setContactSelected( QString::null ); | 731 | setContactSelected( QString::null ); |
720 | setModified( true ); | 732 | setModified( true ); |
721 | } | 733 | } |
722 | } | 734 | } |
723 | 735 | ||
724 | void KABCore::copyContacts() | 736 | void KABCore::copyContacts() |
725 | { | 737 | { |
726 | KABC::Addressee::List addrList = mViewManager->selectedAddressees(); | 738 | KABC::Addressee::List addrList = mViewManager->selectedAddressees(); |
727 | 739 | ||
728 | QString clipText = AddresseeUtil::addresseesToClipboard( addrList ); | 740 | QString clipText = AddresseeUtil::addresseesToClipboard( addrList ); |
729 | 741 | ||
730 | kdDebug(5720) << "KABCore::copyContacts: " << clipText << endl; | 742 | kdDebug(5720) << "KABCore::copyContacts: " << clipText << endl; |
731 | 743 | ||
732 | QClipboard *cb = QApplication::clipboard(); | 744 | QClipboard *cb = QApplication::clipboard(); |
733 | cb->setText( clipText ); | 745 | cb->setText( clipText ); |
734 | } | 746 | } |
735 | 747 | ||
736 | void KABCore::cutContacts() | 748 | void KABCore::cutContacts() |
737 | { | 749 | { |
738 | QStringList uidList = mViewManager->selectedUids(); | 750 | QStringList uidList = mViewManager->selectedUids(); |
739 | 751 | ||
740 | //US if ( uidList.size() > 0 ) { | 752 | //US if ( uidList.size() > 0 ) { |
741 | if ( uidList.count() > 0 ) { | 753 | if ( uidList.count() > 0 ) { |
742 | PwCutCommand *command = new PwCutCommand( mAddressBook, uidList ); | 754 | PwCutCommand *command = new PwCutCommand( mAddressBook, uidList ); |
743 | UndoStack::instance()->push( command ); | 755 | UndoStack::instance()->push( command ); |
744 | RedoStack::instance()->clear(); | 756 | RedoStack::instance()->clear(); |
745 | 757 | ||
746 | setModified( true ); | 758 | setModified( true ); |
747 | } | 759 | } |
748 | } | 760 | } |
749 | 761 | ||
750 | void KABCore::pasteContacts() | 762 | void KABCore::pasteContacts() |
751 | { | 763 | { |
752 | QClipboard *cb = QApplication::clipboard(); | 764 | QClipboard *cb = QApplication::clipboard(); |
753 | 765 | ||
754 | KABC::Addressee::List list = AddresseeUtil::clipboardToAddressees( cb->text() ); | 766 | KABC::Addressee::List list = AddresseeUtil::clipboardToAddressees( cb->text() ); |
755 | 767 | ||
756 | pasteContacts( list ); | 768 | pasteContacts( list ); |
757 | } | 769 | } |
758 | 770 | ||
759 | void KABCore::pasteContacts( KABC::Addressee::List &list ) | 771 | void KABCore::pasteContacts( KABC::Addressee::List &list ) |
760 | { | 772 | { |
761 | KABC::Resource *resource = requestResource( this ); | 773 | KABC::Resource *resource = requestResource( this ); |
762 | KABC::Addressee::List::Iterator it; | 774 | KABC::Addressee::List::Iterator it; |
763 | for ( it = list.begin(); it != list.end(); ++it ) | 775 | for ( it = list.begin(); it != list.end(); ++it ) |
764 | (*it).setResource( resource ); | 776 | (*it).setResource( resource ); |
765 | 777 | ||
766 | PwPasteCommand *command = new PwPasteCommand( this, list ); | 778 | PwPasteCommand *command = new PwPasteCommand( this, list ); |
767 | UndoStack::instance()->push( command ); | 779 | UndoStack::instance()->push( command ); |
768 | RedoStack::instance()->clear(); | 780 | RedoStack::instance()->clear(); |
769 | 781 | ||
770 | setModified( true ); | 782 | setModified( true ); |
771 | } | 783 | } |
772 | 784 | ||
773 | void KABCore::setWhoAmI() | 785 | void KABCore::setWhoAmI() |
774 | { | 786 | { |
775 | KABC::Addressee::List addrList = mViewManager->selectedAddressees(); | 787 | KABC::Addressee::List addrList = mViewManager->selectedAddressees(); |
776 | 788 | ||
777 | if ( addrList.count() > 1 ) { | 789 | if ( addrList.count() > 1 ) { |
778 | KMessageBox::sorry( this, i18n( "Please select only one contact." ) ); | 790 | KMessageBox::sorry( this, i18n( "Please select only one contact." ) ); |
779 | return; | 791 | return; |
780 | } | 792 | } |
781 | 793 | ||
782 | QString text( i18n( "<qt>Do you really want to use <b>%1</b> as your new personal contact?</qt>" ) ); | 794 | QString text( i18n( "<qt>Do you really want to use <b>%1</b> as your new personal contact?</qt>" ) ); |
783 | if ( KMessageBox::questionYesNo( this, text.arg( addrList[ 0 ].assembledName() ) ) == KMessageBox::Yes ) | 795 | if ( KMessageBox::questionYesNo( this, text.arg( addrList[ 0 ].assembledName() ) ) == KMessageBox::Yes ) |
784 | static_cast<KABC::StdAddressBook*>( KABC::StdAddressBook::self() )->setWhoAmI( addrList[ 0 ] ); | 796 | static_cast<KABC::StdAddressBook*>( KABC::StdAddressBook::self() )->setWhoAmI( addrList[ 0 ] ); |
785 | } | 797 | } |
786 | 798 | ||
787 | void KABCore::setCategories() | 799 | void KABCore::setCategories() |
788 | { | 800 | { |
789 | KPIM::CategorySelectDialog dlg( KABPrefs::instance(), this, "", true ); | 801 | KPIM::CategorySelectDialog dlg( KABPrefs::instance(), this, "", true ); |
790 | if ( !dlg.exec() ) | 802 | if ( !dlg.exec() ) |
791 | return; | 803 | return; |
792 | 804 | ||
793 | bool merge = false; | 805 | bool merge = false; |
794 | QString msg = i18n( "Merge with existing categories?" ); | 806 | QString msg = i18n( "Merge with existing categories?" ); |
795 | if ( KMessageBox::questionYesNo( this, msg ) == KMessageBox::Yes ) | 807 | if ( KMessageBox::questionYesNo( this, msg ) == KMessageBox::Yes ) |
796 | merge = true; | 808 | merge = true; |
797 | 809 | ||
798 | QStringList categories = dlg.selectedCategories(); | 810 | QStringList categories = dlg.selectedCategories(); |
799 | 811 | ||
800 | QStringList uids = mViewManager->selectedUids(); | 812 | QStringList uids = mViewManager->selectedUids(); |
801 | QStringList::Iterator it; | 813 | QStringList::Iterator it; |
802 | for ( it = uids.begin(); it != uids.end(); ++it ) { | 814 | for ( it = uids.begin(); it != uids.end(); ++it ) { |
803 | KABC::Addressee addr = mAddressBook->findByUid( *it ); | 815 | KABC::Addressee addr = mAddressBook->findByUid( *it ); |
804 | if ( !addr.isEmpty() ) { | 816 | if ( !addr.isEmpty() ) { |
805 | if ( !merge ) | 817 | if ( !merge ) |
806 | addr.setCategories( categories ); | 818 | addr.setCategories( categories ); |
807 | else { | 819 | else { |
808 | QStringList addrCategories = addr.categories(); | 820 | QStringList addrCategories = addr.categories(); |
809 | QStringList::Iterator catIt; | 821 | QStringList::Iterator catIt; |
810 | for ( catIt = categories.begin(); catIt != categories.end(); ++catIt ) { | 822 | for ( catIt = categories.begin(); catIt != categories.end(); ++catIt ) { |
811 | if ( !addrCategories.contains( *catIt ) ) | 823 | if ( !addrCategories.contains( *catIt ) ) |
812 | addrCategories.append( *catIt ); | 824 | addrCategories.append( *catIt ); |
813 | } | 825 | } |
814 | addr.setCategories( addrCategories ); | 826 | addr.setCategories( addrCategories ); |
815 | } | 827 | } |
816 | 828 | ||
817 | mAddressBook->insertAddressee( addr ); | 829 | mAddressBook->insertAddressee( addr ); |
818 | } | 830 | } |
819 | } | 831 | } |
820 | 832 | ||
821 | if ( uids.count() > 0 ) | 833 | if ( uids.count() > 0 ) |
822 | setModified( true ); | 834 | setModified( true ); |
823 | } | 835 | } |
824 | 836 | ||
825 | void KABCore::setSearchFields( const KABC::Field::List &fields ) | 837 | void KABCore::setSearchFields( const KABC::Field::List &fields ) |
826 | { | 838 | { |
827 | mIncSearchWidget->setFields( fields ); | 839 | mIncSearchWidget->setFields( fields ); |
828 | } | 840 | } |
829 | 841 | ||
830 | void KABCore::incrementalSearch( const QString& text ) | 842 | void KABCore::incrementalSearch( const QString& text ) |
831 | { | 843 | { |
832 | mViewManager->setSelected( QString::null, false ); | 844 | mViewManager->setSelected( QString::null, false ); |
833 | 845 | ||
834 | if ( !text.isEmpty() ) { | 846 | if ( !text.isEmpty() ) { |
835 | KABC::Field *field = mIncSearchWidget->currentField(); | 847 | KABC::Field *field = mIncSearchWidget->currentField(); |
836 | QString pattern = text.lower()+"*"; | 848 | QString pattern = text.lower()+"*"; |
837 | QRegExp re; | 849 | QRegExp re; |
838 | re.setWildcard(true); // most people understand these better. | 850 | re.setWildcard(true); // most people understand these better. |
839 | re.setCaseSensitive(false); | 851 | re.setCaseSensitive(false); |
840 | re.setPattern( pattern ); | 852 | re.setPattern( pattern ); |
841 | QStringList foundUids; | 853 | QStringList foundUids; |
842 | if (!re.isValid()) | 854 | if (!re.isValid()) |
843 | return; | 855 | return; |
844 | #if 1 //KDE_VERSION >= 319 | 856 | #if 1 //KDE_VERSION >= 319 |
845 | KABC::AddresseeList list( mAddressBook->allAddressees() ); | 857 | KABC::AddresseeList list( mAddressBook->allAddressees() ); |
846 | if ( field ) { | 858 | if ( field ) { |
847 | list.sortByField( field ); | 859 | list.sortByField( field ); |
848 | KABC::AddresseeList::Iterator it; | 860 | KABC::AddresseeList::Iterator it; |
849 | for ( it = list.begin(); it != list.end(); ++it ) { | 861 | for ( it = list.begin(); it != list.end(); ++it ) { |
850 | 862 | ||
851 | #if QT_VERSION >= 300 | 863 | #if QT_VERSION >= 300 |
852 | if (re.search(field->value( *it ).lower()) != -1) | 864 | if (re.search(field->value( *it ).lower()) != -1) |
853 | #else | 865 | #else |
854 | if (re.match(field->value( *it ).lower()) != -1) | 866 | if (re.match(field->value( *it ).lower()) != -1) |
855 | #endif | 867 | #endif |
856 | { | 868 | { |
857 | // if ( field->value( *it ).lower().startsWith( pattern ) ) { | 869 | // if ( field->value( *it ).lower().startsWith( pattern ) ) { |
858 | //mViewManager->setSelected( (*it).uid(), true ); | 870 | //mViewManager->setSelected( (*it).uid(), true ); |
859 | foundUids.append( (*it).uid() ); | 871 | foundUids.append( (*it).uid() ); |
860 | //return; | 872 | //return; |
861 | } | 873 | } |
862 | } | 874 | } |
863 | } else { | 875 | } else { |
864 | KABC::AddresseeList::Iterator it; | 876 | KABC::AddresseeList::Iterator it; |
865 | for ( it = list.begin(); it != list.end(); ++it ) { | 877 | for ( it = list.begin(); it != list.end(); ++it ) { |
866 | KABC::Field::List fieldList = mIncSearchWidget->fields(); | 878 | KABC::Field::List fieldList = mIncSearchWidget->fields(); |
867 | KABC::Field::List::ConstIterator fieldIt; | 879 | KABC::Field::List::ConstIterator fieldIt; |
868 | for ( fieldIt = fieldList.begin(); fieldIt != fieldList.end(); ++fieldIt ) { | 880 | for ( fieldIt = fieldList.begin(); fieldIt != fieldList.end(); ++fieldIt ) { |
869 | #if QT_VERSION >= 300 | 881 | #if QT_VERSION >= 300 |
870 | if (re.search((*fieldIt)->value( *it ).lower()) != -1) | 882 | if (re.search((*fieldIt)->value( *it ).lower()) != -1) |