summaryrefslogtreecommitdiffabout
path: root/kaddressbook
authorzautrix <zautrix>2004-09-18 16:07:07 (UTC)
committer zautrix <zautrix>2004-09-18 16:07:07 (UTC)
commitbf18a7b4edb4121fd2ea974ac1ec634167c9b993 (patch) (unidiff)
tree056e62659f8bc5a5b20dc24dcaa73c38f4515cd5 /kaddressbook
parentca8fcf3fd4dc068747d8f31e2189145b22853d55 (diff)
downloadkdepimpi-bf18a7b4edb4121fd2ea974ac1ec634167c9b993.zip
kdepimpi-bf18a7b4edb4121fd2ea974ac1ec634167c9b993.tar.gz
kdepimpi-bf18a7b4edb4121fd2ea974ac1ec634167c9b993.tar.bz2
more AB sync
Diffstat (limited to 'kaddressbook') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/kabcore.cpp200
-rw-r--r--kaddressbook/kabcore.h1
2 files changed, 166 insertions, 35 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index f497541..226d5e4 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -2430,445 +2430,575 @@ void KABCore::syncRemote( KSyncProfile* prof, bool ask)
2430 setCaption ( i18n( "Writing back file result: " )+QString::number( result ) ); 2430 setCaption ( i18n( "Writing back file result: " )+QString::number( result ) );
2431 return; 2431 return;
2432 } else { 2432 } else {
2433 setCaption ( i18n( "Syncronization sucessfully completed" ) ); 2433 setCaption ( i18n( "Syncronization sucessfully completed" ) );
2434 } 2434 }
2435 } 2435 }
2436 } 2436 }
2437 return; 2437 return;
2438} 2438}
2439#include <qpushbutton.h> 2439#include <qpushbutton.h>
2440#include <qradiobutton.h> 2440#include <qradiobutton.h>
2441#include <qbuttongroup.h> 2441#include <qbuttongroup.h>
2442void KABCore::edit_sync_options() 2442void KABCore::edit_sync_options()
2443{ 2443{
2444 //mDialogManager->showSyncOptions(); 2444 //mDialogManager->showSyncOptions();
2445 //KABPrefs::instance()->mSyncAlgoPrefs 2445 //KABPrefs::instance()->mSyncAlgoPrefs
2446 QDialog dia( this, "dia", true ); 2446 QDialog dia( this, "dia", true );
2447 dia.setCaption( i18n("Device: " ) +mCurrentSyncDevice ); 2447 dia.setCaption( i18n("Device: " ) +mCurrentSyncDevice );
2448 QButtonGroup gr ( 1, Qt::Horizontal, i18n("Sync preferences"), &dia); 2448 QButtonGroup gr ( 1, Qt::Horizontal, i18n("Sync preferences"), &dia);
2449 QVBoxLayout lay ( &dia ); 2449 QVBoxLayout lay ( &dia );
2450 lay.setSpacing( 2 ); 2450 lay.setSpacing( 2 );
2451 lay.setMargin( 3 ); 2451 lay.setMargin( 3 );
2452 lay.addWidget(&gr); 2452 lay.addWidget(&gr);
2453 QRadioButton loc ( i18n("Take local entry on conflict"), &gr ); 2453 QRadioButton loc ( i18n("Take local entry on conflict"), &gr );
2454 QRadioButton rem ( i18n("Take remote entry on conflict"), &gr ); 2454 QRadioButton rem ( i18n("Take remote entry on conflict"), &gr );
2455 QRadioButton newest( i18n("Take newest entry on conflict"), &gr ); 2455 QRadioButton newest( i18n("Take newest entry on conflict"), &gr );
2456 QRadioButton ask( i18n("Ask for every entry on conflict"), &gr ); 2456 QRadioButton ask( i18n("Ask for every entry on conflict"), &gr );
2457 QRadioButton f_loc( i18n("Force: Take local entry always"), &gr ); 2457 QRadioButton f_loc( i18n("Force: Take local entry always"), &gr );
2458 QRadioButton f_rem( i18n("Force: Take remote entry always"), &gr ); 2458 QRadioButton f_rem( i18n("Force: Take remote entry always"), &gr );
2459 //QRadioButton both( i18n("Take both on conflict"), &gr ); 2459 //QRadioButton both( i18n("Take both on conflict"), &gr );
2460 QPushButton pb ( "OK", &dia); 2460 QPushButton pb ( "OK", &dia);
2461 lay.addWidget( &pb ); 2461 lay.addWidget( &pb );
2462 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 2462 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
2463 switch ( KABPrefs::instance()->mSyncAlgoPrefs ) { 2463 switch ( KABPrefs::instance()->mSyncAlgoPrefs ) {
2464 case 0: 2464 case 0:
2465 loc.setChecked( true); 2465 loc.setChecked( true);
2466 break; 2466 break;
2467 case 1: 2467 case 1:
2468 rem.setChecked( true ); 2468 rem.setChecked( true );
2469 break; 2469 break;
2470 case 2: 2470 case 2:
2471 newest.setChecked( true); 2471 newest.setChecked( true);
2472 break; 2472 break;
2473 case 3: 2473 case 3:
2474 ask.setChecked( true); 2474 ask.setChecked( true);
2475 break; 2475 break;
2476 case 4: 2476 case 4:
2477 f_loc.setChecked( true); 2477 f_loc.setChecked( true);
2478 break; 2478 break;
2479 case 5: 2479 case 5:
2480 f_rem.setChecked( true); 2480 f_rem.setChecked( true);
2481 break; 2481 break;
2482 case 6: 2482 case 6:
2483 // both.setChecked( true); 2483 // both.setChecked( true);
2484 break; 2484 break;
2485 default: 2485 default:
2486 break; 2486 break;
2487 } 2487 }
2488 if ( dia.exec() ) { 2488 if ( dia.exec() ) {
2489 KABPrefs::instance()->mSyncAlgoPrefs = rem.isChecked()*1+newest.isChecked()*2+ ask.isChecked()*3+ f_loc.isChecked()*4+ f_rem.isChecked()*5;//+ both.isChecked()*6 ; 2489 KABPrefs::instance()->mSyncAlgoPrefs = rem.isChecked()*1+newest.isChecked()*2+ ask.isChecked()*3+ f_loc.isChecked()*4+ f_rem.isChecked()*5;//+ both.isChecked()*6 ;
2490 } 2490 }
2491 2491
2492 2492
2493} 2493}
2494QString KABCore::getPassword( ) 2494QString KABCore::getPassword( )
2495{ 2495{
2496 QString retfile = ""; 2496 QString retfile = "";
2497 QDialog dia ( this, "input-dialog", true ); 2497 QDialog dia ( this, "input-dialog", true );
2498 QLineEdit lab ( &dia ); 2498 QLineEdit lab ( &dia );
2499 lab.setEchoMode( QLineEdit::Password ); 2499 lab.setEchoMode( QLineEdit::Password );
2500 QVBoxLayout lay( &dia ); 2500 QVBoxLayout lay( &dia );
2501 lay.setMargin(7); 2501 lay.setMargin(7);
2502 lay.setSpacing(7); 2502 lay.setSpacing(7);
2503 lay.addWidget( &lab); 2503 lay.addWidget( &lab);
2504 dia.setFixedSize( 230,50 ); 2504 dia.setFixedSize( 230,50 );
2505 dia.setCaption( i18n("Enter password") ); 2505 dia.setCaption( i18n("Enter password") );
2506 QPushButton pb ( "OK", &dia); 2506 QPushButton pb ( "OK", &dia);
2507 lay.addWidget( &pb ); 2507 lay.addWidget( &pb );
2508 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 2508 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
2509 dia.show(); 2509 dia.show();
2510 int res = dia.exec(); 2510 int res = dia.exec();
2511 if ( res ) 2511 if ( res )
2512 retfile = lab.text(); 2512 retfile = lab.text();
2513 dia.hide(); 2513 dia.hide();
2514 qApp->processEvents(); 2514 qApp->processEvents();
2515 return retfile; 2515 return retfile;
2516 2516
2517} 2517}
2518#include <libkcal/syncdefines.h> 2518#include <libkcal/syncdefines.h>
2519 2519
2520KABC::Addressee KABCore::getLastSyncAddressee() 2520KABC::Addressee KABCore::getLastSyncAddressee()
2521{ 2521{
2522 Addressee lse; 2522 Addressee lse;
2523 //qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() ); 2523 //qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() );
2524 lse = mAddressBook->findByUid( "last-syncAddressee-"+mCurrentSyncDevice ); 2524 lse = mAddressBook->findByUid( "last-syncAddressee-"+mCurrentSyncDevice );
2525 if (lse.isEmpty()) { 2525 if (lse.isEmpty()) {
2526 lse.setUid( "last-syncEvent-"+mCurrentSyncDevice ); 2526 qDebug("Creating new last-syncAddressee ");
2527 lse.setUid( "last-syncAddressee-"+mCurrentSyncDevice );
2527 QString sum = ""; 2528 QString sum = "";
2528 if ( KABPrefs::instance()->mExternSyncProfiles.contains( mCurrentSyncDevice ) ) 2529 if ( KABPrefs::instance()->mExternSyncProfiles.contains( mCurrentSyncDevice ) )
2529 sum = "E: "; 2530 sum = "E: ";
2530 lse.setFamilyName(sum+mCurrentSyncDevice + i18n(" - sync event")); 2531 lse.setFamilyName(sum+mCurrentSyncDevice + i18n(" - sync event"));
2531 lse.setRevision( mLastAddressbookSync ); 2532 lse.setRevision( mLastAddressbookSync );
2532 lse.setCategories( i18n("SyncEvent") ); 2533 lse.setCategories( i18n("SyncEvent") );
2533 mAddressBook->insertAddressee( lse ); 2534 mAddressBook->insertAddressee( lse );
2534 } 2535 }
2535 return lse; 2536 return lse;
2536} 2537}
2537 2538int KABCore::takeAddressee( KABC::Addressee* local, KABC::Addressee* remote, int mode , bool full )
2539{
2540
2541 //void setZaurusId(int id);
2542 // int zaurusId() const;
2543 // void setZaurusUid(int id);
2544 // int zaurusUid() const;
2545 // void setZaurusStat(int id);
2546 // int zaurusStat() const;
2547 // 0 equal
2548 // 1 take local
2549 // 2 take remote
2550 // 3 cancel
2551 QDateTime lastSync = mLastAddressbookSync;
2552 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
2553 bool remCh, locCh;
2554 remCh = ( remote->getCsum(mCurrentSyncDevice) != local->getCsum(mCurrentSyncDevice) );
2555 //if ( remCh )
2556 //qDebug("loc %s rem %s", local->getCsum(mCurrentSyncDevice).latin1(), remote->getCsum(mCurrentSyncDevice).latin1() );
2557 locCh = ( local->revision() > mLastAddressbookSync );
2558 if ( !remCh && ! locCh ) {
2559 //qDebug("both not changed ");
2560 lastSync = local->revision().addDays(1);
2561 } else {
2562 if ( locCh ) {
2563 //qDebug("loc changed %d %s %s", local->revision() , local->lastModified().toString().latin1(), mLastCalendarSync.toString().latin1());
2564 lastSync = local->revision().addDays( -1 );
2565 if ( !remCh )
2566 remote->setRevision( lastSync.addDays( -1 ) );
2567 } else {
2568 //qDebug(" not loc changed ");
2569 lastSync = local->revision().addDays( 1 );
2570 if ( remCh )
2571 remote->setRevision( lastSync.addDays( 1 ) );
2572
2573 }
2574 }
2575 full = true;
2576 if ( mode < SYNC_PREF_ASK )
2577 mode = SYNC_PREF_ASK;
2578 } else {
2579 if ( local->revision() == remote->revision() )
2580 return 0;
2581
2582 }
2583 // qDebug(" %d %d conflict on %s %s ", mode, full, local->summary().latin1(), remote->summary().latin1() );
2584
2585 //qDebug("%s %d %s %d", local->lastModified().toString().latin1() , local->revision(), remote->lastModified().toString().latin1(), remote->revision());
2586 //qDebug("%d %d %d %d ", local->lastModified().time().second(), local->lastModified().time().msec(), remote->lastModified().time().second(), remote->lastModified().time().msec() );
2587 //full = true; //debug only
2588 if ( full ) {
2589 bool equ = ( (*local) == (*remote) );
2590 if ( equ ) {
2591 //qDebug("equal ");
2592 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
2593 local->setCsum( mCurrentSyncDevice, remote->getCsum(mCurrentSyncDevice) );
2594 }
2595 if ( mode < SYNC_PREF_FORCE_LOCAL )
2596 return 0;
2597
2598 }//else //debug only
2599 //qDebug("not equal %s %s ", local->summary().latin1(), remote->summary().latin1());
2600 }
2601 int result;
2602 bool localIsNew;
2603 //qDebug("%s -- %s mLastCalendarSync %s lastsync %s --- local %s remote %s ",local->summary().latin1(), remote->summary().latin1(),mLastCalendarSync.toString().latin1() ,lastSync.toString().latin1() , local->lastModified().toString().latin1() , remote->lastModified().toString().latin1() );
2604
2605 if ( full && mode < SYNC_PREF_NEWEST )
2606 mode = SYNC_PREF_ASK;
2607
2608 switch( mode ) {
2609 case SYNC_PREF_LOCAL:
2610 if ( lastSync > remote->revision() )
2611 return 1;
2612 if ( lastSync > local->revision() )
2613 return 2;
2614 return 1;
2615 break;
2616 case SYNC_PREF_REMOTE:
2617 if ( lastSync > remote->revision() )
2618 return 1;
2619 if ( lastSync > local->revision() )
2620 return 2;
2621 return 2;
2622 break;
2623 case SYNC_PREF_NEWEST:
2624 if ( local->revision() > remote->revision() )
2625 return 1;
2626 else
2627 return 2;
2628 break;
2629 case SYNC_PREF_ASK:
2630 qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), local->revision().toString().latin1(), remote->revision().toString().latin1() );
2631 if ( lastSync > remote->revision() )
2632 return 1;
2633 if ( lastSync > local->revision() )
2634 return 2;
2635 //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), local->revision().toString().latin1(), remote->revision().toString().latin1() );
2636 localIsNew = local->revision() >= remote->revision();
2637#if 0
2638 if ( localIsNew )
2639 getEventViewerDialog()->setColorMode( 1 );
2640 else
2641 getEventViewerDialog()->setColorMode( 2 );
2642 getEventViewerDialog()->setIncidence(local);
2643 if ( localIsNew )
2644 getEventViewerDialog()->setColorMode( 2 );
2645 else
2646 getEventViewerDialog()->setColorMode( 1 );
2647 getEventViewerDialog()->addIncidence(remote);
2648 getEventViewerDialog()->setColorMode( 0 );
2649 //qDebug("local %d remote %d ",local->relatedTo(),remote->relatedTo() );
2650 getEventViewerDialog()->setCaption( mCurrentSyncDevice +i18n(" : Conflict! Please choose entry!"));
2651 getEventViewerDialog()->showMe();
2652 result = getEventViewerDialog()->executeS( localIsNew );
2653#endif
2654 qDebug("conflict! ************************************** ");
2655 result = 1;
2656 return result;
2657
2658 break;
2659 case SYNC_PREF_FORCE_LOCAL:
2660 return 1;
2661 break;
2662 case SYNC_PREF_FORCE_REMOTE:
2663 return 2;
2664 break;
2665
2666 default:
2667 // SYNC_PREF_TAKE_BOTH not implemented
2668 break;
2669 }
2670 return 0;
2671}
2538bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode) 2672bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode)
2539{ 2673{
2540 bool syncOK = true; 2674 bool syncOK = true;
2541 int addedAddressee = 0; 2675 int addedAddressee = 0;
2542 int addedAddresseeR = 0; 2676 int addedAddresseeR = 0;
2543 int deletedAddresseeR = 0; 2677 int deletedAddresseeR = 0;
2544 int deletedAddresseeL = 0; 2678 int deletedAddresseeL = 0;
2545 int changedLocal = 0; 2679 int changedLocal = 0;
2546 int changedRemote = 0; 2680 int changedRemote = 0;
2547 //QPtrList<Addressee> el = local->rawAddressees(); 2681 //QPtrList<Addressee> el = local->rawAddressees();
2548 Addressee addresseeR; 2682 Addressee addresseeR;
2549 QString uid; 2683 QString uid;
2550 int take; 2684 int take;
2551 Addressee addresseeL; 2685 Addressee addresseeL;
2552 Addressee addresseeRSync; 2686 Addressee addresseeRSync;
2553 Addressee addresseeLSync; 2687 Addressee addresseeLSync;
2554 KABC::Addressee::List addresseeRSyncSharp = remote->getExternLastSyncAddressees(); 2688 KABC::Addressee::List addresseeRSyncSharp = remote->getExternLastSyncAddressees();
2555 KABC::Addressee::List addresseeLSyncSharp = local->getExternLastSyncAddressees(); 2689 KABC::Addressee::List addresseeLSyncSharp = local->getExternLastSyncAddressees();
2556 bool fullDateRange = false; 2690 bool fullDateRange = false;
2557 local->resetTempSyncStat(); 2691 local->resetTempSyncStat();
2558 mLastAddressbookSync = QDateTime::currentDateTime(); 2692 mLastAddressbookSync = QDateTime::currentDateTime();
2559 QDateTime modifiedCalendar = mLastAddressbookSync;; 2693 QDateTime modifiedCalendar = mLastAddressbookSync;;
2560 addresseeLSync = getLastSyncAddressee(); 2694 addresseeLSync = getLastSyncAddressee();
2695 qDebug("Last Sync %s ", addresseeLSync.revision().toString().latin1());
2561 addresseeR = remote->findByUid("last-syncAddressee-"+mCurrentSyncName ); 2696 addresseeR = remote->findByUid("last-syncAddressee-"+mCurrentSyncName );
2562 if ( !addresseeR.isEmpty() ) { 2697 if ( !addresseeR.isEmpty() ) {
2563 addresseeRSync = addresseeR; 2698 addresseeRSync = addresseeR;
2564 remote->removeAddressee(addresseeR ); 2699 remote->removeAddressee(addresseeR );
2565 2700
2566 } else { 2701 } else {
2567 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 2702 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
2568 addresseeRSync = addresseeLSync ; 2703 addresseeRSync = addresseeLSync ;
2569 } else { 2704 } else {
2705 qDebug("FULLDATE 1");
2570 fullDateRange = true; 2706 fullDateRange = true;
2571 Addressee newAdd; 2707 Addressee newAdd;
2572 addresseeRSync = newAdd; 2708 addresseeRSync = newAdd;
2573 addresseeRSync.setFamilyName(mCurrentSyncName + i18n(" - sync addressee")); 2709 addresseeRSync.setFamilyName(mCurrentSyncName + i18n(" - sync addressee"));
2574 addresseeRSync.setUid("last-syncAddressee-"+mCurrentSyncName ); 2710 addresseeRSync.setUid("last-syncAddressee-"+mCurrentSyncName );
2575 addresseeRSync.setRevision( mLastAddressbookSync ); 2711 addresseeRSync.setRevision( mLastAddressbookSync );
2576 addresseeRSync.setCategories( i18n("SyncAddressee") ); 2712 addresseeRSync.setCategories( i18n("SyncAddressee") );
2577 } 2713 }
2578 } 2714 }
2579 if ( addresseeLSync.revision() == mLastAddressbookSync ) 2715 if ( addresseeLSync.revision() == mLastAddressbookSync ) {
2716 qDebug("FULLDATE 2");
2580 fullDateRange = true; 2717 fullDateRange = true;
2718 }
2581 if ( ! fullDateRange ) { 2719 if ( ! fullDateRange ) {
2582 if ( addresseeLSync.revision() != addresseeRSync.revision() ) { 2720 if ( addresseeLSync.revision() != addresseeRSync.revision() ) {
2583 2721
2584 // qDebug("set fulldate to true %s %s" ,addresseeLSync->dtStart().toString().latin1(), addresseeRSync->dtStart().toString().latin1() ); 2722 // qDebug("set fulldate to true %s %s" ,addresseeLSync->dtStart().toString().latin1(), addresseeRSync->dtStart().toString().latin1() );
2585 //qDebug("%d %d %d %d ", addresseeLSync->dtStart().time().second(), addresseeLSync->dtStart().time().msec() , addresseeRSync->dtStart().time().second(), addresseeRSync->dtStart().time().msec()); 2723 //qDebug("%d %d %d %d ", addresseeLSync->dtStart().time().second(), addresseeLSync->dtStart().time().msec() , addresseeRSync->dtStart().time().second(), addresseeRSync->dtStart().time().msec());
2586 fullDateRange = true; 2724 fullDateRange = true;
2725 qDebug("FULLDATE 3 %s %s", addresseeLSync.revision().toString().latin1() , addresseeRSync.revision().toString().latin1() );
2587 } 2726 }
2588 } 2727 }
2589 if ( fullDateRange ) 2728 if ( fullDateRange )
2590 mLastAddressbookSync = QDateTime::currentDateTime().addDays( -100*365); 2729 mLastAddressbookSync = QDateTime::currentDateTime().addDays( -100*365);
2591 else 2730 else
2592 mLastAddressbookSync = addresseeLSync.revision(); 2731 mLastAddressbookSync = addresseeLSync.revision();
2593 // for resyncing if own file has changed 2732 // for resyncing if own file has changed
2594 // PENDING fixme later when implemented 2733 // PENDING fixme later when implemented
2595#if 0 2734#if 0
2596 if ( mCurrentSyncDevice == "deleteaftersync" ) { 2735 if ( mCurrentSyncDevice == "deleteaftersync" ) {
2597 mLastAddressbookSync = loadedFileVersion; 2736 mLastAddressbookSync = loadedFileVersion;
2598 qDebug("setting mLastAddressbookSync "); 2737 qDebug("setting mLastAddressbookSync ");
2599 } 2738 }
2600#endif 2739#endif
2601 2740
2602 //qDebug("*************************** "); 2741 //qDebug("*************************** ");
2603 qDebug("mLastAddressbookSync %s ",mLastAddressbookSync.toString().latin1() ); 2742 qDebug("mLastAddressbookSync %s ",mLastAddressbookSync.toString().latin1() );
2604 QStringList er = remote->uidList(); 2743 QStringList er = remote->uidList();
2605 Addressee inR ;//= er.first(); 2744 Addressee inR ;//= er.first();
2606 Addressee inL; 2745 Addressee inL;
2607 QProgressBar bar( er.count(),0 ); 2746 QProgressBar bar( er.count(),0 );
2608 bar.setCaption (i18n("Syncing - close to abort!") ); 2747 bar.setCaption (i18n("Syncing - close to abort!") );
2609 2748
2610 int w = 300; 2749 int w = 300;
2611 if ( QApplication::desktop()->width() < 320 ) 2750 if ( QApplication::desktop()->width() < 320 )
2612 w = 220; 2751 w = 220;
2613 int h = bar.sizeHint().height() ; 2752 int h = bar.sizeHint().height() ;
2614 int dw = QApplication::desktop()->width(); 2753 int dw = QApplication::desktop()->width();
2615 int dh = QApplication::desktop()->height(); 2754 int dh = QApplication::desktop()->height();
2616 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 2755 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
2617 bar.show(); 2756 bar.show();
2618 int modulo = (er.count()/10)+1; 2757 int modulo = (er.count()/10)+1;
2619 int incCounter = 0; 2758 int incCounter = 0;
2620 while ( incCounter < er.count()) { 2759 while ( incCounter < er.count()) {
2621 if ( ! bar.isVisible() ) 2760 if ( ! bar.isVisible() )
2622 return false; 2761 return false;
2623 if ( incCounter % modulo == 0 ) 2762 if ( incCounter % modulo == 0 )
2624 bar.setProgress( incCounter ); 2763 bar.setProgress( incCounter );
2625 uid = er[ incCounter ]; 2764 uid = er[ incCounter ];
2626 bool skipIncidence = false; 2765 bool skipIncidence = false;
2627 if ( uid.left(20) == QString("last-syncAddressee-") ) 2766 if ( uid.left(20) == QString("last-syncAddressee-") )
2628 skipIncidence = true; 2767 skipIncidence = true;
2629 QString idS; 2768 QString idS;
2630 qApp->processEvents(); 2769 qApp->processEvents();
2631 if ( !skipIncidence ) { 2770 if ( !skipIncidence ) {
2632 inL = local->findByUid( uid ); 2771 inL = local->findByUid( uid );
2633 inR = remote->findByUid( uid ); 2772 inR = remote->findByUid( uid );
2634 //inL.setResource( 0 ); 2773 //inL.setResource( 0 );
2635 //inR.setResource( 0 ); 2774 //inR.setResource( 0 );
2636 if ( !inL.isEmpty() ) { // maybe conflict - same uid in both calendars 2775 if ( !inL.isEmpty() ) { // maybe conflict - same uid in both calendars
2637 // pending if ( (take = takeAddressee( inL, inR, mode, fullDateRange )) > 0 ) { 2776 if ( take = takeAddressee( &inL, &inR, mode, fullDateRange ) ) {
2638 if ( true ) {
2639 //qDebug("take %d %s ", take, inL.summary().latin1()); 2777 //qDebug("take %d %s ", take, inL.summary().latin1());
2640 if ( take == 3 ) 2778 if ( take == 3 )
2641 return false; 2779 return false;
2642 if ( take == 1 ) {// take local 2780 if ( take == 1 ) {// take local
2643 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 2781 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
2644 inL.setCsum( mCurrentSyncDevice, inR.getCsum(mCurrentSyncDevice) ); 2782 inL.setCsum( mCurrentSyncDevice, inR.getCsum(mCurrentSyncDevice) );
2645 local->insertAddressee( inL ); 2783 local->insertAddressee( inL, false );
2646 } 2784 }
2647 else 2785 else
2648 idS = inR.IDStr(); 2786 idS = inR.IDStr();
2649 remote->removeAddressee( inR ); 2787 remote->removeAddressee( inR );
2650 inR = inL; 2788 inR = inL;
2651 inR.setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); 2789 inR.setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
2652 if ( mGlobalSyncMode != SYNC_MODE_EXTERNAL ) 2790 if ( mGlobalSyncMode != SYNC_MODE_EXTERNAL )
2653 inR.setIDStr( idS ); 2791 inR.setIDStr( idS );
2654 inR.setResource( 0 ); 2792 inR.setResource( 0 );
2655 remote->insertAddressee( inR ); 2793 remote->insertAddressee( inR , false);
2656 ++changedRemote; 2794 ++changedRemote;
2657 } else { 2795 } else {
2658 idS = inL.IDStr(); 2796 idS = inL.IDStr();
2659 local->removeAddressee( inL ); 2797 local->removeAddressee( inL );
2660 inL = inR; 2798 inL = inR;
2661 inL.setIDStr( idS ); 2799 inL.setIDStr( idS );
2662 inL.setResource( 0 ); 2800 inL.setResource( 0 );
2663 local->insertAddressee( inL ); 2801 local->insertAddressee( inL , false );
2664 ++changedLocal; 2802 ++changedLocal;
2665 } 2803 }
2666 } 2804 }
2667 } else { // no conflict 2805 } else { // no conflict
2668 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 2806 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
2669 QString des = addresseeLSync.note(); 2807 QString des = addresseeLSync.note();
2670 QString pref = "a"; 2808 QString pref = "a";
2671 if ( des.find(pref+ inR.getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it 2809 if ( des.find(pref+ inR.getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it
2672 inR.setTempSyncStat( SYNC_TEMPSTATE_DELETE ); 2810 inR.setTempSyncStat( SYNC_TEMPSTATE_DELETE );
2673 ++deletedAddresseeR; 2811 ++deletedAddresseeR;
2674 } else { 2812 } else {
2675 inR.setRevision( modifiedCalendar ); 2813 inR.setRevision( modifiedCalendar );
2676 remote->insertAddressee( inR ); 2814 remote->insertAddressee( inR, false );
2677 inL = inR; 2815 inL = inR;
2678 inL.setResource( 0 ); 2816 inL.setResource( 0 );
2679 local->insertAddressee( inL ); 2817 local->insertAddressee( inL , false);
2680 ++addedAddressee; 2818 ++addedAddressee;
2681 } 2819 }
2682 } else { 2820 } else {
2683 if ( inR.revision() > mLastAddressbookSync || mode == 5 ) { 2821 if ( inR.revision() > mLastAddressbookSync || mode == 5 ) {
2684 inR.setRevision( modifiedCalendar ); 2822 inR.setRevision( modifiedCalendar );
2685 remote->insertAddressee( inR ); 2823 remote->insertAddressee( inR, false );
2686 inR.setResource( 0 ); 2824 inR.setResource( 0 );
2687 local->insertAddressee( inR ); 2825 local->insertAddressee( inR, false );
2688 ++addedAddressee; 2826 ++addedAddressee;
2689 } else { 2827 } else {
2690 // pending checkExternSyncAddressee(addresseeRSyncSharp, inR); 2828 // pending checkExternSyncAddressee(addresseeRSyncSharp, inR);
2691 remote->removeAddressee( inR ); 2829 remote->removeAddressee( inR );
2692 ++deletedAddresseeR; 2830 ++deletedAddresseeR;
2693 } 2831 }
2694 } 2832 }
2695 } 2833 }
2696 } 2834 }
2697 ++incCounter; 2835 ++incCounter;
2698 } 2836 }
2699 er.clear(); 2837 er.clear();
2700 QStringList el = remote->uidList(); 2838 QStringList el = remote->uidList();
2701 modulo = (el.count()/10)+1; 2839 modulo = (el.count()/10)+1;
2702 bar.setCaption (i18n("Add / remove addressees") ); 2840 bar.setCaption (i18n("Add / remove addressees") );
2703 bar.setTotalSteps ( el.count() ) ; 2841 bar.setTotalSteps ( el.count() ) ;
2704 bar.show(); 2842 bar.show();
2705 incCounter = 0; 2843 incCounter = 0;
2706 while ( incCounter < el.count()) { 2844 while ( incCounter < el.count()) {
2707 2845
2708 qApp->processEvents(); 2846 qApp->processEvents();
2709 if ( ! bar.isVisible() ) 2847 if ( ! bar.isVisible() )
2710 return false; 2848 return false;
2711 if ( incCounter % modulo == 0 ) 2849 if ( incCounter % modulo == 0 )
2712 bar.setProgress( incCounter ); 2850 bar.setProgress( incCounter );
2713 uid = el[ incCounter ]; 2851 uid = el[ incCounter ];
2714 bool skipIncidence = false; 2852 bool skipIncidence = false;
2715 if ( uid.left(20) == QString("last-syncAddressee-") ) 2853 if ( uid.left(20) == QString("last-syncAddressee-") )
2716 skipIncidence = true; 2854 skipIncidence = true;
2717 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) 2855 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL )
2718 skipIncidence = true; 2856 skipIncidence = true;
2719 if ( !skipIncidence ) { 2857 if ( !skipIncidence ) {
2720 inL = local->findByUid( uid ); 2858 inL = local->findByUid( uid );
2721 inR = remote->findByUid( uid ); 2859 inR = remote->findByUid( uid );
2722 if ( inR.isEmpty() ) { 2860 if ( inR.isEmpty() ) {
2723 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 2861 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
2724 if ( !inL.getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) { 2862 if ( !inL.getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) {
2725 // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); 2863 // pending checkExternSyncAddressee(addresseeLSyncSharp, inL);
2726 local->removeAddressee( inL ); 2864 local->removeAddressee( inL );
2727 ++deletedAddresseeL; 2865 ++deletedAddresseeL;
2728 } else { 2866 } else {
2729 if ( ! KABPrefs::instance()->mWriteBackExistingOnly ) { 2867 if ( ! KABPrefs::instance()->mWriteBackExistingOnly ) {
2730 inL.removeID(mCurrentSyncDevice ); 2868 inL.removeID(mCurrentSyncDevice );
2731 ++addedAddresseeR; 2869 ++addedAddresseeR;
2732 //qDebug("remote added Incidence %s ", inL.summary().latin1()); 2870 //qDebug("remote added Incidence %s ", inL.summary().latin1());
2733 inL.setRevision( modifiedCalendar ); 2871 inL.setRevision( modifiedCalendar );
2734 local->insertAddressee( inL ); 2872 local->insertAddressee( inL, false );
2735 inR = inL; 2873 inR = inL;
2736 inR.setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); 2874 inR.setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
2737 inR.setResource( 0 ); 2875 inR.setResource( 0 );
2738 remote->insertAddressee( inR ); 2876 remote->insertAddressee( inR, false );
2739 } 2877 }
2740 } 2878 }
2741 } else { 2879 } else {
2742 if ( inL.revision() < mLastAddressbookSync && mode != 4 ) { 2880 if ( inL.revision() < mLastAddressbookSync && mode != 4 ) {
2743 // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); 2881 // pending checkExternSyncAddressee(addresseeLSyncSharp, inL);
2744 local->removeAddressee( inL ); 2882 local->removeAddressee( inL );
2745 ++deletedAddresseeL; 2883 ++deletedAddresseeL;
2746 } else { 2884 } else {
2747 if ( ! KABPrefs::instance()->mWriteBackExistingOnly ) { 2885 if ( ! KABPrefs::instance()->mWriteBackExistingOnly ) {
2748 ++addedAddresseeR; 2886 ++addedAddresseeR;
2749 inL.setRevision( modifiedCalendar ); 2887 inL.setRevision( modifiedCalendar );
2750 local->insertAddressee( inL ); 2888 local->insertAddressee( inL, false );
2751 inR = inL; 2889 inR = inL;
2752 inR.setResource( 0 ); 2890 inR.setResource( 0 );
2753 remote->insertAddressee( inR ); 2891 remote->insertAddressee( inR, false );
2754 } 2892 }
2755 } 2893 }
2756 } 2894 }
2757 } 2895 }
2758 } 2896 }
2759 ++incCounter; 2897 ++incCounter;
2760 } 2898 }
2761 el.clear(); 2899 el.clear();
2762 int delFut = 0;
2763 2900
2764 #if 0 2901
2765 2902
2766 bar.hide(); 2903 bar.hide();
2767 mLastAddressbookSync = QDateTime::currentDateTime().addSecs( 1 ); 2904 mLastAddressbookSync = QDateTime::currentDateTime().addSecs( 1 );
2768 addresseeLSync.setRevision( mLastAddressbookSync ); 2905 addresseeLSync.setRevision( mLastAddressbookSync );
2769 addresseeRSync.setRevision( mLastAddressbookSync ); 2906 addresseeRSync.setRevision( mLastAddressbookSync );
2770 addresseeRSync.setLocation( i18n("Remote from: ")+mCurrentSyncName ) ; 2907 addresseeRSync.setGivenName( i18n("Remote from: ")+mCurrentSyncName ) ;
2771 addresseeLSync.setLocation(i18n("Local from: ") + mCurrentSyncName ); 2908 addresseeLSync.setGivenName(i18n("Local from: ") + mCurrentSyncName );
2772 addresseeLSync.setReadOnly( true );
2773 if ( mGlobalSyncMode == SYNC_MODE_NORMAL) 2909 if ( mGlobalSyncMode == SYNC_MODE_NORMAL)
2774 remote->addAddressee( addresseeRSync ); 2910 remote->insertAddressee( addresseeRSync, false );
2911 local->insertAddressee( addresseeLSync, false );
2775 QString mes; 2912 QString mes;
2776 mes .sprintf( i18n("Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n"),addedAddressee, addedAddresseeR, changedLocal, changedRemote, deletedAddresseeL, deletedAddresseeR ); 2913 mes .sprintf( i18n("Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n"),addedAddressee, addedAddresseeR, changedLocal, changedRemote, deletedAddresseeL, deletedAddresseeR );
2777 QString delmess; 2914 if ( KABPrefs::instance()->mShowSyncSummary ) {
2778 if ( delFut ) {
2779 delmess.sprintf( i18n("%d items skipped on remote,\nbecause they are in the past or\nmore than %d weeks in the future.\n"),delFut, KOPrefs::instance()->mWriteBackInFuture );
2780 mes += delmess;
2781 }
2782 if ( KOPrefs::instance()->mShowSyncSummary ) {
2783 KMessageBox::information(this, mes, i18n("KO/Pi Synchronization") ); 2915 KMessageBox::information(this, mes, i18n("KO/Pi Synchronization") );
2784 } 2916 }
2785 qDebug( mes ); 2917 qDebug( mes );
2786 mCalendar->checkAlarmForIncidence( 0, true );
2787 return syncOK; 2918 return syncOK;
2788#endif
2789 return false;
2790} 2919}
2920
2791bool KABCore::syncAB(QString filename, int mode) 2921bool KABCore::syncAB(QString filename, int mode)
2792{ 2922{
2793 2923
2794 //pending prepare addresseeview for output 2924 //pending prepare addresseeview for output
2795 //pending detect, if remote file has REV field. if not switch to external sync 2925 //pending detect, if remote file has REV field. if not switch to external sync
2796 mGlobalSyncMode = SYNC_MODE_NORMAL; 2926 mGlobalSyncMode = SYNC_MODE_NORMAL;
2797 AddressBook abLocal(filename,"syncContact"); 2927 AddressBook abLocal(filename,"syncContact");
2798 bool syncOK = false; 2928 bool syncOK = false;
2799 if ( abLocal.load() ) { 2929 if ( abLocal.load() ) {
2800 qDebug("AB loaded %s mode %d",filename.latin1(), mode ); 2930 qDebug("AB loaded %s mode %d",filename.latin1(), mode );
2801 AddressBook::Iterator it; 2931 AddressBook::Iterator it;
2802 QStringList vcards; 2932 //QStringList vcards;
2803 for ( it = abLocal.begin(); it != abLocal.end(); ++it ) { 2933 //for ( it = abLocal.begin(); it != abLocal.end(); ++it ) {
2804 qDebug("Name %s ", (*it).familyName().latin1()); 2934 // qDebug("Name %s ", (*it).familyName().latin1());
2805 } 2935 //}
2806 syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, mode ); 2936 syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, mode );
2807 if ( syncOK ) { 2937 if ( syncOK ) {
2808 if ( KABPrefs::instance()->mWriteBackFile ) 2938 if ( KABPrefs::instance()->mWriteBackFile )
2809 { 2939 {
2810 qDebug("saving remote AB "); 2940 qDebug("saving remote AB ");
2811 abLocal.saveAB(); 2941 abLocal.saveAB();
2812 } 2942 }
2813 } 2943 }
2814 setModified(); 2944 setModified();
2815 2945
2816 } 2946 }
2817 if ( syncOK ) 2947 if ( syncOK )
2818 mViewManager->refreshView(); 2948 mViewManager->refreshView();
2819 return syncOK; 2949 return syncOK;
2820#if 0 2950#if 0
2821 2951
2822 if ( storage->load(KOPrefs::instance()->mUseQuicksave) ) { 2952 if ( storage->load(KOPrefs::instance()->mUseQuicksave) ) {
2823 getEventViewerDialog()->setSyncMode( true ); 2953 getEventViewerDialog()->setSyncMode( true );
2824 syncOK = synchronizeCalendar( mCalendar, calendar, mode ); 2954 syncOK = synchronizeCalendar( mCalendar, calendar, mode );
2825 getEventViewerDialog()->setSyncMode( false ); 2955 getEventViewerDialog()->setSyncMode( false );
2826 if ( syncOK ) { 2956 if ( syncOK ) {
2827 if ( KOPrefs::instance()->mWriteBackFile ) 2957 if ( KOPrefs::instance()->mWriteBackFile )
2828 { 2958 {
2829 storage->setSaveFormat( new ICalFormat( KOPrefs::instance()->mUseQuicksave) ); 2959 storage->setSaveFormat( new ICalFormat( KOPrefs::instance()->mUseQuicksave) );
2830 storage->save(); 2960 storage->save();
2831 } 2961 }
2832 } 2962 }
2833 setModified(); 2963 setModified();
2834 } 2964 }
2835 2965
2836#endif 2966#endif
2837} 2967}
2838 2968
2839 2969
2840void KABCore::confSync() 2970void KABCore::confSync()
2841{ 2971{
2842 static KSyncPrefsDialog* sp = 0; 2972 static KSyncPrefsDialog* sp = 0;
2843 if ( ! sp ) { 2973 if ( ! sp ) {
2844 sp = new KSyncPrefsDialog( this, "syncprefs", true ); 2974 sp = new KSyncPrefsDialog( this, "syncprefs", true );
2845 } 2975 }
2846 sp->usrReadConfig(); 2976 sp->usrReadConfig();
2847#ifndef DESKTOP_VERSION 2977#ifndef DESKTOP_VERSION
2848 sp->showMaximized(); 2978 sp->showMaximized();
2849#else 2979#else
2850 sp->show(); 2980 sp->show();
2851#endif 2981#endif
2852 sp->exec(); 2982 sp->exec();
2853 KABPrefs::instance()->mSyncProfileNames = sp->getSyncProfileNames(); 2983 KABPrefs::instance()->mSyncProfileNames = sp->getSyncProfileNames();
2854 KABPrefs::instance()->mLocalMachineName = sp->getLocalMachineName (); 2984 KABPrefs::instance()->mLocalMachineName = sp->getLocalMachineName ();
2855 fillSyncMenu(); 2985 fillSyncMenu();
2856} 2986}
2857void KABCore::syncSharp() 2987void KABCore::syncSharp()
2858{ 2988{
2859 if ( mModified ) 2989 if ( mModified )
2860 save(); 2990 save();
2861 qDebug("pending syncSharp() "); 2991 qDebug("pending syncSharp() ");
2862 //mView->syncSharp(); 2992 //mView->syncSharp();
2863 setModified(); 2993 setModified();
2864 2994
2865} 2995}
2866void KABCore::syncPhone() 2996void KABCore::syncPhone()
2867{ 2997{
2868 if ( mModified ) 2998 if ( mModified )
2869 save(); 2999 save();
2870 qDebug("pending syncPhone(); "); 3000 qDebug("pending syncPhone(); ");
2871 //mView->syncPhone(); 3001 //mView->syncPhone();
2872 setModified(); 3002 setModified();
2873 3003
2874} 3004}
diff --git a/kaddressbook/kabcore.h b/kaddressbook/kabcore.h
index c67cee6..f01f306 100644
--- a/kaddressbook/kabcore.h
+++ b/kaddressbook/kabcore.h
@@ -381,103 +381,104 @@ class KABCore : public QWidget
381 ExtensionManager *mExtensionManager; 381 ExtensionManager *mExtensionManager;
382 382
383 KCMultiDialog *mConfigureDialog; 383 KCMultiDialog *mConfigureDialog;
384 384
385#ifndef KAB_EMBEDDED 385#ifndef KAB_EMBEDDED
386 LDAPSearchDialog *mLdapSearchDialog; 386 LDAPSearchDialog *mLdapSearchDialog;
387#endif //KAB_EMBEDDED 387#endif //KAB_EMBEDDED
388 // QDict<AddresseeEditorDialog> mEditorDict; 388 // QDict<AddresseeEditorDialog> mEditorDict;
389 AddresseeEditorDialog *mEditorDialog; 389 AddresseeEditorDialog *mEditorDialog;
390 bool mReadWrite; 390 bool mReadWrite;
391 bool mModified; 391 bool mModified;
392 bool mIsPart; 392 bool mIsPart;
393 bool mMultipleViewsAtOnce; 393 bool mMultipleViewsAtOnce;
394 394
395 395
396 //US file menu 396 //US file menu
397 KAction *mActionMail; 397 KAction *mActionMail;
398 KAction *mActionBeam; 398 KAction *mActionBeam;
399 KAction* mActionPrint; 399 KAction* mActionPrint;
400 KAction* mActionNewContact; 400 KAction* mActionNewContact;
401 KAction *mActionSave; 401 KAction *mActionSave;
402 KAction *mActionEditAddressee; 402 KAction *mActionEditAddressee;
403 KAction *mActionMailVCard; 403 KAction *mActionMailVCard;
404 KAction *mActionBeamVCard; 404 KAction *mActionBeamVCard;
405 405
406 KAction *mActionQuit; 406 KAction *mActionQuit;
407 407
408 //US edit menu 408 //US edit menu
409 KAction *mActionCopy; 409 KAction *mActionCopy;
410 KAction *mActionCut; 410 KAction *mActionCut;
411 KAction *mActionPaste; 411 KAction *mActionPaste;
412 KAction *mActionSelectAll; 412 KAction *mActionSelectAll;
413 KAction *mActionUndo; 413 KAction *mActionUndo;
414 KAction *mActionRedo; 414 KAction *mActionRedo;
415 KAction *mActionDelete; 415 KAction *mActionDelete;
416 416
417 //US settings menu 417 //US settings menu
418 KAction *mActionConfigResources; 418 KAction *mActionConfigResources;
419 KAction *mActionConfigKAddressbook; 419 KAction *mActionConfigKAddressbook;
420 KAction *mActionConfigShortcuts; 420 KAction *mActionConfigShortcuts;
421 KAction *mActionConfigureToolbars; 421 KAction *mActionConfigureToolbars;
422 KAction *mActionKeyBindings; 422 KAction *mActionKeyBindings;
423 KToggleAction *mActionJumpBar; 423 KToggleAction *mActionJumpBar;
424 KToggleAction *mActionDetails; 424 KToggleAction *mActionDetails;
425 KAction *mActionWhoAmI; 425 KAction *mActionWhoAmI;
426 KAction *mActionCategories; 426 KAction *mActionCategories;
427 KAction *mActionAboutKAddressbook; 427 KAction *mActionAboutKAddressbook;
428 KAction *mActionLicence; 428 KAction *mActionLicence;
429 KAction *mActionFaq; 429 KAction *mActionFaq;
430 430
431 KAction *mActionDeleteView; 431 KAction *mActionDeleteView;
432 432
433 QPopupMenu *viewMenu; 433 QPopupMenu *viewMenu;
434 QPopupMenu *filterMenu; 434 QPopupMenu *filterMenu;
435 QPopupMenu *settingsMenu; 435 QPopupMenu *settingsMenu;
436 QPopupMenu *changeMenu; 436 QPopupMenu *changeMenu;
437//US QAction *mActionSave; 437//US QAction *mActionSave;
438 QPopupMenu *ImportMenu; 438 QPopupMenu *ImportMenu;
439 QPopupMenu *ExportMenu; 439 QPopupMenu *ExportMenu;
440 //LR additional methods 440 //LR additional methods
441 KAction *mActionRemoveVoice; 441 KAction *mActionRemoveVoice;
442 KAction * mActionImportOL; 442 KAction * mActionImportOL;
443 443
444#ifndef KAB_EMBEDDED 444#ifndef KAB_EMBEDDED
445 KAddressBookService *mAddressBookService; 445 KAddressBookService *mAddressBookService;
446#endif //KAB_EMBEDDED 446#endif //KAB_EMBEDDED
447 447
448 class KABCorePrivate; 448 class KABCorePrivate;
449 KABCorePrivate *d; 449 KABCorePrivate *d;
450 bool mBlockSaveFlag; 450 bool mBlockSaveFlag;
451 451
452#ifdef KAB_EMBEDDED 452#ifdef KAB_EMBEDDED
453 KAddressBookMain *mMainWindow; // should be the same like mGUIClient 453 KAddressBookMain *mMainWindow; // should be the same like mGUIClient
454#endif //KAB_EMBEDDED 454#endif //KAB_EMBEDDED
455 // LR ******************************* 455 // LR *******************************
456 // sync stuff! 456 // sync stuff!
457 QPopupMenu *syncMenu; 457 QPopupMenu *syncMenu;
458 void fillSyncMenu(); 458 void fillSyncMenu();
459 QString mCurrentSyncDevice; 459 QString mCurrentSyncDevice;
460 QString mCurrentSyncName; 460 QString mCurrentSyncName;
461 void quickSyncLocalFile(); 461 void quickSyncLocalFile();
462 bool syncWithFile( QString fn , bool quick ); 462 bool syncWithFile( QString fn , bool quick );
463 void KABCore::syncLocalFile(); 463 void KABCore::syncLocalFile();
464 void KABCore::syncPhone(); 464 void KABCore::syncPhone();
465 void KABCore::syncSharp(); 465 void KABCore::syncSharp();
466 void multiSync( bool askforPrefs ); 466 void multiSync( bool askforPrefs );
467 int mCurrentSyncProfile ; 467 int mCurrentSyncProfile ;
468 void syncRemote( KSyncProfile* prof, bool ask = true); 468 void syncRemote( KSyncProfile* prof, bool ask = true);
469 void edit_sync_options(); 469 void edit_sync_options();
470 bool syncAB(QString filename, int mode); 470 bool syncAB(QString filename, int mode);
471 int ringSync(); 471 int ringSync();
472 QString getPassword( ); 472 QString getPassword( );
473 int mGlobalSyncMode; 473 int mGlobalSyncMode;
474 bool synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode); 474 bool synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode);
475 KABC::Addressee getLastSyncAddressee(); 475 KABC::Addressee getLastSyncAddressee();
476 QDateTime mLastAddressbookSync; 476 QDateTime mLastAddressbookSync;
477 int takeAddressee( KABC::Addressee* local, KABC::Addressee* remote, int mode , bool full );
477 public slots: 478 public slots:
478 void confSync(); 479 void confSync();
479 // ********************* 480 // *********************
480 481
481}; 482};
482 483
483#endif 484#endif