-rw-r--r-- | kabc/plugins/dir/dir.pro | 29 | ||||
-rw-r--r-- | kabc/plugins/dir/resourcedir.cpp | 6 | ||||
-rw-r--r-- | kabc/plugins/file/file.pro | 30 | ||||
-rw-r--r-- | kabc/plugins/file/resourcefile.cpp | 6 |
4 files changed, 67 insertions, 4 deletions
diff --git a/kabc/plugins/dir/dir.pro b/kabc/plugins/dir/dir.pro new file mode 100644 index 0000000..3db201f --- a/dev/null +++ b/kabc/plugins/dir/dir.pro | |||
@@ -0,0 +1,29 @@ | |||
1 | TEMPLATE= lib | ||
2 | CONFIG += qt warn_on release | ||
3 | #release debug | ||
4 | |||
5 | TARGET = microkabc_dir | ||
6 | INCLUDEPATH += ../.. ../../../microkde ../../../microkde/kdecore ../../../microkde/kio/kfile ../../../qtcompat | ||
7 | DESTDIR = ../../../bin | ||
8 | #LIBS += -lmicrokde -lmicrokabc | ||
9 | #LIBS += -L$(QPEDIR)/lib | ||
10 | |||
11 | INTERFACES = \ | ||
12 | |||
13 | HEADERS = \ | ||
14 | resourcedir.h \ | ||
15 | resourcedirconfig.h | ||
16 | |||
17 | SOURCES = \ | ||
18 | resourcedir.cpp \ | ||
19 | resourcedirconfig.cpp | ||
20 | |||
21 | unix : { | ||
22 | OBJECTS_DIR = obj/unix | ||
23 | MOC_DIR = moc/unix | ||
24 | } | ||
25 | win32: { | ||
26 | DEFINES += _WIN32_ | ||
27 | OBJECTS_DIR = obj/win | ||
28 | MOC_DIR = moc/win | ||
29 | } \ No newline at end of file | ||
diff --git a/kabc/plugins/dir/resourcedir.cpp b/kabc/plugins/dir/resourcedir.cpp index be19821..6ea2f4b 100644 --- a/kabc/plugins/dir/resourcedir.cpp +++ b/kabc/plugins/dir/resourcedir.cpp | |||
@@ -231,67 +231,69 @@ bool ResourceDir::save( Ticket *ticket ) | |||
231 | 231 | ||
232 | bool ResourceDir::lock( const QString &path ) | 232 | bool ResourceDir::lock( const QString &path ) |
233 | { | 233 | { |
234 | kdDebug(5700) << "ResourceDir::lock()" << endl; | 234 | kdDebug(5700) << "ResourceDir::lock()" << endl; |
235 | 235 | ||
236 | QString p = path; | 236 | QString p = path; |
237 | //US change the implementation how the lockfilename is getting created | 237 | //US change the implementation how the lockfilename is getting created |
238 | //US p.replace( QRegExp("/"), "_" ); | 238 | //US p.replace( QRegExp("/"), "_" ); |
239 | //US QString lockName = locateLocal( "data", "kabc/lock/" + p + ".lock" ); | 239 | //US QString lockName = locateLocal( "data", "kabc/lock/" + p + ".lock" ); |
240 | KURL url(p); | 240 | KURL url(p); |
241 | QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); | 241 | QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); |
242 | 242 | ||
243 | 243 | ||
244 | kdDebug(5700) << "-- lock name: " << lockName << endl; | 244 | kdDebug(5700) << "-- lock name: " << lockName << endl; |
245 | 245 | ||
246 | if ( QFile::exists( lockName ) ) return false; | 246 | if ( QFile::exists( lockName ) ) return false; |
247 | 247 | ||
248 | QString lockUniqueName; | 248 | QString lockUniqueName; |
249 | lockUniqueName = p + KApplication::randomString( 8 ); | 249 | lockUniqueName = p + KApplication::randomString( 8 ); |
250 | 250 | ||
251 | url = lockUniqueName; | 251 | url = lockUniqueName; |
252 | //US mLockUniqueName = locateLocal( "data", "kabc/lock/" + lockUniqueName ); | 252 | //US mLockUniqueName = locateLocal( "data", "kabc/lock/" + lockUniqueName ); |
253 | mLockUniqueName = locateLocal( "data", "kabc/lock/" + url.fileName() ); | 253 | mLockUniqueName = locateLocal( "data", "kabc/lock/" + url.fileName() ); |
254 | 254 | ||
255 | kdDebug(5700) << "-- lock unique name: " << mLockUniqueName << endl; | 255 | kdDebug(5700) << "-- lock unique name: " << mLockUniqueName << endl; |
256 | 256 | ||
257 | // Create unique file | 257 | // Create unique file |
258 | QFile file( mLockUniqueName ); | 258 | QFile file( mLockUniqueName ); |
259 | file.open( IO_WriteOnly ); | 259 | file.open( IO_WriteOnly ); |
260 | file.close(); | 260 | file.close(); |
261 | 261 | ||
262 | // Create lock file | 262 | // Create lock file |
263 | int result = ::link( QFile::encodeName( mLockUniqueName ), | 263 | int result = 0; |
264 | #ifndef _WIN32_ | ||
265 | result = ::link( QFile::encodeName( mLockUniqueName ), | ||
264 | QFile::encodeName( lockName ) ); | 266 | QFile::encodeName( lockName ) ); |
265 | 267 | #endif | |
266 | if ( result == 0 ) { | 268 | if ( result == 0 ) { |
267 | addressBook()->emitAddressBookLocked(); | 269 | addressBook()->emitAddressBookLocked(); |
268 | return true; | 270 | return true; |
269 | } | 271 | } |
270 | 272 | ||
271 | // TODO: check stat | 273 | // TODO: check stat |
272 | 274 | ||
273 | return false; | 275 | return false; |
274 | } | 276 | } |
275 | 277 | ||
276 | void ResourceDir::unlock( const QString &path ) | 278 | void ResourceDir::unlock( const QString &path ) |
277 | { | 279 | { |
278 | QString p = path; | 280 | QString p = path; |
279 | //US change the implementation how the lockfilename is getting created | 281 | //US change the implementation how the lockfilename is getting created |
280 | //US p.replace( QRegExp( "/" ), "_" ); | 282 | //US p.replace( QRegExp( "/" ), "_" ); |
281 | //US QString lockName = locate( "data", "kabc/lock/" + p + ".lock" ); | 283 | //US QString lockName = locate( "data", "kabc/lock/" + p + ".lock" ); |
282 | KURL url(p); | 284 | KURL url(p); |
283 | QString lockName = locate( "data", "kabc/lock/" + url.fileName() + ".lock" ); | 285 | QString lockName = locate( "data", "kabc/lock/" + url.fileName() + ".lock" ); |
284 | 286 | ||
285 | ::unlink( QFile::encodeName( lockName ) ); | 287 | ::unlink( QFile::encodeName( lockName ) ); |
286 | QFile::remove( mLockUniqueName ); | 288 | QFile::remove( mLockUniqueName ); |
287 | addressBook()->emitAddressBookUnlocked(); | 289 | addressBook()->emitAddressBookUnlocked(); |
288 | } | 290 | } |
289 | 291 | ||
290 | void ResourceDir::setPath( const QString &path ) | 292 | void ResourceDir::setPath( const QString &path ) |
291 | { | 293 | { |
292 | /*US ToDo: no synchronization so far. Has to be changed in the future | 294 | /*US ToDo: no synchronization so far. Has to be changed in the future |
293 | mDirWatch.stopScan(); | 295 | mDirWatch.stopScan(); |
294 | mDirWatch.removeDir( mPath ); | 296 | mDirWatch.removeDir( mPath ); |
295 | */ | 297 | */ |
296 | mPath = path; | 298 | mPath = path; |
297 | 299 | ||
diff --git a/kabc/plugins/file/file.pro b/kabc/plugins/file/file.pro new file mode 100644 index 0000000..a5ade93 --- a/dev/null +++ b/kabc/plugins/file/file.pro | |||
@@ -0,0 +1,30 @@ | |||
1 | TEMPLATE= lib | ||
2 | CONFIG += qt warn_on release | ||
3 | #release debug | ||
4 | |||
5 | TARGET = microkabc_file | ||
6 | INCLUDEPATH += ../.. ../../../microkde ../../../microkde/kdecore ../../../microkde/kio/kfile ../../../qtcompat | ||
7 | |||
8 | DESTDIR = ../../../bin | ||
9 | #LIBS += -lmicrokde -lmicrokabc | ||
10 | #LIBS += -L$(QPEDIR)/lib | ||
11 | |||
12 | INTERFACES = \ | ||
13 | |||
14 | HEADERS = \ | ||
15 | resourcefile.h \ | ||
16 | resourcefileconfig.h | ||
17 | |||
18 | SOURCES = \ | ||
19 | resourcefile.cpp \ | ||
20 | resourcefileconfig.cpp | ||
21 | |||
22 | unix : { | ||
23 | OBJECTS_DIR = obj/unix | ||
24 | MOC_DIR = moc/unix | ||
25 | } | ||
26 | win32: { | ||
27 | DEFINES += _WIN32_ | ||
28 | OBJECTS_DIR = obj/win | ||
29 | MOC_DIR = moc/win | ||
30 | } \ No newline at end of file | ||
diff --git a/kabc/plugins/file/resourcefile.cpp b/kabc/plugins/file/resourcefile.cpp index 3920f69..4b4c935 100644 --- a/kabc/plugins/file/resourcefile.cpp +++ b/kabc/plugins/file/resourcefile.cpp | |||
@@ -257,67 +257,69 @@ bool ResourceFile::save( Ticket *ticket ) | |||
257 | 257 | ||
258 | bool ResourceFile::lock( const QString &fileName ) | 258 | bool ResourceFile::lock( const QString &fileName ) |
259 | { | 259 | { |
260 | 260 | ||
261 | 261 | ||
262 | QString fn = fileName; | 262 | QString fn = fileName; |
263 | 263 | ||
264 | //US change the implementation how the lockfilename is getting created | 264 | //US change the implementation how the lockfilename is getting created |
265 | //US fn.replace( QRegExp("/"), "_" ); | 265 | //US fn.replace( QRegExp("/"), "_" ); |
266 | //US QString lockName = locateLocal( "data", "kabc/lock/" + fn + ".lock" ); | 266 | //US QString lockName = locateLocal( "data", "kabc/lock/" + fn + ".lock" ); |
267 | 267 | ||
268 | KURL url(fn); | 268 | KURL url(fn); |
269 | QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); | 269 | QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); |
270 | 270 | ||
271 | 271 | ||
272 | 272 | ||
273 | if (QFile::exists( lockName )) return false; | 273 | if (QFile::exists( lockName )) return false; |
274 | 274 | ||
275 | QString lockUniqueName; | 275 | QString lockUniqueName; |
276 | lockUniqueName = fn + KApplication::randomString( 8 ); | 276 | lockUniqueName = fn + KApplication::randomString( 8 ); |
277 | 277 | ||
278 | url = lockUniqueName; | 278 | url = lockUniqueName; |
279 | //US mLockUniqueName = locateLocal( "data", "kabc/lock/" + lockUniqueName ); | 279 | //US mLockUniqueName = locateLocal( "data", "kabc/lock/" + lockUniqueName ); |
280 | mLockUniqueName = locateLocal( "data", "kabc/lock/" + url.fileName() ); | 280 | mLockUniqueName = locateLocal( "data", "kabc/lock/" + url.fileName() ); |
281 | kdDebug(5700) << "-- lock unique name: " << mLockUniqueName << endl; | 281 | kdDebug(5700) << "-- lock unique name: " << mLockUniqueName << endl; |
282 | 282 | ||
283 | // Create unique file | 283 | // Create unique file |
284 | QFile file( mLockUniqueName ); | 284 | QFile file( mLockUniqueName ); |
285 | file.open( IO_WriteOnly ); | 285 | file.open( IO_WriteOnly ); |
286 | file.close(); | 286 | file.close(); |
287 | 287 | ||
288 | // Create lock file | 288 | // Create lock file |
289 | int result = ::link( QFile::encodeName( mLockUniqueName ), | 289 | int result = 0; |
290 | #ifndef _WIN32_ | ||
291 | result = ::link( QFile::encodeName( mLockUniqueName ), | ||
290 | QFile::encodeName( lockName ) ); | 292 | QFile::encodeName( lockName ) ); |
291 | 293 | #endif | |
292 | if ( result == 0 ) { | 294 | if ( result == 0 ) { |
293 | addressBook()->emitAddressBookLocked(); | 295 | addressBook()->emitAddressBookLocked(); |
294 | return true; | 296 | return true; |
295 | } | 297 | } |
296 | 298 | ||
297 | // TODO: check stat | 299 | // TODO: check stat |
298 | 300 | ||
299 | return false; | 301 | return false; |
300 | } | 302 | } |
301 | 303 | ||
302 | void ResourceFile::unlock( const QString &fileName ) | 304 | void ResourceFile::unlock( const QString &fileName ) |
303 | { | 305 | { |
304 | QString fn = fileName; | 306 | QString fn = fileName; |
305 | //US change the implementation how the lockfilename is getting created | 307 | //US change the implementation how the lockfilename is getting created |
306 | //US fn.replace( QRegExp( "/" ), "_" ); | 308 | //US fn.replace( QRegExp( "/" ), "_" ); |
307 | //US QString lockName = locateLocal( "data", "kabc/lock/" + fn + ".lock" ); | 309 | //US QString lockName = locateLocal( "data", "kabc/lock/" + fn + ".lock" ); |
308 | //US QString lockName = fn + ".lock"; | 310 | //US QString lockName = fn + ".lock"; |
309 | KURL url(fn); | 311 | KURL url(fn); |
310 | QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); | 312 | QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); |
311 | 313 | ||
312 | QFile::remove( lockName ); | 314 | QFile::remove( lockName ); |
313 | QFile::remove( mLockUniqueName ); | 315 | QFile::remove( mLockUniqueName ); |
314 | addressBook()->emitAddressBookUnlocked(); | 316 | addressBook()->emitAddressBookUnlocked(); |
315 | } | 317 | } |
316 | 318 | ||
317 | void ResourceFile::setFileName( const QString &fileName ) | 319 | void ResourceFile::setFileName( const QString &fileName ) |
318 | { | 320 | { |
319 | /*US ToDo: no synchronization so far. Has to be changed in the future | 321 | /*US ToDo: no synchronization so far. Has to be changed in the future |
320 | mDirWatch.stopScan(); | 322 | mDirWatch.stopScan(); |
321 | mDirWatch.removeFile( mFileName ); | 323 | mDirWatch.removeFile( mFileName ); |
322 | */ | 324 | */ |
323 | mFileName = fileName; | 325 | mFileName = fileName; |