From aac8188fde70fc5cfa9f44c6a80a907e44f0f1eb Mon Sep 17 00:00:00 2001 From: eilers Date: Sat, 23 Oct 2004 12:05:13 +0000 Subject: Pimconverter got a button to convert databases from sqlite 2->3. If correct implementation is confirmed, I will commit the rest.. --- (limited to 'noncore/tools') diff --git a/noncore/tools/pimconverter/converter.cpp b/noncore/tools/pimconverter/converter.cpp index e9de3c3..2cd6969 100644 --- a/noncore/tools/pimconverter/converter.cpp +++ b/noncore/tools/pimconverter/converter.cpp @@ -1,5 +1,7 @@ #include "converter.h" +#include // For "system()" command + /* OPIE */ #include #include @@ -224,3 +226,88 @@ void Converter::closeEvent( QCloseEvent *e ) } e->accept(); } + + + +void Converter::start_upgrade() +{ + odebug << "Start upgrading" << oendl; + switch( QMessageBox::warning( this, "Pim-Converter", + "Are you really sure that you\n" + "want to convert your database from\n" + "sqlite V2 to sqlite V3?", + QMessageBox::Ok | QMessageBox::Default, + QMessageBox::Abort | QMessageBox::Escape )) { + + case QMessageBox::Abort: // Abort clicked or Escape pressed + // abort + return; + break; + } + odebug << "Checking whether sqlite is installed" << oendl; + if ( system( "which sqlite" ) != 0 ){ + QMessageBox::critical( this, "Pim-Converter", + QString("An internal error occurred:\n") + + "sqlite was not accessible!\n"+ + "Please correct the PATH or install \n" + + "this packages!" ); + return; + } + if ( system( "which sqlite3" ) != 0 ){ + QMessageBox::critical( this, "Pim-Converter", + QString("An internal error occurred:\n") + + "sqlite3 was not accessible!\n"+ + "Please correct the PATH or install \n" + + "this packages!" ); + return; + } + if ( QFile::exists( "~/Applications/addressbook/addressbook.db" ) + && !QFile::exists( "~/Applications/addressbook/addressbook.db_v2" ) ){ + odebug << "Executing conversion commands" << oendl; + QString addr_convert_string = "cd ~/Applications/addressbook/;cp addressbook.db addressbook.db_v2;sqlite addressbook.db_v2 .dump | sqlite3 addressbook.db"; + odebug << "1. Addressbook Command:" << addr_convert_string << oendl; + if ( system( addr_convert_string ) != 0 ){ + QMessageBox::critical( this, "Pim-Converter", + QString("An internal error occurred:\n") + + "Converting the addressbook command was impossible!\n"+ + "Executed the following command:\n" + + addr_convert_string ); + return; + } + } + if ( QFile::exists( "~/Applications/datebook/datebook.db" ) + && !QFile::exists( "~/Applications/datebook/datebook.db_v2" ) ){ + QString dateb_convert_string = "cd ~/Applications/datebook/;cp datebook.db datebook.db_v2;sqlite datebook.db_v2 .dump | sqlite3 datebook.db"; + odebug << "2. Datebook Command" << dateb_convert_string << oendl; + if ( system( dateb_convert_string ) != 0 ){ + QMessageBox::critical( this, "Pim-Converter", + QString("An internal error occurred:\n") + + "Converting the datebook command was impossible!\n"+ + "Executed the following command:\n" + + dateb_convert_string ); + return; + } + } + + if ( QFile::exists( "~/Applications/todolist/todolist.db" ) + && !QFile::exists( "~/Applications/todolist/todolist.db_v2" ) ){ + QString todo_convert_string = "cd ~/Applications/todolist/;cp todolist.db todolist.db_v2;sqlite todolist.db_v2 .dump | sqlite3 todolist.db"; + odebug << "3. Todolist Command:" << todo_convert_string << oendl; + if ( system( todo_convert_string ) != 0 ){ + QMessageBox::critical( this, "Pim-Converter", + QString("An internal error occurred:\n") + + "Converting the todolist command was impossible!\n"+ + "Executed the following command:\n" + + todo_convert_string ); + return; + } + } + + QMessageBox::information( this, "Pim-Converter", + "Conversion is finished!", + "&OK", NULL, NULL, + 0, // Enter == button 0 + 0 ); + + +} diff --git a/noncore/tools/pimconverter/converter.h b/noncore/tools/pimconverter/converter.h index 344562a..9d75d79 100755 --- a/noncore/tools/pimconverter/converter.h +++ b/noncore/tools/pimconverter/converter.h @@ -12,6 +12,7 @@ public: // Slots defined in the ui-description file void start_conversion(); + void start_upgrade(); void selectedDatabase( int num ); void selectedDestFormat( int num ); void selectedSourceFormat( int num ); @@ -22,6 +23,7 @@ private: // Caution: // The order and value of the following enums must be regarding // the predefinition in the UI-File !! + // If you don't understand what I am talking about: Keep your fingers away!! enum DataBases{ ADDRESSBOOK = 0, TODOLIST = 1, diff --git a/noncore/tools/pimconverter/converter_base.ui b/noncore/tools/pimconverter/converter_base.ui index a5b22c9..b519f2e 100644 --- a/noncore/tools/pimconverter/converter_base.ui +++ b/noncore/tools/pimconverter/converter_base.ui @@ -11,8 +11,8 @@ 0 0 - 269 - 324 + 308 + 323 @@ -57,6 +57,17 @@ 2 + QPushButton + + name + PushButton2 + + + text + Upgrade to SQLite3 + + + QGroupBox name @@ -66,14 +77,20 @@ title Select Database: + + layoutMargin + + + layoutSpacing + margin - 11 + 4 spacing - 6 + 2 QComboBox @@ -112,14 +129,20 @@ title Source/Destination: + + layoutMargin + + + layoutSpacing + margin - 11 + 4 spacing - 6 + 2 QLabel @@ -193,14 +216,20 @@ title Config: + + layoutMargin + + + layoutSpacing + margin - 11 + 4 spacing - 6 + 4 QCheckBox @@ -225,14 +254,20 @@ title Progress: + + layoutMargin + + + layoutSpacing + margin - 11 + 4 spacing - 6 + 2 QProgressBar @@ -283,9 +318,16 @@ converter_base selectedDestFormat(int) + + PushButton2 + clicked() + converter_base + start_upgrade() + selectedDatabase(int) selectedDestFormat(int) selectedSourceFormat(int) start_conversion() + start_upgrade() -- cgit v0.9.0.2