author | zautrix <zautrix> | 2004-09-11 23:25:03 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-09-11 23:25:03 (UTC) |
commit | 0a2900e71fd3d80393d67c81aab3aae19d2d680c (patch) (side-by-side diff) | |
tree | 1f2926eca6bee600819932603eaaf28c7f267d6b /kabc/plugins/dir | |
parent | a040c9d56282dae396b02627fafb602e44323837 (diff) | |
download | kdepimpi-0a2900e71fd3d80393d67c81aab3aae19d2d680c.zip kdepimpi-0a2900e71fd3d80393d67c81aab3aae19d2d680c.tar.gz kdepimpi-0a2900e71fd3d80393d67c81aab3aae19d2d680c.tar.bz2 |
Bugfixes
-rw-r--r-- | kabc/plugins/dir/resourcedir.cpp | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/kabc/plugins/dir/resourcedir.cpp b/kabc/plugins/dir/resourcedir.cpp index fac06a1..7d96cb7 100644 --- a/kabc/plugins/dir/resourcedir.cpp +++ b/kabc/plugins/dir/resourcedir.cpp @@ -56,12 +56,14 @@ $Id$ //US #include <qdir.h> #include "resourcedir.h" #include "syncprefwidget.h" +//#define ALLOW_LOCKING + using namespace KABC; extern "C" #ifdef _WIN32_ __declspec(dllexport) #else @@ -133,22 +135,23 @@ void ResourceDir::writeConfig( KConfig *config ) config->writeEntry( "FilePath", mPath ); config->writeEntry( "FileFormat", mFormatName ); } Ticket *ResourceDir::requestSaveTicket() { - kdDebug(5700) << "ResourceDir::requestSaveTicket()" << endl; + if ( !addressBook() ) return 0; - +#ifdef ALLOW_LOCKING if ( !lock( mPath ) ) { - kdDebug(5700) << "ResourceDir::requestSaveTicket(): Unable to lock path '" - << mPath << "'" << endl; + return 0; } +#endif return createTicket( this ); + } bool ResourceDir::doOpen() { QDir dir( mPath ); @@ -175,14 +178,12 @@ bool ResourceDir::doOpen() void ResourceDir::doClose() { } bool ResourceDir::load() { - kdDebug(5700) << "ResourceDir::load(): '" << mPath << "'" << endl; - QDir dir( mPath ); QStringList files = dir.entryList( QDir::Files ); QStringList::Iterator it; bool ok = true; for ( it = files.begin(); it != files.end(); ++it ) { @@ -202,14 +203,12 @@ bool ResourceDir::load() return ok; } bool ResourceDir::save( Ticket *ticket ) { - kdDebug(5700) << "ResourceDir::save(): '" << mPath << "'" << endl; - AddressBook::Iterator it; bool ok = true; mDirWatch.stopScan(); for ( it = addressBook()->begin(); it != addressBook()->end(); ++it ) { @@ -229,42 +228,38 @@ bool ResourceDir::save( Ticket *ticket ) file.close(); } mDirWatch.startScan(); delete ticket; +#ifdef ALLOW_LOCKING unlock( mPath ); - +#endif return ok; } bool ResourceDir::lock( const QString &path ) { - kdDebug(5700) << "ResourceDir::lock()" << endl; - +#ifdef ALLOW_LOCKING QString p = path; //US change the implementation how the lockfilename is getting created //US p.replace( QRegExp("/"), "_" ); //US QString lockName = locateLocal( "data", "kabc/lock/" + p + ".lock" ); KURL url(p); QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); - kdDebug(5700) << "-- lock name: " << lockName << endl; - if ( QFile::exists( lockName ) ) return false; QString lockUniqueName; lockUniqueName = p + KApplication::randomString( 8 ); url = lockUniqueName; //US mLockUniqueName = locateLocal( "data", "kabc/lock/" + lockUniqueName ); mLockUniqueName = locateLocal( "data", "kabc/lock/" + url.fileName() ); - kdDebug(5700) << "-- lock unique name: " << mLockUniqueName << endl; - // Create unique file QFile file( mLockUniqueName ); file.open( IO_WriteOnly ); file.close(); // Create lock file @@ -278,26 +273,33 @@ bool ResourceDir::lock( const QString &path ) return true; } // TODO: check stat return false; +#else + return true; +#endif } void ResourceDir::unlock( const QString &path ) { +#ifdef ALLOW_LOCKING QString p = path; //US change the implementation how the lockfilename is getting created //US p.replace( QRegExp( "/" ), "_" ); //US QString lockName = locate( "data", "kabc/lock/" + p + ".lock" ); KURL url(p); QString lockName = locate( "data", "kabc/lock/" + url.fileName() + ".lock" ); ::unlink( QFile::encodeName( lockName ) ); QFile::remove( mLockUniqueName ); addressBook()->emitAddressBookUnlocked(); +#else + return; +#endif } void ResourceDir::setPath( const QString &path ) { mDirWatch.stopScan(); mDirWatch.removeDir( mPath ); |