summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/tools/pimconverter/converter.cpp29
-rwxr-xr-xnoncore/tools/pimconverter/converter.h3
-rw-r--r--noncore/tools/pimconverter/converter.pro5
-rw-r--r--noncore/tools/pimconverter/converter_base.ui2
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
19OPIE_EXPORT_APP( Opie::Core::OApplicationFactory<Converter> )
20
20using namespace Opie; 21using namespace Opie;
21using namespace Pim; 22using namespace Pim;
22 23
23Converter::Converter(): 24Converter::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
35void Converter::selectedDatabase( int num ) 37void Converter::selectedDatabase( int num )
36{ 38{
37 m_selectedDatabase = num; 39 m_selectedDatabase = num;
38} 40}
39 41
40void Converter::selectedDestFormat( int num ) 42void Converter::selectedDestFormat( int num )
41{ 43{
42 m_selectedDestFormat = num; 44 m_selectedDestFormat = num;
43} 45}
44 46
45void Converter::selectedSourceFormat( int num ) 47void Converter::selectedSourceFormat( int num )
46{ 48{
47 m_selectedSourceFormat = num; 49 m_selectedSourceFormat = num;
48} 50}
49 51
50void Converter::start_conversion(){ 52void 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
213void Converter::closeEvent( QCloseEvent *e ) 215void 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
228int 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
8class Converter: public converter_base { 8class Converter: public converter_base {
9public: 9public:
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
20private: 21private:
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
3HEADERS = converter.h 2HEADERS = converter.h
4 SOURCES = converter.cpp 3 SOURCES = converter.cpp
5INTERFACES = converter_base.ui 4INTERFACES = converter_base.ui
6 INCLUDEPATH+= $(OPIEDIR)/include 5 INCLUDEPATH+= $(OPIEDIR)/include
7 DEPENDPATH+= $(OPIEDIR)/include 6 DEPENDPATH+= $(OPIEDIR)/include
8LIBS += -lqpe -lopiecore2 -lopiepim2 -lopiedb2 7LIBS += -lqpe -lopiecore2 -lopiepim2 -lopiedb2
9 TARGET = $(OPIEDIR)/bin/opimconverter 8 TARGET = opimconverter
10 9
11include ( $(OPIEDIR)/include.pro ) 10include ( $(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>