-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,111 +1,113 @@ | |||
1 | #include "converter.h" | 1 | #include "converter.h" |
2 | 2 | ||
3 | /* OPIE */ | 3 | /* OPIE */ |
4 | #include <qpe/qpeapplication.h> | 4 | #include <opie2/oapplicationfactory.h> |
5 | |||
6 | #include <opie2/odebug.h> | 5 | #include <opie2/odebug.h> |
7 | #include <opie2/opimglobal.h> | 6 | #include <opie2/opimglobal.h> |
8 | // Include SQL related header files | 7 | // Include SQL related header files |
9 | #define __USE_SQL | 8 | #define __USE_SQL |
10 | #include <opie2/opimaccessfactory.h> | 9 | #include <opie2/opimaccessfactory.h> |
11 | 10 | ||
12 | /* QT */ | 11 | /* QT */ |
13 | #include <qdatetime.h> | 12 | #include <qdatetime.h> |
14 | #include <qprogressbar.h> | 13 | #include <qprogressbar.h> |
15 | #include <qcombobox.h> | 14 | #include <qcombobox.h> |
16 | #include <qcheckbox.h> | 15 | #include <qcheckbox.h> |
17 | #include <qmessagebox.h> | 16 | #include <qmessagebox.h> |
18 | 17 | ||
19 | 18 | ||
19 | OPIE_EXPORT_APP( Opie::Core::OApplicationFactory<Converter> ) | ||
20 | |||
20 | using namespace Opie; | 21 | using namespace Opie; |
21 | using namespace Pim; | 22 | using namespace Pim; |
22 | 23 | ||
23 | Converter::Converter(): | 24 | Converter::Converter(QWidget *p, const char* n, WFlags fl): |
25 | converter_base( p, n, fl ), | ||
24 | m_selectedDatabase( ADDRESSBOOK ), | 26 | m_selectedDatabase( ADDRESSBOOK ), |
25 | m_selectedSourceFormat( XML ), | 27 | m_selectedSourceFormat( XML ), |
26 | m_selectedDestFormat( SQL ), | 28 | m_selectedDestFormat( SQL ), |
27 | m_criticalState( false ) | 29 | m_criticalState( false ) |
28 | { | 30 | { |
29 | m_dataBaseSelector -> setCurrentItem( m_selectedDatabase ); | 31 | m_dataBaseSelector -> setCurrentItem( m_selectedDatabase ); |
30 | m_sourceFormatSelector -> setCurrentItem( m_selectedSourceFormat ); | 32 | m_sourceFormatSelector -> setCurrentItem( m_selectedSourceFormat ); |
31 | m_destFormatSelector -> setCurrentItem( m_selectedDestFormat ); | 33 | m_destFormatSelector -> setCurrentItem( m_selectedDestFormat ); |
32 | m_eraseDB -> setChecked( true ); // Default erase on copy | 34 | m_eraseDB -> setChecked( true ); // Default erase on copy |
33 | } | 35 | } |
34 | 36 | ||
35 | void Converter::selectedDatabase( int num ) | 37 | void Converter::selectedDatabase( int num ) |
36 | { | 38 | { |
37 | m_selectedDatabase = num; | 39 | m_selectedDatabase = num; |
38 | } | 40 | } |
39 | 41 | ||
40 | void Converter::selectedDestFormat( int num ) | 42 | void Converter::selectedDestFormat( int num ) |
41 | { | 43 | { |
42 | m_selectedDestFormat = num; | 44 | m_selectedDestFormat = num; |
43 | } | 45 | } |
44 | 46 | ||
45 | void Converter::selectedSourceFormat( int num ) | 47 | void Converter::selectedSourceFormat( int num ) |
46 | { | 48 | { |
47 | m_selectedSourceFormat = num; | 49 | m_selectedSourceFormat = num; |
48 | } | 50 | } |
49 | 51 | ||
50 | void Converter::start_conversion(){ | 52 | void Converter::start_conversion(){ |
51 | 53 | ||
52 | // Creating backends to the requested databases.. | 54 | // Creating backends to the requested databases.. |
53 | OPimBase* sourceDB; | 55 | OPimBase* sourceDB; |
54 | OPimBase* destDB; | 56 | OPimBase* destDB; |
55 | 57 | ||
56 | odebug << "SourceFormat: " << m_selectedSourceFormat << oendl; | 58 | odebug << "SourceFormat: " << m_selectedSourceFormat << oendl; |
57 | odebug << "DestFormat: " << m_selectedDestFormat << oendl; | 59 | odebug << "DestFormat: " << m_selectedDestFormat << oendl; |
58 | if ( m_selectedSourceFormat == m_selectedDestFormat ){ | 60 | if ( m_selectedSourceFormat == m_selectedDestFormat ){ |
59 | 61 | ||
60 | QMessageBox::warning( this, "PimConverter", | 62 | QMessageBox::warning( this, "PimConverter", |
61 | tr( "It is not a good idea to use\n" ) | 63 | tr( "It is not a good idea to use\n" ) |
62 | +tr( "the same source and destformat !" ), | 64 | +tr( "the same source and destformat !" ), |
63 | tr( "Ok" ) ); | 65 | tr( "Ok" ) ); |
64 | return; | 66 | return; |
65 | } | 67 | } |
66 | 68 | ||
67 | switch( m_selectedSourceFormat ){ | 69 | switch( m_selectedSourceFormat ){ |
68 | case XML: | 70 | case XML: |
69 | odebug << "XMLSourceDB = " << m_selectedDatabase << "" << oendl; | 71 | odebug << "XMLSourceDB = " << m_selectedDatabase << "" << oendl; |
70 | switch( m_selectedDatabase ){ | 72 | switch( m_selectedDatabase ){ |
71 | case ADDRESSBOOK:{ | 73 | case ADDRESSBOOK:{ |
72 | sourceDB = OPimAccessFactory<OPimContactAccess>::create( OPimGlobal::CONTACTLIST, OPimGlobal::XML, "converter" ); | 74 | sourceDB = OPimAccessFactory<OPimContactAccess>::create( OPimGlobal::CONTACTLIST, OPimGlobal::XML, "converter" ); |
73 | } | 75 | } |
74 | break; | 76 | break; |
75 | case TODOLIST:{ | 77 | case TODOLIST:{ |
76 | sourceDB = OPimAccessFactory<OPimTodoAccess>::create( OPimGlobal::TODOLIST, OPimGlobal::XML, "converter" ); | 78 | sourceDB = OPimAccessFactory<OPimTodoAccess>::create( OPimGlobal::TODOLIST, OPimGlobal::XML, "converter" ); |
77 | }break; | 79 | }break; |
78 | case DATEBOOK:{ | 80 | case DATEBOOK:{ |
79 | sourceDB = OPimAccessFactory<ODateBookAccess>::create( OPimGlobal::DATEBOOK, OPimGlobal::XML, "converter" ); | 81 | sourceDB = OPimAccessFactory<ODateBookAccess>::create( OPimGlobal::DATEBOOK, OPimGlobal::XML, "converter" ); |
80 | } | 82 | } |
81 | break; | 83 | break; |
82 | default: | 84 | default: |
83 | owarn << "Unknown database selected (" << m_selectedDatabase << ")" << oendl; | 85 | owarn << "Unknown database selected (" << m_selectedDatabase << ")" << oendl; |
84 | return; | 86 | return; |
85 | } | 87 | } |
86 | break; | 88 | break; |
87 | case SQL: | 89 | case SQL: |
88 | odebug << "SQLSourceDB = " << m_selectedDatabase << "" << oendl; | 90 | odebug << "SQLSourceDB = " << m_selectedDatabase << "" << oendl; |
89 | switch( m_selectedDatabase ){ | 91 | switch( m_selectedDatabase ){ |
90 | case ADDRESSBOOK:{ | 92 | case ADDRESSBOOK:{ |
91 | sourceDB = OPimAccessFactory<OPimContactAccess>::create( OPimGlobal::CONTACTLIST, OPimGlobal::SQL, "converter" ); | 93 | sourceDB = OPimAccessFactory<OPimContactAccess>::create( OPimGlobal::CONTACTLIST, OPimGlobal::SQL, "converter" ); |
92 | } | 94 | } |
93 | break; | 95 | break; |
94 | case TODOLIST:{ | 96 | case TODOLIST:{ |
95 | sourceDB = OPimAccessFactory<OPimTodoAccess>::create( OPimGlobal::TODOLIST, OPimGlobal::SQL, "converter" ); | 97 | sourceDB = OPimAccessFactory<OPimTodoAccess>::create( OPimGlobal::TODOLIST, OPimGlobal::SQL, "converter" ); |
96 | }break; | 98 | }break; |
97 | case DATEBOOK:{ | 99 | case DATEBOOK:{ |
98 | sourceDB = OPimAccessFactory<ODateBookAccess>::create( OPimGlobal::DATEBOOK, OPimGlobal::SQL, "converter" ); | 100 | sourceDB = OPimAccessFactory<ODateBookAccess>::create( OPimGlobal::DATEBOOK, OPimGlobal::SQL, "converter" ); |
99 | } | 101 | } |
100 | break; | 102 | break; |
101 | default: | 103 | default: |
102 | owarn << "Unknown database selected (" << m_selectedDatabase << ")" << oendl; | 104 | owarn << "Unknown database selected (" << m_selectedDatabase << ")" << oendl; |
103 | return; | 105 | return; |
104 | } | 106 | } |
105 | break; | 107 | break; |
106 | default: | 108 | default: |
107 | owarn << "Unknown source format selected (" << m_selectedSourceFormat << ") !!" << oendl; | 109 | owarn << "Unknown source format selected (" << m_selectedSourceFormat << ") !!" << oendl; |
108 | return; | 110 | return; |
109 | } | 111 | } |
110 | 112 | ||
111 | switch ( m_selectedDestFormat ){ | 113 | switch ( m_selectedDestFormat ){ |
@@ -167,73 +169,58 @@ void Converter::start_conversion(){ | |||
167 | if ( m_eraseDB -> isChecked() ){ | 169 | if ( m_eraseDB -> isChecked() ){ |
168 | odebug << "Clearing destination database!" << oendl; | 170 | odebug << "Clearing destination database!" << oendl; |
169 | destDB -> clear(); | 171 | destDB -> clear(); |
170 | } | 172 | } |
171 | 173 | ||
172 | // Now transmit every pim-item from the source database to the destination -database | 174 | // Now transmit every pim-item from the source database to the destination -database |
173 | QArray<int> uidList = sourceDB->records(); | 175 | QArray<int> uidList = sourceDB->records(); |
174 | odebug << "Try to move data for addressbook.. (" << uidList.count() << " items) " << oendl; | 176 | odebug << "Try to move data for addressbook.. (" << uidList.count() << " items) " << oendl; |
175 | m_progressBar->setTotalSteps( uidList.count() ); | 177 | m_progressBar->setTotalSteps( uidList.count() ); |
176 | int count = 0; | 178 | int count = 0; |
177 | for ( uint i = 0; i < uidList.count(); ++i ){ | 179 | for ( uint i = 0; i < uidList.count(); ++i ){ |
178 | odebug << "Adding uid: " << uidList[i] << "" << oendl; | 180 | odebug << "Adding uid: " << uidList[i] << "" << oendl; |
179 | OPimRecord* rec = sourceDB -> record( uidList[i] ); | 181 | OPimRecord* rec = sourceDB -> record( uidList[i] ); |
180 | destDB -> add( rec ); | 182 | destDB -> add( rec ); |
181 | m_progressBar->setProgress( ++count ); | 183 | m_progressBar->setProgress( ++count ); |
182 | } | 184 | } |
183 | 185 | ||
184 | // Now commit data.. | 186 | // Now commit data.. |
185 | destDB -> save(); | 187 | destDB -> save(); |
186 | 188 | ||
187 | m_criticalState = false; | 189 | m_criticalState = false; |
188 | 190 | ||
189 | // Delete the frontends. Backends will be deleted automatically, too ! | 191 | // Delete the frontends. Backends will be deleted automatically, too ! |
190 | // We have to cast them back to delete them properly ! | 192 | // We have to cast them back to delete them properly ! |
191 | switch( m_selectedDatabase ){ | 193 | switch( m_selectedDatabase ){ |
192 | case ADDRESSBOOK: | 194 | case ADDRESSBOOK: |
193 | delete static_cast<OPimContactAccess*> (sourceDB); | 195 | delete static_cast<OPimContactAccess*> (sourceDB); |
194 | delete static_cast<OPimContactAccess*> (destDB); | 196 | delete static_cast<OPimContactAccess*> (destDB); |
195 | break; | 197 | break; |
196 | case TODOLIST: | 198 | case TODOLIST: |
197 | delete static_cast<OPimTodoAccess*> (sourceDB); | 199 | delete static_cast<OPimTodoAccess*> (sourceDB); |
198 | delete static_cast<OPimTodoAccess*> (destDB); | 200 | delete static_cast<OPimTodoAccess*> (destDB); |
199 | break; | 201 | break; |
200 | case DATEBOOK: | 202 | case DATEBOOK: |
201 | delete static_cast<ODateBookAccess*> (sourceDB); | 203 | delete static_cast<ODateBookAccess*> (sourceDB); |
202 | delete static_cast<ODateBookAccess*> (destDB); | 204 | delete static_cast<ODateBookAccess*> (destDB); |
203 | break; | 205 | break; |
204 | default: | 206 | default: |
205 | owarn << "Unknown database selected (" << m_selectedDatabase << ")" << oendl; | 207 | owarn << "Unknown database selected (" << m_selectedDatabase << ")" << oendl; |
206 | return; | 208 | return; |
207 | } | 209 | } |
208 | 210 | ||
209 | 211 | ||
210 | owarn << "Conversion is finished and needed " << t.elapsed() << " ms !" << oendl; | 212 | owarn << "Conversion is finished and needed " << t.elapsed() << " ms !" << oendl; |
211 | } | 213 | } |
212 | 214 | ||
213 | void Converter::closeEvent( QCloseEvent *e ) | 215 | void Converter::closeEvent( QCloseEvent *e ) |
214 | { | 216 | { |
215 | 217 | ||
216 | /* Due to the fact that we don't have multitasking here, this | 218 | /* Due to the fact that we don't have multitasking here, this |
217 | * critical handling don't make sense, but the future.. | 219 | * critical handling don't make sense, but the future.. |
218 | */ | 220 | */ |
219 | if ( m_criticalState ){ | 221 | if ( m_criticalState ){ |
220 | e->ignore(); | 222 | e->ignore(); |
221 | return; | 223 | return; |
222 | } | 224 | } |
223 | e->accept(); | 225 | e->accept(); |
224 | } | 226 | } |
225 | |||
226 | |||
227 | |||
228 | int main( int argc, char** argv ) { | ||
229 | |||
230 | QPEApplication a( argc, argv ); | ||
231 | |||
232 | Converter dlg; | ||
233 | |||
234 | a.showMainWidget( &dlg ); | ||
235 | // dlg. showMaximized ( ); | ||
236 | |||
237 | return a.exec(); | ||
238 | |||
239 | } | ||
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 @@ | |||
1 | #ifndef _CONVERTER_H_ | 1 | #ifndef _CONVERTER_H_ |
2 | #define _CONVERTER_H_ | 2 | #define _CONVERTER_H_ |
3 | 3 | ||
4 | 4 | ||
5 | #include "converter_base.h" | 5 | #include "converter_base.h" |
6 | 6 | ||
7 | 7 | ||
8 | class Converter: public converter_base { | 8 | class Converter: public converter_base { |
9 | public: | 9 | public: |
10 | Converter(); | 10 | Converter(QWidget *parent, const char* name, WFlags fl); |
11 | static QString appName() { return QString::fromLatin1("opimconverter");} | ||
11 | 12 | ||
12 | // Slots defined in the ui-description file | 13 | // Slots defined in the ui-description file |
13 | void start_conversion(); | 14 | void start_conversion(); |
14 | void selectedDatabase( int num ); | 15 | void selectedDatabase( int num ); |
15 | void selectedDestFormat( int num ); | 16 | void selectedDestFormat( int num ); |
16 | void selectedSourceFormat( int num ); | 17 | void selectedSourceFormat( int num ); |
17 | 18 | ||
18 | void closeEvent( QCloseEvent *e ); | 19 | void closeEvent( QCloseEvent *e ); |
19 | 20 | ||
20 | private: | 21 | private: |
21 | // Caution: | 22 | // Caution: |
22 | // The order and value of the following enums must be regarding | 23 | // The order and value of the following enums must be regarding |
23 | // the predefinition in the UI-File !! | 24 | // the predefinition in the UI-File !! |
24 | enum DataBases{ | 25 | enum DataBases{ |
25 | ADDRESSBOOK = 0, | 26 | ADDRESSBOOK = 0, |
26 | TODOLIST = 1, | 27 | TODOLIST = 1, |
27 | DATEBOOK = 2, | 28 | DATEBOOK = 2, |
28 | }; | 29 | }; |
29 | 30 | ||
30 | enum DbFormats{ | 31 | enum DbFormats{ |
31 | XML = 0, | 32 | XML = 0, |
32 | SQL = 1, | 33 | SQL = 1, |
33 | }; | 34 | }; |
34 | 35 | ||
35 | int m_selectedDatabase; | 36 | int m_selectedDatabase; |
36 | int m_selectedSourceFormat; | 37 | int m_selectedSourceFormat; |
37 | int m_selectedDestFormat; | 38 | int m_selectedDestFormat; |
38 | bool m_criticalState; | 39 | bool m_criticalState; |
39 | 40 | ||
40 | }; | 41 | }; |
41 | 42 | ||
42 | 43 | ||
43 | #endif | 44 | #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 @@ | |||
1 | CONFIG = qt warn_on debug | 1 | CONFIG = qt quick-app |
2 | # CONFIG = qt warn_on release quick-app | ||
3 | HEADERS = converter.h | 2 | HEADERS = converter.h |
4 | SOURCES = converter.cpp | 3 | SOURCES = converter.cpp |
5 | INTERFACES = converter_base.ui | 4 | INTERFACES = converter_base.ui |
6 | INCLUDEPATH+= $(OPIEDIR)/include | 5 | INCLUDEPATH+= $(OPIEDIR)/include |
7 | DEPENDPATH+= $(OPIEDIR)/include | 6 | DEPENDPATH+= $(OPIEDIR)/include |
8 | LIBS += -lqpe -lopiecore2 -lopiepim2 -lopiedb2 | 7 | LIBS += -lqpe -lopiecore2 -lopiepim2 -lopiedb2 |
9 | TARGET = $(OPIEDIR)/bin/opimconverter | 8 | TARGET = opimconverter |
10 | 9 | ||
11 | include ( $(OPIEDIR)/include.pro ) | 10 | 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,52 +1,52 @@ | |||
1 | <!DOCTYPE UI><UI> | 1 | <!DOCTYPE UI><UI> |
2 | <class>converter_base</class> | 2 | <class>converter_base</class> |
3 | <widget> | 3 | <widget> |
4 | <class>QDialog</class> | 4 | <class>QWidget</class> |
5 | <property stdset="1"> | 5 | <property stdset="1"> |
6 | <name>name</name> | 6 | <name>name</name> |
7 | <cstring>converter_base</cstring> | 7 | <cstring>converter_base</cstring> |
8 | </property> | 8 | </property> |
9 | <property stdset="1"> | 9 | <property stdset="1"> |
10 | <name>geometry</name> | 10 | <name>geometry</name> |
11 | <rect> | 11 | <rect> |
12 | <x>0</x> | 12 | <x>0</x> |
13 | <y>0</y> | 13 | <y>0</y> |
14 | <width>269</width> | 14 | <width>269</width> |
15 | <height>324</height> | 15 | <height>324</height> |
16 | </rect> | 16 | </rect> |
17 | </property> | 17 | </property> |
18 | <property stdset="1"> | 18 | <property stdset="1"> |
19 | <name>caption</name> | 19 | <name>caption</name> |
20 | <string>PIM-Database Converter</string> | 20 | <string>PIM-Database Converter</string> |
21 | </property> | 21 | </property> |
22 | <property> | 22 | <property> |
23 | <name>layoutMargin</name> | 23 | <name>layoutMargin</name> |
24 | </property> | 24 | </property> |
25 | <grid> | 25 | <grid> |
26 | <property stdset="1"> | 26 | <property stdset="1"> |
27 | <name>margin</name> | 27 | <name>margin</name> |
28 | <number>4</number> | 28 | <number>4</number> |
29 | </property> | 29 | </property> |
30 | <property stdset="1"> | 30 | <property stdset="1"> |
31 | <name>spacing</name> | 31 | <name>spacing</name> |
32 | <number>6</number> | 32 | <number>6</number> |
33 | </property> | 33 | </property> |
34 | <widget row="0" column="0" > | 34 | <widget row="0" column="0" > |
35 | <class>QGroupBox</class> | 35 | <class>QGroupBox</class> |
36 | <property stdset="1"> | 36 | <property stdset="1"> |
37 | <name>name</name> | 37 | <name>name</name> |
38 | <cstring>GroupBox6</cstring> | 38 | <cstring>GroupBox6</cstring> |
39 | </property> | 39 | </property> |
40 | <property stdset="1"> | 40 | <property stdset="1"> |
41 | <name>title</name> | 41 | <name>title</name> |
42 | <string>Converter</string> | 42 | <string>Converter</string> |
43 | </property> | 43 | </property> |
44 | <property> | 44 | <property> |
45 | <name>layoutMargin</name> | 45 | <name>layoutMargin</name> |
46 | </property> | 46 | </property> |
47 | <property> | 47 | <property> |
48 | <name>layoutSpacing</name> | 48 | <name>layoutSpacing</name> |
49 | </property> | 49 | </property> |
50 | <vbox> | 50 | <vbox> |
51 | <property stdset="1"> | 51 | <property stdset="1"> |
52 | <name>margin</name> | 52 | <name>margin</name> |