-rw-r--r-- | noncore/tools/pimconverter/converter.cpp | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/noncore/tools/pimconverter/converter.cpp b/noncore/tools/pimconverter/converter.cpp index e8bd475..d92f382 100644 --- a/noncore/tools/pimconverter/converter.cpp +++ b/noncore/tools/pimconverter/converter.cpp | |||
@@ -204,128 +204,142 @@ void Converter::start_conversion(){ | |||
204 | case DATEBOOK: | 204 | case DATEBOOK: |
205 | delete static_cast<ODateBookAccess*> (sourceDB); | 205 | delete static_cast<ODateBookAccess*> (sourceDB); |
206 | delete static_cast<ODateBookAccess*> (destDB); | 206 | delete static_cast<ODateBookAccess*> (destDB); |
207 | break; | 207 | break; |
208 | default: | 208 | default: |
209 | owarn << "Unknown database selected (" << m_selectedDatabase << ")" << oendl; | 209 | owarn << "Unknown database selected (" << m_selectedDatabase << ")" << oendl; |
210 | return; | 210 | return; |
211 | } | 211 | } |
212 | 212 | ||
213 | 213 | ||
214 | owarn << "Conversion is finished and needed " << t.elapsed() << " ms !" << oendl; | 214 | owarn << "Conversion is finished and needed " << t.elapsed() << " ms !" << oendl; |
215 | } | 215 | } |
216 | 216 | ||
217 | void Converter::closeEvent( QCloseEvent *e ) | 217 | void Converter::closeEvent( QCloseEvent *e ) |
218 | { | 218 | { |
219 | 219 | ||
220 | /* Due to the fact that we don't have multitasking here, this | 220 | /* Due to the fact that we don't have multitasking here, this |
221 | * critical handling don't make sense, but the future.. | 221 | * critical handling don't make sense, but the future.. |
222 | */ | 222 | */ |
223 | if ( m_criticalState ){ | 223 | if ( m_criticalState ){ |
224 | e->ignore(); | 224 | e->ignore(); |
225 | return; | 225 | return; |
226 | } | 226 | } |
227 | e->accept(); | 227 | e->accept(); |
228 | } | 228 | } |
229 | 229 | ||
230 | bool Converter::sqliteMoveAndConvert( const QString& name, const QString& src, const QString &dest ) | 230 | bool Converter::sqliteMoveAndConvert( const QString& name, const QString& src, const QString &dest ) |
231 | { | 231 | { |
232 | 232 | ||
233 | QMessageBox::information( this, tr( "Pim-Converter" ), | 233 | QMessageBox::information( this, tr( "Pim-Converter" ), |
234 | tr( "<qt>Starting to convert the database for %1</qt>" ).arg( name ) ); | 234 | tr( "<qt>Starting to convert the database for %1</qt>" ).arg( name ) ); |
235 | 235 | ||
236 | 236 | ||
237 | bool error = false; | 237 | bool error = false; |
238 | QString cmd; | 238 | QString cmd; |
239 | if (!QFile::exists( src ) ) { | 239 | if (!QFile::exists( src ) ) { |
240 | cmd = tr( "No SQLite2 database could be found!" ); | 240 | cmd = tr( "No SQLite2 database could be found!" ); |
241 | error = true; | 241 | error = true; |
242 | } | 242 | } |
243 | 243 | ||
244 | if( QFile::exists( dest ) ) { | 244 | if( QFile::exists( dest ) ) { |
245 | cmd = tr( "The database is already converted!" ); | 245 | cmd = tr( "The database is already converted!" ); |
246 | error = true; | 246 | error = true; |
247 | } | 247 | } |
248 | 248 | ||
249 | 249 | ||
250 | if ( error ){ | 250 | if ( error ){ |
251 | QMessageBox::critical( this, tr("Pim-Converter"), | 251 | QMessageBox::critical( this, tr("Pim-Converter"), |
252 | tr("<qt>Conversion not possible: \n" | 252 | tr("<qt>Conversion not possible: <br>" |
253 | "Problem: %1</qt>").arg(cmd) ); | 253 | "Problem: %1</qt>").arg(cmd) ); |
254 | return error; | 254 | return error; |
255 | } | 255 | } |
256 | 256 | ||
257 | 257 | ||
258 | /* | 258 | /* |
259 | * Move it over | 259 | * Move it over |
260 | */ | 260 | */ |
261 | cmd = "mv " + Global::shellQuote(src) + " " + Global::shellQuote(dest); | 261 | cmd = "mv " + Global::shellQuote(src) + " " + Global::shellQuote(dest); |
262 | if( ::system( cmd ) != 0 ){ | 262 | if( ::system( cmd ) != 0 ){ |
263 | error = true; | 263 | error = true; |
264 | } | 264 | } |
265 | 265 | ||
266 | 266 | ||
267 | /* | 267 | /* |
268 | * Convert it | 268 | * Convert it |
269 | */ | 269 | */ |
270 | if ( !error ){ | 270 | if ( !error ){ |
271 | cmd = "sqlite " + Global::shellQuote(dest) + " .dump | sqlite3 " + Global::shellQuote(src); | 271 | cmd = "sqlite " + Global::shellQuote(dest) + " .dump | sqlite3 " + Global::shellQuote(src); |
272 | if ( ::system( cmd ) != 0 ){ | 272 | if ( ::system( cmd ) != 0 ){ |
273 | error = true; | 273 | error = true; |
274 | } | 274 | } |
275 | } | 275 | } |
276 | 276 | ||
277 | |||
278 | /* | ||
279 | * Check whether conversion really worked. If not, move old database back to recover it | ||
280 | */ | ||
281 | if ( !QFile::exists( src ) ){ | ||
282 | cmd = "mv " + Global::shellQuote(dest) + " " + Global::shellQuote(src); | ||
283 | if ( ::system( cmd ) != 0 ){ | ||
284 | } | ||
285 | error = true; | ||
286 | cmd = "Database-Format is not V2!?"; | ||
287 | } | ||
288 | |||
277 | if ( error ){ | 289 | if ( error ){ |
278 | QMessageBox::critical( this, tr("Pim-Converter"), | 290 | QMessageBox::critical( this, tr("Pim-Converter"), |
279 | tr("<qt>An internal error occurred: " | 291 | tr("<qt>An internal error occurred: <br>" |
280 | "Converting the database was impossible! " | 292 | "Converting the database was impossible! <br>" |
281 | "Command: '%1' </qt>").arg(cmd) ); | 293 | "Command/Reason: '%1' </qt>").arg(cmd) ); |
282 | 294 | ||
283 | } | 295 | } |
296 | |||
297 | |||
284 | } | 298 | } |
285 | 299 | ||
286 | 300 | ||
287 | 301 | ||
288 | void Converter::start_upgrade() | 302 | void Converter::start_upgrade() |
289 | { | 303 | { |
290 | odebug << "Start upgrading" << oendl; | 304 | odebug << "Start upgrading" << oendl; |
291 | switch( QMessageBox::warning( this, tr("Pim-Converter"), | 305 | switch( QMessageBox::warning( this, tr("Pim-Converter"), |
292 | tr("<qt>Are you really sure that you " | 306 | tr("<qt>Are you really sure that you " |
293 | "want to convert your database from " | 307 | "want to convert your database from " |
294 | "sqlite V2 to sqlite V3?</qt>"), | 308 | "sqlite V2 to sqlite V3?</qt>"), |
295 | QMessageBox::Ok | QMessageBox::Default, | 309 | QMessageBox::Ok | QMessageBox::Default, |
296 | QMessageBox::Abort | QMessageBox::Escape )) { | 310 | QMessageBox::Abort | QMessageBox::Escape )) { |
297 | 311 | ||
298 | case QMessageBox::Abort: // Abort clicked or Escape pressed | 312 | case QMessageBox::Abort: // Abort clicked or Escape pressed |
299 | // abort | 313 | // abort |
300 | return; | 314 | return; |
301 | break; | 315 | break; |
302 | } | 316 | } |
303 | odebug << "Checking whether sqlite is installed" << oendl; | 317 | odebug << "Checking whether sqlite is installed" << oendl; |
304 | if ( system( "which sqlite" ) != 0 ){ | 318 | if ( system( "which sqlite" ) != 0 ){ |
305 | QMessageBox::critical( this, tr("Pim-Converter"), | 319 | QMessageBox::critical( this, tr("Pim-Converter"), |
306 | tr("<qt>An internal error occurred: " | 320 | tr("<qt>An internal error occurred: " |
307 | "sqlite was not accessible! " | 321 | "sqlite was not accessible! " |
308 | "Please correct the PATH or install " | 322 | "Please correct the PATH or install " |
309 | "this packages!</qt>") ); | 323 | "this packages!</qt>") ); |
310 | return; | 324 | return; |
311 | } | 325 | } |
312 | if ( system( "which sqlite3" ) != 0 ){ | 326 | if ( system( "which sqlite3" ) != 0 ){ |
313 | QMessageBox::critical( this, tr("Pim-Converter"), | 327 | QMessageBox::critical( this, tr("Pim-Converter"), |
314 | tr("<qt>An internal error occurred: " | 328 | tr("<qt>An internal error occurred: " |
315 | "sqlite3 was not accessible! " | 329 | "sqlite3 was not accessible! " |
316 | "Please correct the PATH or install " | 330 | "Please correct the PATH or install " |
317 | "this packages!</qt>") ); | 331 | "this packages!</qt>") ); |
318 | return; | 332 | return; |
319 | } | 333 | } |
320 | 334 | ||
321 | QString src, dest; | 335 | QString src, dest; |
322 | bool error = false; | 336 | bool error = false; |
323 | 337 | ||
324 | src = Global::applicationFileName("addressbook", "addressbook.db" ); | 338 | src = Global::applicationFileName("addressbook", "addressbook.db" ); |
325 | dest = Global::applicationFileName("addressbook", "addressbook.db_v2" ); | 339 | dest = Global::applicationFileName("addressbook", "addressbook.db_v2" ); |
326 | error = sqliteMoveAndConvert( "Addressbook", src, dest ); | 340 | error = sqliteMoveAndConvert( "Addressbook", src, dest ); |
327 | 341 | ||
328 | src = Global::applicationFileName("datebook", "datebook.db" ); | 342 | src = Global::applicationFileName("datebook", "datebook.db" ); |
329 | dest = Global::applicationFileName("datebook", "datebook.db_v2" ); | 343 | dest = Global::applicationFileName("datebook", "datebook.db_v2" ); |
330 | error = sqliteMoveAndConvert( "Datebook", src, dest ); | 344 | error = sqliteMoveAndConvert( "Datebook", src, dest ); |
331 | 345 | ||