-rw-r--r-- | kabc/plugins/dir/resourcedir.cpp | 3 | ||||
-rw-r--r-- | kabc/plugins/file/resourcefile.cpp | 9 | ||||
-rw-r--r-- | kabc/plugins/opie/resourceopie.cpp | 4 | ||||
-rw-r--r-- | kabc/plugins/qtopia/resourceqtopia.cpp | 3 | ||||
-rw-r--r-- | kabc/plugins/sharpdtm/resourcesharpdtm.cpp | 2 |
5 files changed, 16 insertions, 5 deletions
diff --git a/kabc/plugins/dir/resourcedir.cpp b/kabc/plugins/dir/resourcedir.cpp index eccd482..fac06a1 100644 --- a/kabc/plugins/dir/resourcedir.cpp +++ b/kabc/plugins/dir/resourcedir.cpp | |||
@@ -165,113 +165,116 @@ bool ResourceDir::doOpen() | |||
165 | 165 | ||
166 | if ( file.size() == 0 ) | 166 | if ( file.size() == 0 ) |
167 | return true; | 167 | return true; |
168 | 168 | ||
169 | bool ok = mFormat->checkFormat( &file ); | 169 | bool ok = mFormat->checkFormat( &file ); |
170 | file.close(); | 170 | file.close(); |
171 | return ok; | 171 | return ok; |
172 | } | 172 | } |
173 | } | 173 | } |
174 | 174 | ||
175 | void ResourceDir::doClose() | 175 | void ResourceDir::doClose() |
176 | { | 176 | { |
177 | } | 177 | } |
178 | 178 | ||
179 | bool ResourceDir::load() | 179 | bool ResourceDir::load() |
180 | { | 180 | { |
181 | kdDebug(5700) << "ResourceDir::load(): '" << mPath << "'" << endl; | 181 | kdDebug(5700) << "ResourceDir::load(): '" << mPath << "'" << endl; |
182 | 182 | ||
183 | QDir dir( mPath ); | 183 | QDir dir( mPath ); |
184 | QStringList files = dir.entryList( QDir::Files ); | 184 | QStringList files = dir.entryList( QDir::Files ); |
185 | 185 | ||
186 | QStringList::Iterator it; | 186 | QStringList::Iterator it; |
187 | bool ok = true; | 187 | bool ok = true; |
188 | for ( it = files.begin(); it != files.end(); ++it ) { | 188 | for ( it = files.begin(); it != files.end(); ++it ) { |
189 | QFile file( mPath + "/" + (*it) ); | 189 | QFile file( mPath + "/" + (*it) ); |
190 | 190 | ||
191 | if ( !file.open( IO_ReadOnly ) ) { | 191 | if ( !file.open( IO_ReadOnly ) ) { |
192 | addressBook()->error( i18n( "Unable to open file '%1' for reading" ).arg( file.name() ) ); | 192 | addressBook()->error( i18n( "Unable to open file '%1' for reading" ).arg( file.name() ) ); |
193 | ok = false; | 193 | ok = false; |
194 | continue; | 194 | continue; |
195 | } | 195 | } |
196 | 196 | ||
197 | if ( !mFormat->loadAll( addressBook(), this, &file ) ) | 197 | if ( !mFormat->loadAll( addressBook(), this, &file ) ) |
198 | ok = false; | 198 | ok = false; |
199 | 199 | ||
200 | file.close(); | 200 | file.close(); |
201 | } | 201 | } |
202 | 202 | ||
203 | return ok; | 203 | return ok; |
204 | } | 204 | } |
205 | 205 | ||
206 | bool ResourceDir::save( Ticket *ticket ) | 206 | bool ResourceDir::save( Ticket *ticket ) |
207 | { | 207 | { |
208 | kdDebug(5700) << "ResourceDir::save(): '" << mPath << "'" << endl; | 208 | kdDebug(5700) << "ResourceDir::save(): '" << mPath << "'" << endl; |
209 | 209 | ||
210 | AddressBook::Iterator it; | 210 | AddressBook::Iterator it; |
211 | bool ok = true; | 211 | bool ok = true; |
212 | 212 | ||
213 | mDirWatch.stopScan(); | ||
214 | |||
213 | for ( it = addressBook()->begin(); it != addressBook()->end(); ++it ) { | 215 | for ( it = addressBook()->begin(); it != addressBook()->end(); ++it ) { |
214 | if ( (*it).resource() != this || !(*it).changed() ) | 216 | if ( (*it).resource() != this || !(*it).changed() ) |
215 | continue; | 217 | continue; |
216 | 218 | ||
217 | QFile file( mPath + "/" + (*it).uid() ); | 219 | QFile file( mPath + "/" + (*it).uid() ); |
218 | if ( !file.open( IO_WriteOnly ) ) { | 220 | if ( !file.open( IO_WriteOnly ) ) { |
219 | addressBook()->error( i18n( "Unable to open file '%1' for writing" ).arg( file.name() ) ); | 221 | addressBook()->error( i18n( "Unable to open file '%1' for writing" ).arg( file.name() ) ); |
220 | continue; | 222 | continue; |
221 | } | 223 | } |
222 | 224 | ||
223 | mFormat->save( *it, &file ); | 225 | mFormat->save( *it, &file ); |
224 | 226 | ||
225 | // mark as unchanged | 227 | // mark as unchanged |
226 | (*it).setChanged( false ); | 228 | (*it).setChanged( false ); |
227 | 229 | ||
228 | file.close(); | 230 | file.close(); |
229 | } | 231 | } |
232 | mDirWatch.startScan(); | ||
230 | 233 | ||
231 | delete ticket; | 234 | delete ticket; |
232 | unlock( mPath ); | 235 | unlock( mPath ); |
233 | 236 | ||
234 | return ok; | 237 | return ok; |
235 | } | 238 | } |
236 | 239 | ||
237 | bool ResourceDir::lock( const QString &path ) | 240 | bool ResourceDir::lock( const QString &path ) |
238 | { | 241 | { |
239 | kdDebug(5700) << "ResourceDir::lock()" << endl; | 242 | kdDebug(5700) << "ResourceDir::lock()" << endl; |
240 | 243 | ||
241 | QString p = path; | 244 | QString p = path; |
242 | //US change the implementation how the lockfilename is getting created | 245 | //US change the implementation how the lockfilename is getting created |
243 | //US p.replace( QRegExp("/"), "_" ); | 246 | //US p.replace( QRegExp("/"), "_" ); |
244 | //US QString lockName = locateLocal( "data", "kabc/lock/" + p + ".lock" ); | 247 | //US QString lockName = locateLocal( "data", "kabc/lock/" + p + ".lock" ); |
245 | KURL url(p); | 248 | KURL url(p); |
246 | QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); | 249 | QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); |
247 | 250 | ||
248 | 251 | ||
249 | kdDebug(5700) << "-- lock name: " << lockName << endl; | 252 | kdDebug(5700) << "-- lock name: " << lockName << endl; |
250 | 253 | ||
251 | if ( QFile::exists( lockName ) ) return false; | 254 | if ( QFile::exists( lockName ) ) return false; |
252 | 255 | ||
253 | QString lockUniqueName; | 256 | QString lockUniqueName; |
254 | lockUniqueName = p + KApplication::randomString( 8 ); | 257 | lockUniqueName = p + KApplication::randomString( 8 ); |
255 | 258 | ||
256 | url = lockUniqueName; | 259 | url = lockUniqueName; |
257 | //US mLockUniqueName = locateLocal( "data", "kabc/lock/" + lockUniqueName ); | 260 | //US mLockUniqueName = locateLocal( "data", "kabc/lock/" + lockUniqueName ); |
258 | mLockUniqueName = locateLocal( "data", "kabc/lock/" + url.fileName() ); | 261 | mLockUniqueName = locateLocal( "data", "kabc/lock/" + url.fileName() ); |
259 | 262 | ||
260 | kdDebug(5700) << "-- lock unique name: " << mLockUniqueName << endl; | 263 | kdDebug(5700) << "-- lock unique name: " << mLockUniqueName << endl; |
261 | 264 | ||
262 | // Create unique file | 265 | // Create unique file |
263 | QFile file( mLockUniqueName ); | 266 | QFile file( mLockUniqueName ); |
264 | file.open( IO_WriteOnly ); | 267 | file.open( IO_WriteOnly ); |
265 | file.close(); | 268 | file.close(); |
266 | 269 | ||
267 | // Create lock file | 270 | // Create lock file |
268 | int result = 0; | 271 | int result = 0; |
269 | #ifndef _WIN32_ | 272 | #ifndef _WIN32_ |
270 | result = ::link( QFile::encodeName( mLockUniqueName ), | 273 | result = ::link( QFile::encodeName( mLockUniqueName ), |
271 | QFile::encodeName( lockName ) ); | 274 | QFile::encodeName( lockName ) ); |
272 | #endif | 275 | #endif |
273 | if ( result == 0 ) { | 276 | if ( result == 0 ) { |
274 | addressBook()->emitAddressBookLocked(); | 277 | addressBook()->emitAddressBookLocked(); |
275 | return true; | 278 | return true; |
276 | } | 279 | } |
277 | 280 | ||
diff --git a/kabc/plugins/file/resourcefile.cpp b/kabc/plugins/file/resourcefile.cpp index da2e4d7..fa6bc49 100644 --- a/kabc/plugins/file/resourcefile.cpp +++ b/kabc/plugins/file/resourcefile.cpp | |||
@@ -159,140 +159,141 @@ Ticket *ResourceFile::requestSaveTicket() | |||
159 | bool ResourceFile::doOpen() | 159 | bool ResourceFile::doOpen() |
160 | { | 160 | { |
161 | QFile file( mFileName ); | 161 | QFile file( mFileName ); |
162 | 162 | ||
163 | if ( !file.exists() ) { | 163 | if ( !file.exists() ) { |
164 | // try to create the file | 164 | // try to create the file |
165 | bool ok = file.open( IO_WriteOnly ); | 165 | bool ok = file.open( IO_WriteOnly ); |
166 | if ( ok ) | 166 | if ( ok ) |
167 | file.close(); | 167 | file.close(); |
168 | 168 | ||
169 | return ok; | 169 | return ok; |
170 | } else { | 170 | } else { |
171 | if ( !file.open( IO_ReadWrite ) ) | 171 | if ( !file.open( IO_ReadWrite ) ) |
172 | return false; | 172 | return false; |
173 | 173 | ||
174 | if ( file.size() == 0 ) { | 174 | if ( file.size() == 0 ) { |
175 | file.close(); | 175 | file.close(); |
176 | return true; | 176 | return true; |
177 | } | 177 | } |
178 | 178 | ||
179 | bool ok = mFormat->checkFormat( &file ); | 179 | bool ok = mFormat->checkFormat( &file ); |
180 | file.close(); | 180 | file.close(); |
181 | 181 | ||
182 | return ok; | 182 | return ok; |
183 | } | 183 | } |
184 | } | 184 | } |
185 | 185 | ||
186 | void ResourceFile::doClose() | 186 | void ResourceFile::doClose() |
187 | { | 187 | { |
188 | } | 188 | } |
189 | 189 | ||
190 | bool ResourceFile::load() | 190 | bool ResourceFile::load() |
191 | { | 191 | { |
192 | 192 | ||
193 | 193 | ||
194 | QFile file( mFileName ); | 194 | QFile file( mFileName ); |
195 | if ( !file.open( IO_ReadOnly ) ) { | 195 | if ( !file.open( IO_ReadOnly ) ) { |
196 | addressBook()->error( i18n( "Unable to open file '%1'." ).arg( mFileName ) ); | 196 | addressBook()->error( i18n( "Unable to open file '%1'." ).arg( mFileName ) ); |
197 | return false; | 197 | return false; |
198 | } | 198 | } |
199 | 199 | ||
200 | // qDebug("ResourceFile::load format %s, %s", mFileName.latin1(), mFormatName.latin1()); | 200 | // qDebug("ResourceFile::load format %s, %s", mFileName.latin1(), mFormatName.latin1()); |
201 | 201 | ||
202 | return mFormat->loadAll( addressBook(), this, &file ); | 202 | return mFormat->loadAll( addressBook(), this, &file ); |
203 | } | 203 | } |
204 | 204 | ||
205 | bool ResourceFile::save( Ticket *ticket ) | 205 | bool ResourceFile::save( Ticket *ticket ) |
206 | { | 206 | { |
207 | // qDebug("ResourceFile::save format %s, %s", mFileName.latin1(), mFormatName.latin1()); | 207 | // qDebug("ResourceFile::save format %s, %s", mFileName.latin1(), mFormatName.latin1()); |
208 | 208 | ||
209 | 209 | ||
210 | // create backup file | 210 | // create backup file |
211 | QString extension = "_" + QString::number( QDate::currentDate().dayOfWeek() ); | 211 | QString extension = "_" + QString::number( QDate::currentDate().dayOfWeek() ); |
212 | 212 | ||
213 | /*US we use a simpler method to create a backupfile | 213 | /*US we use a simpler method to create a backupfile |
214 | 214 | ||
215 | (void) KSaveFile::backupFile( mFileName, QString::null | 215 | (void) KSaveFile::backupFile( mFileName, QString::null |
216 | ,extension ); | 216 | ,extension ); |
217 | 217 | ||
218 | KSaveFile saveFile( mFileName ); | 218 | KSaveFile saveFile( mFileName ); |
219 | bool ok = false; | 219 | bool ok = false; |
220 | if ( saveFile.status() == 0 && saveFile.file() ) | 220 | if ( saveFile.status() == 0 && saveFile.file() ) |
221 | { | 221 | { |
222 | mFormat->saveAll( addressBook(), this, saveFile.file() ); | 222 | mFormat->saveAll( addressBook(), this, saveFile.file() ); |
223 | ok = saveFile.close(); | 223 | ok = saveFile.close(); |
224 | } | 224 | } |
225 | */ | 225 | */ |
226 | 226 | ||
227 | //US ToDo: write backupfile | 227 | //US ToDo: write backupfile |
228 | mDirWatch.stopScan(); | ||
229 | |||
228 | QFile info; | 230 | QFile info; |
229 | info.setName( mFileName ); | 231 | info.setName( mFileName ); |
230 | bool ok = info.open( IO_WriteOnly ); | 232 | bool ok = info.open( IO_WriteOnly ); |
231 | if ( ok ) { | 233 | if ( ok ) { |
232 | mFormat->saveAll( addressBook(), this, &info ); | 234 | mFormat->saveAll( addressBook(), this, &info ); |
233 | 235 | ||
234 | info.close(); | 236 | info.close(); |
235 | ok = true; | 237 | ok = true; |
236 | } | 238 | } |
237 | else { | 239 | else { |
238 | 240 | ||
239 | } | 241 | } |
240 | 242 | ||
241 | if ( !ok ) | 243 | if ( !ok ) |
242 | addressBook()->error( i18n( "Unable to save file '%1'." ).arg( mFileName ) ); | 244 | addressBook()->error( i18n( "Unable to save file '%1'." ).arg( mFileName ) ); |
243 | 245 | ||
246 | mDirWatch.startScan(); | ||
247 | |||
244 | delete ticket; | 248 | delete ticket; |
245 | unlock( mFileName ); | 249 | unlock( mFileName ); |
246 | 250 | ||
247 | return ok; | 251 | return ok; |
248 | |||
249 | qDebug("ResourceFile::save has to be changed"); | ||
250 | return true; | ||
251 | } | 252 | } |
252 | 253 | ||
253 | bool ResourceFile::lock( const QString &fileName ) | 254 | bool ResourceFile::lock( const QString &fileName ) |
254 | { | 255 | { |
255 | 256 | ||
256 | 257 | ||
257 | QString fn = fileName; | 258 | QString fn = fileName; |
258 | 259 | ||
259 | //US change the implementation how the lockfilename is getting created | 260 | //US change the implementation how the lockfilename is getting created |
260 | //US fn.replace( QRegExp("/"), "_" ); | 261 | //US fn.replace( QRegExp("/"), "_" ); |
261 | //US QString lockName = locateLocal( "data", "kabc/lock/" + fn + ".lock" ); | 262 | //US QString lockName = locateLocal( "data", "kabc/lock/" + fn + ".lock" ); |
262 | 263 | ||
263 | KURL url(fn); | 264 | KURL url(fn); |
264 | QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); | 265 | QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); |
265 | 266 | ||
266 | 267 | ||
267 | 268 | ||
268 | if (QFile::exists( lockName )) return false; | 269 | if (QFile::exists( lockName )) return false; |
269 | 270 | ||
270 | QString lockUniqueName; | 271 | QString lockUniqueName; |
271 | lockUniqueName = fn + KApplication::randomString( 8 ); | 272 | lockUniqueName = fn + KApplication::randomString( 8 ); |
272 | 273 | ||
273 | url = lockUniqueName; | 274 | url = lockUniqueName; |
274 | //US mLockUniqueName = locateLocal( "data", "kabc/lock/" + lockUniqueName ); | 275 | //US mLockUniqueName = locateLocal( "data", "kabc/lock/" + lockUniqueName ); |
275 | mLockUniqueName = locateLocal( "data", "kabc/lock/" + url.fileName() ); | 276 | mLockUniqueName = locateLocal( "data", "kabc/lock/" + url.fileName() ); |
276 | kdDebug(5700) << "-- lock unique name: " << mLockUniqueName << endl; | 277 | kdDebug(5700) << "-- lock unique name: " << mLockUniqueName << endl; |
277 | 278 | ||
278 | // Create unique file | 279 | // Create unique file |
279 | QFile file( mLockUniqueName ); | 280 | QFile file( mLockUniqueName ); |
280 | file.open( IO_WriteOnly ); | 281 | file.open( IO_WriteOnly ); |
281 | file.close(); | 282 | file.close(); |
282 | 283 | ||
283 | // Create lock file | 284 | // Create lock file |
284 | int result = 0; | 285 | int result = 0; |
285 | #ifndef _WIN32_ | 286 | #ifndef _WIN32_ |
286 | result = ::link( QFile::encodeName( mLockUniqueName ), | 287 | result = ::link( QFile::encodeName( mLockUniqueName ), |
287 | QFile::encodeName( lockName ) ); | 288 | QFile::encodeName( lockName ) ); |
288 | #endif | 289 | #endif |
289 | if ( result == 0 ) { | 290 | if ( result == 0 ) { |
290 | addressBook()->emitAddressBookLocked(); | 291 | addressBook()->emitAddressBookLocked(); |
291 | return true; | 292 | return true; |
292 | } | 293 | } |
293 | 294 | ||
294 | // TODO: check stat | 295 | // TODO: check stat |
295 | 296 | ||
296 | return false; | 297 | return false; |
297 | } | 298 | } |
298 | 299 | ||
diff --git a/kabc/plugins/opie/resourceopie.cpp b/kabc/plugins/opie/resourceopie.cpp index 4b811e9..22237dc 100644 --- a/kabc/plugins/opie/resourceopie.cpp +++ b/kabc/plugins/opie/resourceopie.cpp | |||
@@ -166,120 +166,122 @@ void ResourceOpie::doClose() | |||
166 | { | 166 | { |
167 | qDebug("ResourceOpie::doClose: %s", fileName().latin1()); | 167 | qDebug("ResourceOpie::doClose: %s", fileName().latin1()); |
168 | 168 | ||
169 | if(mAccess) | 169 | if(mAccess) |
170 | { | 170 | { |
171 | delete mAccess; | 171 | delete mAccess; |
172 | mAccess = 0; | 172 | mAccess = 0; |
173 | } | 173 | } |
174 | // it seems so, that deletion of access deletes backend as well | 174 | // it seems so, that deletion of access deletes backend as well |
175 | //delete backend; | 175 | //delete backend; |
176 | 176 | ||
177 | return; | 177 | return; |
178 | 178 | ||
179 | } | 179 | } |
180 | 180 | ||
181 | 181 | ||
182 | bool ResourceOpie::load() | 182 | bool ResourceOpie::load() |
183 | { | 183 | { |
184 | qDebug("ResourceOpie::load: %s", fileName().latin1()); | 184 | qDebug("ResourceOpie::load: %s", fileName().latin1()); |
185 | 185 | ||
186 | bool res = false; | 186 | bool res = false; |
187 | 187 | ||
188 | OContactAccess::List::Iterator it; | 188 | OContactAccess::List::Iterator it; |
189 | OContactAccess::List allList = mAccess->allRecords(); | 189 | OContactAccess::List allList = mAccess->allRecords(); |
190 | for ( it = allList.begin(); it != allList.end(); ++it ) | 190 | for ( it = allList.begin(); it != allList.end(); ++it ) |
191 | { | 191 | { |
192 | const OContact c = (*it); | 192 | const OContact c = (*it); |
193 | 193 | ||
194 | KABC::Addressee addressee; | 194 | KABC::Addressee addressee; |
195 | 195 | ||
196 | res = mConverter->opieToAddressee( c, addressee ); | 196 | res = mConverter->opieToAddressee( c, addressee ); |
197 | 197 | ||
198 | if ( !addressee.isEmpty() && res ) | 198 | if ( !addressee.isEmpty() && res ) |
199 | { | 199 | { |
200 | addressee.setResource( this ); | 200 | addressee.setResource( this ); |
201 | addressBook()->insertAddressee( addressee ); | 201 | addressBook()->insertAddressee( addressee ); |
202 | } | 202 | } |
203 | 203 | ||
204 | } | 204 | } |
205 | 205 | ||
206 | 206 | ||
207 | return true; | 207 | return true; |
208 | } | 208 | } |
209 | 209 | ||
210 | bool ResourceOpie::save( Ticket *ticket ) | 210 | bool ResourceOpie::save( Ticket *ticket ) |
211 | { | 211 | { |
212 | qDebug("ResourceOpie::save: %s", fileName().latin1()); | 212 | qDebug("ResourceOpie::save: %s", fileName().latin1()); |
213 | 213 | ||
214 | 214 | mDirWatch.stopScan(); | |
215 | 215 | ||
216 | KABC::AddressBook::Iterator it; | 216 | KABC::AddressBook::Iterator it; |
217 | bool res; | 217 | bool res; |
218 | 218 | ||
219 | for ( it = addressBook()->begin(); it != addressBook()->end(); ++it ) { | 219 | for ( it = addressBook()->begin(); it != addressBook()->end(); ++it ) { |
220 | OContact c; | 220 | OContact c; |
221 | KABC::Addressee addressee = (*it); | 221 | KABC::Addressee addressee = (*it); |
222 | 222 | ||
223 | res = mConverter->addresseeToOpie( *it, c ); | 223 | res = mConverter->addresseeToOpie( *it, c ); |
224 | if (res == true) | 224 | if (res == true) |
225 | { | 225 | { |
226 | res = mAccess->add(c); | 226 | res = mAccess->add(c); |
227 | if (res == false) | 227 | if (res == false) |
228 | qDebug("Unable to append Contact %s", c.fullName().latin1()); | 228 | qDebug("Unable to append Contact %s", c.fullName().latin1()); |
229 | } | 229 | } |
230 | else | 230 | else |
231 | { | 231 | { |
232 | qDebug("Unable to convert Addressee %s", addressee.formattedName().latin1()); | 232 | qDebug("Unable to convert Addressee %s", addressee.formattedName().latin1()); |
233 | } | 233 | } |
234 | } | 234 | } |
235 | 235 | ||
236 | mAccess->save(); | 236 | mAccess->save(); |
237 | 237 | ||
238 | mDirWatch.startScan(); | ||
239 | |||
238 | delete ticket; | 240 | delete ticket; |
239 | unlock( fileName() ); | 241 | unlock( fileName() ); |
240 | 242 | ||
241 | return true; | 243 | return true; |
242 | 244 | ||
243 | } | 245 | } |
244 | 246 | ||
245 | bool ResourceOpie::lock( const QString &lockfileName ) | 247 | bool ResourceOpie::lock( const QString &lockfileName ) |
246 | { | 248 | { |
247 | qDebug("ResourceOpie::lock: %s", fileName().latin1()); | 249 | qDebug("ResourceOpie::lock: %s", fileName().latin1()); |
248 | 250 | ||
249 | kdDebug(5700) << "ResourceOpie::lock()" << endl; | 251 | kdDebug(5700) << "ResourceOpie::lock()" << endl; |
250 | 252 | ||
251 | QString fn = lockfileName; | 253 | QString fn = lockfileName; |
252 | 254 | ||
253 | KURL url(fn); | 255 | KURL url(fn); |
254 | QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); | 256 | QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); |
255 | 257 | ||
256 | kdDebug(5700) << "-- lock name: " << lockName << endl; | 258 | kdDebug(5700) << "-- lock name: " << lockName << endl; |
257 | 259 | ||
258 | if (QFile::exists( lockName )) | 260 | if (QFile::exists( lockName )) |
259 | { | 261 | { |
260 | qDebug("ResourceOpie::lock: lockfile %s already exists. (Delete it before continuing if nobody else is accessing the resourcefile %s)", lockName.latin1(), fileName().latin1()); | 262 | qDebug("ResourceOpie::lock: lockfile %s already exists. (Delete it before continuing if nobody else is accessing the resourcefile %s)", lockName.latin1(), fileName().latin1()); |
261 | return false; | 263 | return false; |
262 | } | 264 | } |
263 | 265 | ||
264 | QString lockUniqueName; | 266 | QString lockUniqueName; |
265 | lockUniqueName = fn + KApplication::randomString( 8 ); | 267 | lockUniqueName = fn + KApplication::randomString( 8 ); |
266 | 268 | ||
267 | url = lockUniqueName; | 269 | url = lockUniqueName; |
268 | //US mLockUniqueName = locateLocal( "data", "kabc/lock/" + lockUniqueName ); | 270 | //US mLockUniqueName = locateLocal( "data", "kabc/lock/" + lockUniqueName ); |
269 | mLockUniqueName = locateLocal( "data", "kabc/lock/" + url.fileName() ); | 271 | mLockUniqueName = locateLocal( "data", "kabc/lock/" + url.fileName() ); |
270 | kdDebug(5700) << "-- lock unique name: " << mLockUniqueName << endl; | 272 | kdDebug(5700) << "-- lock unique name: " << mLockUniqueName << endl; |
271 | 273 | ||
272 | // Create unique file | 274 | // Create unique file |
273 | QFile file( mLockUniqueName ); | 275 | QFile file( mLockUniqueName ); |
274 | file.open( IO_WriteOnly ); | 276 | file.open( IO_WriteOnly ); |
275 | file.close(); | 277 | file.close(); |
276 | 278 | ||
277 | // Create lock file | 279 | // Create lock file |
278 | int result = 0; | 280 | int result = 0; |
279 | #ifndef _WIN32_ | 281 | #ifndef _WIN32_ |
280 | result = ::link( QFile::encodeName( mLockUniqueName ), | 282 | result = ::link( QFile::encodeName( mLockUniqueName ), |
281 | QFile::encodeName( lockName ) ); | 283 | QFile::encodeName( lockName ) ); |
282 | #endif | 284 | #endif |
283 | if ( result == 0 ) { | 285 | if ( result == 0 ) { |
284 | addressBook()->emitAddressBookLocked(); | 286 | addressBook()->emitAddressBookLocked(); |
285 | return true; | 287 | return true; |
diff --git a/kabc/plugins/qtopia/resourceqtopia.cpp b/kabc/plugins/qtopia/resourceqtopia.cpp index 93a4d33..48a9f22 100644 --- a/kabc/plugins/qtopia/resourceqtopia.cpp +++ b/kabc/plugins/qtopia/resourceqtopia.cpp | |||
@@ -146,119 +146,122 @@ bool ResourceQtopia::doOpen() | |||
146 | return true; | 146 | return true; |
147 | } | 147 | } |
148 | 148 | ||
149 | void ResourceQtopia::doClose() | 149 | void ResourceQtopia::doClose() |
150 | { | 150 | { |
151 | qDebug("ResourceQtopia::doClose: %s", fileName().latin1()); | 151 | qDebug("ResourceQtopia::doClose: %s", fileName().latin1()); |
152 | 152 | ||
153 | if(mAccess) | 153 | if(mAccess) |
154 | { | 154 | { |
155 | delete mAccess; | 155 | delete mAccess; |
156 | mAccess = 0; | 156 | mAccess = 0; |
157 | } | 157 | } |
158 | // it seems so, that deletion of access deletes backend as well | 158 | // it seems so, that deletion of access deletes backend as well |
159 | //delete backend; | 159 | //delete backend; |
160 | 160 | ||
161 | return; | 161 | return; |
162 | } | 162 | } |
163 | 163 | ||
164 | bool ResourceQtopia::load() | 164 | bool ResourceQtopia::load() |
165 | { | 165 | { |
166 | qDebug("ResourceQtopia::load: %s", fileName().latin1()); | 166 | qDebug("ResourceQtopia::load: %s", fileName().latin1()); |
167 | 167 | ||
168 | AddressBookIterator it(*mAccess); | 168 | AddressBookIterator it(*mAccess); |
169 | const PimContact* contact; | 169 | const PimContact* contact; |
170 | bool res; | 170 | bool res; |
171 | 171 | ||
172 | for (contact=it.toFirst(); it.current(); ++it) | 172 | for (contact=it.toFirst(); it.current(); ++it) |
173 | { | 173 | { |
174 | contact = it.current(); | 174 | contact = it.current(); |
175 | 175 | ||
176 | KABC::Addressee addressee; | 176 | KABC::Addressee addressee; |
177 | 177 | ||
178 | res = mConverter->qtopiaToAddressee( (*contact), addressee ); | 178 | res = mConverter->qtopiaToAddressee( (*contact), addressee ); |
179 | 179 | ||
180 | if ( !addressee.isEmpty() && res ) | 180 | if ( !addressee.isEmpty() && res ) |
181 | { | 181 | { |
182 | addressee.setResource( this ); | 182 | addressee.setResource( this ); |
183 | addressBook()->insertAddressee( addressee ); | 183 | addressBook()->insertAddressee( addressee ); |
184 | } | 184 | } |
185 | } | 185 | } |
186 | 186 | ||
187 | return true; | 187 | return true; |
188 | } | 188 | } |
189 | 189 | ||
190 | bool ResourceQtopia::save( Ticket *ticket ) | 190 | bool ResourceQtopia::save( Ticket *ticket ) |
191 | { | 191 | { |
192 | qDebug("ResourceQtopia::save: %s", fileName().latin1()); | 192 | qDebug("ResourceQtopia::save: %s", fileName().latin1()); |
193 | 193 | ||
194 | mDirWatch.stopScan(); | ||
194 | 195 | ||
195 | KABC::AddressBook::Iterator it; | 196 | KABC::AddressBook::Iterator it; |
196 | bool res; | 197 | bool res; |
197 | 198 | ||
198 | for ( it = addressBook()->begin(); it != addressBook()->end(); ++it ) { | 199 | for ( it = addressBook()->begin(); it != addressBook()->end(); ++it ) { |
199 | PimContact c; | 200 | PimContact c; |
200 | KABC::Addressee addressee = (*it); | 201 | KABC::Addressee addressee = (*it); |
201 | 202 | ||
202 | res = mConverter->addresseeToQtopia( *it, c ); | 203 | res = mConverter->addresseeToQtopia( *it, c ); |
203 | if (res == true) | 204 | if (res == true) |
204 | { | 205 | { |
205 | mAccess->addContact(c); | 206 | mAccess->addContact(c); |
206 | // if (res == false) | 207 | // if (res == false) |
207 | // qDebug("Unable to append Contact %s", c.fullName().latin1()); | 208 | // qDebug("Unable to append Contact %s", c.fullName().latin1()); |
208 | } | 209 | } |
209 | else | 210 | else |
210 | { | 211 | { |
211 | qDebug("Unable to convert Addressee %s", addressee.formattedName().latin1()); | 212 | qDebug("Unable to convert Addressee %s", addressee.formattedName().latin1()); |
212 | } | 213 | } |
213 | } | 214 | } |
214 | 215 | ||
215 | // mAccess->addressBookUpdated(); | 216 | // mAccess->addressBookUpdated(); |
216 | 217 | ||
218 | mDirWatch.startScan(); | ||
219 | |||
217 | delete ticket; | 220 | delete ticket; |
218 | unlock( fileName() ); | 221 | unlock( fileName() ); |
219 | 222 | ||
220 | return true; | 223 | return true; |
221 | } | 224 | } |
222 | 225 | ||
223 | bool ResourceQtopia::lock( const QString &lockfileName ) | 226 | bool ResourceQtopia::lock( const QString &lockfileName ) |
224 | { | 227 | { |
225 | qDebug("ResourceQtopia::lock: %s", fileName().latin1()); | 228 | qDebug("ResourceQtopia::lock: %s", fileName().latin1()); |
226 | 229 | ||
227 | kdDebug(5700) << "ResourceQtopia::lock()" << endl; | 230 | kdDebug(5700) << "ResourceQtopia::lock()" << endl; |
228 | 231 | ||
229 | QString fn = lockfileName; | 232 | QString fn = lockfileName; |
230 | 233 | ||
231 | KURL url(fn); | 234 | KURL url(fn); |
232 | QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); | 235 | QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); |
233 | 236 | ||
234 | kdDebug(5700) << "-- lock name: " << lockName << endl; | 237 | kdDebug(5700) << "-- lock name: " << lockName << endl; |
235 | 238 | ||
236 | if (QFile::exists( lockName )) | 239 | if (QFile::exists( lockName )) |
237 | { | 240 | { |
238 | qDebug("ResourceOpie::lock: lockfile %s already exists. (Delete it before continuing if nobody else is accessing the resourcefile %s)", lockName.latin1(), fileName().latin1()); | 241 | qDebug("ResourceOpie::lock: lockfile %s already exists. (Delete it before continuing if nobody else is accessing the resourcefile %s)", lockName.latin1(), fileName().latin1()); |
239 | return false; | 242 | return false; |
240 | } | 243 | } |
241 | 244 | ||
242 | QString lockUniqueName; | 245 | QString lockUniqueName; |
243 | lockUniqueName = fn + KApplication::randomString( 8 ); | 246 | lockUniqueName = fn + KApplication::randomString( 8 ); |
244 | 247 | ||
245 | url = lockUniqueName; | 248 | url = lockUniqueName; |
246 | //US mLockUniqueName = locateLocal( "data", "kabc/lock/" + lockUniqueName ); | 249 | //US mLockUniqueName = locateLocal( "data", "kabc/lock/" + lockUniqueName ); |
247 | mLockUniqueName = locateLocal( "data", "kabc/lock/" + url.fileName() ); | 250 | mLockUniqueName = locateLocal( "data", "kabc/lock/" + url.fileName() ); |
248 | kdDebug(5700) << "-- lock unique name: " << mLockUniqueName << endl; | 251 | kdDebug(5700) << "-- lock unique name: " << mLockUniqueName << endl; |
249 | 252 | ||
250 | // Create unique file | 253 | // Create unique file |
251 | QFile file( mLockUniqueName ); | 254 | QFile file( mLockUniqueName ); |
252 | file.open( IO_WriteOnly ); | 255 | file.open( IO_WriteOnly ); |
253 | file.close(); | 256 | file.close(); |
254 | 257 | ||
255 | // Create lock file | 258 | // Create lock file |
256 | int result = 0; | 259 | int result = 0; |
257 | #ifndef _WIN32_ | 260 | #ifndef _WIN32_ |
258 | result = ::link( QFile::encodeName( mLockUniqueName ), | 261 | result = ::link( QFile::encodeName( mLockUniqueName ), |
259 | QFile::encodeName( lockName ) ); | 262 | QFile::encodeName( lockName ) ); |
260 | #endif | 263 | #endif |
261 | if ( result == 0 ) { | 264 | if ( result == 0 ) { |
262 | addressBook()->emitAddressBookLocked(); | 265 | addressBook()->emitAddressBookLocked(); |
263 | return true; | 266 | return true; |
264 | } | 267 | } |
diff --git a/kabc/plugins/sharpdtm/resourcesharpdtm.cpp b/kabc/plugins/sharpdtm/resourcesharpdtm.cpp index b63df0c..8a795e9 100644 --- a/kabc/plugins/sharpdtm/resourcesharpdtm.cpp +++ b/kabc/plugins/sharpdtm/resourcesharpdtm.cpp | |||
@@ -152,129 +152,131 @@ bool ResourceSharpDTM::doOpen() | |||
152 | return true; | 152 | return true; |
153 | } | 153 | } |
154 | 154 | ||
155 | void ResourceSharpDTM::doClose() | 155 | void ResourceSharpDTM::doClose() |
156 | { | 156 | { |
157 | qDebug("ResourceSharpDTM::doClose: %s", fileName().latin1()); | 157 | qDebug("ResourceSharpDTM::doClose: %s", fileName().latin1()); |
158 | 158 | ||
159 | if(mAccess) | 159 | if(mAccess) |
160 | { | 160 | { |
161 | delete mAccess; | 161 | delete mAccess; |
162 | mAccess = 0; | 162 | mAccess = 0; |
163 | } | 163 | } |
164 | // it seems so, that deletion of access deletes backend as well | 164 | // it seems so, that deletion of access deletes backend as well |
165 | //delete backend; | 165 | //delete backend; |
166 | 166 | ||
167 | return; | 167 | return; |
168 | } | 168 | } |
169 | 169 | ||
170 | bool ResourceSharpDTM::load() | 170 | bool ResourceSharpDTM::load() |
171 | { | 171 | { |
172 | qDebug("ResourceSharpDTM::load: %s", fileName().latin1()); | 172 | qDebug("ResourceSharpDTM::load: %s", fileName().latin1()); |
173 | 173 | ||
174 | bool res = false; | 174 | bool res = false; |
175 | 175 | ||
176 | CardId id; | 176 | CardId id; |
177 | 177 | ||
178 | for (bool res=mAccess->first(); res == true; res=mAccess->next()) | 178 | for (bool res=mAccess->first(); res == true; res=mAccess->next()) |
179 | { | 179 | { |
180 | id = mAccess->cardId(); | 180 | id = mAccess->cardId(); |
181 | 181 | ||
182 | KABC::Addressee addressee; | 182 | KABC::Addressee addressee; |
183 | 183 | ||
184 | res = mConverter->sharpToAddressee( id, mAccess, addressee ); | 184 | res = mConverter->sharpToAddressee( id, mAccess, addressee ); |
185 | 185 | ||
186 | if ( !addressee.isEmpty() && res ) | 186 | if ( !addressee.isEmpty() && res ) |
187 | { | 187 | { |
188 | addressee.setResource( this ); | 188 | addressee.setResource( this ); |
189 | addressBook()->insertAddressee( addressee ); | 189 | addressBook()->insertAddressee( addressee ); |
190 | } | 190 | } |
191 | } | 191 | } |
192 | 192 | ||
193 | return true; | 193 | return true; |
194 | } | 194 | } |
195 | 195 | ||
196 | bool ResourceSharpDTM::save( Ticket *ticket ) | 196 | bool ResourceSharpDTM::save( Ticket *ticket ) |
197 | { | 197 | { |
198 | qDebug("ResourceSharpDTM::save: %s", fileName().latin1()); | 198 | qDebug("ResourceSharpDTM::save: %s", fileName().latin1()); |
199 | 199 | ||
200 | mDirWatch.stopScan(); | ||
200 | 201 | ||
201 | KABC::AddressBook::Iterator it; | 202 | KABC::AddressBook::Iterator it; |
202 | bool res; | 203 | bool res; |
203 | 204 | ||
204 | for ( it = addressBook()->begin(); it != addressBook()->end(); ++it ) { | 205 | for ( it = addressBook()->begin(); it != addressBook()->end(); ++it ) { |
205 | CardId id = 0;// 0 means new card | 206 | CardId id = 0;// 0 means new card |
206 | KABC::Addressee addressee = (*it); | 207 | KABC::Addressee addressee = (*it); |
207 | 208 | ||
208 | res = mAccess->startEditCard(id); | 209 | res = mAccess->startEditCard(id); |
209 | if (res == true) | 210 | if (res == true) |
210 | { | 211 | { |
211 | res = mConverter->addresseeToSharp( *it, mAccess, id ); | 212 | res = mConverter->addresseeToSharp( *it, mAccess, id ); |
212 | if (res == true) | 213 | if (res == true) |
213 | { | 214 | { |
214 | res = mAccess->finishEditCard(&id); | 215 | res = mAccess->finishEditCard(&id); |
215 | if (res == false) | 216 | if (res == false) |
216 | qDebug("Unable to append Contact: %s", addressee.formattedName().latin1()); | 217 | qDebug("Unable to append Contact: %s", addressee.formattedName().latin1()); |
217 | } | 218 | } |
218 | else | 219 | else |
219 | { | 220 | { |
220 | qDebug("Unable to convert Addressee: %s", addressee.formattedName().latin1()); | 221 | qDebug("Unable to convert Addressee: %s", addressee.formattedName().latin1()); |
221 | mAccess->cancelEditCard(); | 222 | mAccess->cancelEditCard(); |
222 | } | 223 | } |
223 | } | 224 | } |
224 | else | 225 | else |
225 | { | 226 | { |
226 | qDebug("Unable to add new card. Addressee: %s", addressee.formattedName().latin1()); | 227 | qDebug("Unable to add new card. Addressee: %s", addressee.formattedName().latin1()); |
227 | } | 228 | } |
228 | 229 | ||
229 | } | 230 | } |
230 | 231 | ||
231 | //US mAccess->save(); | 232 | //US mAccess->save(); |
232 | 233 | ||
234 | mDirWatch.startScan(); | ||
233 | delete ticket; | 235 | delete ticket; |
234 | unlock( fileName() ); | 236 | unlock( fileName() ); |
235 | 237 | ||
236 | return true; | 238 | return true; |
237 | } | 239 | } |
238 | 240 | ||
239 | bool ResourceSharpDTM::lock( const QString &lockfileName ) | 241 | bool ResourceSharpDTM::lock( const QString &lockfileName ) |
240 | { | 242 | { |
241 | qDebug("ResourceSharpDTM::lock: %s", fileName().latin1()); | 243 | qDebug("ResourceSharpDTM::lock: %s", fileName().latin1()); |
242 | 244 | ||
243 | kdDebug(5700) << "ResourceSharpDTM::lock()" << endl; | 245 | kdDebug(5700) << "ResourceSharpDTM::lock()" << endl; |
244 | 246 | ||
245 | QString fn = lockfileName; | 247 | QString fn = lockfileName; |
246 | 248 | ||
247 | KURL url(fn); | 249 | KURL url(fn); |
248 | QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); | 250 | QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); |
249 | 251 | ||
250 | kdDebug(5700) << "-- lock name: " << lockName << endl; | 252 | kdDebug(5700) << "-- lock name: " << lockName << endl; |
251 | 253 | ||
252 | if (QFile::exists( lockName )) | 254 | if (QFile::exists( lockName )) |
253 | { | 255 | { |
254 | qDebug("ResourceSharpDTM::lock: lockfile %s already exists. (Delete it before continuing if nobody else is accessing the resourcefile %s)", lockName.latin1(), fileName()); | 256 | qDebug("ResourceSharpDTM::lock: lockfile %s already exists. (Delete it before continuing if nobody else is accessing the resourcefile %s)", lockName.latin1(), fileName()); |
255 | return false; | 257 | return false; |
256 | } | 258 | } |
257 | 259 | ||
258 | 260 | ||
259 | QString lockUniqueName; | 261 | QString lockUniqueName; |
260 | lockUniqueName = fn + KApplication::randomString( 8 ); | 262 | lockUniqueName = fn + KApplication::randomString( 8 ); |
261 | 263 | ||
262 | url = lockUniqueName; | 264 | url = lockUniqueName; |
263 | //US mLockUniqueName = locateLocal( "data", "kabc/lock/" + lockUniqueName ); | 265 | //US mLockUniqueName = locateLocal( "data", "kabc/lock/" + lockUniqueName ); |
264 | mLockUniqueName = locateLocal( "data", "kabc/lock/" + url.fileName() ); | 266 | mLockUniqueName = locateLocal( "data", "kabc/lock/" + url.fileName() ); |
265 | kdDebug(5700) << "-- lock unique name: " << mLockUniqueName << endl; | 267 | kdDebug(5700) << "-- lock unique name: " << mLockUniqueName << endl; |
266 | 268 | ||
267 | // Create unique file | 269 | // Create unique file |
268 | QFile file( mLockUniqueName ); | 270 | QFile file( mLockUniqueName ); |
269 | file.open( IO_WriteOnly ); | 271 | file.open( IO_WriteOnly ); |
270 | file.close(); | 272 | file.close(); |
271 | 273 | ||
272 | // Create lock file | 274 | // Create lock file |
273 | int result = 0; | 275 | int result = 0; |
274 | #ifndef _WIN32_ | 276 | #ifndef _WIN32_ |
275 | result = ::link( QFile::encodeName( mLockUniqueName ), | 277 | result = ::link( QFile::encodeName( mLockUniqueName ), |
276 | QFile::encodeName( lockName ) ); | 278 | QFile::encodeName( lockName ) ); |
277 | #endif | 279 | #endif |
278 | if ( result == 0 ) { | 280 | if ( result == 0 ) { |
279 | addressBook()->emitAddressBookLocked(); | 281 | addressBook()->emitAddressBookLocked(); |
280 | return true; | 282 | return true; |