summaryrefslogtreecommitdiffabout
path: root/kabc/plugins/sharpdtm/resourcesharpdtm.cpp
Side-by-side diff
Diffstat (limited to 'kabc/plugins/sharpdtm/resourcesharpdtm.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/plugins/sharpdtm/resourcesharpdtm.cpp225
1 files changed, 99 insertions, 126 deletions
diff --git a/kabc/plugins/sharpdtm/resourcesharpdtm.cpp b/kabc/plugins/sharpdtm/resourcesharpdtm.cpp
index 7b909de..14f272d 100644
--- a/kabc/plugins/sharpdtm/resourcesharpdtm.cpp
+++ b/kabc/plugins/sharpdtm/resourcesharpdtm.cpp
@@ -51,2 +51,4 @@ $Id$
+#include "syncprefwidget.h"
+
#include "stdaddressbook.h"
@@ -60,3 +62,3 @@ extern "C"
{
- return new KRES::PluginFactory<ResourceSharpDTM,ResourceSharpDTMConfig>();
+ return new KRES::PluginFactory<ResourceSharpDTM,ResourceSharpDTMConfig,SyncPrefWidget>();
}
@@ -76,3 +78,2 @@ ResourceSharpDTM::ResourceSharpDTM( const QString &fileName, bool syncable )
{
-// qDebug("ResourceFile::ResourceSharpDTM : 3 %s, %s", fileName.latin1(), formatName.latin1());
init( fileName );
@@ -92,5 +93,7 @@ ResourceSharpDTM::~ResourceSharpDTM()
{
-// if (mConverter != 0)
-// delete mConverter;
+ if (mConverter != 0)
+ delete mConverter;
+ if(mAccess != 0)
+ delete mAccess;
}
@@ -104,3 +107,5 @@ Ticket *ResourceSharpDTM::requestSaveTicket()
{
- kdDebug(5700) << "ResourceQtopia::requestSaveTicket()" << endl;
+ kdDebug(5700) << "ResourceSharpDTM::requestSaveTicket()" << endl;
+
+ qDebug("ResourceSharpDTM::requestSaveTicket: %s", fileName().latin1());
@@ -108,5 +113,5 @@ Ticket *ResourceSharpDTM::requestSaveTicket()
- if ( !lock( mFileName ) ) {
- kdDebug(5700) << "ResourceQtopia::requestSaveTicket(): Unable to lock file '"
- << mFileName << "'" << endl;
+ if ( !lock( fileName() ) ) {
+ kdDebug(5700) << "ResourceSharpDTM::requestSaveTicket(): Unable to lock file '"
+ << fileName() << "'" << endl;
return 0;
@@ -119,49 +124,11 @@ bool ResourceSharpDTM::doOpen()
{
-/*US
- QFile file( mFileName );
-
- if ( !file.exists() ) {
- // try to create the file
- bool ok = file.open( IO_WriteOnly );
- if ( ok )
- file.close();
-
- return ok;
- } else {
- if ( !file.open( IO_ReadWrite ) )
- return false;
-
- if ( file.size() == 0 ) {
- file.close();
- return true;
- }
-
-//US bool ok = mFormat->checkFormat( &file );
- bool ok = true;
-
- file.close();
-
- return ok;
- }
-*/
- return true;
-}
-
-void ResourceSharpDTM::doClose()
-{
-}
-
-bool ResourceSharpDTM::load()
-{
- kdDebug(5700) << "ResourcSharpDTM::load(): '" << mFileName << "'" << endl;
-
-// qDebug("ResourceSharpDTM::load: Try to load file() %s", mFileName.latin1());
+ qDebug("ResourceSharpDTM::doOpen: %s", fileName().latin1());
// the last parameter in the SlZDataBase constructor means "readonly"
- SlZDataBase* access = new SlZDataBase(mFileName,
+ mAccess = new SlZDataBase(fileName(),
SlZDataBase::addressbookItems(),
NULL, true);
- if ( !access ) {
- qDebug("Unable to load file() %s", mFileName.latin1());
- addressBook()->error( i18n( "Unable to load file '%1'." ).arg( mFileName ) );
+
+ if ( !mAccess ) {
+ qDebug("Unable to load file() %s", fileName().latin1());
return false;
@@ -169,3 +136,2 @@ bool ResourceSharpDTM::load()
- bool res = false;
if (mConverter == 0)
@@ -173,3 +139,3 @@ bool ResourceSharpDTM::load()
mConverter = new SharpDTMConverter();
- res = mConverter->init();
+ bool res = mConverter->init();
if ( !res )
@@ -179,4 +145,4 @@ bool ResourceSharpDTM::load()
qDebug(msg);
- addressBook()->error( i18n( msg ) );
- delete access;
+ delete mAccess;
+ mAccess = 0;
return false;
@@ -185,17 +151,40 @@ bool ResourceSharpDTM::load()
- { //create a new scope
- CardId id;
+ return true;
+}
+
+void ResourceSharpDTM::doClose()
+{
+ qDebug("ResourceSharpDTM::doClose: %s", fileName().latin1());
- for (bool res=access->first(); res == true; res=access->next()) {
- id = access->cardId();
+ if(mAccess)
+ {
+ delete mAccess;
+ mAccess = 0;
+ }
+ // it seems so, that deletion of access deletes backend as well
+ //delete backend;
- KABC::Addressee addressee;
+ return;
+}
- res = mConverter->sharpToAddressee( id, access, addressee );
+bool ResourceSharpDTM::load()
+{
+ qDebug("ResourceSharpDTM::load: %s", fileName().latin1());
- if ( !addressee.isEmpty() && res )
- {
- addressee.setResource( this );
- addressBook()->insertAddressee( addressee );
- }
+ 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 );
}
@@ -203,3 +192,2 @@ bool ResourceSharpDTM::load()
- delete access;
return true;
@@ -209,35 +197,32 @@ bool ResourceSharpDTM::save( Ticket *ticket )
{
-/*US
-// qDebug("ResourceFile::save format %s, %s", mFileName.latin1(), mFormatName.latin1());
- kdDebug(5700) << "ResourceQtopia::save()" << endl;
+ qDebug("ResourceSharpDTM::save: %s", fileName().latin1());
- // create backup file
- QString extension = "_" + QString::number( QDate::currentDate().dayOfWeek() );
-/*US we use a simpler method to create a backupfile
+ KABC::AddressBook::Iterator it;
+ bool res;
- (void) KSaveFile::backupFile( mFileName, QString::null
- ,extension );
+ for ( it = addressBook()->begin(); it != addressBook()->end(); ++it ) {
+ CardId id = 0; // 0 means new card
+ KABC::Addressee addressee = (*it);
- KSaveFile saveFile( mFileName );
- bool ok = false;
- if ( saveFile.status() == 0 && saveFile.file() )
- {
- mFormat->saveAll( addressBook(), this, saveFile.file() );
- ok = saveFile.close();
- }
-*/
-
-/*US
-//US ToDo: write backupfile
- QFile info;
- info.setName( mFileName );
- bool ok = info.open( IO_WriteOnly );
- if ( ok ) {
-//US mFormat->saveAll( addressBook(), this, &info );
-
- info.close();
- ok = true;
- }
- else {
+ res = mAccess->startEditCard(id);
+ if (res == true)
+ {
+ res = mConverter->addresseeToSharp( *it, mAccess, id );
+ if (res == true)
+ {
+ res = mAccess->finishEditCard(&id);
+ 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 add new card. Addressee: %s", addressee.formattedName().latin1());
+ }
@@ -245,12 +230,7 @@ bool ResourceSharpDTM::save( Ticket *ticket )
- if ( !ok )
- addressBook()->error( i18n( "Unable to save file '%1'." ).arg( mFileName ) );
+//US mAccess->save();
delete ticket;
- unlock( mFileName );
+ unlock( fileName() );
- return ok;
-
- qDebug("ResourceQtopia::save has to be changed");
-*/
return true;
@@ -258,11 +238,9 @@ bool ResourceSharpDTM::save( Ticket *ticket )
-bool ResourceSharpDTM::lock( const QString &fileName )
+bool ResourceSharpDTM::lock( const QString &lockfileName )
{
- kdDebug(5700) << "ResourceSharpDTM::lock()" << endl;
+ qDebug("ResourceSharpDTM::lock: %s", fileName().latin1());
- QString fn = fileName;
+ kdDebug(5700) << "ResourceSharpDTM::lock()" << endl;
-//US change the implementation how the lockfilename is getting created
-//US fn.replace( QRegExp("/"), "_" );
-//US QString lockName = locateLocal( "data", "kabc/lock/" + fn + ".lock" );
+ QString fn = lockfileName;
@@ -289,5 +267,7 @@ bool ResourceSharpDTM::lock( const QString &fileName )
// Create lock file
- int result = ::link( QFile::encodeName( mLockUniqueName ),
+ int result = 0;
+#ifndef _WIN32_
+ result = ::link( QFile::encodeName( mLockUniqueName ),
QFile::encodeName( lockName ) );
-
+#endif
if ( result == 0 ) {
@@ -304,7 +284,5 @@ void ResourceSharpDTM::unlock( const QString &fileName )
{
+ qDebug("ResourceSharpDTM::unlock() %s", fileName.latin1());
+
QString fn = fileName;
-//US change the implementation how the lockfilename is getting created
-//US fn.replace( QRegExp( "/" ), "_" );
-//US QString lockName = locateLocal( "data", "kabc/lock/" + fn + ".lock" );
-//US QString lockName = fn + ".lock";
KURL url(fn);
@@ -317,10 +295,10 @@ void ResourceSharpDTM::unlock( const QString &fileName )
-void ResourceSharpDTM::setFileName( const QString &fileName )
+void ResourceSharpDTM::setFileName( const QString &newFileName )
{
mDirWatch.stopScan();
- mDirWatch.removeFile( mFileName );
+ mDirWatch.removeFile( fileName() );
- mFileName = fileName;
+ Resource::setFileName( newFileName );
- mDirWatch.addFile( mFileName );
+ mDirWatch.addFile( fileName() );
mDirWatch.startScan();
@@ -329,7 +307,2 @@ void ResourceSharpDTM::setFileName( const QString &fileName )
-QString ResourceSharpDTM::fileName() const
-{
- return mFileName;
-}
-
void ResourceSharpDTM::fileChanged()
@@ -341,3 +314,3 @@ void ResourceSharpDTM::fileChanged()
- QString text( i18n( "Sharp DTM resource '%1'<br> has been changed by third party.<br>Do you want to reload?").arg( mFileName ) );
+ QString text( i18n( "Sharp DTM resource '%1'<br> has been changed by third party.<br>Do you want to reload?").arg( fileName() ) );
if ( readOnly() || KMessageBox::questionYesNo( 0, text ) == KMessageBox::Yes ) {
@@ -354,3 +327,3 @@ void ResourceSharpDTM::cleanUp()
{
- unlock( mFileName );
+ unlock( fileName() );
}