-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 @@ -82,4 +82,14 @@ ResourceSharpDTM::ResourceSharpDTM( const QString &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 ); } @@ -111,28 +121,6 @@ Ticket *ResourceSharpDTM::requestSaveTicket() 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; } @@ -145,4 +133,15 @@ void ResourceSharpDTM::doClose() 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; @@ -159,4 +158,8 @@ bool ResourceSharpDTM::load() } } + if(mAccess != 0) + delete mAccess; + mAccess = 0; + return true; } @@ -164,4 +167,14 @@ bool ResourceSharpDTM::load() 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; @@ -250,5 +263,7 @@ bool ResourceSharpDTM::save( Ticket *ticket ) } delete ticket; - + if(mAccess != 0) + delete mAccess; + mAccess = 0; return true; } @@ -256,4 +271,5 @@ bool ResourceSharpDTM::save( Ticket *ticket ) bool ResourceSharpDTM::lock( const QString &lockfileName ) { + return true; } @@ -279,5 +295,5 @@ void ResourceSharpDTM::removeAddressee( const Addressee &addr ) void ResourceSharpDTM::cleanUp() { - unlock( fileName() ); + } |