summaryrefslogtreecommitdiffabout
path: root/kabc
Side-by-side diff
Diffstat (limited to 'kabc') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/plugins/sharpdtm/resourcesharpdtm.cpp242
1 files changed, 129 insertions, 113 deletions
diff --git a/kabc/plugins/sharpdtm/resourcesharpdtm.cpp b/kabc/plugins/sharpdtm/resourcesharpdtm.cpp
index 48b7d91..7069f5d 100644
--- a/kabc/plugins/sharpdtm/resourcesharpdtm.cpp
+++ b/kabc/plugins/sharpdtm/resourcesharpdtm.cpp
@@ -72,25 +72,35 @@ ResourceSharpDTM::ResourceSharpDTM( const KConfig *config )
init( fileName );
}
ResourceSharpDTM::ResourceSharpDTM( const QString &fileName )
: Resource( 0 )
{
mAccess = 0;
init( fileName );
}
void ResourceSharpDTM::init( const QString &fileName )
{
- setFileName( fileName );
+ if (mConverter == 0) {
+ mConverter = new SharpDTMConverter();
+ bool res = mConverter->init();
+ if ( !res )
+ {
+ QString msg("Unable to initialize sharp converter. Most likely a problem with the category file");
+ qDebug(msg);
+ return;
+ }
+ }
+ setFileName( fileName );
}
ResourceSharpDTM::~ResourceSharpDTM()
{
if (mConverter != 0)
delete mConverter;
if(mAccess != 0)
delete mAccess;
}
void ResourceSharpDTM::writeConfig( KConfig *config )
@@ -100,186 +110,192 @@ void ResourceSharpDTM::writeConfig( KConfig *config )
Ticket *ResourceSharpDTM::requestSaveTicket()
{
qDebug("ResourceSharpDTM::requestSaveTicket: %s", fileName().latin1());
if ( !addressBook() ) return 0;
return createTicket( this );
}
bool ResourceSharpDTM::doOpen()
-{
- qDebug("%xResourceSharpDTM::doOpen: %s", this,fileName().latin1());
-
- if ( ! mAccess ) {
- // the last parameter in the SlZDataBase constructor means "readonly"
- mAccess = new SlZDataBase(fileName(),
- SlZDataBase::addressbookItems(),
- NULL, false);
- }
- if ( !mAccess ) {
- qDebug("Unable to load file() %s", fileName().latin1());
+{
+ if (!mConverter)
return false;
- }
- if (mConverter == 0) {
- mConverter = new SharpDTMConverter();
- bool res = mConverter->init();
- if ( !res )
- {
- QString msg("Unable to initialize sharp converter. Most likely a problem with the category file");
- qDebug(msg);
- delete mAccess;
- mAccess = 0;
- return false;
- }
- }
return true;
}
void ResourceSharpDTM::doClose()
{
return;
}
bool ResourceSharpDTM::load()
{
+ if (!mConverter)
+ return false;
+ QString fileN = SlZDataBase::addressbookFileName();
+ if ( ! mAccess ) {
+ mAccess = new SlZDataBase(fileN,
+ SlZDataBase::addressbookItems(),
+ 0, false);
+ }
+ if(mAccess == 0)
+ return false;
+
qDebug("%xResourceSharpDTM::load: %s",this, fileName().latin1());
bool res = false;
CardId id;
for (bool res=mAccess->first(); res == true; res=mAccess->next())
{
id = mAccess->cardId();
KABC::Addressee addressee;
res = mConverter->sharpToAddressee( id, mAccess, addressee );
if ( !addressee.isEmpty() && res )
{
addressee.setResource( this );
addressBook()->insertAddressee( addressee );
}
}
+ if(mAccess != 0)
+ delete mAccess;
+ mAccess = 0;
+
return true;
}
bool ResourceSharpDTM::save( Ticket *ticket )
-{
- qDebug("ResourceSharpDTM::save: %s", fileName().latin1());
- KABC::AddressBook::Iterator it;
- bool res;
- KABC::Addressee::List changedAddressees;
- typedef QMap<int,QString> AddresseeMap;
- AddresseeMap map;
- CardId id ;
- for ( it = addressBook()->begin(); it != addressBook()->end(); ++it ) {
-
- if ( (*it).tempSyncStat() != SYNC_TEMPSTATE_NEW_EXTERNAL ) {
- QString uid = (*it).originalExternalUID();
- bool res;
- if ( uid.isEmpty() )
- id = 0;
- else
- id = uid.toUInt();
- KABC::Addressee addressee = (*it);
- if ( (*it).tempSyncStat() == SYNC_TEMPSTATE_ADDED_EXTERNAL ) {
- res = mAccess->startEditCard(id);
- if (res == true)
- {
- res = mConverter->addresseeToSharp( (*it), mAccess, id );
- if (res == true)
- {
- res = mAccess->finishEditCard(&id);;
- map.insert(id,(*it).uid());
- if (res == false)
- qDebug("Unable to append Contact: %s", addressee.formattedName().latin1());
+{
+ if (!mConverter)
+ return false;
+ QString fileN = SlZDataBase::addressbookFileName();
+ if ( ! mAccess ) {
+ mAccess = new SlZDataBase(fileN,
+ SlZDataBase::addressbookItems(),
+ 0, false);
+ }
+ if(mAccess == 0)
+ return false;
+ qDebug("ResourceSharpDTM::save: %s", fileName().latin1());
+ KABC::AddressBook::Iterator it;
+ bool res;
+ KABC::Addressee::List changedAddressees;
+ typedef QMap<int,QString> AddresseeMap;
+ AddresseeMap map;
+ CardId id ;
+ for ( it = addressBook()->begin(); it != addressBook()->end(); ++it ) {
+
+ if ( (*it).tempSyncStat() != SYNC_TEMPSTATE_NEW_EXTERNAL ) {
+ QString uid = (*it).originalExternalUID();
+ bool res;
+ if ( uid.isEmpty() )
+ id = 0;
+ else
+ id = uid.toUInt();
+ KABC::Addressee addressee = (*it);
+ if ( (*it).tempSyncStat() == SYNC_TEMPSTATE_ADDED_EXTERNAL ) {
+ res = mAccess->startEditCard(id);
+ if (res == true)
+ {
+ res = mConverter->addresseeToSharp( (*it), mAccess, id );
+ if (res == true)
+ {
+ res = mAccess->finishEditCard(&id);;
+ map.insert(id,(*it).uid());
+ if (res == false)
+ qDebug("Unable to append Contact: %s", addressee.formattedName().latin1());
- }
- else
- {
- qDebug("Unable to convert Addressee: %s", addressee.formattedName().latin1());
- mAccess->cancelEditCard();
- }
- }
-
- } else if ( (*it).tempSyncStat() == SYNC_TEMPSTATE_DELETE ) {
- res = mAccess->deleteCard(&id);
- if ( !res )
- qDebug("delete error ");
-
-
- } else if ( (*it).tempSyncStat() != SYNC_TEMPSTATE_NEW_EXTERNAL ) {
- //changed
- res = mAccess->startEditCard(id);
- if (res == true)
- {
- res = mConverter->addresseeToSharp( (*it), mAccess, id );
- if (res == true)
- {
- res = mAccess->finishEditCard(&id);
- map.insert(id,(*it).uid());
- if (res == false)
- qDebug("Unable to append Contact: %s", addressee.formattedName().latin1());
- }
- else
- {
- qDebug("Unable to convert Addressee: %s", addressee.formattedName().latin1());
- mAccess->cancelEditCard();
- }
- }
- }
- }
+ }
+ else
+ {
+ qDebug("Unable to convert Addressee: %s", addressee.formattedName().latin1());
+ mAccess->cancelEditCard();
+ }
+ }
+
+ } else if ( (*it).tempSyncStat() == SYNC_TEMPSTATE_DELETE ) {
+ res = mAccess->deleteCard(&id);
+ if ( !res )
+ qDebug("delete error ");
+
+
+ } else if ( (*it).tempSyncStat() != SYNC_TEMPSTATE_NEW_EXTERNAL ) {
+ //changed
+ res = mAccess->startEditCard(id);
+ if (res == true)
+ {
+ res = mConverter->addresseeToSharp( (*it), mAccess, id );
+ if (res == true)
+ {
+ res = mAccess->finishEditCard(&id);
+ map.insert(id,(*it).uid());
+ if (res == false)
+ qDebug("Unable to append Contact: %s", addressee.formattedName().latin1());
+ }
+ else
+ {
+ qDebug("Unable to convert Addressee: %s", addressee.formattedName().latin1());
+ mAccess->cancelEditCard();
+ }
+ }
+ }
+ }
- }
- AddresseeMap::Iterator itam;
- for ( res=mAccess->first(); res == true; res=mAccess->next())
- {
- id = mAccess->cardId();
- int idint = id;
- itam = map.find( idint );
- if ( itam != map.end() ) {
- KABC::Addressee addressee;
- res = mConverter->sharpToAddressee( id, mAccess, addressee );
-
- if ( !addressee.isEmpty() && res )
- {
- addressee.setResource( this );
- addressee.setUid( itam.data() );
- addressee.setTempSyncStat( SYNC_TEMPSTATE_NEW_ID );
- addressBook()->insertAddressee( addressee , false );
- }
- }
- }
- delete ticket;
-
- return true;
+ }
+ AddresseeMap::Iterator itam;
+ for ( res=mAccess->first(); res == true; res=mAccess->next())
+ {
+ id = mAccess->cardId();
+ int idint = id;
+ itam = map.find( idint );
+ if ( itam != map.end() ) {
+ KABC::Addressee addressee;
+ res = mConverter->sharpToAddressee( id, mAccess, addressee );
+
+ if ( !addressee.isEmpty() && res )
+ {
+ addressee.setResource( this );
+ addressee.setUid( itam.data() );
+ addressee.setTempSyncStat( SYNC_TEMPSTATE_NEW_ID );
+ addressBook()->insertAddressee( addressee , false );
+ }
+ }
+ }
+ delete ticket;
+ if(mAccess != 0)
+ delete mAccess;
+ mAccess = 0;
+ return true;
}
bool ResourceSharpDTM::lock( const QString &lockfileName )
{
+ return true;
}
void ResourceSharpDTM::unlock( const QString &fileName )
{
}
void ResourceSharpDTM::setFileName( const QString &newFileName )
{
Resource::setFileName( newFileName );
}
void ResourceSharpDTM::fileChanged()
{
}
void ResourceSharpDTM::removeAddressee( const Addressee &addr )
{
}
void ResourceSharpDTM::cleanUp()
{
- unlock( fileName() );
+
}