author | ulf69 <ulf69> | 2004-06-29 05:06:57 (UTC) |
---|---|---|
committer | ulf69 <ulf69> | 2004-06-29 05:06:57 (UTC) |
commit | beccf25496b482fa9eccd41f13c07e67e32f3a52 (patch) (unidiff) | |
tree | 2f50a252b93bb866c7f41beebcf539861e7f4e2c /kabc | |
parent | d55d405ad63c4b9e9372430ccd3f73ef927bf7d9 (diff) | |
download | kdepimpi-beccf25496b482fa9eccd41f13c07e67e32f3a52.zip kdepimpi-beccf25496b482fa9eccd41f13c07e67e32f3a52.tar.gz kdepimpi-beccf25496b482fa9eccd41f13c07e67e32f3a52.tar.bz2 |
enable dynamic loading
-rw-r--r-- | kabc/plugins/dir/resourcedir.cpp | 33 | ||||
-rw-r--r-- | kabc/plugins/file/resourcefile.cpp | 36 |
2 files changed, 32 insertions, 37 deletions
diff --git a/kabc/plugins/dir/resourcedir.cpp b/kabc/plugins/dir/resourcedir.cpp index f354a9e..be19821 100644 --- a/kabc/plugins/dir/resourcedir.cpp +++ b/kabc/plugins/dir/resourcedir.cpp | |||
@@ -34,91 +34,90 @@ $Id$ | |||
34 | 34 | ||
35 | #include <qregexp.h> | 35 | #include <qregexp.h> |
36 | #include <qtimer.h> | 36 | #include <qtimer.h> |
37 | #include <qwidget.h> | 37 | #include <qwidget.h> |
38 | 38 | ||
39 | #include <kapplication.h> | 39 | #include <kapplication.h> |
40 | #include <kconfig.h> | 40 | #include <kconfig.h> |
41 | #include <kdebug.h> | 41 | #include <kdebug.h> |
42 | //US #include <kgenericfactory.h> | 42 | //US #include <kgenericfactory.h> |
43 | #include <kglobal.h> | 43 | #include <kglobal.h> |
44 | #include <klocale.h> | 44 | #include <klocale.h> |
45 | #include <kstandarddirs.h> | 45 | #include <kstandarddirs.h> |
46 | #include <kurlrequester.h> | 46 | #include <kurlrequester.h> |
47 | 47 | ||
48 | #include "addressbook.h" | 48 | #include "addressbook.h" |
49 | 49 | ||
50 | //US #include "formatfactory.h" | 50 | #include "formatfactory.h" |
51 | 51 | ||
52 | #include "resourcedirconfig.h" | 52 | #include "resourcedirconfig.h" |
53 | #include "stdaddressbook.h" | 53 | #include "stdaddressbook.h" |
54 | 54 | ||
55 | //US | 55 | //US |
56 | #include <qdir.h> | 56 | #include <qdir.h> |
57 | #include <formats/vcardformatplugin2.h> | 57 | //US #include "../../formats/vcardformatplugin2.h" |
58 | #include <formats/binaryformat.h> | 58 | //US #include "../../formats/binaryformat.h" |
59 | 59 | ||
60 | #include "resourcedir.h" | 60 | #include "resourcedir.h" |
61 | 61 | ||
62 | using namespace KABC; | 62 | using namespace KABC; |
63 | 63 | ||
64 | extern "C" | 64 | extern "C" |
65 | { | 65 | { |
66 | void *init_kabc_dir() | 66 | //US void *init_kabc_dir() |
67 | void *init_microkabc_dir() | ||
67 | { | 68 | { |
68 | qDebug("resourcedir.cpp : init_kabc_dir has to be changed"); | 69 | return new KRES::PluginFactory<ResourceDir,ResourceDirConfig>(); |
69 | //US return new KRES::PluginFactory<ResourceDir,ResourceDirConfig>(); | ||
70 | return 0; | ||
71 | } | 70 | } |
72 | } | 71 | } |
73 | 72 | ||
74 | 73 | ||
75 | ResourceDir::ResourceDir( const KConfig *config ) | 74 | ResourceDir::ResourceDir( const KConfig *config ) |
76 | : Resource( config ) | 75 | : Resource( config ) |
77 | { | 76 | { |
78 | QString path; | 77 | QString path; |
79 | 78 | ||
80 | KConfig *cfg = (KConfig *)config; | 79 | KConfig *cfg = (KConfig *)config; |
81 | if ( cfg ) { | 80 | if ( cfg ) { |
82 | //US path = config->readEntry( "FilePath" ); | 81 | //US path = config->readEntry( "FilePath" ); |
83 | path = cfg->readEntry( "FilePath", StdAddressBook::directoryName() ); | 82 | path = cfg->readEntry( "FilePath", StdAddressBook::directoryName() ); |
84 | //US mFormatName = config->readEntry( "FileFormat" ); | 83 | //US mFormatName = config->readEntry( "FileFormat" ); |
85 | mFormatName = cfg->readEntry( "FileFormat", "vcard" ); | 84 | mFormatName = cfg->readEntry( "FileFormat", "vcard" ); |
86 | } else { | 85 | } else { |
87 | path = StdAddressBook::directoryName(); | 86 | path = StdAddressBook::directoryName(); |
88 | mFormatName = "vcard"; | 87 | mFormatName = "vcard"; |
89 | } | 88 | } |
90 | 89 | ||
91 | 90 | ||
92 | /*US FormatFactory *factory = FormatFactory::self(); | 91 | FormatFactory *factory = FormatFactory::self(); |
93 | mFormat = factory->format( mFormatName ); | 92 | mFormat = factory->format( mFormatName ); |
94 | 93 | ||
95 | if ( !mFormat ) { | 94 | if ( !mFormat ) { |
96 | mFormatName = "vcard"; | 95 | mFormatName = "vcard"; |
97 | mFormat = factory->format( mFormatName ); | 96 | mFormat = factory->format( mFormatName ); |
98 | } | 97 | } |
99 | */ | ||
100 | 98 | ||
99 | /*US | ||
101 | //US qDebug("ResourceDir::ResourceDir initialized with format %s ", mFormatName.latin1()); | 100 | //US qDebug("ResourceDir::ResourceDir initialized with format %s ", mFormatName.latin1()); |
102 | if (mFormatName == "vcard") | 101 | if (mFormatName == "vcard") |
103 | mFormat = new VCardFormatPlugin2(); | 102 | mFormat = new VCardFormatPlugin2(); |
104 | else if (mFormatName == "binary") | 103 | else if (mFormatName == "binary") |
105 | mFormat = new BinaryFormat(); | 104 | mFormat = new BinaryFormat(); |
106 | else | 105 | else |
107 | qDebug("ResourceFile::init format unknown !!! %s ", mFormatName.latin1()); | 106 | qDebug("ResourceFile::init format unknown !!! %s ", mFormatName.latin1()); |
108 | 107 | */ | |
109 | 108 | ||
110 | /*US we have no KDirWatch. SO simulate the signals from inside the apropriate methods | 109 | /*US we have no KDirWatch. SO simulate the signals from inside the apropriate methods |
111 | connect( &mDirWatch, SIGNAL( dirty(const QString&) ), SLOT( pathChanged() ) ); | 110 | connect( &mDirWatch, SIGNAL( dirty(const QString&) ), SLOT( pathChanged() ) ); |
112 | connect( &mDirWatch, SIGNAL( created(const QString&) ), SLOT( pathChanged() ) ); | 111 | connect( &mDirWatch, SIGNAL( created(const QString&) ), SLOT( pathChanged() ) ); |
113 | connect( &mDirWatch, SIGNAL( deleted(const QString&) ), SLOT( pathChanged() ) ); | 112 | connect( &mDirWatch, SIGNAL( deleted(const QString&) ), SLOT( pathChanged() ) ); |
114 | */ | 113 | */ |
115 | 114 | ||
116 | setPath( path ); | 115 | setPath( path ); |
117 | } | 116 | } |
118 | 117 | ||
119 | ResourceDir::~ResourceDir() | 118 | ResourceDir::~ResourceDir() |
120 | { | 119 | { |
121 | delete mFormat; | 120 | delete mFormat; |
122 | mFormat = 0; | 121 | mFormat = 0; |
123 | } | 122 | } |
124 | 123 | ||
@@ -248,39 +247,35 @@ bool ResourceDir::lock( const QString &path ) | |||
248 | 247 | ||
249 | QString lockUniqueName; | 248 | QString lockUniqueName; |
250 | lockUniqueName = p + KApplication::randomString( 8 ); | 249 | lockUniqueName = p + KApplication::randomString( 8 ); |
251 | 250 | ||
252 | url = lockUniqueName; | 251 | url = lockUniqueName; |
253 | //US mLockUniqueName = locateLocal( "data", "kabc/lock/" + lockUniqueName ); | 252 | //US mLockUniqueName = locateLocal( "data", "kabc/lock/" + lockUniqueName ); |
254 | mLockUniqueName = locateLocal( "data", "kabc/lock/" + url.fileName() ); | 253 | mLockUniqueName = locateLocal( "data", "kabc/lock/" + url.fileName() ); |
255 | 254 | ||
256 | kdDebug(5700) << "-- lock unique name: " << mLockUniqueName << endl; | 255 | kdDebug(5700) << "-- lock unique name: " << mLockUniqueName << endl; |
257 | 256 | ||
258 | // Create unique file | 257 | // Create unique file |
259 | QFile file( mLockUniqueName ); | 258 | QFile file( mLockUniqueName ); |
260 | file.open( IO_WriteOnly ); | 259 | file.open( IO_WriteOnly ); |
261 | file.close(); | 260 | file.close(); |
262 | 261 | ||
263 | // Create lock file | 262 | // Create lock file |
264 | #ifdef _WIN32_ | ||
265 | int result = 0; | ||
266 | qDebug("WARNING: ResourceDir::lock cannot link "); | ||
267 | #else | ||
268 | int result = ::link( QFile::encodeName( mLockUniqueName ), | 263 | int result = ::link( QFile::encodeName( mLockUniqueName ), |
269 | QFile::encodeName( lockName ) ); | 264 | QFile::encodeName( lockName ) ); |
270 | #endif | 265 | |
271 | if ( result == 0 ) { | 266 | if ( result == 0 ) { |
272 | addressBook()->emitAddressBookLocked(); | 267 | addressBook()->emitAddressBookLocked(); |
273 | return true; | 268 | return true; |
274 | } | 269 | } |
275 | 270 | ||
276 | // TODO: check stat | 271 | // TODO: check stat |
277 | 272 | ||
278 | return false; | 273 | return false; |
279 | } | 274 | } |
280 | 275 | ||
281 | void ResourceDir::unlock( const QString &path ) | 276 | void ResourceDir::unlock( const QString &path ) |
282 | { | 277 | { |
283 | QString p = path; | 278 | QString p = path; |
284 | //US change the implementation how the lockfilename is getting created | 279 | //US change the implementation how the lockfilename is getting created |
285 | //US p.replace( QRegExp( "/" ), "_" ); | 280 | //US p.replace( QRegExp( "/" ), "_" ); |
286 | //US QString lockName = locate( "data", "kabc/lock/" + p + ".lock" ); | 281 | //US QString lockName = locate( "data", "kabc/lock/" + p + ".lock" ); |
@@ -309,43 +304,43 @@ void ResourceDir::setPath( const QString &path ) | |||
309 | pathChanged(); | 304 | pathChanged(); |
310 | 305 | ||
311 | } | 306 | } |
312 | 307 | ||
313 | QString ResourceDir::path() const | 308 | QString ResourceDir::path() const |
314 | { | 309 | { |
315 | return mPath; | 310 | return mPath; |
316 | } | 311 | } |
317 | 312 | ||
318 | void ResourceDir::setFormat( const QString &format ) | 313 | void ResourceDir::setFormat( const QString &format ) |
319 | { | 314 | { |
320 | mFormatName = format; | 315 | mFormatName = format; |
321 | 316 | ||
322 | if ( mFormat ) | 317 | if ( mFormat ) |
323 | delete mFormat; | 318 | delete mFormat; |
324 | 319 | ||
325 | //US FormatFactory *factory = FormatFactory::self(); | 320 | FormatFactory *factory = FormatFactory::self(); |
326 | //US mFormat = factory->format( mFormatName ); | 321 | mFormat = factory->format( mFormatName ); |
327 | 322 | /*US | |
328 | qDebug("ResourceDir::setFormat initialized with format %s ", format.latin1()); | 323 | qDebug("ResourceDir::setFormat initialized with format %s ", format.latin1()); |
329 | if (mFormatName == "vcard") | 324 | if (mFormatName == "vcard") |
330 | mFormat = new VCardFormatPlugin2(); | 325 | mFormat = new VCardFormatPlugin2(); |
331 | else if (mFormatName == "binary") | 326 | else if (mFormatName == "binary") |
332 | mFormat = new BinaryFormat(); | 327 | mFormat = new BinaryFormat(); |
333 | else | 328 | else |
334 | qDebug("ResourceDir::setFormat format unknown !!! %s ", format.latin1()); | 329 | qDebug("ResourceDir::setFormat format unknown !!! %s ", format.latin1()); |
335 | 330 | */ | |
336 | 331 | ||
337 | } | 332 | } |
338 | 333 | ||
339 | QString ResourceDir::format() const | 334 | QString ResourceDir::format() const |
340 | { | 335 | { |
341 | return mFormatName; | 336 | return mFormatName; |
342 | } | 337 | } |
343 | 338 | ||
344 | void ResourceDir::pathChanged() | 339 | void ResourceDir::pathChanged() |
345 | { | 340 | { |
346 | if ( !addressBook() ) | 341 | if ( !addressBook() ) |
347 | return; | 342 | return; |
348 | 343 | ||
349 | load(); | 344 | load(); |
350 | addressBook()->emitAddressBookChanged(); | 345 | addressBook()->emitAddressBookChanged(); |
351 | } | 346 | } |
diff --git a/kabc/plugins/file/resourcefile.cpp b/kabc/plugins/file/resourcefile.cpp index d30ed2f..80af841 100644 --- a/kabc/plugins/file/resourcefile.cpp +++ b/kabc/plugins/file/resourcefile.cpp | |||
@@ -30,53 +30,52 @@ $Id$ | |||
30 | #ifndef _WIN32_ | 30 | #ifndef _WIN32_ |
31 | #include <unistd.h> | 31 | #include <unistd.h> |
32 | #endif | 32 | #endif |
33 | 33 | ||
34 | #include <qfile.h> | 34 | #include <qfile.h> |
35 | #include <qfileinfo.h> | 35 | #include <qfileinfo.h> |
36 | #include <qregexp.h> | 36 | #include <qregexp.h> |
37 | #include <qtimer.h> | 37 | #include <qtimer.h> |
38 | 38 | ||
39 | #include <kapplication.h> | 39 | #include <kapplication.h> |
40 | #include <kconfig.h> | 40 | #include <kconfig.h> |
41 | #include <kdebug.h> | 41 | #include <kdebug.h> |
42 | #include <klocale.h> | 42 | #include <klocale.h> |
43 | //US #include <ksavefile.h> | 43 | //US #include <ksavefile.h> |
44 | #include <kstandarddirs.h> | 44 | #include <kstandarddirs.h> |
45 | 45 | ||
46 | //US #include "formatfactory.h" | 46 | #include "formatfactory.h" |
47 | 47 | ||
48 | #include "resource.h" | 48 | #include "resource.h" |
49 | #include "resourcefileconfig.h" | 49 | #include "resourcefileconfig.h" |
50 | #include "stdaddressbook.h" | 50 | #include "stdaddressbook.h" |
51 | 51 | ||
52 | #include <formats/vcardformatplugin2.h> | 52 | //US #include "../../formats/vcardformatplugin2.h" |
53 | #include <formats/binaryformat.h> | 53 | //US #include "../../formats/binaryformat.h" |
54 | 54 | ||
55 | 55 | ||
56 | #include "resourcefile.h" | 56 | #include "resourcefile.h" |
57 | 57 | ||
58 | using namespace KABC; | 58 | using namespace KABC; |
59 | 59 | ||
60 | extern "C" | 60 | extern "C" |
61 | { | 61 | { |
62 | void *init_kabc_file() | 62 | //US void *init_kabc_file() |
63 | void *init_microkabc_file() | ||
63 | { | 64 | { |
64 | qDebug("!!!resourcefile.cpp : init_kabc_file has to be changed"); | 65 | return new KRES::PluginFactory<ResourceFile,ResourceFileConfig>(); |
65 | //US return new KRES::PluginFactory<ResourceFile,ResourceFileConfig>(); | ||
66 | return 0; | ||
67 | } | 66 | } |
68 | } | 67 | } |
69 | 68 | ||
70 | 69 | ||
71 | ResourceFile::ResourceFile( const KConfig *config ) | 70 | ResourceFile::ResourceFile( const KConfig *config ) |
72 | : Resource( config ) , mFormat( 0 ) | 71 | : Resource( config ) , mFormat( 0 ) |
73 | { | 72 | { |
74 | QString fileName, formatName; | 73 | QString fileName, formatName; |
75 | 74 | ||
76 | KConfig *cfg = (KConfig *)config; | 75 | KConfig *cfg = (KConfig *)config; |
77 | if ( cfg ) { | 76 | if ( cfg ) { |
78 | fileName = cfg->readEntry( "FileName", StdAddressBook::fileName() ); | 77 | fileName = cfg->readEntry( "FileName", StdAddressBook::fileName() ); |
79 | formatName = cfg->readEntry( "FileFormat", "vcard" ); | 78 | formatName = cfg->readEntry( "FileFormat", "vcard" ); |
80 | // qDebug("ResourceFile::ResourceFile : 1 %s, %s", fileName.latin1(), formatName.latin1() ); | 79 | // qDebug("ResourceFile::ResourceFile : 1 %s, %s", fileName.latin1(), formatName.latin1() ); |
81 | } else { | 80 | } else { |
82 | fileName = StdAddressBook::fileName(); | 81 | fileName = StdAddressBook::fileName(); |
@@ -86,52 +85,53 @@ ResourceFile::ResourceFile( const KConfig *config ) | |||
86 | 85 | ||
87 | init( fileName, formatName ); | 86 | init( fileName, formatName ); |
88 | } | 87 | } |
89 | 88 | ||
90 | ResourceFile::ResourceFile( const QString &fileName, | 89 | ResourceFile::ResourceFile( const QString &fileName, |
91 | const QString &formatName ) | 90 | const QString &formatName ) |
92 | : Resource( 0 ) | 91 | : Resource( 0 ) |
93 | { | 92 | { |
94 | // qDebug("ResourceFile::ResourceFile : 3 %s, %s", fileName.latin1(), formatName.latin1()); | 93 | // qDebug("ResourceFile::ResourceFile : 3 %s, %s", fileName.latin1(), formatName.latin1()); |
95 | init( fileName, formatName ); | 94 | init( fileName, formatName ); |
96 | } | 95 | } |
97 | 96 | ||
98 | void ResourceFile::init( const QString &fileName, const QString &formatName ) | 97 | void ResourceFile::init( const QString &fileName, const QString &formatName ) |
99 | { | 98 | { |
100 | mFormatName = formatName; | 99 | mFormatName = formatName; |
101 | 100 | ||
102 | /*US FormatFactory *factory = FormatFactory::self(); | 101 | FormatFactory *factory = FormatFactory::self(); |
103 | mFormat = factory->format( mFormatName ); | 102 | mFormat = factory->format( mFormatName ); |
104 | 103 | ||
105 | if ( !mFormat ) { | 104 | if ( !mFormat ) { |
106 | mFormatName = "vcard"; | 105 | mFormatName = "vcard"; |
107 | mFormat = factory->format( mFormatName ); | 106 | mFormat = factory->format( mFormatName ); |
108 | } | 107 | } |
109 | */ | ||
110 | 108 | ||
109 | /*US | ||
111 | //US qDebug("ResourceFile::init initialized with format %s ", formatName.latin1()); | 110 | //US qDebug("ResourceFile::init initialized with format %s ", formatName.latin1()); |
112 | if (mFormatName == "vcard") { | 111 | if (mFormatName == "vcard") { |
113 | mFormat = new VCardFormatPlugin2(); | 112 | mFormat = new VCardFormatPlugin2(); |
114 | // qDebug("ResourceFile::init format VCardFormatPlugin2"); | 113 | // qDebug("ResourceFile::init format VCardFormatPlugin2"); |
115 | } | 114 | } |
116 | else if (mFormatName == "binary") { | 115 | else if (mFormatName == "binary") { |
117 | mFormat = new BinaryFormat(); | 116 | mFormat = new BinaryFormat(); |
118 | // qDebug("ResourceFile::init format BinaryFormat"); | 117 | // qDebug("ResourceFile::init format BinaryFormat"); |
119 | } | 118 | } |
120 | else | 119 | else |
121 | qDebug("ResourceFile::init format unknown !!! %s ", formatName.latin1()); | 120 | qDebug("ResourceFile::init format unknown !!! %s ", formatName.latin1()); |
121 | */ | ||
122 | 122 | ||
123 | /*US we have no KDirWatch. SO simulate the signals from inside the apropriate methods | 123 | /*US we have no KDirWatch. SO simulate the signals from inside the apropriate methods |
124 | connect( &mDirWatch, SIGNAL( dirty(const QString&) ), SLOT( fileChanged() ) ); | 124 | connect( &mDirWatch, SIGNAL( dirty(const QString&) ), SLOT( fileChanged() ) ); |
125 | connect( &mDirWatch, SIGNAL( created(const QString&) ), SLOT( fileChanged() ) ); | 125 | connect( &mDirWatch, SIGNAL( created(const QString&) ), SLOT( fileChanged() ) ); |
126 | connect( &mDirWatch, SIGNAL( deleted(const QString&) ), SLOT( fileChanged() ) ); | 126 | connect( &mDirWatch, SIGNAL( deleted(const QString&) ), SLOT( fileChanged() ) ); |
127 | */ | 127 | */ |
128 | 128 | ||
129 | setFileName( fileName ); | 129 | setFileName( fileName ); |
130 | } | 130 | } |
131 | 131 | ||
132 | ResourceFile::~ResourceFile() | 132 | ResourceFile::~ResourceFile() |
133 | { | 133 | { |
134 | delete mFormat; | 134 | delete mFormat; |
135 | mFormat = 0; | 135 | mFormat = 0; |
136 | } | 136 | } |
137 | 137 | ||
@@ -204,34 +204,34 @@ bool ResourceFile::load() | |||
204 | 204 | ||
205 | // qDebug("ResourceFile::load format %s, %s", mFileName.latin1(), mFormatName.latin1()); | 205 | // qDebug("ResourceFile::load format %s, %s", mFileName.latin1(), mFormatName.latin1()); |
206 | 206 | ||
207 | return mFormat->loadAll( addressBook(), this, &file ); | 207 | return mFormat->loadAll( addressBook(), this, &file ); |
208 | } | 208 | } |
209 | 209 | ||
210 | bool ResourceFile::save( Ticket *ticket ) | 210 | bool ResourceFile::save( Ticket *ticket ) |
211 | { | 211 | { |
212 | // qDebug("ResourceFile::save format %s, %s", mFileName.latin1(), mFormatName.latin1()); | 212 | // qDebug("ResourceFile::save format %s, %s", mFileName.latin1(), mFormatName.latin1()); |
213 | kdDebug(5700) << "ResourceFile::save()" << endl; | 213 | kdDebug(5700) << "ResourceFile::save()" << endl; |
214 | 214 | ||
215 | // create backup file | 215 | // create backup file |
216 | QString extension = "_" + QString::number( QDate::currentDate().dayOfWeek() ); | 216 | QString extension = "_" + QString::number( QDate::currentDate().dayOfWeek() ); |
217 | 217 | ||
218 | /*US we use a simpler method to create a backupfile | 218 | /*US we use a simpler method to create a backupfile |
219 | 219 | ||
220 | (void) KSaveFile::backupFile( mFileName, QString::null /*directory*/ | 220 | (void) KSaveFile::backupFile( mFileName, QString::null |
221 | /*US ,extension ); | 221 | ,extension ); |
222 | 222 | ||
223 | KSaveFile saveFile( mFileName ); | 223 | KSaveFile saveFile( mFileName ); |
224 | bool ok = false; | 224 | bool ok = false; |
225 | if ( saveFile.status() == 0 && saveFile.file() ) | 225 | if ( saveFile.status() == 0 && saveFile.file() ) |
226 | { | 226 | { |
227 | mFormat->saveAll( addressBook(), this, saveFile.file() ); | 227 | mFormat->saveAll( addressBook(), this, saveFile.file() ); |
228 | ok = saveFile.close(); | 228 | ok = saveFile.close(); |
229 | } | 229 | } |
230 | */ | 230 | */ |
231 | 231 | ||
232 | //US ToDo: write backupfile | 232 | //US ToDo: write backupfile |
233 | QFile info; | 233 | QFile info; |
234 | info.setName( mFileName ); | 234 | info.setName( mFileName ); |
235 | bool ok = info.open( IO_WriteOnly ); | 235 | bool ok = info.open( IO_WriteOnly ); |
236 | if ( ok ) { | 236 | if ( ok ) { |
237 | mFormat->saveAll( addressBook(), this, &info ); | 237 | mFormat->saveAll( addressBook(), this, &info ); |
@@ -273,35 +273,34 @@ bool ResourceFile::lock( const QString &fileName ) | |||
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 = 0;//::link( QFile::encodeName( mLockUniqueName ), | 289 | int result = ::link( QFile::encodeName( mLockUniqueName ), |
290 | // QFile::encodeName( lockName ) ); | 290 | QFile::encodeName( lockName ) ); |
291 | qDebug("lock files %s, %s needs to be fixed", mLockUniqueName.latin1(), lockName.latin1() ); | ||
292 | 291 | ||
293 | if ( result == 0 ) { | 292 | if ( result == 0 ) { |
294 | addressBook()->emitAddressBookLocked(); | 293 | addressBook()->emitAddressBookLocked(); |
295 | return true; | 294 | return true; |
296 | } | 295 | } |
297 | 296 | ||
298 | // TODO: check stat | 297 | // TODO: check stat |
299 | 298 | ||
300 | return false; | 299 | return false; |
301 | } | 300 | } |
302 | 301 | ||
303 | void ResourceFile::unlock( const QString &fileName ) | 302 | void ResourceFile::unlock( const QString &fileName ) |
304 | { | 303 | { |
305 | QString fn = fileName; | 304 | QString fn = fileName; |
306 | //US change the implementation how the lockfilename is getting created | 305 | //US change the implementation how the lockfilename is getting created |
307 | //US fn.replace( QRegExp( "/" ), "_" ); | 306 | //US fn.replace( QRegExp( "/" ), "_" ); |
@@ -329,46 +328,47 @@ void ResourceFile::setFileName( const QString &fileName ) | |||
329 | mDirWatch.startScan(); | 328 | mDirWatch.startScan(); |
330 | */ | 329 | */ |
331 | //US simulate KDirWatch event | 330 | //US simulate KDirWatch event |
332 | fileChanged(); | 331 | fileChanged(); |
333 | } | 332 | } |
334 | 333 | ||
335 | QString ResourceFile::fileName() const | 334 | QString ResourceFile::fileName() const |
336 | { | 335 | { |
337 | return mFileName; | 336 | return mFileName; |
338 | } | 337 | } |
339 | 338 | ||
340 | void ResourceFile::setFormat( const QString &format ) | 339 | void ResourceFile::setFormat( const QString &format ) |
341 | { | 340 | { |
342 | mFormatName = format; | 341 | mFormatName = format; |
343 | delete mFormat; | 342 | delete mFormat; |
344 | 343 | ||
345 | //US FormatFactory *factory = FormatFactory::self(); | 344 | FormatFactory *factory = FormatFactory::self(); |
346 | //US mFormat = factory->format( mFormatName ); | 345 | mFormat = factory->format( mFormatName ); |
347 | 346 | /*US | |
348 | //qDebug("ResourceFile::setFormat initialized with format %s ", format.latin1()); | 347 | //qDebug("ResourceFile::setFormat initialized with format %s ", format.latin1()); |
349 | if (mFormatName == "vcard") { | 348 | if (mFormatName == "vcard") { |
350 | mFormat = new VCardFormatPlugin2(); | 349 | mFormat = new VCardFormatPlugin2(); |
351 | // qDebug("ResourceFile::setFormat format %s", mFormatName.latin1()); | 350 | // qDebug("ResourceFile::setFormat format %s", mFormatName.latin1()); |
352 | } | 351 | } |
353 | else if (mFormatName == "binary") { | 352 | else if (mFormatName == "binary") { |
354 | mFormat = new BinaryFormat(); | 353 | mFormat = new BinaryFormat(); |
355 | // qDebug("ResourceFile::setFormat format %s", mFormatName.latin1()); | 354 | // qDebug("ResourceFile::setFormat format %s", mFormatName.latin1()); |
356 | } | 355 | } |
357 | else | 356 | else |
358 | qDebug("ResourceFile::setFormat format unknown !!! %s ", format.latin1()); | 357 | qDebug("ResourceFile::setFormat format unknown !!! %s ", format.latin1()); |
358 | */ | ||
359 | 359 | ||
360 | } | 360 | } |
361 | 361 | ||
362 | QString ResourceFile::format() const | 362 | QString ResourceFile::format() const |
363 | { | 363 | { |
364 | return mFormatName; | 364 | return mFormatName; |
365 | } | 365 | } |
366 | 366 | ||
367 | void ResourceFile::fileChanged() | 367 | void ResourceFile::fileChanged() |
368 | { | 368 | { |
369 | // There is a small theoretical chance that KDirWatch calls us before | 369 | // There is a small theoretical chance that KDirWatch calls us before |
370 | // we are fully constructed | 370 | // we are fully constructed |
371 | if (!addressBook()) | 371 | if (!addressBook()) |
372 | return; | 372 | return; |
373 | load(); | 373 | load(); |
374 | addressBook()->emitAddressBookChanged(); | 374 | addressBook()->emitAddressBookChanged(); |