summaryrefslogtreecommitdiffabout
path: root/kabc
Unidiff
Diffstat (limited to 'kabc') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/addressbook.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/kabc/addressbook.cpp b/kabc/addressbook.cpp
index d03dea3..16e1653 100644
--- a/kabc/addressbook.cpp
+++ b/kabc/addressbook.cpp
@@ -357,298 +357,303 @@ bool AddressBook::save( Ticket *ticket )
357 return ticket->resource()->save( ticket ); 357 return ticket->resource()->save( ticket );
358 } 358 }
359 359
360 return false; 360 return false;
361} 361}
362bool AddressBook::saveAB() 362bool AddressBook::saveAB()
363{ 363{
364 bool ok = true; 364 bool ok = true;
365 365
366 deleteRemovedAddressees(); 366 deleteRemovedAddressees();
367 367
368 KRES::Manager<Resource>::ActiveIterator it; 368 KRES::Manager<Resource>::ActiveIterator it;
369 KRES::Manager<Resource> *manager = d->mManager; 369 KRES::Manager<Resource> *manager = d->mManager;
370 for ( it = manager->activeBegin(); it != manager->activeEnd(); ++it ) { 370 for ( it = manager->activeBegin(); it != manager->activeEnd(); ++it ) {
371 if ( !(*it)->readOnly() && (*it)->isOpen() ) { 371 if ( !(*it)->readOnly() && (*it)->isOpen() ) {
372 Ticket *ticket = requestSaveTicket( *it ); 372 Ticket *ticket = requestSaveTicket( *it );
373// qDebug("StdAddressBook::save '%s'", (*it)->resourceName().latin1() ); 373// qDebug("StdAddressBook::save '%s'", (*it)->resourceName().latin1() );
374 if ( !ticket ) { 374 if ( !ticket ) {
375 error( i18n( "Unable to save to resource '%1'. It is locked." ) 375 error( i18n( "Unable to save to resource '%1'. It is locked." )
376 .arg( (*it)->resourceName() ) ); 376 .arg( (*it)->resourceName() ) );
377 return false; 377 return false;
378 } 378 }
379 379
380 //if ( !save( ticket ) ) 380 //if ( !save( ticket ) )
381 if ( ticket->resource() ) { 381 if ( ticket->resource() ) {
382 if ( ! ticket->resource()->save( ticket ) ) 382 if ( ! ticket->resource()->save( ticket ) )
383 ok = false; 383 ok = false;
384 } else 384 } else
385 ok = false; 385 ok = false;
386 386
387 } 387 }
388 } 388 }
389 return ok; 389 return ok;
390} 390}
391 391
392AddressBook::Iterator AddressBook::begin() 392AddressBook::Iterator AddressBook::begin()
393{ 393{
394 Iterator it = Iterator(); 394 Iterator it = Iterator();
395 it.d->mIt = d->mAddressees.begin(); 395 it.d->mIt = d->mAddressees.begin();
396 return it; 396 return it;
397} 397}
398 398
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 if ( setRev && (*it).uid().left( 19 ) == QString("last-syncAddressee-") ) {
454 return;
455 }
453 bool changed = false; 456 bool changed = false;
454 Addressee addr = a; 457 Addressee addr = a;
455 if ( addr != (*it) ) 458 if ( addr != (*it) )
456 changed = true; 459 changed = true;
457 460
458 (*it) = a; 461 (*it) = a;
459 if ( (*it).resource() == 0 ) 462 if ( (*it).resource() == 0 )
460 (*it).setResource( standardResource() ); 463 (*it).setResource( standardResource() );
461 464
462 if ( changed ) { 465 if ( changed ) {
463 if ( setRev ) { 466 if ( setRev ) {
467
464 // get rid of micro seconds 468 // get rid of micro seconds
465 QDateTime dt = QDateTime::currentDateTime(); 469 QDateTime dt = QDateTime::currentDateTime();
466 QTime t = dt.time(); 470 QTime t = dt.time();
467 dt.setTime( QTime (t.hour (), t.minute (), t.second () ) ); 471 dt.setTime( QTime (t.hour (), t.minute (), t.second () ) );
468 (*it).setRevision( dt ); 472 (*it).setRevision( dt );
469 } 473 }
470 (*it).setChanged( true ); 474 (*it).setChanged( true );
471 } 475 }
472 476
473 return; 477 return;
474 } 478 }
475 } 479 }
476 d->mAddressees.append( a ); 480 d->mAddressees.append( a );
477 Addressee& addr = d->mAddressees.last(); 481 Addressee& addr = d->mAddressees.last();
478 if ( addr.resource() == 0 ) 482 if ( addr.resource() == 0 )
479 addr.setResource( standardResource() ); 483 addr.setResource( standardResource() );
480 484
481 addr.setChanged( true ); 485 addr.setChanged( true );
482} 486}
483 487
484void AddressBook::removeAddressee( const Addressee &a ) 488void AddressBook::removeAddressee( const Addressee &a )
485{ 489{
486 Iterator it; 490 Iterator it;
487 for ( it = begin(); it != end(); ++it ) { 491 for ( it = begin(); it != end(); ++it ) {
488 if ( a.uid() == (*it).uid() ) { 492 if ( a.uid() == (*it).uid() ) {
489 removeAddressee( it ); 493 removeAddressee( it );
490 return; 494 return;
491 } 495 }
492 } 496 }
493} 497}
494 498
495void AddressBook::removeAddressee( const Iterator &it ) 499void AddressBook::removeAddressee( const Iterator &it )
496{ 500{
497 d->mRemovedAddressees.append( (*it) ); 501 d->mRemovedAddressees.append( (*it) );
498 d->mAddressees.remove( it.d->mIt ); 502 d->mAddressees.remove( it.d->mIt );
499} 503}
500 504
501AddressBook::Iterator AddressBook::find( const Addressee &a ) 505AddressBook::Iterator AddressBook::find( const Addressee &a )
502{ 506{
503 Iterator it; 507 Iterator it;
504 for ( it = begin(); it != end(); ++it ) { 508 for ( it = begin(); it != end(); ++it ) {
505 if ( a.uid() == (*it).uid() ) { 509 if ( a.uid() == (*it).uid() ) {
506 return it; 510 return it;
507 } 511 }
508 } 512 }
509 return end(); 513 return end();
510} 514}
511 515
512Addressee AddressBook::findByUid( const QString &uid ) 516Addressee AddressBook::findByUid( const QString &uid )
513{ 517{
514 Iterator it; 518 Iterator it;
515 for ( it = begin(); it != end(); ++it ) { 519 for ( it = begin(); it != end(); ++it ) {
516 if ( uid == (*it).uid() ) { 520 if ( uid == (*it).uid() ) {
517 return *it; 521 return *it;
518 } 522 }
519 } 523 }
520 return Addressee(); 524 return Addressee();
521} 525}
522Addressee::List AddressBook::getExternLastSyncAddressees() 526Addressee::List AddressBook::getExternLastSyncAddressees()
523{ 527{
524 Addressee::List results; 528 Addressee::List results;
525 529
526 Iterator it; 530 Iterator it;
527 for ( it = begin(); it != end(); ++it ) { 531 for ( it = begin(); it != end(); ++it ) {
528 if ( (*it).uid().left( 20 ) == "last-syncAddressee-" ) { 532 if ( (*it).uid().left( 19 ) == "last-syncAddressee-" ) {
529 if ( (*it).familyName().left(3) == "E: " ) 533 if ( (*it).familyName().left(3) == "E: " )
530 results.append( *it ); 534 results.append( *it );
531 } 535 }
532 } 536 }
533 537
534 return results; 538 return results;
535} 539}
536void AddressBook::resetTempSyncStat() 540void AddressBook::resetTempSyncStat()
537{ 541{
538 Iterator it; 542 Iterator it;
539 for ( it = begin(); it != end(); ++it ) { 543 for ( it = begin(); it != end(); ++it ) {
540 (*it).setTempSyncStat ( SYNC_TEMPSTATE_INITIAL ); 544 (*it).setTempSyncStat ( SYNC_TEMPSTATE_INITIAL );
541 } 545 }
542 546
543} 547}
544 548
545QStringList AddressBook:: uidList() 549QStringList AddressBook:: uidList()
546{ 550{
547 QStringList results; 551 QStringList results;
548 Iterator it; 552 Iterator it;
549 for ( it = begin(); it != end(); ++it ) { 553 for ( it = begin(); it != end(); ++it ) {
550 results.append( (*it).uid() ); 554 results.append( (*it).uid() );
551 } 555 }
552 return results; 556 return results;
553} 557}
554 558
555 559
556Addressee::List AddressBook::allAddressees() 560Addressee::List AddressBook::allAddressees()
557{ 561{
558 return d->mAddressees; 562 return d->mAddressees;
563
559} 564}
560 565
561Addressee::List AddressBook::findByName( const QString &name ) 566Addressee::List AddressBook::findByName( const QString &name )
562{ 567{
563 Addressee::List results; 568 Addressee::List results;
564 569
565 Iterator it; 570 Iterator it;
566 for ( it = begin(); it != end(); ++it ) { 571 for ( it = begin(); it != end(); ++it ) {
567 if ( name == (*it).realName() ) { 572 if ( name == (*it).realName() ) {
568 results.append( *it ); 573 results.append( *it );
569 } 574 }
570 } 575 }
571 576
572 return results; 577 return results;
573} 578}
574 579
575Addressee::List AddressBook::findByEmail( const QString &email ) 580Addressee::List AddressBook::findByEmail( const QString &email )
576{ 581{
577 Addressee::List results; 582 Addressee::List results;
578 QStringList mailList; 583 QStringList mailList;
579 584
580 Iterator it; 585 Iterator it;
581 for ( it = begin(); it != end(); ++it ) { 586 for ( it = begin(); it != end(); ++it ) {
582 mailList = (*it).emails(); 587 mailList = (*it).emails();
583 for ( QStringList::Iterator ite = mailList.begin(); ite != mailList.end(); ++ite ) { 588 for ( QStringList::Iterator ite = mailList.begin(); ite != mailList.end(); ++ite ) {
584 if ( email == (*ite) ) { 589 if ( email == (*ite) ) {
585 results.append( *it ); 590 results.append( *it );
586 } 591 }
587 } 592 }
588 } 593 }
589 594
590 return results; 595 return results;
591} 596}
592 597
593Addressee::List AddressBook::findByCategory( const QString &category ) 598Addressee::List AddressBook::findByCategory( const QString &category )
594{ 599{
595 Addressee::List results; 600 Addressee::List results;
596 601
597 Iterator it; 602 Iterator it;
598 for ( it = begin(); it != end(); ++it ) { 603 for ( it = begin(); it != end(); ++it ) {
599 if ( (*it).hasCategory( category) ) { 604 if ( (*it).hasCategory( category) ) {
600 results.append( *it ); 605 results.append( *it );
601 } 606 }
602 } 607 }
603 608
604 return results; 609 return results;
605} 610}
606 611
607void AddressBook::dump() const 612void AddressBook::dump() const
608{ 613{
609 kdDebug(5700) << "AddressBook::dump() --- begin ---" << endl; 614 kdDebug(5700) << "AddressBook::dump() --- begin ---" << endl;
610 615
611 ConstIterator it; 616 ConstIterator it;
612 for( it = begin(); it != end(); ++it ) { 617 for( it = begin(); it != end(); ++it ) {
613 (*it).dump(); 618 (*it).dump();
614 } 619 }
615 620
616 kdDebug(5700) << "AddressBook::dump() --- end ---" << endl; 621 kdDebug(5700) << "AddressBook::dump() --- end ---" << endl;
617} 622}
618 623
619QString AddressBook::identifier() 624QString AddressBook::identifier()
620{ 625{
621 QStringList identifier; 626 QStringList identifier;
622 627
623 628
624 KRES::Manager<Resource>::ActiveIterator it; 629 KRES::Manager<Resource>::ActiveIterator it;
625 for ( it = d->mManager->activeBegin(); it != d->mManager->activeEnd(); ++it ) { 630 for ( it = d->mManager->activeBegin(); it != d->mManager->activeEnd(); ++it ) {
626 if ( !(*it)->identifier().isEmpty() ) 631 if ( !(*it)->identifier().isEmpty() )
627 identifier.append( (*it)->identifier() ); 632 identifier.append( (*it)->identifier() );
628 } 633 }
629 634
630 return identifier.join( ":" ); 635 return identifier.join( ":" );
631} 636}
632 637
633Field::List AddressBook::fields( int category ) 638Field::List AddressBook::fields( int category )
634{ 639{
635 if ( d->mAllFields.isEmpty() ) { 640 if ( d->mAllFields.isEmpty() ) {
636 d->mAllFields = Field::allFields(); 641 d->mAllFields = Field::allFields();
637 } 642 }
638 643
639 if ( category == Field::All ) return d->mAllFields; 644 if ( category == Field::All ) return d->mAllFields;
640 645
641 Field::List result; 646 Field::List result;
642 Field::List::ConstIterator it; 647 Field::List::ConstIterator it;
643 for( it = d->mAllFields.begin(); it != d->mAllFields.end(); ++it ) { 648 for( it = d->mAllFields.begin(); it != d->mAllFields.end(); ++it ) {
644 if ( (*it)->category() & category ) result.append( *it ); 649 if ( (*it)->category() & category ) result.append( *it );
645 } 650 }
646 651
647 return result; 652 return result;
648} 653}
649 654
650bool AddressBook::addCustomField( const QString &label, int category, 655bool AddressBook::addCustomField( const QString &label, int category,
651 const QString &key, const QString &app ) 656 const QString &key, const QString &app )
652{ 657{
653 if ( d->mAllFields.isEmpty() ) { 658 if ( d->mAllFields.isEmpty() ) {
654 d->mAllFields = Field::allFields(); 659 d->mAllFields = Field::allFields();