-rw-r--r-- | kabc/addressbook.cpp | 27 | ||||
-rw-r--r-- | kabc/addressbook.h | 5 | ||||
-rw-r--r-- | kabc/addressee.cpp | 54 | ||||
-rw-r--r-- | kabc/addressee.h | 12 |
4 files changed, 96 insertions, 2 deletions
diff --git a/kabc/addressbook.cpp b/kabc/addressbook.cpp index 70eda1b..9332e21 100644 --- a/kabc/addressbook.cpp +++ b/kabc/addressbook.cpp @@ -39,12 +39,13 @@ $Id$ */ #include <qptrlist.h> #include <kglobal.h> #include <klocale.h> #include <kdebug.h> +#include <libkcal/syncdefines.h> #include "addressbook.h" #include "resource.h" //US #include "addressbook.moc" using namespace KABC; @@ -509,12 +510,38 @@ Addressee AddressBook::findByUid( const QString &uid ) if ( uid == (*it).uid() ) { return *it; } } return Addressee(); } +Addressee::List AddressBook::getExternLastSyncAddressees() +{ + Addressee::List results; + + Iterator it; + for ( it = begin(); it != end(); ++it ) { + if ( (*it).uid().left( 20 ) == "last-syncAddressee-" ) { + if ( (*it).familyName().left(3) == "E: " ) + results.append( *it ); + } + } + + return results; +} +void AddressBook::resetTempSyncStat() +{ + + + Iterator it; + for ( it = begin(); it != end(); ++it ) { + (*it).setTempSyncStat ( SYNC_TEMPSTATE_INITIAL ); + } + +} + + Addressee::List AddressBook::allAddressees() { return d->mAddressees; } diff --git a/kabc/addressbook.h b/kabc/addressbook.h index e43de31..05225f9 100644 --- a/kabc/addressbook.h +++ b/kabc/addressbook.h @@ -285,12 +285,17 @@ class AddressBook : public QObject /** Query all resources to clean up their lock files */ void cleanUp(); + // sync stuff + Addressee::List getExternLastSyncAddressees(); + void resetTempSyncStat(); + + signals: /** Emitted, when the address book has changed on disk. */ void addressBookChanged( AddressBook * ); diff --git a/kabc/addressee.cpp b/kabc/addressee.cpp index 4cdd5e5..fb32f6e 100644 --- a/kabc/addressee.cpp +++ b/kabc/addressee.cpp @@ -29,14 +29,16 @@ $Id$ #include <kconfig.h> #include <ksharedptr.h> #include <kdebug.h> #include <kapplication.h> #include <klocale.h> +#include <kidmanager.h> //US #include <kstandarddirs.h> +#include <libkcal/syncdefines.h> //US #include "resource.h" #include "addressee.h" using namespace KABC; @@ -67,13 +69,13 @@ struct Addressee::AddresseeData : public KShared KURL url; Secrecy secrecy; Picture logo; Picture photo; Sound sound; Agent agent; - + QString mExternalId; PhoneNumber::List phoneNumbers; Address::List addresses; Key::List keys; QStringList emails; QStringList categories; QStringList custom; @@ -87,21 +89,24 @@ struct Addressee::AddresseeData : public KShared Addressee::Addressee() { mData = new AddresseeData; mData->empty = true; mData->changed = false; mData->resource = 0; + mData->mExternalId = ":"; + mTempSyncStat = SYNC_TEMPSTATE_INITIAL; } Addressee::~Addressee() { } Addressee::Addressee( const Addressee &a ) { mData = a.mData; + mTempSyncStat = SYNC_TEMPSTATE_INITIAL; } Addressee &Addressee::operator=( const Addressee &a ) { mData = a.mData; return (*this); @@ -165,12 +170,59 @@ bool Addressee::operator!=( const Addressee &a ) const } bool Addressee::isEmpty() const { return mData->empty; } +void Addressee::removeID(const QString &prof) +{ + detach(); + mData->mExternalId = KIdManager::removeId ( mData->mExternalId, prof); + +} +void Addressee::setID( const QString & prof , const QString & id ) +{ + detach(); + mData->mExternalId = KIdManager::setId ( mData->mExternalId, prof, id ); +} +void Addressee::setTempSyncStat( int id ) +{ + mTempSyncStat = id; +} +int Addressee::tempSyncStat() const +{ + return mTempSyncStat; +} + +QString Addressee::getID( const QString & prof) +{ + return KIdManager::getId ( mData->mExternalId, prof ); +} + +void Addressee::setCsum( const QString & prof , const QString & id ) +{ + detach(); + mData->mExternalId = KIdManager::setCsum ( mData->mExternalId, prof, id ); +} + +QString Addressee::getCsum( const QString & prof) +{ + return KIdManager::getCsum ( mData->mExternalId, prof ); +} + +void Addressee::setIDStr( const QString & s ) +{ + detach(); + mData->mExternalId = s; +} + +QString Addressee::IDStr() const +{ + return mData->mExternalId; +} + void Addressee::setUid( const QString &id ) { if ( id == mData->uid ) return; detach(); mData->empty = false; diff --git a/kabc/addressee.h b/kabc/addressee.h index 27782f9..f098371 100644 --- a/kabc/addressee.h +++ b/kabc/addressee.h @@ -93,13 +93,22 @@ class Addressee Addressee( const Addressee & ); Addressee &operator=( const Addressee & ); bool operator==( const Addressee & ) const; bool operator!=( const Addressee & ) const; - + // sync stuff + void setTempSyncStat(int id); + int tempSyncStat() const; + void setIDStr( const QString & ); + QString IDStr() const; + void setID( const QString &, const QString & ); + QString getID( const QString & ); + void setCsum( const QString &, const QString & ); + QString getCsum( const QString & ); + void removeID(const QString &); /** Return, if the address book entry is empty. */ bool isEmpty() const; /** @@ -812,12 +821,13 @@ class Addressee */ bool changed() const; private: Addressee copy(); void detach(); + int mTempSyncStat; struct AddresseeData; mutable KSharedPtr<AddresseeData> mData; }; QDataStream &operator<<( QDataStream &, const Addressee & ); |