-rw-r--r-- | kabc/plugins/opie/resourceopie.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/kabc/plugins/opie/resourceopie.cpp b/kabc/plugins/opie/resourceopie.cpp index a4f8d8a..3b2a6b7 100644 --- a/kabc/plugins/opie/resourceopie.cpp +++ b/kabc/plugins/opie/resourceopie.cpp | |||
@@ -126,193 +126,194 @@ Ticket *ResourceOpie::requestSaveTicket() | |||
126 | { | 126 | { |
127 | kdDebug(5700) << "ResourceOpie::requestSaveTicket()" << endl; | 127 | kdDebug(5700) << "ResourceOpie::requestSaveTicket()" << endl; |
128 | 128 | ||
129 | if ( !addressBook() ) return 0; | 129 | if ( !addressBook() ) return 0; |
130 | 130 | ||
131 | if ( !lock( mFileName ) ) { | 131 | if ( !lock( mFileName ) ) { |
132 | kdDebug(5700) << "ResourceOpie::requestSaveTicket(): Unable to lock file '" | 132 | kdDebug(5700) << "ResourceOpie::requestSaveTicket(): Unable to lock file '" |
133 | << mFileName << "'" << endl; | 133 | << mFileName << "'" << endl; |
134 | return 0; | 134 | return 0; |
135 | } | 135 | } |
136 | return createTicket( this ); | 136 | return createTicket( this ); |
137 | } | 137 | } |
138 | 138 | ||
139 | 139 | ||
140 | bool ResourceOpie::doOpen() | 140 | bool ResourceOpie::doOpen() |
141 | { | 141 | { |
142 | // qDebug("ResourceOpie::doOpen() %s", mFileName.latin1()); | 142 | // qDebug("ResourceOpie::doOpen() %s", mFileName.latin1()); |
143 | /*US | 143 | /*US |
144 | QFile file( mFileName ); | 144 | QFile file( mFileName ); |
145 | 145 | ||
146 | if ( !file.exists() ) { | 146 | if ( !file.exists() ) { |
147 | // try to create the file | 147 | // try to create the file |
148 | bool ok = file.open( IO_WriteOnly ); | 148 | bool ok = file.open( IO_WriteOnly ); |
149 | if ( ok ) | 149 | if ( ok ) |
150 | file.close(); | 150 | file.close(); |
151 | 151 | ||
152 | return ok; | 152 | return ok; |
153 | } else { | 153 | } else { |
154 | if ( !file.open( IO_ReadWrite ) ) | 154 | if ( !file.open( IO_ReadWrite ) ) |
155 | return false; | 155 | return false; |
156 | 156 | ||
157 | if ( file.size() == 0 ) { | 157 | if ( file.size() == 0 ) { |
158 | file.close(); | 158 | file.close(); |
159 | return true; | 159 | return true; |
160 | } | 160 | } |
161 | 161 | ||
162 | //US bool ok = mFormat->checkFormat( &file ); | 162 | //US bool ok = mFormat->checkFormat( &file ); |
163 | bool ok = true; | 163 | bool ok = true; |
164 | 164 | ||
165 | file.close(); | 165 | file.close(); |
166 | 166 | ||
167 | return ok; | 167 | return ok; |
168 | } | 168 | } |
169 | */ | 169 | */ |
170 | qDebug("ResourceOpie::doOpen() has to be fixed - %s", mFileName.latin1()); | 170 | qDebug("ResourceOpie::doOpen() has to be fixed - %s", mFileName.latin1()); |
171 | return true; | 171 | return true; |
172 | } | 172 | } |
173 | 173 | ||
174 | void ResourceOpie::doClose() | 174 | void ResourceOpie::doClose() |
175 | { | 175 | { |
176 | // qDebug("ResourceOpie::doClose() %s", mFileName.latin1()); | 176 | // qDebug("ResourceOpie::doClose() %s", mFileName.latin1()); |
177 | } | 177 | } |
178 | 178 | ||
179 | bool ResourceOpie::load() | 179 | bool ResourceOpie::load() |
180 | { | 180 | { |
181 | // qDebug("ResourceOpie::load() %s", mFileName.latin1()); | 181 | // qDebug("ResourceOpie::load() %s", mFileName.latin1()); |
182 | kdDebug(5700) << "ResourceOpie::load(): '" << mFileName << "'" << endl; | 182 | kdDebug(5700) << "ResourceOpie::load(): '" << mFileName << "'" << endl; |
183 | 183 | ||
184 | qDebug("ResourceOpie::load: Try to load file() %s", mFileName.latin1()); | 184 | qDebug("ResourceOpie::load: Try to load file() %s", mFileName.latin1()); |
185 | 185 | ||
186 | OContactAccessBackend_XML* backend = new OContactAccessBackend_XML( "KDEPim/Pi", mFileName ); | 186 | OContactAccessBackend_XML* backend = new OContactAccessBackend_XML( "KDEPim/Pi", mFileName ); |
187 | OContactAccess* access = new OContactAccess("KDEPim/Pi", 0l, backend, false); | 187 | OContactAccess* access = new OContactAccess("KDEPim/Pi", 0l, backend, false); |
188 | 188 | ||
189 | if ( !access ) { | 189 | if ( !access ) { |
190 | qDebug("Unable to load file() %s", mFileName.latin1()); | 190 | qDebug("Unable to load file() %s", mFileName.latin1()); |
191 | addressBook()->error( i18n( "Unable to load file '%1'." ).arg( mFileName ) ); | 191 | addressBook()->error( i18n( "Unable to load file '%1'." ).arg( mFileName ) ); |
192 | return false; | 192 | return false; |
193 | } | 193 | } |
194 | 194 | ||
195 | access -> setReadAhead( 32 ); // Use ReadAhead-Cache if available | 195 | access -> setReadAhead( 32 ); // Use ReadAhead-Cache if available |
196 | 196 | ||
197 | if (mConverter == 0) | 197 | if (mConverter == 0) |
198 | mConverter = new OpieConverter(); | 198 | mConverter = new OpieConverter(); |
199 | 199 | ||
200 | 200 | ||
201 | OContactAccess::List::Iterator it; | 201 | OContactAccess::List::Iterator it; |
202 | OContactAccess::List allList = access->allRecords(); | 202 | OContactAccess::List allList = access->allRecords(); |
203 | bool res = false; | 203 | bool res = false; |
204 | for ( it = allList.begin(); it != allList.end(); ++it ) | 204 | for ( it = allList.begin(); it != allList.end(); ++it ) |
205 | { | 205 | { |
206 | OContact c = (*it); | 206 | OContact c = (*it); |
207 | 207 | ||
208 | KABC::Addressee addressee; | 208 | KABC::Addressee addressee; |
209 | 209 | ||
210 | res = mConverter->opieToAddressee( c, addressee ); | 210 | res = mConverter->opieToAddressee( c, addressee ); |
211 | 211 | ||
212 | if ( !addressee.isEmpty() && res ) | 212 | if ( !addressee.isEmpty() && res ) |
213 | { | 213 | { |
214 | addressee.setResource( this ); | 214 | addressee.setResource( this ); |
215 | addressBook()->insertAddressee( addressee ); | 215 | addressBook()->insertAddressee( addressee ); |
216 | } | 216 | } |
217 | 217 | ||
218 | // qDebug("found %s", c.fullName().latin1()); | 218 | // qDebug("found %s", c.fullName().latin1()); |
219 | } | 219 | } |
220 | 220 | ||
221 | delete access; | 221 | delete access; |
222 | delete backend; | 222 | // it seems so, that deletion of access deletes backend as well |
223 | //delete backend; | ||
223 | 224 | ||
224 | return true; | 225 | return true; |
225 | } | 226 | } |
226 | 227 | ||
227 | bool ResourceOpie::save( Ticket *ticket ) | 228 | bool ResourceOpie::save( Ticket *ticket ) |
228 | { | 229 | { |
229 | qDebug("ResourceOpie::save() has to be fixed - %s", mFileName.latin1()); | 230 | qDebug("ResourceOpie::save() has to be fixed - %s", mFileName.latin1()); |
230 | /*US | 231 | /*US |
231 | 232 | ||
232 | qDebug("ResourceOpie::save %s", mFileName.latin1()); | 233 | qDebug("ResourceOpie::save %s", mFileName.latin1()); |
233 | kdDebug(5700) << "ResourceOpie::save()" << endl; | 234 | kdDebug(5700) << "ResourceOpie::save()" << endl; |
234 | 235 | ||
235 | // create backup file | 236 | // create backup file |
236 | QString extension = "_" + QString::number( QDate::currentDate().dayOfWeek() ); | 237 | QString extension = "_" + QString::number( QDate::currentDate().dayOfWeek() ); |
237 | */ | 238 | */ |
238 | /*US we use a simpler method to create a backupfile | 239 | /*US we use a simpler method to create a backupfile |
239 | 240 | ||
240 | (void) KSaveFile::backupFile( mFileName, QString::null | 241 | (void) KSaveFile::backupFile( mFileName, QString::null |
241 | ,extension ); | 242 | ,extension ); |
242 | 243 | ||
243 | KSaveFile saveFile( mFileName ); | 244 | KSaveFile saveFile( mFileName ); |
244 | bool ok = false; | 245 | bool ok = false; |
245 | if ( saveFile.status() == 0 && saveFile.file() ) | 246 | if ( saveFile.status() == 0 && saveFile.file() ) |
246 | { | 247 | { |
247 | mFormat->saveAll( addressBook(), this, saveFile.file() ); | 248 | mFormat->saveAll( addressBook(), this, saveFile.file() ); |
248 | ok = saveFile.close(); | 249 | ok = saveFile.close(); |
249 | } | 250 | } |
250 | */ | 251 | */ |
251 | /*US | 252 | /*US |
252 | //US ToDo: write backupfile | 253 | //US ToDo: write backupfile |
253 | QFile info; | 254 | QFile info; |
254 | info.setName( mFileName ); | 255 | info.setName( mFileName ); |
255 | bool ok = info.open( IO_WriteOnly ); | 256 | bool ok = info.open( IO_WriteOnly ); |
256 | if ( ok ) { | 257 | if ( ok ) { |
257 | //US mFormat->saveAll( addressBook(), this, &info ); | 258 | //US mFormat->saveAll( addressBook(), this, &info ); |
258 | 259 | ||
259 | info.close(); | 260 | info.close(); |
260 | ok = true; | 261 | ok = true; |
261 | } | 262 | } |
262 | else { | 263 | else { |
263 | 264 | ||
264 | } | 265 | } |
265 | 266 | ||
266 | if ( !ok ) | 267 | if ( !ok ) |
267 | addressBook()->error( i18n( "Unable to save file '%1'." ).arg( mFileName ) ); | 268 | addressBook()->error( i18n( "Unable to save file '%1'." ).arg( mFileName ) ); |
268 | 269 | ||
269 | delete ticket; | 270 | delete ticket; |
270 | unlock( mFileName ); | 271 | unlock( mFileName ); |
271 | 272 | ||
272 | return ok; | 273 | return ok; |
273 | 274 | ||
274 | qDebug("ResourceOpie::save has to be changed"); | 275 | qDebug("ResourceOpie::save has to be changed"); |
275 | */ | 276 | */ |
276 | return true; | 277 | return true; |
277 | 278 | ||
278 | } | 279 | } |
279 | 280 | ||
280 | bool ResourceOpie::lock( const QString &fileName ) | 281 | bool ResourceOpie::lock( const QString &fileName ) |
281 | { | 282 | { |
282 | qDebug("ResourceOpie::lock() has to be fixed - %s", mFileName.latin1()); | 283 | qDebug("ResourceOpie::lock() has to be fixed - %s", mFileName.latin1()); |
283 | 284 | ||
284 | /*US | 285 | /*US |
285 | // qDebug("ResourceOpie::lock() %s", fileName.latin1()); | 286 | // qDebug("ResourceOpie::lock() %s", fileName.latin1()); |
286 | kdDebug(5700) << "ResourceOpie::lock()" << endl; | 287 | kdDebug(5700) << "ResourceOpie::lock()" << endl; |
287 | 288 | ||
288 | QString fn = fileName; | 289 | QString fn = fileName; |
289 | 290 | ||
290 | //US change the implementation how the lockfilename is getting created | 291 | //US change the implementation how the lockfilename is getting created |
291 | //US fn.replace( QRegExp("/"), "_" ); | 292 | //US fn.replace( QRegExp("/"), "_" ); |
292 | //US QString lockName = locateLocal( "data", "kabc/lock/" + fn + ".lock" ); | 293 | //US QString lockName = locateLocal( "data", "kabc/lock/" + fn + ".lock" ); |
293 | 294 | ||
294 | KURL url(fn); | 295 | KURL url(fn); |
295 | QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); | 296 | QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); |
296 | 297 | ||
297 | kdDebug(5700) << "-- lock name: " << lockName << endl; | 298 | kdDebug(5700) << "-- lock name: " << lockName << endl; |
298 | 299 | ||
299 | if (QFile::exists( lockName )) return false; | 300 | if (QFile::exists( lockName )) return false; |
300 | 301 | ||
301 | QString lockUniqueName; | 302 | QString lockUniqueName; |
302 | lockUniqueName = fn + KApplication::randomString( 8 ); | 303 | lockUniqueName = fn + KApplication::randomString( 8 ); |
303 | 304 | ||
304 | url = lockUniqueName; | 305 | url = lockUniqueName; |
305 | //US mLockUniqueName = locateLocal( "data", "kabc/lock/" + lockUniqueName ); | 306 | //US mLockUniqueName = locateLocal( "data", "kabc/lock/" + lockUniqueName ); |
306 | mLockUniqueName = locateLocal( "data", "kabc/lock/" + url.fileName() ); | 307 | mLockUniqueName = locateLocal( "data", "kabc/lock/" + url.fileName() ); |
307 | kdDebug(5700) << "-- lock unique name: " << mLockUniqueName << endl; | 308 | kdDebug(5700) << "-- lock unique name: " << mLockUniqueName << endl; |
308 | 309 | ||
309 | // Create unique file | 310 | // Create unique file |
310 | QFile file( mLockUniqueName ); | 311 | QFile file( mLockUniqueName ); |
311 | file.open( IO_WriteOnly ); | 312 | file.open( IO_WriteOnly ); |
312 | file.close(); | 313 | file.close(); |
313 | 314 | ||
314 | // Create lock file | 315 | // Create lock file |
315 | int result = ::link( QFile::encodeName( mLockUniqueName ), | 316 | int result = ::link( QFile::encodeName( mLockUniqueName ), |
316 | QFile::encodeName( lockName ) ); | 317 | QFile::encodeName( lockName ) ); |
317 | 318 | ||
318 | if ( result == 0 ) { | 319 | if ( result == 0 ) { |