summaryrefslogtreecommitdiffabout
path: root/kaddressbook/viewmanager.cpp
Unidiff
Diffstat (limited to 'kaddressbook/viewmanager.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/viewmanager.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/kaddressbook/viewmanager.cpp b/kaddressbook/viewmanager.cpp
index 33bef5a..59bddd9 100644
--- a/kaddressbook/viewmanager.cpp
+++ b/kaddressbook/viewmanager.cpp
@@ -416,310 +416,311 @@ void ViewManager::addView()
416 if ( !firstConflict ) { 416 if ( !firstConflict ) {
417 newName = newName.left( newName.length() - 4 ); 417 newName = newName.left( newName.length() - 4 );
418 firstConflict = false; 418 firstConflict = false;
419 } 419 }
420 420
421 newName = QString( "%1 <%2>" ).arg( newName ).arg( numTries ); 421 newName = QString( "%1 <%2>" ).arg( newName ).arg( numTries );
422 numTries++; 422 numTries++;
423 } 423 }
424 424
425 // Add the new one to the list 425 // Add the new one to the list
426 mViewNameList.append( newName ); 426 mViewNameList.append( newName );
427 427
428 // write the view to the config file, 428 // write the view to the config file,
429 KConfig *config = mCore->config(); 429 KConfig *config = mCore->config();
430 430
431 config->deleteGroup( newName ); 431 config->deleteGroup( newName );
432 432
433 KConfigGroupSaver saver( config, newName ); 433 KConfigGroupSaver saver( config, newName );
434 434
435 config->writeEntry( "Type", type ); 435 config->writeEntry( "Type", type );
436 436
437 // try to set the active view 437 // try to set the active view
438 mActionSelectView->setItems( mViewNameList ); 438 mActionSelectView->setItems( mViewNameList );
439 mActionSelectView->setCurrentItem( mViewNameList.findIndex( newName ) ); 439 mActionSelectView->setCurrentItem( mViewNameList.findIndex( newName ) );
440 setActiveView( newName ); 440 setActiveView( newName );
441 441
442 editView(); 442 editView();
443 443
444 mActionDeleteView->setEnabled( mViewNameList.count() > 1 ); 444 mActionDeleteView->setEnabled( mViewNameList.count() > 1 );
445 } 445 }
446} 446}
447 447
448void ViewManager::createViewFactories() 448void ViewManager::createViewFactories()
449{ 449{
450#ifndef KAB_EMBEDDED 450#ifndef KAB_EMBEDDED
451 KTrader::OfferList plugins = KTrader::self()->query( "KAddressBook/View" ); 451 KTrader::OfferList plugins = KTrader::self()->query( "KAddressBook/View" );
452 KTrader::OfferList::ConstIterator it; 452 KTrader::OfferList::ConstIterator it;
453 for ( it = plugins.begin(); it != plugins.end(); ++it ) { 453 for ( it = plugins.begin(); it != plugins.end(); ++it ) {
454 if ( !(*it)->hasServiceType( "KAddressBook/View" ) ) 454 if ( !(*it)->hasServiceType( "KAddressBook/View" ) )
455 continue; 455 continue;
456 456
457 KLibFactory *factory = KLibLoader::self()->factory( (*it)->library().latin1() ); 457 KLibFactory *factory = KLibLoader::self()->factory( (*it)->library().latin1() );
458 458
459 if ( !factory ) { 459 if ( !factory ) {
460 kdDebug(5720) << "ViewManager::createViewFactories(): Factory creation failed" << endl; 460 kdDebug(5720) << "ViewManager::createViewFactories(): Factory creation failed" << endl;
461 continue; 461 continue;
462 } 462 }
463 463
464 ViewFactory *viewFactory = static_cast<ViewFactory*>( factory ); 464 ViewFactory *viewFactory = static_cast<ViewFactory*>( factory );
465 465
466 if ( !viewFactory ) { 466 if ( !viewFactory ) {
467 kdDebug(5720) << "ViewManager::createViewFactories(): Cast failed" << endl; 467 kdDebug(5720) << "ViewManager::createViewFactories(): Cast failed" << endl;
468 continue; 468 continue;
469 } 469 }
470 470
471 mViewFactoryDict.insert( viewFactory->type(), viewFactory ); 471 mViewFactoryDict.insert( viewFactory->type(), viewFactory );
472 } 472 }
473 473
474#else //KAB_EMBEDDED 474#else //KAB_EMBEDDED
475 ViewFactory* viewFactory = new IconViewFactory(); 475 ViewFactory* viewFactory = new IconViewFactory();
476 mViewFactoryDict.insert( viewFactory->type(), viewFactory ); 476 mViewFactoryDict.insert( viewFactory->type(), viewFactory );
477// qDebug("ViewManager::createViewFactories() Loading factory: %s", viewFactory->type().latin1()); 477// qDebug("ViewManager::createViewFactories() Loading factory: %s", viewFactory->type().latin1());
478 478
479 viewFactory = new TableViewFactory(); 479 viewFactory = new TableViewFactory();
480 mViewFactoryDict.insert( viewFactory->type(), viewFactory ); 480 mViewFactoryDict.insert( viewFactory->type(), viewFactory );
481// qDebug("ViewManager::createViewFactories() Loading factory: %s", viewFactory->type().latin1()); 481// qDebug("ViewManager::createViewFactories() Loading factory: %s", viewFactory->type().latin1());
482 482
483 viewFactory = new CardViewFactory(); 483 viewFactory = new CardViewFactory();
484 mViewFactoryDict.insert( viewFactory->type(), viewFactory ); 484 mViewFactoryDict.insert( viewFactory->type(), viewFactory );
485// qDebug("ViewManager::createViewFactories() Loading factory: %s", viewFactory->type().latin1()); 485// qDebug("ViewManager::createViewFactories() Loading factory: %s", viewFactory->type().latin1());
486 486
487#endif //KAB_EMBEDDED 487#endif //KAB_EMBEDDED
488 488
489} 489}
490 490
491void ViewManager::dropped( QDropEvent *e ) 491void ViewManager::dropped( QDropEvent *e )
492{ 492{
493 kdDebug(5720) << "ViewManager::dropped: got a drop event" << endl; 493 kdDebug(5720) << "ViewManager::dropped: got a drop event" << endl;
494 494
495#ifndef KAB_EMBEDDED 495#ifndef KAB_EMBEDDED
496 496
497 QString clipText, vcards; 497 QString clipText, vcards;
498 KURL::List urls; 498 KURL::List urls;
499 499
500 if ( KURLDrag::decode( e, urls) ) { 500 if ( KURLDrag::decode( e, urls) ) {
501 KURL::List::Iterator it = urls.begin(); 501 KURL::List::Iterator it = urls.begin();
502 int c = urls.count(); 502 int c = urls.count();
503 if ( c > 1 ) { 503 if ( c > 1 ) {
504 QString questionString = i18n( "Import one contact into your addressbook?", "Import %n contacts into your addressbook?", c ); 504 QString questionString = i18n( "Import one contact into your addressbook?", "Import %n contacts into your addressbook?", c );
505 if ( KMessageBox::questionYesNo( this, questionString, i18n( "Import Contacts?" ) ) == KMessageBox::Yes ) { 505 if ( KMessageBox::questionYesNo( this, questionString, i18n( "Import Contacts?" ) ) == KMessageBox::Yes ) {
506 for ( ; it != urls.end(); ++it ) 506 for ( ; it != urls.end(); ++it )
507 emit urlDropped( *it ); 507 emit urlDropped( *it );
508 } 508 }
509 } else if ( c == 1 ) 509 } else if ( c == 1 )
510 emit urlDropped( *it ); 510 emit urlDropped( *it );
511 } else if ( KVCardDrag::decode( e, vcards ) ) { 511 } else if ( KVCardDrag::decode( e, vcards ) ) {
512 KABC::Addressee addr; 512 KABC::Addressee addr;
513 KABC::VCardConverter converter; 513 KABC::VCardConverter converter;
514 QStringList list = QStringList::split( "\r\n\r\n", vcards ); 514 QStringList list = QStringList::split( "\r\n\r\n", vcards );
515 QStringList::Iterator it; 515 QStringList::Iterator it;
516 for ( it = list.begin(); it != list.end(); ++it ) { 516 for ( it = list.begin(); it != list.end(); ++it ) {
517 if ( converter.vCardToAddressee( (*it).stripWhiteSpace(), addr ) ) { 517 if ( converter.vCardToAddressee( (*it).stripWhiteSpace(), addr ) ) {
518 KABC::Addressee a = mCore->addressBook()->findByUid( addr.uid() ); 518 KABC::Addressee a = mCore->addressBook()->findByUid( addr.uid() );
519 if ( a.isEmpty() ) { 519 if ( a.isEmpty() ) {
520 mCore->addressBook()->insertAddressee( addr ); 520 mCore->addressBook()->insertAddressee( addr );
521 emit modified(); 521 emit modified();
522 } 522 }
523 } 523 }
524 } 524 }
525 525
526 mActiveView->refresh(); 526 mActiveView->refresh();
527 } 527 }
528#else //KAB_EMBEDDED 528#else //KAB_EMBEDDED
529qDebug("ViewManager::dropped() has to be changed!!" ); 529qDebug("ViewManager::dropped() has to be changed!!" );
530#endif //KAB_EMBEDDED 530#endif //KAB_EMBEDDED
531 531
532} 532}
533 533
534void ViewManager::startDrag() 534void ViewManager::startDrag()
535{ 535{
536 kdDebug(5720) << "ViewManager::startDrag: starting to drag" << endl; 536 kdDebug(5720) << "ViewManager::startDrag: starting to drag" << endl;
537 537
538#ifndef KAB_EMBEDDED 538#ifndef KAB_EMBEDDED
539 539
540 // Get the list of all the selected addressees 540 // Get the list of all the selected addressees
541 KABC::Addressee::List addrList; 541 KABC::Addressee::List addrList;
542 QStringList uidList = selectedUids(); 542 QStringList uidList = selectedUids();
543 QStringList::Iterator iter; 543 QStringList::Iterator iter;
544 for ( iter = uidList.begin(); iter != uidList.end(); ++iter ) 544 for ( iter = uidList.begin(); iter != uidList.end(); ++iter )
545 addrList.append( mCore->addressBook()->findByUid( *iter ) ); 545 addrList.append( mCore->addressBook()->findByUid( *iter ) );
546 546
547 KMultipleDrag *drag = new KMultipleDrag( this ); 547 KMultipleDrag *drag = new KMultipleDrag( this );
548 drag->addDragObject( new QTextDrag( AddresseeUtil::addresseesToClipboard(addrList), this ) ); 548 drag->addDragObject( new QTextDrag( AddresseeUtil::addresseesToClipboard(addrList), this ) );
549 KABC::Addressee::List::Iterator it; 549 KABC::Addressee::List::Iterator it;
550 QStringList vcards; 550 QStringList vcards;
551 for ( it = addrList.begin(); it != addrList.end(); ++it ) { 551 for ( it = addrList.begin(); it != addrList.end(); ++it ) {
552 QString vcard = QString::null; 552 QString vcard = QString::null;
553 KABC::VCardConverter converter; 553 KABC::VCardConverter converter;
554 if ( converter.addresseeToVCard( *it, vcard ) ) 554 if ( converter.addresseeToVCard( *it, vcard ) )
555 vcards.append( vcard ); 555 vcards.append( vcard );
556 } 556 }
557 drag->addDragObject( new KVCardDrag( vcards.join( "\r\n" ), this ) ); 557 drag->addDragObject( new KVCardDrag( vcards.join( "\r\n" ), this ) );
558 558
559 drag->setPixmap( KGlobal::iconLoader()->loadIcon( "vcard", KIcon::Desktop ) ); 559 drag->setPixmap( KGlobal::iconLoader()->loadIcon( "vcard", KIcon::Desktop ) );
560 drag->dragCopy(); 560 drag->dragCopy();
561 561
562#else //KAB_EMBEDDED 562#else //KAB_EMBEDDED
563qDebug("ViewManager::startDrag() has to be changed!!" ); 563qDebug("ViewManager::startDrag() has to be changed!!" );
564#endif //KAB_EMBEDDED 564#endif //KAB_EMBEDDED
565 565
566} 566}
567void ViewManager::doSearch( const QString& s,KABC::Field *field ) 567void ViewManager::doSearch( const QString& s,KABC::Field *field )
568{ 568{
569 if ( mActiveView ) 569 if ( mActiveView )
570 mActiveView->doSearch( s, field ); 570 mActiveView->doSearch( s, field );
571 571
572} 572}
573void ViewManager::setActiveFilter( int index ) 573void ViewManager::setActiveFilter( int index )
574{ 574{
575 Filter currentFilter; 575 Filter currentFilter;
576 576
577 if ( ( index - 1 ) < 0 ) 577 if ( ( index - 1 ) < 0 )
578 currentFilter = Filter(); 578 currentFilter = Filter();
579 else 579 else
580 currentFilter = mFilterList[ index - 1 ]; 580 currentFilter = mFilterList[ index - 1 ];
581 581
582 // Check if we have a view. Since the filter combo is created before 582 // Check if we have a view. Since the filter combo is created before
583 // the view, this slot could be called before there is a valid view. 583 // the view, this slot could be called before there is a valid view.
584 if ( mActiveView ) { 584 if ( mActiveView ) {
585 mActiveView->setFilter( currentFilter ); 585 mActiveView->setFilter( currentFilter );
586 mActiveView->refresh(); 586 mActiveView->refresh();
587 emit selected( QString::null ); 587 emit selected( QString::null );
588 } 588 }
589} 589}
590 590
591void ViewManager::configureFilters() 591void ViewManager::configureFilters()
592{ 592{
593 FilterDialog dlg( this ); 593 FilterDialog dlg( this );
594 594
595 dlg.setFilters( mFilterList ); 595 dlg.setFilters( mFilterList );
596 596
597 if ( dlg.exec() ) 597 if ( dlg.exec() )
598 mFilterList = dlg.filters(); 598 mFilterList = dlg.filters();
599 599
600 uint pos = mActionSelectFilter->currentItem(); 600 uint pos = mActionSelectFilter->currentItem();
601 mActionSelectFilter->setItems( filterNames() ); 601 mActionSelectFilter->setItems( filterNames() );
602 mActionSelectFilter->setCurrentItem( pos ); 602 mActionSelectFilter->setCurrentItem( pos );
603 setActiveFilter( pos ); 603 setActiveFilter( pos );
604 int cw = 150; 604 int cw = 150;
605 if (QApplication::desktop()->width() == 480 ) 605 if (QApplication::desktop()->width() == 480 )
606 cw = 0; 606 cw = 0;
607 mActionSelectFilter->setComboWidth( cw ); 607 mActionSelectFilter->setComboWidth( cw );
608 saveSettings();
608} 609}
609 610
610QStringList ViewManager::filterNames() const 611QStringList ViewManager::filterNames() const
611{ 612{
612 QStringList names( i18n( "No Filter" ) ); 613 QStringList names( i18n( "No Filter" ) );
613 614
614 Filter::List::ConstIterator it; 615 Filter::List::ConstIterator it;
615 for ( it = mFilterList.begin(); it != mFilterList.end(); ++it ) 616 for ( it = mFilterList.begin(); it != mFilterList.end(); ++it )
616 names.append( (*it).name() ); 617 names.append( (*it).name() );
617 618
618 return names; 619 return names;
619} 620}
620 621
621int ViewManager::filterPosition( const QString &name ) const 622int ViewManager::filterPosition( const QString &name ) const
622{ 623{
623 int pos = 0; 624 int pos = 0;
624 625
625 Filter::List::ConstIterator it; 626 Filter::List::ConstIterator it;
626 for ( it = mFilterList.begin(); it != mFilterList.end(); ++it, ++pos ) 627 for ( it = mFilterList.begin(); it != mFilterList.end(); ++it, ++pos )
627 if ( name == (*it).name() ) 628 if ( name == (*it).name() )
628 return pos + 1; 629 return pos + 1;
629 630
630 return 0; 631 return 0;
631} 632}
632 633
633void ViewManager::initActions() 634void ViewManager::initActions()
634{ 635{
635//US <ActionList name="view_loadedviews"/> 636//US <ActionList name="view_loadedviews"/>
636//US <Separator/> 637//US <Separator/>
637 638
638#ifdef KAB_EMBEDDED 639#ifdef KAB_EMBEDDED
639 QPopupMenu *viewmenu = (QPopupMenu*)mCore->getViewMenu(); 640 QPopupMenu *viewmenu = (QPopupMenu*)mCore->getViewMenu();
640 QPopupMenu *settingsmenu = (QPopupMenu*)mCore->getSettingsMenu(); 641 QPopupMenu *settingsmenu = (QPopupMenu*)mCore->getSettingsMenu();
641 QPopupMenu *filtermenu = (QPopupMenu*)mCore->getFilterMenu(); 642 QPopupMenu *filtermenu = (QPopupMenu*)mCore->getFilterMenu();
642#endif //KAB_EMBEDDED 643#endif //KAB_EMBEDDED
643 644
644 mActionSelectView = new KSelectAction( i18n( "Select View" ), 0, mCore->actionCollection(), "select_view" ); 645 mActionSelectView = new KSelectAction( i18n( "Select View" ), 0, mCore->actionCollection(), "select_view" );
645#if KDE_VERSION >= 309 646#if KDE_VERSION >= 309
646 mActionSelectView->setMenuAccelsEnabled( false ); 647 mActionSelectView->setMenuAccelsEnabled( false );
647#endif 648#endif
648 connect( mActionSelectView, SIGNAL( activated( const QString& ) ), 649 connect( mActionSelectView, SIGNAL( activated( const QString& ) ),
649 SLOT( setActiveView( const QString& ) ) ); 650 SLOT( setActiveView( const QString& ) ) );
650 651
651 652
652#ifdef KAB_EMBEDDED 653#ifdef KAB_EMBEDDED
653 mActionSelectView->plug(viewmenu); 654 mActionSelectView->plug(viewmenu);
654 viewmenu->insertSeparator(); 655 viewmenu->insertSeparator();
655#endif //KAB_EMBEDDED 656#endif //KAB_EMBEDDED
656 657
657 KAction *action; 658 KAction *action;
658 659
659 action = new KAction( i18n( "Modify View..." ), "configure", 0, this, 660 action = new KAction( i18n( "Modify View..." ), "configure", 0, this,
660 SLOT( editView() ), mCore->actionCollection(), "view_modify" ); 661 SLOT( editView() ), mCore->actionCollection(), "view_modify" );
661#ifndef KAB_EMBEDDED 662#ifndef KAB_EMBEDDED
662 action->setWhatsThis( i18n( "By pressing this button a dialog opens that allows you to modify the view of the addressbook. There you can add or remove fields that you want to be shown or hidden in the addressbook like the name for example." ) ); 663 action->setWhatsThis( i18n( "By pressing this button a dialog opens that allows you to modify the view of the addressbook. There you can add or remove fields that you want to be shown or hidden in the addressbook like the name for example." ) );
663#else //KAB_EMBEDDED 664#else //KAB_EMBEDDED
664 action->plug(viewmenu); 665 action->plug(viewmenu);
665#endif //KAB_EMBEDDED 666#endif //KAB_EMBEDDED
666 667
667 action = new KAction( i18n( "Add View..." ), "window_new", 0, this, 668 action = new KAction( i18n( "Add View..." ), "window_new", 0, this,
668 SLOT( addView() ), mCore->actionCollection(), "view_add" ); 669 SLOT( addView() ), mCore->actionCollection(), "view_add" );
669#ifndef KAB_EMBEDDED 670#ifndef KAB_EMBEDDED
670 action->setWhatsThis( i18n( "You can add a new view by choosing one of the dialog that appears after pressing the button. You have to give the view a name, so that you can distinguish between the different views." ) ); 671 action->setWhatsThis( i18n( "You can add a new view by choosing one of the dialog that appears after pressing the button. You have to give the view a name, so that you can distinguish between the different views." ) );
671#else //KAB_EMBEDDED 672#else //KAB_EMBEDDED
672 action->plug(viewmenu); 673 action->plug(viewmenu);
673#endif //KAB_EMBEDDED 674#endif //KAB_EMBEDDED
674 675
675 mActionDeleteView = new KAction( i18n( "Delete View" ), "view_remove", 0, 676 mActionDeleteView = new KAction( i18n( "Delete View" ), "view_remove", 0,
676 this, SLOT( deleteView() ), 677 this, SLOT( deleteView() ),
677 mCore->actionCollection(), "view_delete" ); 678 mCore->actionCollection(), "view_delete" );
678#ifndef KAB_EMBEDDED 679#ifndef KAB_EMBEDDED
679 mActionDeleteView->setWhatsThis( i18n( "By pressing this button you can delete the actual view, which you have added before." ) ); 680 mActionDeleteView->setWhatsThis( i18n( "By pressing this button you can delete the actual view, which you have added before." ) );
680#else //KAB_EMBEDDED 681#else //KAB_EMBEDDED
681 mActionDeleteView->plug(viewmenu); 682 mActionDeleteView->plug(viewmenu);
682 viewmenu->insertSeparator(); 683 viewmenu->insertSeparator();
683#endif //KAB_EMBEDDED 684#endif //KAB_EMBEDDED
684 685
685#ifndef KAB_EMBEDDED 686#ifndef KAB_EMBEDDED
686 action = new KAction( i18n( "Refresh View" ), "reload", 0, this, 687 action = new KAction( i18n( "Refresh View" ), "reload", 0, this,
687 SLOT( refreshView(const QString &) ), mCore->actionCollection(), 688 SLOT( refreshView(const QString &) ), mCore->actionCollection(),
688 "view_refresh" ); 689 "view_refresh" );
689 action->setWhatsThis( i18n( "The view will be refreshed by pressing this button." ) ); 690 action->setWhatsThis( i18n( "The view will be refreshed by pressing this button." ) );
690#else //KAB_EMBEDDED 691#else //KAB_EMBEDDED
691 action = new KAction( i18n( "Refresh View" ), "reload", 0, this, 692 action = new KAction( i18n( "Refresh View" ), "reload", 0, this,
692 SLOT( refreshView()), mCore->actionCollection(), 693 SLOT( refreshView()), mCore->actionCollection(),
693 "view_refresh" ); 694 "view_refresh" );
694 action->plug(viewmenu); 695 action->plug(viewmenu);
695 viewmenu->insertSeparator(); 696 viewmenu->insertSeparator();
696#endif //KAB_EMBEDDED 697#endif //KAB_EMBEDDED
697 698
698 action = new KAction( i18n( "Edit &Filters..." ), "filter", 0, this, 699 action = new KAction( i18n( "Edit &Filters..." ), "filter", 0, this,
699 SLOT( configureFilters() ), mCore->actionCollection(), 700 SLOT( configureFilters() ), mCore->actionCollection(),
700 "options_edit_filters" ); 701 "options_edit_filters" );
701 702
702 mActionSelectFilter = new KSelectAction( i18n( "Select Filter" ), "filter", mCore->actionCollection(), "select_filter" ); 703 mActionSelectFilter = new KSelectAction( i18n( "Select Filter" ), "filter", mCore->actionCollection(), "select_filter" );
703#if KDE_VERSION >= 309 704#if KDE_VERSION >= 309
704 mActionSelectFilter->setMenuAccelsEnabled( false ); 705 mActionSelectFilter->setMenuAccelsEnabled( false );
705#endif 706#endif
706 connect( mActionSelectFilter, SIGNAL( activated( int ) ), 707 connect( mActionSelectFilter, SIGNAL( activated( int ) ),
707 SLOT( setActiveFilter( int ) ) ); 708 SLOT( setActiveFilter( int ) ) );
708 709
709#ifdef KAB_EMBEDDED 710#ifdef KAB_EMBEDDED
710 action->plug(settingsmenu); 711 action->plug(settingsmenu);
711 mActionSelectFilter->plug(viewmenu); 712 mActionSelectFilter->plug(viewmenu);
712#endif //KAB_EMBEDDED 713#endif //KAB_EMBEDDED
713 714
714} 715}
715 716
716void ViewManager::initGUI() 717void ViewManager::initGUI()
717{ 718{
718 QHBoxLayout *layout = new QHBoxLayout( this, 0, 0 ); 719 QHBoxLayout *layout = new QHBoxLayout( this, 0, 0 );
719 mViewWidgetStack = new QWidgetStack( this ); 720 mViewWidgetStack = new QWidgetStack( this );
720 layout->addWidget( mViewWidgetStack ); 721 layout->addWidget( mViewWidgetStack );
721} 722}
722 723
723#ifndef KAB_EMBEDDED 724#ifndef KAB_EMBEDDED
724#include "viewmanager.moc" 725#include "viewmanager.moc"
725#endif //KAB_EMBEDDED 726#endif //KAB_EMBEDDED