summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2004-09-18 16:32:35 (UTC)
committer zautrix <zautrix>2004-09-18 16:32:35 (UTC)
commita355a58898d0d08d797f872751254cfa958387c1 (patch) (unidiff)
treece338c8cc9785d6351a8a8b66fb8e5c1602ceab0
parentbf18a7b4edb4121fd2ea974ac1ec634167c9b993 (diff)
downloadkdepimpi-a355a58898d0d08d797f872751254cfa958387c1.zip
kdepimpi-a355a58898d0d08d797f872751254cfa958387c1.tar.gz
kdepimpi-a355a58898d0d08d797f872751254cfa958387c1.tar.bz2
time fixes
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/addressbook.cpp9
-rw-r--r--kaddressbook/kabcore.cpp3
2 files changed, 10 insertions, 2 deletions
diff --git a/kabc/addressbook.cpp b/kabc/addressbook.cpp
index 3ec0795..d03dea3 100644
--- a/kabc/addressbook.cpp
+++ b/kabc/addressbook.cpp
@@ -399,130 +399,135 @@ AddressBook::Iterator AddressBook::begin()
399AddressBook::ConstIterator AddressBook::begin() const 399AddressBook::ConstIterator AddressBook::begin() const
400{ 400{
401 ConstIterator it = ConstIterator(); 401 ConstIterator it = ConstIterator();
402 it.d->mIt = d->mAddressees.begin(); 402 it.d->mIt = d->mAddressees.begin();
403 return it; 403 return it;
404} 404}
405 405
406AddressBook::Iterator AddressBook::end() 406AddressBook::Iterator AddressBook::end()
407{ 407{
408 Iterator it = Iterator(); 408 Iterator it = Iterator();
409 it.d->mIt = d->mAddressees.end(); 409 it.d->mIt = d->mAddressees.end();
410 return it; 410 return it;
411} 411}
412 412
413AddressBook::ConstIterator AddressBook::end() const 413AddressBook::ConstIterator AddressBook::end() const
414{ 414{
415 ConstIterator it = ConstIterator(); 415 ConstIterator it = ConstIterator();
416 it.d->mIt = d->mAddressees.end(); 416 it.d->mIt = d->mAddressees.end();
417 return it; 417 return it;
418} 418}
419 419
420void AddressBook::clear() 420void AddressBook::clear()
421{ 421{
422 d->mAddressees.clear(); 422 d->mAddressees.clear();
423} 423}
424 424
425Ticket *AddressBook::requestSaveTicket( Resource *resource ) 425Ticket *AddressBook::requestSaveTicket( Resource *resource )
426{ 426{
427 kdDebug(5700) << "AddressBook::requestSaveTicket()" << endl; 427 kdDebug(5700) << "AddressBook::requestSaveTicket()" << endl;
428 428
429 if ( !resource ) 429 if ( !resource )
430 { 430 {
431 qDebug("AddressBook::requestSaveTicket no resource" ); 431 qDebug("AddressBook::requestSaveTicket no resource" );
432 resource = standardResource(); 432 resource = standardResource();
433 } 433 }
434 434
435 KRES::Manager<Resource>::ActiveIterator it; 435 KRES::Manager<Resource>::ActiveIterator it;
436 for ( it = d->mManager->activeBegin(); it != d->mManager->activeEnd(); ++it ) { 436 for ( it = d->mManager->activeBegin(); it != d->mManager->activeEnd(); ++it ) {
437 if ( (*it) == resource ) { 437 if ( (*it) == resource ) {
438 if ( (*it)->readOnly() || !(*it)->isOpen() ) 438 if ( (*it)->readOnly() || !(*it)->isOpen() )
439 return 0; 439 return 0;
440 else 440 else
441 return (*it)->requestSaveTicket(); 441 return (*it)->requestSaveTicket();
442 } 442 }
443 } 443 }
444 444
445 return 0; 445 return 0;
446} 446}
447 447
448void AddressBook::insertAddressee( const Addressee &a, bool setRev ) 448void AddressBook::insertAddressee( const Addressee &a, bool setRev )
449{ 449{
450 Addressee::List::Iterator it; 450 Addressee::List::Iterator it;
451 for ( it = d->mAddressees.begin(); it != d->mAddressees.end(); ++it ) { 451 for ( it = d->mAddressees.begin(); it != d->mAddressees.end(); ++it ) {
452 if ( a.uid() == (*it).uid() ) { 452 if ( a.uid() == (*it).uid() ) {
453 bool changed = false; 453 bool changed = false;
454 Addressee addr = a; 454 Addressee addr = a;
455 if ( addr != (*it) ) 455 if ( addr != (*it) )
456 changed = true; 456 changed = true;
457 457
458 (*it) = a; 458 (*it) = a;
459 if ( (*it).resource() == 0 ) 459 if ( (*it).resource() == 0 )
460 (*it).setResource( standardResource() ); 460 (*it).setResource( standardResource() );
461 461
462 if ( changed ) { 462 if ( changed ) {
463 if ( setRev ) 463 if ( setRev ) {
464 (*it).setRevision( QDateTime::currentDateTime() ); 464 // get rid of micro seconds
465 QDateTime dt = QDateTime::currentDateTime();
466 QTime t = dt.time();
467 dt.setTime( QTime (t.hour (), t.minute (), t.second () ) );
468 (*it).setRevision( dt );
469 }
465 (*it).setChanged( true ); 470 (*it).setChanged( true );
466 } 471 }
467 472
468 return; 473 return;
469 } 474 }
470 } 475 }
471 d->mAddressees.append( a ); 476 d->mAddressees.append( a );
472 Addressee& addr = d->mAddressees.last(); 477 Addressee& addr = d->mAddressees.last();
473 if ( addr.resource() == 0 ) 478 if ( addr.resource() == 0 )
474 addr.setResource( standardResource() ); 479 addr.setResource( standardResource() );
475 480
476 addr.setChanged( true ); 481 addr.setChanged( true );
477} 482}
478 483
479void AddressBook::removeAddressee( const Addressee &a ) 484void AddressBook::removeAddressee( const Addressee &a )
480{ 485{
481 Iterator it; 486 Iterator it;
482 for ( it = begin(); it != end(); ++it ) { 487 for ( it = begin(); it != end(); ++it ) {
483 if ( a.uid() == (*it).uid() ) { 488 if ( a.uid() == (*it).uid() ) {
484 removeAddressee( it ); 489 removeAddressee( it );
485 return; 490 return;
486 } 491 }
487 } 492 }
488} 493}
489 494
490void AddressBook::removeAddressee( const Iterator &it ) 495void AddressBook::removeAddressee( const Iterator &it )
491{ 496{
492 d->mRemovedAddressees.append( (*it) ); 497 d->mRemovedAddressees.append( (*it) );
493 d->mAddressees.remove( it.d->mIt ); 498 d->mAddressees.remove( it.d->mIt );
494} 499}
495 500
496AddressBook::Iterator AddressBook::find( const Addressee &a ) 501AddressBook::Iterator AddressBook::find( const Addressee &a )
497{ 502{
498 Iterator it; 503 Iterator it;
499 for ( it = begin(); it != end(); ++it ) { 504 for ( it = begin(); it != end(); ++it ) {
500 if ( a.uid() == (*it).uid() ) { 505 if ( a.uid() == (*it).uid() ) {
501 return it; 506 return it;
502 } 507 }
503 } 508 }
504 return end(); 509 return end();
505} 510}
506 511
507Addressee AddressBook::findByUid( const QString &uid ) 512Addressee AddressBook::findByUid( const QString &uid )
508{ 513{
509 Iterator it; 514 Iterator it;
510 for ( it = begin(); it != end(); ++it ) { 515 for ( it = begin(); it != end(); ++it ) {
511 if ( uid == (*it).uid() ) { 516 if ( uid == (*it).uid() ) {
512 return *it; 517 return *it;
513 } 518 }
514 } 519 }
515 return Addressee(); 520 return Addressee();
516} 521}
517Addressee::List AddressBook::getExternLastSyncAddressees() 522Addressee::List AddressBook::getExternLastSyncAddressees()
518{ 523{
519 Addressee::List results; 524 Addressee::List results;
520 525
521 Iterator it; 526 Iterator it;
522 for ( it = begin(); it != end(); ++it ) { 527 for ( it = begin(); it != end(); ++it ) {
523 if ( (*it).uid().left( 20 ) == "last-syncAddressee-" ) { 528 if ( (*it).uid().left( 20 ) == "last-syncAddressee-" ) {
524 if ( (*it).familyName().left(3) == "E: " ) 529 if ( (*it).familyName().left(3) == "E: " )
525 results.append( *it ); 530 results.append( *it );
526 } 531 }
527 } 532 }
528 533
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index 226d5e4..215ce83 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -2841,128 +2841,131 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo
2841 bar.setTotalSteps ( el.count() ) ; 2841 bar.setTotalSteps ( el.count() ) ;
2842 bar.show(); 2842 bar.show();
2843 incCounter = 0; 2843 incCounter = 0;
2844 while ( incCounter < el.count()) { 2844 while ( incCounter < el.count()) {
2845 2845
2846 qApp->processEvents(); 2846 qApp->processEvents();
2847 if ( ! bar.isVisible() ) 2847 if ( ! bar.isVisible() )
2848 return false; 2848 return false;
2849 if ( incCounter % modulo == 0 ) 2849 if ( incCounter % modulo == 0 )
2850 bar.setProgress( incCounter ); 2850 bar.setProgress( incCounter );
2851 uid = el[ incCounter ]; 2851 uid = el[ incCounter ];
2852 bool skipIncidence = false; 2852 bool skipIncidence = false;
2853 if ( uid.left(20) == QString("last-syncAddressee-") ) 2853 if ( uid.left(20) == QString("last-syncAddressee-") )
2854 skipIncidence = true; 2854 skipIncidence = true;
2855 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) 2855 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL )
2856 skipIncidence = true; 2856 skipIncidence = true;
2857 if ( !skipIncidence ) { 2857 if ( !skipIncidence ) {
2858 inL = local->findByUid( uid ); 2858 inL = local->findByUid( uid );
2859 inR = remote->findByUid( uid ); 2859 inR = remote->findByUid( uid );
2860 if ( inR.isEmpty() ) { 2860 if ( inR.isEmpty() ) {
2861 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 2861 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
2862 if ( !inL.getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) { 2862 if ( !inL.getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) {
2863 // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); 2863 // pending checkExternSyncAddressee(addresseeLSyncSharp, inL);
2864 local->removeAddressee( inL ); 2864 local->removeAddressee( inL );
2865 ++deletedAddresseeL; 2865 ++deletedAddresseeL;
2866 } else { 2866 } else {
2867 if ( ! KABPrefs::instance()->mWriteBackExistingOnly ) { 2867 if ( ! KABPrefs::instance()->mWriteBackExistingOnly ) {
2868 inL.removeID(mCurrentSyncDevice ); 2868 inL.removeID(mCurrentSyncDevice );
2869 ++addedAddresseeR; 2869 ++addedAddresseeR;
2870 //qDebug("remote added Incidence %s ", inL.summary().latin1()); 2870 //qDebug("remote added Incidence %s ", inL.summary().latin1());
2871 inL.setRevision( modifiedCalendar ); 2871 inL.setRevision( modifiedCalendar );
2872 local->insertAddressee( inL, false ); 2872 local->insertAddressee( inL, false );
2873 inR = inL; 2873 inR = inL;
2874 inR.setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); 2874 inR.setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
2875 inR.setResource( 0 ); 2875 inR.setResource( 0 );
2876 remote->insertAddressee( inR, false ); 2876 remote->insertAddressee( inR, false );
2877 } 2877 }
2878 } 2878 }
2879 } else { 2879 } else {
2880 if ( inL.revision() < mLastAddressbookSync && mode != 4 ) { 2880 if ( inL.revision() < mLastAddressbookSync && mode != 4 ) {
2881 // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); 2881 // pending checkExternSyncAddressee(addresseeLSyncSharp, inL);
2882 local->removeAddressee( inL ); 2882 local->removeAddressee( inL );
2883 ++deletedAddresseeL; 2883 ++deletedAddresseeL;
2884 } else { 2884 } else {
2885 if ( ! KABPrefs::instance()->mWriteBackExistingOnly ) { 2885 if ( ! KABPrefs::instance()->mWriteBackExistingOnly ) {
2886 ++addedAddresseeR; 2886 ++addedAddresseeR;
2887 inL.setRevision( modifiedCalendar ); 2887 inL.setRevision( modifiedCalendar );
2888 local->insertAddressee( inL, false ); 2888 local->insertAddressee( inL, false );
2889 inR = inL; 2889 inR = inL;
2890 inR.setResource( 0 ); 2890 inR.setResource( 0 );
2891 remote->insertAddressee( inR, false ); 2891 remote->insertAddressee( inR, false );
2892 } 2892 }
2893 } 2893 }
2894 } 2894 }
2895 } 2895 }
2896 } 2896 }
2897 ++incCounter; 2897 ++incCounter;
2898 } 2898 }
2899 el.clear(); 2899 el.clear();
2900 2900
2901 2901
2902 2902
2903 bar.hide(); 2903 bar.hide();
2904 mLastAddressbookSync = QDateTime::currentDateTime().addSecs( 1 ); 2904 mLastAddressbookSync = QDateTime::currentDateTime().addSecs( 1 );
2905 // get rid of micro seconds
2906 QTime t = mLastAddressbookSync.time();
2907 mLastAddressbookSync.setTime( QTime (t.hour (), t.minute (), t.second () ) );
2905 addresseeLSync.setRevision( mLastAddressbookSync ); 2908 addresseeLSync.setRevision( mLastAddressbookSync );
2906 addresseeRSync.setRevision( mLastAddressbookSync ); 2909 addresseeRSync.setRevision( mLastAddressbookSync );
2907 addresseeRSync.setGivenName( i18n("Remote from: ")+mCurrentSyncName ) ; 2910 addresseeRSync.setGivenName( i18n("Remote from: ")+mCurrentSyncName ) ;
2908 addresseeLSync.setGivenName(i18n("Local from: ") + mCurrentSyncName ); 2911 addresseeLSync.setGivenName(i18n("Local from: ") + mCurrentSyncName );
2909 if ( mGlobalSyncMode == SYNC_MODE_NORMAL) 2912 if ( mGlobalSyncMode == SYNC_MODE_NORMAL)
2910 remote->insertAddressee( addresseeRSync, false ); 2913 remote->insertAddressee( addresseeRSync, false );
2911 local->insertAddressee( addresseeLSync, false ); 2914 local->insertAddressee( addresseeLSync, false );
2912 QString mes; 2915 QString mes;
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 ); 2916 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 );
2914 if ( KABPrefs::instance()->mShowSyncSummary ) { 2917 if ( KABPrefs::instance()->mShowSyncSummary ) {
2915 KMessageBox::information(this, mes, i18n("KO/Pi Synchronization") ); 2918 KMessageBox::information(this, mes, i18n("KO/Pi Synchronization") );
2916 } 2919 }
2917 qDebug( mes ); 2920 qDebug( mes );
2918 return syncOK; 2921 return syncOK;
2919} 2922}
2920 2923
2921bool KABCore::syncAB(QString filename, int mode) 2924bool KABCore::syncAB(QString filename, int mode)
2922{ 2925{
2923 2926
2924 //pending prepare addresseeview for output 2927 //pending prepare addresseeview for output
2925 //pending detect, if remote file has REV field. if not switch to external sync 2928 //pending detect, if remote file has REV field. if not switch to external sync
2926 mGlobalSyncMode = SYNC_MODE_NORMAL; 2929 mGlobalSyncMode = SYNC_MODE_NORMAL;
2927 AddressBook abLocal(filename,"syncContact"); 2930 AddressBook abLocal(filename,"syncContact");
2928 bool syncOK = false; 2931 bool syncOK = false;
2929 if ( abLocal.load() ) { 2932 if ( abLocal.load() ) {
2930 qDebug("AB loaded %s mode %d",filename.latin1(), mode ); 2933 qDebug("AB loaded %s mode %d",filename.latin1(), mode );
2931 AddressBook::Iterator it; 2934 AddressBook::Iterator it;
2932 //QStringList vcards; 2935 //QStringList vcards;
2933 //for ( it = abLocal.begin(); it != abLocal.end(); ++it ) { 2936 //for ( it = abLocal.begin(); it != abLocal.end(); ++it ) {
2934 // qDebug("Name %s ", (*it).familyName().latin1()); 2937 // qDebug("Name %s ", (*it).familyName().latin1());
2935 //} 2938 //}
2936 syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, mode ); 2939 syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, mode );
2937 if ( syncOK ) { 2940 if ( syncOK ) {
2938 if ( KABPrefs::instance()->mWriteBackFile ) 2941 if ( KABPrefs::instance()->mWriteBackFile )
2939 { 2942 {
2940 qDebug("saving remote AB "); 2943 qDebug("saving remote AB ");
2941 abLocal.saveAB(); 2944 abLocal.saveAB();
2942 } 2945 }
2943 } 2946 }
2944 setModified(); 2947 setModified();
2945 2948
2946 } 2949 }
2947 if ( syncOK ) 2950 if ( syncOK )
2948 mViewManager->refreshView(); 2951 mViewManager->refreshView();
2949 return syncOK; 2952 return syncOK;
2950#if 0 2953#if 0
2951 2954
2952 if ( storage->load(KOPrefs::instance()->mUseQuicksave) ) { 2955 if ( storage->load(KOPrefs::instance()->mUseQuicksave) ) {
2953 getEventViewerDialog()->setSyncMode( true ); 2956 getEventViewerDialog()->setSyncMode( true );
2954 syncOK = synchronizeCalendar( mCalendar, calendar, mode ); 2957 syncOK = synchronizeCalendar( mCalendar, calendar, mode );
2955 getEventViewerDialog()->setSyncMode( false ); 2958 getEventViewerDialog()->setSyncMode( false );
2956 if ( syncOK ) { 2959 if ( syncOK ) {
2957 if ( KOPrefs::instance()->mWriteBackFile ) 2960 if ( KOPrefs::instance()->mWriteBackFile )
2958 { 2961 {
2959 storage->setSaveFormat( new ICalFormat( KOPrefs::instance()->mUseQuicksave) ); 2962 storage->setSaveFormat( new ICalFormat( KOPrefs::instance()->mUseQuicksave) );
2960 storage->save(); 2963 storage->save();
2961 } 2964 }
2962 } 2965 }
2963 setModified(); 2966 setModified();
2964 } 2967 }
2965 2968
2966#endif 2969#endif
2967} 2970}
2968 2971