-rw-r--r-- | noncore/tools/pimconverter/converter.cpp | 29 | ||||
-rwxr-xr-x | noncore/tools/pimconverter/converter.h | 3 | ||||
-rw-r--r-- | noncore/tools/pimconverter/converter.pro | 5 | ||||
-rw-r--r-- | noncore/tools/pimconverter/converter_base.ui | 2 |
4 files changed, 13 insertions, 26 deletions
diff --git a/noncore/tools/pimconverter/converter.cpp b/noncore/tools/pimconverter/converter.cpp index ded59b6..e9de3c3 100644 --- a/noncore/tools/pimconverter/converter.cpp +++ b/noncore/tools/pimconverter/converter.cpp @@ -1,239 +1,226 @@ #include "converter.h" /* OPIE */ -#include <qpe/qpeapplication.h> - +#include <opie2/oapplicationfactory.h> #include <opie2/odebug.h> #include <opie2/opimglobal.h> // Include SQL related header files #define __USE_SQL #include <opie2/opimaccessfactory.h> /* QT */ #include <qdatetime.h> #include <qprogressbar.h> #include <qcombobox.h> #include <qcheckbox.h> #include <qmessagebox.h> +OPIE_EXPORT_APP( Opie::Core::OApplicationFactory<Converter> ) + using namespace Opie; using namespace Pim; -Converter::Converter(): +Converter::Converter(QWidget *p, const char* n, WFlags fl): + converter_base( p, n, fl ), m_selectedDatabase( ADDRESSBOOK ), m_selectedSourceFormat( XML ), m_selectedDestFormat( SQL ), m_criticalState( false ) { m_dataBaseSelector -> setCurrentItem( m_selectedDatabase ); m_sourceFormatSelector -> setCurrentItem( m_selectedSourceFormat ); m_destFormatSelector -> setCurrentItem( m_selectedDestFormat ); m_eraseDB -> setChecked( true ); // Default erase on copy } void Converter::selectedDatabase( int num ) { m_selectedDatabase = num; } void Converter::selectedDestFormat( int num ) { m_selectedDestFormat = num; } void Converter::selectedSourceFormat( int num ) { m_selectedSourceFormat = num; } void Converter::start_conversion(){ // Creating backends to the requested databases.. OPimBase* sourceDB; OPimBase* destDB; odebug << "SourceFormat: " << m_selectedSourceFormat << oendl; odebug << "DestFormat: " << m_selectedDestFormat << oendl; if ( m_selectedSourceFormat == m_selectedDestFormat ){ - + QMessageBox::warning( this, "PimConverter", tr( "It is not a good idea to use\n" ) +tr( "the same source and destformat !" ), - tr( "Ok" ) ); + tr( "Ok" ) ); return; } switch( m_selectedSourceFormat ){ case XML: odebug << "XMLSourceDB = " << m_selectedDatabase << "" << oendl; switch( m_selectedDatabase ){ case ADDRESSBOOK:{ sourceDB = OPimAccessFactory<OPimContactAccess>::create( OPimGlobal::CONTACTLIST, OPimGlobal::XML, "converter" ); } break; case TODOLIST:{ sourceDB = OPimAccessFactory<OPimTodoAccess>::create( OPimGlobal::TODOLIST, OPimGlobal::XML, "converter" ); }break; case DATEBOOK:{ sourceDB = OPimAccessFactory<ODateBookAccess>::create( OPimGlobal::DATEBOOK, OPimGlobal::XML, "converter" ); } break; default: owarn << "Unknown database selected (" << m_selectedDatabase << ")" << oendl; return; } break; case SQL: odebug << "SQLSourceDB = " << m_selectedDatabase << "" << oendl; switch( m_selectedDatabase ){ case ADDRESSBOOK:{ sourceDB = OPimAccessFactory<OPimContactAccess>::create( OPimGlobal::CONTACTLIST, OPimGlobal::SQL, "converter" ); } break; case TODOLIST:{ sourceDB = OPimAccessFactory<OPimTodoAccess>::create( OPimGlobal::TODOLIST, OPimGlobal::SQL, "converter" ); }break; case DATEBOOK:{ sourceDB = OPimAccessFactory<ODateBookAccess>::create( OPimGlobal::DATEBOOK, OPimGlobal::SQL, "converter" ); } break; default: owarn << "Unknown database selected (" << m_selectedDatabase << ")" << oendl; return; } break; default: owarn << "Unknown source format selected (" << m_selectedSourceFormat << ") !!" << oendl; return; } switch ( m_selectedDestFormat ){ case XML: odebug << "XMLDestDB = " << m_selectedDatabase << "" << oendl; switch( m_selectedDatabase ){ case ADDRESSBOOK:{ destDB = OPimAccessFactory<OPimContactAccess>::create( OPimGlobal::CONTACTLIST, OPimGlobal::XML, "converter" ); } break; case TODOLIST:{ destDB = OPimAccessFactory<OPimTodoAccess>::create( OPimGlobal::TODOLIST, OPimGlobal::XML, "converter" ); }break; case DATEBOOK:{ destDB = OPimAccessFactory<ODateBookAccess>::create( OPimGlobal::DATEBOOK, OPimGlobal::XML, "converter" ); } break; default: owarn << "Unknown database selected (" << m_selectedDatabase << ")" << oendl; return; } break; case SQL: odebug << "SQLDestDB = " << m_selectedDatabase << "" << oendl; switch( m_selectedDatabase ){ case ADDRESSBOOK:{ destDB = OPimAccessFactory<OPimContactAccess>::create( OPimGlobal::CONTACTLIST, OPimGlobal::SQL, "converter" ); } break; case TODOLIST:{ destDB = OPimAccessFactory<OPimTodoAccess>::create( OPimGlobal::TODOLIST, OPimGlobal::SQL, "converter" ); }break; case DATEBOOK:{ destDB = OPimAccessFactory<ODateBookAccess>::create( OPimGlobal::DATEBOOK, OPimGlobal::SQL, "converter" ); } break; default: owarn << "Unknown database selected (" << m_selectedDatabase << ")" << oendl; return; } break; default: owarn << "Unknown destination format selected (" << m_selectedDestFormat << ")!!" << oendl; return; } if ( !sourceDB || !destDB ) return; m_criticalState = true; sourceDB -> load(); destDB -> load(); QTime t; t.start(); // Clean the dest-database if requested (isChecked) if ( m_eraseDB -> isChecked() ){ odebug << "Clearing destination database!" << oendl; destDB -> clear(); } // Now transmit every pim-item from the source database to the destination -database QArray<int> uidList = sourceDB->records(); odebug << "Try to move data for addressbook.. (" << uidList.count() << " items) " << oendl; m_progressBar->setTotalSteps( uidList.count() ); int count = 0; for ( uint i = 0; i < uidList.count(); ++i ){ odebug << "Adding uid: " << uidList[i] << "" << oendl; OPimRecord* rec = sourceDB -> record( uidList[i] ); destDB -> add( rec ); m_progressBar->setProgress( ++count ); } // Now commit data.. destDB -> save(); m_criticalState = false; // Delete the frontends. Backends will be deleted automatically, too ! // We have to cast them back to delete them properly ! switch( m_selectedDatabase ){ case ADDRESSBOOK: delete static_cast<OPimContactAccess*> (sourceDB); delete static_cast<OPimContactAccess*> (destDB); break; case TODOLIST: delete static_cast<OPimTodoAccess*> (sourceDB); delete static_cast<OPimTodoAccess*> (destDB); break; case DATEBOOK: delete static_cast<ODateBookAccess*> (sourceDB); delete static_cast<ODateBookAccess*> (destDB); break; default: owarn << "Unknown database selected (" << m_selectedDatabase << ")" << oendl; return; } owarn << "Conversion is finished and needed " << t.elapsed() << " ms !" << oendl; } void Converter::closeEvent( QCloseEvent *e ) { - + /* Due to the fact that we don't have multitasking here, this * critical handling don't make sense, but the future.. */ if ( m_criticalState ){ e->ignore(); return; } e->accept(); } - - - -int main( int argc, char** argv ) { - - QPEApplication a( argc, argv ); - - Converter dlg; - - a.showMainWidget( &dlg ); - // dlg. showMaximized ( ); - - return a.exec(); - -} diff --git a/noncore/tools/pimconverter/converter.h b/noncore/tools/pimconverter/converter.h index a78c6bc..344562a 100755 --- a/noncore/tools/pimconverter/converter.h +++ b/noncore/tools/pimconverter/converter.h @@ -1,43 +1,44 @@ #ifndef _CONVERTER_H_ #define _CONVERTER_H_ #include "converter_base.h" class Converter: public converter_base { public: - Converter(); + Converter(QWidget *parent, const char* name, WFlags fl); + static QString appName() { return QString::fromLatin1("opimconverter");} // Slots defined in the ui-description file void start_conversion(); void selectedDatabase( int num ); void selectedDestFormat( int num ); void selectedSourceFormat( int num ); void closeEvent( QCloseEvent *e ); private: // Caution: // The order and value of the following enums must be regarding // the predefinition in the UI-File !! enum DataBases{ ADDRESSBOOK = 0, TODOLIST = 1, DATEBOOK = 2, }; enum DbFormats{ XML = 0, SQL = 1, }; int m_selectedDatabase; int m_selectedSourceFormat; int m_selectedDestFormat; bool m_criticalState; }; #endif diff --git a/noncore/tools/pimconverter/converter.pro b/noncore/tools/pimconverter/converter.pro index 0504a55..4677ee6 100644 --- a/noncore/tools/pimconverter/converter.pro +++ b/noncore/tools/pimconverter/converter.pro @@ -1,11 +1,10 @@ -CONFIG = qt warn_on debug -# CONFIG = qt warn_on release quick-app +CONFIG = qt quick-app HEADERS = converter.h SOURCES = converter.cpp INTERFACES = converter_base.ui INCLUDEPATH += $(OPIEDIR)/include DEPENDPATH += $(OPIEDIR)/include LIBS += -lqpe -lopiecore2 -lopiepim2 -lopiedb2 -TARGET = $(OPIEDIR)/bin/opimconverter +TARGET = opimconverter include ( $(OPIEDIR)/include.pro ) diff --git a/noncore/tools/pimconverter/converter_base.ui b/noncore/tools/pimconverter/converter_base.ui index c7a2fb5..a5b22c9 100644 --- a/noncore/tools/pimconverter/converter_base.ui +++ b/noncore/tools/pimconverter/converter_base.ui @@ -1,291 +1,291 @@ <!DOCTYPE UI><UI> <class>converter_base</class> <widget> - <class>QDialog</class> + <class>QWidget</class> <property stdset="1"> <name>name</name> <cstring>converter_base</cstring> </property> <property stdset="1"> <name>geometry</name> <rect> <x>0</x> <y>0</y> <width>269</width> <height>324</height> </rect> </property> <property stdset="1"> <name>caption</name> <string>PIM-Database Converter</string> </property> <property> <name>layoutMargin</name> </property> <grid> <property stdset="1"> <name>margin</name> <number>4</number> </property> <property stdset="1"> <name>spacing</name> <number>6</number> </property> <widget row="0" column="0" > <class>QGroupBox</class> <property stdset="1"> <name>name</name> <cstring>GroupBox6</cstring> </property> <property stdset="1"> <name>title</name> <string>Converter</string> </property> <property> <name>layoutMargin</name> </property> <property> <name>layoutSpacing</name> </property> <vbox> <property stdset="1"> <name>margin</name> <number>4</number> </property> <property stdset="1"> <name>spacing</name> <number>2</number> </property> <widget> <class>QGroupBox</class> <property stdset="1"> <name>name</name> <cstring>GroupBox1</cstring> </property> <property stdset="1"> <name>title</name> <string>Select Database:</string> </property> <grid> <property stdset="1"> <name>margin</name> <number>11</number> </property> <property stdset="1"> <name>spacing</name> <number>6</number> </property> <widget row="0" column="1" > <class>QComboBox</class> <item> <property> <name>text</name> <string>Addressbook</string> </property> </item> <item> <property> <name>text</name> <string>TodoList</string> </property> </item> <item> <property> <name>text</name> <string>Datebook</string> </property> </item> <property stdset="1"> <name>name</name> <cstring>m_dataBaseSelector</cstring> </property> </widget> </grid> </widget> <widget> <class>QGroupBox</class> <property stdset="1"> <name>name</name> <cstring>GroupBox2</cstring> </property> <property stdset="1"> <name>title</name> <string>Source/Destination:</string> </property> <grid> <property stdset="1"> <name>margin</name> <number>11</number> </property> <property stdset="1"> <name>spacing</name> <number>6</number> </property> <widget row="1" column="0" > <class>QLabel</class> <property stdset="1"> <name>name</name> <cstring>TextLabel3_2</cstring> </property> <property stdset="1"> <name>text</name> <string>to</string> </property> </widget> <widget row="1" column="1" > <class>QComboBox</class> <item> <property> <name>text</name> <string>XML</string> </property> </item> <item> <property> <name>text</name> <string>SQL (SQLite)</string> </property> </item> <property stdset="1"> <name>name</name> <cstring>m_destFormatSelector</cstring> </property> </widget> <widget row="0" column="0" > <class>QLabel</class> <property stdset="1"> <name>name</name> <cstring>TextLabel2_2</cstring> </property> <property stdset="1"> <name>text</name> <string>Convert from</string> </property> </widget> <widget row="0" column="1" > <class>QComboBox</class> <item> <property> <name>text</name> <string>XML</string> </property> </item> <item> <property> <name>text</name> <string>SQL (SQLite)</string> </property> </item> <property stdset="1"> <name>name</name> <cstring>m_sourceFormatSelector</cstring> </property> </widget> </grid> </widget> <widget> <class>QGroupBox</class> <property stdset="1"> <name>name</name> <cstring>GroupBox5</cstring> </property> <property stdset="1"> <name>title</name> <string>Config:</string> </property> <grid> <property stdset="1"> <name>margin</name> <number>11</number> </property> <property stdset="1"> <name>spacing</name> <number>6</number> </property> <widget row="0" column="0" > <class>QCheckBox</class> <property stdset="1"> <name>name</name> <cstring>m_eraseDB</cstring> </property> <property stdset="1"> <name>text</name> <string>Erase before copy</string> </property> </widget> </grid> </widget> <widget> <class>QGroupBox</class> <property stdset="1"> <name>name</name> <cstring>GroupBox4</cstring> </property> <property stdset="1"> <name>title</name> <string>Progress:</string> </property> <vbox> <property stdset="1"> <name>margin</name> <number>11</number> </property> <property stdset="1"> <name>spacing</name> <number>6</number> </property> <widget> <class>QProgressBar</class> <property stdset="1"> <name>name</name> <cstring>m_progressBar</cstring> </property> </widget> <widget> <class>QPushButton</class> <property stdset="1"> <name>name</name> <cstring>PushButton1</cstring> </property> <property stdset="1"> <name>text</name> <string>Go!</string> </property> </widget> </vbox> </widget> </vbox> </widget> </grid> </widget> <connections> <connection> <sender>PushButton1</sender> <signal>clicked()</signal> <receiver>converter_base</receiver> <slot>start_conversion()</slot> </connection> <connection> <sender>m_sourceFormatSelector</sender> <signal>activated(int)</signal> <receiver>converter_base</receiver> <slot>selectedSourceFormat(int)</slot> </connection> <connection> <sender>m_dataBaseSelector</sender> <signal>activated(int)</signal> <receiver>converter_base</receiver> <slot>selectedDatabase(int)</slot> </connection> <connection> <sender>m_destFormatSelector</sender> <signal>activated(int)</signal> <receiver>converter_base</receiver> <slot>selectedDestFormat(int)</slot> </connection> <slot access="public">selectedDatabase(int)</slot> <slot access="public">selectedDestFormat(int)</slot> <slot access="public">selectedSourceFormat(int)</slot> <slot access="public">start_conversion()</slot> </connections> </UI> |