author | zautrix <zautrix> | 2004-10-29 19:40:20 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-10-29 19:40:20 (UTC) |
commit | a7e2fe5bb10af47a239b8b014a210568cc79287a (patch) (side-by-side diff) | |
tree | d3f77498134abc97bc48a376e148a8fd8565c6c3 /kabc | |
parent | b55890913f4c81bd2fc3719cf7c97e8ab1f47077 (diff) | |
download | kdepimpi-a7e2fe5bb10af47a239b8b014a210568cc79287a.zip kdepimpi-a7e2fe5bb10af47a239b8b014a210568cc79287a.tar.gz kdepimpi-a7e2fe5bb10af47a239b8b014a210568cc79287a.tar.bz2 |
fixed dtm resource
-rw-r--r-- | kabc/plugins/sharpdtm/resourcesharpdtm.cpp | 66 |
1 files changed, 41 insertions, 25 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,24 +72,34 @@ ResourceSharpDTM::ResourceSharpDTM( const KConfig *config ) init( fileName ); } ResourceSharpDTM::ResourceSharpDTM( const QString &fileName ) : Resource( 0 ) { mAccess = 0; init( fileName ); } void ResourceSharpDTM::init( const QString &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; } @@ -101,77 +111,80 @@ 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 ) { + 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; @@ -240,46 +253,49 @@ bool ResourceSharpDTM::save( Ticket *ticket ) 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() ); + } |