summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/tools/pimconverter/converter.cpp22
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
@@ -240,56 +240,70 @@ bool Converter::sqliteMoveAndConvert( const QString& name, const QString& src, c
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
288void Converter::start_upgrade() 302void 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,