summaryrefslogtreecommitdiffabout
path: root/kabc/addressbook.cpp
authorzautrix <zautrix>2004-10-09 21:35:22 (UTC)
committer zautrix <zautrix>2004-10-09 21:35:22 (UTC)
commit213a9d993e5a4751b64e18320cfbebb000681d13 (patch) (unidiff)
tree995b465797464e689b73d3271ff4a3f8f0d3749b /kabc/addressbook.cpp
parentd68435216e1ebc5a7fed391157197994e13992b3 (diff)
downloadkdepimpi-213a9d993e5a4751b64e18320cfbebb000681d13.zip
kdepimpi-213a9d993e5a4751b64e18320cfbebb000681d13.tar.gz
kdepimpi-213a9d993e5a4751b64e18320cfbebb000681d13.tar.bz2
ab phone sync implemented
Diffstat (limited to 'kabc/addressbook.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/addressbook.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/kabc/addressbook.cpp b/kabc/addressbook.cpp
index 16927e2..d037d2f 100644
--- a/kabc/addressbook.cpp
+++ b/kabc/addressbook.cpp
@@ -34,32 +34,33 @@ $Id$
34#include <kapplication.h> 34#include <kapplication.h>
35#include <kinstance.h> 35#include <kinstance.h>
36#include <kstandarddirs.h> 36#include <kstandarddirs.h>
37 37
38#include "errorhandler.h" 38#include "errorhandler.h"
39*/ 39*/
40#include <qptrlist.h> 40#include <qptrlist.h>
41#include <qtextstream.h> 41#include <qtextstream.h>
42#include <qfile.h> 42#include <qfile.h>
43#include <qregexp.h> 43#include <qregexp.h>
44 44
45#include <kglobal.h> 45#include <kglobal.h>
46#include <klocale.h> 46#include <klocale.h>
47#include <kmessagebox.h> 47#include <kmessagebox.h>
48#include <kdebug.h> 48#include <kdebug.h>
49#include <libkcal/syncdefines.h> 49#include <libkcal/syncdefines.h>
50#include <libkdepim/phoneaccess.h>
50#include "addressbook.h" 51#include "addressbook.h"
51#include "resource.h" 52#include "resource.h"
52#include "vcardconverter.h" 53#include "vcardconverter.h"
53#include "vcardparser/vcardtool.h" 54#include "vcardparser/vcardtool.h"
54 55
55//US #include "addressbook.moc" 56//US #include "addressbook.moc"
56 57
57using namespace KABC; 58using namespace KABC;
58 59
59struct AddressBook::AddressBookData 60struct AddressBook::AddressBookData
60{ 61{
61 Addressee::List mAddressees; 62 Addressee::List mAddressees;
62 Addressee::List mRemovedAddressees; 63 Addressee::List mRemovedAddressees;
63 Field::List mAllFields; 64 Field::List mAllFields;
64 KConfig *mConfig; 65 KConfig *mConfig;
65 KRES::Manager<Resource> *mManager; 66 KRES::Manager<Resource> *mManager;
@@ -446,32 +447,75 @@ void AddressBook::removeUntagged()
446 Iterator ait; 447 Iterator ait;
447 bool todelete = false; 448 bool todelete = false;
448 Iterator todel; 449 Iterator todel;
449 for ( ait = begin(); ait != end(); ++ait ) { 450 for ( ait = begin(); ait != end(); ++ait ) {
450 if ( todelete ) 451 if ( todelete )
451 removeAddressee( todel ); 452 removeAddressee( todel );
452 if (!(*ait).tagged()) { 453 if (!(*ait).tagged()) {
453 todelete = true; 454 todelete = true;
454 todel = ait; 455 todel = ait;
455 } else 456 } else
456 todelete = false; 457 todelete = false;
457 } 458 }
458 if ( todelete ) 459 if ( todelete )
459 removeAddressee( todel ); 460 removeAddressee( todel );
460 deleteRemovedAddressees(); 461 deleteRemovedAddressees();
461} 462}
463void AddressBook::smplifyAddressees()
464{
465 Iterator ait;
466 for ( ait = begin(); ait != end(); ++ait ) {
467 (*ait).simplifyEmails();
468 (*ait).simplifyPhoneNumbers();
469 (*ait).simplifyPhoneNumberTypes();
470 (*ait).simplifyAddresses();
471 }
472}
473void AddressBook::preparePhoneSync( QString currentSyncDevice, bool isPreSync )
474{
475 Iterator ait;
476 for ( ait = begin(); ait != end(); ++ait ) {
477 QString id = (*ait).IDStr();
478 (*ait).setIDStr( ":");
479 (*ait).setExternalUID( id );
480 (*ait).setOriginalExternalUID( id );
481 if ( isPreSync )
482 (*ait).setTempSyncStat( SYNC_TEMPSTATE_NEW_EXTERNAL );
483 else
484 (*ait).setTempSyncStat( SYNC_TEMPSTATE_NEW_ID );
485 }
486}
487bool AddressBook::saveABphone( QString fileName )
488{
489 smplifyAddressees();
490 qDebug("saveABphone:: saving AB... ");
491 if ( ! saveAB() )
492 return false;
493 qDebug("saveABphone:: writing to phone... ");
494 if ( !PhoneAccess::writeToPhone( fileName) ) {
495 return false;
496 }
497 qDebug("saveABphone:: re-reading from phone... ");
498 if ( !PhoneAccess::readFromPhone( fileName) ) {
499 return false;
500 }
501 qDebug("reloading phone book... ");
502 if ( !load() )
503 return false;
504 return true;
505}
462bool AddressBook::saveAB() 506bool AddressBook::saveAB()
463{ 507{
464 bool ok = true; 508 bool ok = true;
465 509
466 deleteRemovedAddressees(); 510 deleteRemovedAddressees();
467 Iterator ait; 511 Iterator ait;
468 for ( ait = begin(); ait != end(); ++ait ) { 512 for ( ait = begin(); ait != end(); ++ait ) {
469 if ( !(*ait).IDStr().isEmpty() ) { 513 if ( !(*ait).IDStr().isEmpty() ) {
470 (*ait).insertCustom( "KADDRESSBOOK", "X-ExternalID", (*ait).IDStr() ); 514 (*ait).insertCustom( "KADDRESSBOOK", "X-ExternalID", (*ait).IDStr() );
471 } 515 }
472 } 516 }
473 KRES::Manager<Resource>::ActiveIterator it; 517 KRES::Manager<Resource>::ActiveIterator it;
474 KRES::Manager<Resource> *manager = d->mManager; 518 KRES::Manager<Resource> *manager = d->mManager;
475 for ( it = manager->activeBegin(); it != manager->activeEnd(); ++it ) { 519 for ( it = manager->activeBegin(); it != manager->activeEnd(); ++it ) {
476 if ( !(*it)->readOnly() && (*it)->isOpen() ) { 520 if ( !(*it)->readOnly() && (*it)->isOpen() ) {
477 Ticket *ticket = requestSaveTicket( *it ); 521 Ticket *ticket = requestSaveTicket( *it );