summaryrefslogtreecommitdiffabout
path: root/kabc/plugins/olaccess/olaccessconverter.cpp
Unidiff
Diffstat (limited to 'kabc/plugins/olaccess/olaccessconverter.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/plugins/olaccess/olaccessconverter.cpp54
1 files changed, 28 insertions, 26 deletions
diff --git a/kabc/plugins/olaccess/olaccessconverter.cpp b/kabc/plugins/olaccess/olaccessconverter.cpp
index 4adcae4..e95f3cb 100644
--- a/kabc/plugins/olaccess/olaccessconverter.cpp
+++ b/kabc/plugins/olaccess/olaccessconverter.cpp
@@ -20,90 +20,92 @@
20 20
21/* 21/*
22Enhanced Version of the file for platform independent KDE tools. 22Enhanced Version of the file for platform independent KDE tools.
23Copyright (c) 2004 Ulf Schenk 23Copyright (c) 2004 Ulf Schenk
24 24
25$Id$ 25$Id$
26*/ 26*/
27 27
28#include "kglobal.h" 28#include "kglobal.h"
29#include <qregexp.h> 29#include <qregexp.h>
30 30
31 31
32#include "sharpdtmconverter.h" 32#include "olaccessconverter.h"
33 33
34#include <sl/slcategories.h>
35#include <libkdepim/ksyncprofile.h> 34#include <libkdepim/ksyncprofile.h>
36//US #include <qpe/categoryselect.h> 35//US #include <qpe/categoryselect.h>
37 36
38 37
39using namespace KABC; 38using namespace KABC;
40using namespace SlCategory;
41 39
42SharpDTMConverter::SharpDTMConverter() : catDB(0) 40OlaccessConverter::OlaccessConverter()
43{ 41{
44} 42}
45 43
46SharpDTMConverter::~SharpDTMConverter() 44OlaccessConverter::~OlaccessConverter()
47{ 45{
48 deinit(); 46 deinit();
49} 47}
50 48
51bool SharpDTMConverter::init() 49bool OlaccessConverter::init()
52{ 50{
51#if 0
53 catDB = new SlCategory::SlCategories(); 52 catDB = new SlCategory::SlCategories();
54 53
55 if (!catDB) 54 if (!catDB)
56 return false; 55 return false;
57 56
58// catDB->load( categoryFileName() ); 57// catDB->load( categoryFileName() );
58#endif
59 return true; 59 return true;
60} 60}
61 61
62void SharpDTMConverter::deinit() 62void OlaccessConverter::deinit()
63{ 63{
64#if 0
64 if (catDB) 65 if (catDB)
65 { 66 {
66 delete catDB; 67 delete catDB;
67 catDB = 0; 68 catDB = 0;
68 } 69 }
70#endif
69} 71}
70 72#if 0
71bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBase* database, Addressee &addr ) 73bool OlaccessConverter::sharpToAddressee( const CardId &contact, const SlZDataBase* database, Addressee &addr )
72{ 74{
73 SlZDataBase* db = (SlZDataBase*)database; 75 SlZDataBase* db = (SlZDataBase*)database;
74 76
75 // for syncing: we need setting of the two fields 77 // for syncing: we need setting of the two fields
76 addr.setExternalUID( QString::number( contact ) ); 78 addr.setExternalUID( QString::number( contact ) );
77 addr.setOriginalExternalUID( QString::number( contact ) ); 79 addr.setOriginalExternalUID( QString::number( contact ) );
78 addr.setTempSyncStat( SYNC_TEMPSTATE_NEW_EXTERNAL ); 80 addr.setTempSyncStat( SYNC_TEMPSTATE_NEW_EXTERNAL );
79 81
80 82
81 // name 83 // name
82 //qDebug("SharpDTMConverter::sharpToAddressee check if the fileAs transformation works!!"); 84 //qDebug("OlaccessConverter::sharpToAddressee check if the fileAs transformation works!!");
83 addr.setFormattedName(db->readField(ZdbAdrs::FileAs)); 85 addr.setFormattedName(db->readField(ZdbAdrs::FileAs));
84 //addr.setName(db->readField(ZdbAdrs::FullName)); 86 //addr.setName(db->readField(ZdbAdrs::FullName));
85 87
86 addr.setFamilyName( db->readField(ZdbAdrs::LastName) ); 88 addr.setFamilyName( db->readField(ZdbAdrs::LastName) );
87 addr.setGivenName( db->readField(ZdbAdrs::FirstName) ); 89 addr.setGivenName( db->readField(ZdbAdrs::FirstName) );
88 addr.setAdditionalName( db->readField(ZdbAdrs::MiddleName) ); 90 addr.setAdditionalName( db->readField(ZdbAdrs::MiddleName) );
89 addr.setPrefix( db->readField(ZdbAdrs::Title) ); 91 addr.setPrefix( db->readField(ZdbAdrs::Title) );
90 addr.setSuffix( db->readField(ZdbAdrs::Suffix) ); 92 addr.setSuffix( db->readField(ZdbAdrs::Suffix) );
91 93
92 94
93 QString emailstr = db->readField(ZdbAdrs::Emails); 95 QString emailstr = db->readField(ZdbAdrs::Emails);
94 emailstr.replace( QRegExp(","), " " ); 96 emailstr.replace( QRegExp(","), " " );
95 emailstr.replace( QRegExp(";"), " " ); 97 emailstr.replace( QRegExp(";"), " " );
96 emailstr.replace( QRegExp(":"), " " ); 98 emailstr.replace( QRegExp(":"), " " );
97 //qDebug("SharpDTMConverter::sharpToAddressee whats the character to seperate the emailadresses? %s ", emailstr.latin1()); 99 //qDebug("OlaccessConverter::sharpToAddressee whats the character to seperate the emailadresses? %s ", emailstr.latin1());
98 QStringList emails = QStringList::split(" ", emailstr.simplifyWhiteSpace()); 100 QStringList emails = QStringList::split(" ", emailstr.simplifyWhiteSpace());
99 bool defE = false; 101 bool defE = false;
100 bool found = false; 102 bool found = false;
101 for ( QStringList::Iterator it = emails.begin(); it != emails.end(); ++it ) { 103 for ( QStringList::Iterator it = emails.begin(); it != emails.end(); ++it ) {
102 if (found ) 104 if (found )
103 defE = false; 105 defE = false;
104 else 106 else
105 found = defE = ((*it).lower() == db->readField(ZdbAdrs::DefaultEmail).lower()); 107 found = defE = ((*it).lower() == db->readField(ZdbAdrs::DefaultEmail).lower());
106 addr.insertEmail( *it, defE ); 108 addr.insertEmail( *it, defE );
107 } 109 }
108 if ( ! found ) 110 if ( ! found )
109 if (!db->readField(ZdbAdrs::DefaultEmail).isEmpty()) 111 if (!db->readField(ZdbAdrs::DefaultEmail).isEmpty())
@@ -212,26 +214,26 @@ bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBa
212 addr.setRole( db->readField(ZdbAdrs::JobTitle) ); 214 addr.setRole( db->readField(ZdbAdrs::JobTitle) );
213 addr.setOrganization( db->readField(ZdbAdrs::Company) ); 215 addr.setOrganization( db->readField(ZdbAdrs::Company) );
214 addr.insertCustom( "KADDRESSBOOK", "X-Profession", db->readField(ZdbAdrs::Profession) ); 216 addr.insertCustom( "KADDRESSBOOK", "X-Profession", db->readField(ZdbAdrs::Profession) );
215 addr.insertCustom( "KADDRESSBOOK", "X-AssistantsName", db->readField(ZdbAdrs::Assistant) ); 217 addr.insertCustom( "KADDRESSBOOK", "X-AssistantsName", db->readField(ZdbAdrs::Assistant) );
216 addr.insertCustom( "KADDRESSBOOK", "X-Department", db->readField(ZdbAdrs::Department) ); 218 addr.insertCustom( "KADDRESSBOOK", "X-Department", db->readField(ZdbAdrs::Department) );
217 addr.insertCustom( "KADDRESSBOOK", "X-ManagersName", db->readField(ZdbAdrs::Manager) ); 219 addr.insertCustom( "KADDRESSBOOK", "X-ManagersName", db->readField(ZdbAdrs::Manager) );
218 addr.insertCustom( "KADDRESSBOOK", "X-Office", db->readField(ZdbAdrs::Office) ); 220 addr.insertCustom( "KADDRESSBOOK", "X-Office", db->readField(ZdbAdrs::Office) );
219 221
220 //personal 222 //personal
221 addr.insertCustom( "KADDRESSBOOK", "X-SpousesName", db->readField(ZdbAdrs::Spouse) ); 223 addr.insertCustom( "KADDRESSBOOK", "X-SpousesName", db->readField(ZdbAdrs::Spouse) );
222 224
223 QString gen = db->readField(ZdbAdrs::Gender); 225 QString gen = db->readField(ZdbAdrs::Gender);
224 //qDebug("SharpDTMConverter::sharpToAddressee pleas check that gender works!! : Gender: %s", gen.latin1()); 226 //qDebug("OlaccessConverter::sharpToAddressee pleas check that gender works!! : Gender: %s", gen.latin1());
225 //qDebug("SharpDTMConverter::sharpToAddressee: may be int db->readUshortField(\"ZdbAdrs::Gender\") is here better suited"); 227 //qDebug("OlaccessConverter::sharpToAddressee: may be int db->readUshortField(\"ZdbAdrs::Gender\") is here better suited");
226 if (gen == "1") 228 if (gen == "1")
227 addr.insertCustom( "KADDRESSBOOK", "X-Gender", "male"); 229 addr.insertCustom( "KADDRESSBOOK", "X-Gender", "male");
228 else if (gen == "2") 230 else if (gen == "2")
229 addr.insertCustom( "KADDRESSBOOK", "X-Gender", "female"); 231 addr.insertCustom( "KADDRESSBOOK", "X-Gender", "female");
230 else 232 else
231 addr.insertCustom( "KADDRESSBOOK", "X-Gender", "undef"); 233 addr.insertCustom( "KADDRESSBOOK", "X-Gender", "undef");
232 234
233 235
234 QDate ann = KGlobal::locale()->readDate( db->readField(ZdbAdrs::Anniversary) ); 236 QDate ann = KGlobal::locale()->readDate( db->readField(ZdbAdrs::Anniversary) );
235 if (ann.isValid()) { 237 if (ann.isValid()) {
236 QString dt = KGlobal::locale()->formatDate(ann, true, KLocale::ISODate); 238 QString dt = KGlobal::locale()->formatDate(ann, true, KLocale::ISODate);
237 //qDebug("qtopiaToAddressee annyversary found:%s", dt.latin1()); 239 //qDebug("qtopiaToAddressee annyversary found:%s", dt.latin1());
@@ -255,67 +257,67 @@ bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBa
255 //US I put opies BusinessWebPage into Ka/Pi's notes block, because no other native field is available. 257 //US I put opies BusinessWebPage into Ka/Pi's notes block, because no other native field is available.
256 //QString notes = db->readField(ZdbAdrs::Notes); 258 //QString notes = db->readField(ZdbAdrs::Notes);
257 //notes += "\nBusinessWebPage: " + db->readField(ZdbAdrs::BusinessWebPage) + "\n"; 259 //notes += "\nBusinessWebPage: " + db->readField(ZdbAdrs::BusinessWebPage) + "\n";
258 if ( addr.url().isEmpty() ) 260 if ( addr.url().isEmpty() )
259 addr.setUrl( db->readField(ZdbAdrs::BusinessWebPage) ); 261 addr.setUrl( db->readField(ZdbAdrs::BusinessWebPage) );
260 addr.setNote( db->readField(ZdbAdrs::Notes).replace( QRegExp("\\r"), "")); 262 addr.setNote( db->readField(ZdbAdrs::Notes).replace( QRegExp("\\r"), ""));
261 263
262 264
263 265
264//US QString groups() const { return find( Qtopia::Groups ); } 266//US QString groups() const { return find( Qtopia::Groups ); }
265//US QStringList groupList() const; 267//US QStringList groupList() const;
266 268
267 //qDebug("SharpDTMConverter::sharpToAddressee please check that the categories will be converted" ); 269 //qDebug("OlaccessConverter::sharpToAddressee please check that the categories will be converted" );
268 QArray<int> catArray = db->readCategories(); 270 QArray<int> catArray = db->readCategories();
269 QString cat; 271 QString cat;
270 272
271 for ( unsigned int i=0; i < catArray.size(); i++ ) { 273 for ( unsigned int i=0; i < catArray.size(); i++ ) {
272 cat = catDB->label(catArray[i]); 274 cat = catDB->label(catArray[i]);
273 if ( cat.isEmpty() ) 275 if ( cat.isEmpty() )
274 addr.insertCategory(QString::number(catArray[i])); 276 addr.insertCategory(QString::number(catArray[i]));
275 else 277 else
276 addr.insertCategory( cat ); 278 addr.insertCategory( cat );
277 } 279 }
278 280
279 return true; 281 return true;
280} 282}
281 283
282bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* database , const CardId &contact ) 284bool OlaccessConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* database , const CardId &contact )
283{ 285{
284 bool cellHome = false, cellWork = false; 286 bool cellHome = false, cellWork = false;
285 // name 287 // name
286 database->writeField(ZdbAdrs::LastName, addr.familyName()); 288 database->writeField(ZdbAdrs::LastName, addr.familyName());
287 database->writeField(ZdbAdrs::FirstName, addr.givenName()); 289 database->writeField(ZdbAdrs::FirstName, addr.givenName());
288 database->writeField(ZdbAdrs::MiddleName, addr.additionalName()); 290 database->writeField(ZdbAdrs::MiddleName, addr.additionalName());
289 database->writeField(ZdbAdrs::Title, addr.prefix()); 291 database->writeField(ZdbAdrs::Title, addr.prefix());
290 database->writeField(ZdbAdrs::Suffix, addr.suffix()); 292 database->writeField(ZdbAdrs::Suffix, addr.suffix());
291 293
292 //qDebug("SharpDTMConverter::addresseeToSharp check if the fileAs transformation works!!\n%s",addr.formattedName().latin1() ); 294 //qDebug("OlaccessConverter::addresseeToSharp check if the fileAs transformation works!!\n%s",addr.formattedName().latin1() );
293 QString formattedName = addr.formattedName(); 295 QString formattedName = addr.formattedName();
294 if ( formattedName.isEmpty() ) { 296 if ( formattedName.isEmpty() ) {
295 if ( !addr.familyName().isEmpty() ) { 297 if ( !addr.familyName().isEmpty() ) {
296 formattedName = addr.familyName(); 298 formattedName = addr.familyName();
297 if ( !addr.givenName().isEmpty() ) { 299 if ( !addr.givenName().isEmpty() ) {
298 formattedName += ", "; 300 formattedName += ", ";
299 formattedName += addr.givenName(); 301 formattedName += addr.givenName();
300 } 302 }
301 } else 303 } else
302 formattedName = addr.givenName(); 304 formattedName = addr.givenName();
303 } 305 }
304 database->writeField(ZdbAdrs::FileAs, formattedName); 306 database->writeField(ZdbAdrs::FileAs, formattedName);
305 database->writeField(ZdbAdrs::FullName, formattedName); 307 database->writeField(ZdbAdrs::FullName, formattedName);
306 308
307 // email 309 // email
308 //qDebug("SharpDTMConverter::addresseeToSharp check which seperator we need here for the emails!!"); 310 //qDebug("OlaccessConverter::addresseeToSharp check which seperator we need here for the emails!!");
309 //qDebug("SharpDTMConverter::addresseeToSharp its probably the same from sharpToAddressee"); 311 //qDebug("OlaccessConverter::addresseeToSharp its probably the same from sharpToAddressee");
310 QString emails = addr.emails().join(" "); 312 QString emails = addr.emails().join(" ");
311 database->writeField(ZdbAdrs::Emails, emails ); 313 database->writeField(ZdbAdrs::Emails, emails );
312 314
313 database->writeField(ZdbAdrs::DefaultEmail, addr.preferredEmail() ); 315 database->writeField(ZdbAdrs::DefaultEmail, addr.preferredEmail() );
314 // home 316 // home
315 const Address homeaddress = addr.address(Address::Home); 317 const Address homeaddress = addr.address(Address::Home);
316 database->writeField(ZdbAdrs::HomeStreet, homeaddress.street()); 318 database->writeField(ZdbAdrs::HomeStreet, homeaddress.street());
317 database->writeField(ZdbAdrs::HomeCity, homeaddress.locality()); 319 database->writeField(ZdbAdrs::HomeCity, homeaddress.locality());
318 database->writeField(ZdbAdrs::HomeState, homeaddress.region()); 320 database->writeField(ZdbAdrs::HomeState, homeaddress.region());
319 database->writeField(ZdbAdrs::HomeZip, homeaddress.postalCode()); 321 database->writeField(ZdbAdrs::HomeZip, homeaddress.postalCode());
320 database->writeField(ZdbAdrs::HomeCountry, homeaddress.country()); 322 database->writeField(ZdbAdrs::HomeCountry, homeaddress.country());
321 323
@@ -364,27 +366,27 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da
364 database->writeField(ZdbAdrs::Company, addr.organization()); 366 database->writeField(ZdbAdrs::Company, addr.organization());
365 367
366 database->writeField(ZdbAdrs::Profession, addr.custom( "KADDRESSBOOK", "X-Profession" )); 368 database->writeField(ZdbAdrs::Profession, addr.custom( "KADDRESSBOOK", "X-Profession" ));
367 database->writeField(ZdbAdrs::Assistant, addr.custom( "KADDRESSBOOK", "X-AssistantsName" )); 369 database->writeField(ZdbAdrs::Assistant, addr.custom( "KADDRESSBOOK", "X-AssistantsName" ));
368 database->writeField(ZdbAdrs::Department, addr.custom( "KADDRESSBOOK", "X-Department" )); 370 database->writeField(ZdbAdrs::Department, addr.custom( "KADDRESSBOOK", "X-Department" ));
369 database->writeField(ZdbAdrs::Manager, addr.custom( "KADDRESSBOOK", "X-ManagersName" )); 371 database->writeField(ZdbAdrs::Manager, addr.custom( "KADDRESSBOOK", "X-ManagersName" ));
370 database->writeField(ZdbAdrs::Office, addr.custom( "KADDRESSBOOK", "X-Office" )); 372 database->writeField(ZdbAdrs::Office, addr.custom( "KADDRESSBOOK", "X-Office" ));
371 373
372 //personal 374 //personal
373 database->writeField(ZdbAdrs::Spouse, addr.custom( "KADDRESSBOOK", "X-Spouse" )); 375 database->writeField(ZdbAdrs::Spouse, addr.custom( "KADDRESSBOOK", "X-Spouse" ));
374 376
375 QString gt = addr.custom( "KADDRESSBOOK", "X-Gender" ); 377 QString gt = addr.custom( "KADDRESSBOOK", "X-Gender" );
376 //qDebug("SharpDTMConverter::addresseeToSharp please check that gender works!! : Gender: %s", gt.latin1()); 378 //qDebug("OlaccessConverter::addresseeToSharp please check that gender works!! : Gender: %s", gt.latin1());
377 //qDebug("SharpDTMConverter::addresseeToSharp: may be writeField(\"ZdbAdrs::Gender\", ushort) is here better suited?"); 379 //qDebug("OlaccessConverter::addresseeToSharp: may be writeField(\"ZdbAdrs::Gender\", ushort) is here better suited?");
378 //qDebug("SharpDTMConverter::addresseeToSharp: check also the reverse functionality in sharpToAddressee"); 380 //qDebug("OlaccessConverter::addresseeToSharp: check also the reverse functionality in sharpToAddressee");
379 if (gt == "male") 381 if (gt == "male")
380 database->writeField(ZdbAdrs::Gender, "1"); 382 database->writeField(ZdbAdrs::Gender, "1");
381 else if (gt == "female") 383 else if (gt == "female")
382 database->writeField(ZdbAdrs::Gender, "2"); 384 database->writeField(ZdbAdrs::Gender, "2");
383 else 385 else
384 database->writeField(ZdbAdrs::Gender, ""); 386 database->writeField(ZdbAdrs::Gender, "");
385 387
386 QString dateS ; 388 QString dateS ;
387 QDate dt = KGlobal::locale()->readDate(addr.custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d"); // = Qt::ISODate 389 QDate dt = KGlobal::locale()->readDate(addr.custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d"); // = Qt::ISODate
388 if ( dt.isValid() ) { 390 if ( dt.isValid() ) {
389 dateS = KGlobal::locale()->formatDate(dt, true ); 391 dateS = KGlobal::locale()->formatDate(dt, true );
390 } 392 }
@@ -396,49 +398,49 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da
396 dateS = KGlobal::locale()->formatDate(dt, true ); 398 dateS = KGlobal::locale()->formatDate(dt, true );
397 } 399 }
398 database->writeField(ZdbAdrs::Birthday, dateS); 400 database->writeField(ZdbAdrs::Birthday, dateS);
399 database->writeField(ZdbAdrs::Nickname, addr.nickName()); 401 database->writeField(ZdbAdrs::Nickname, addr.nickName());
400 402
401 // other 403 // other
402 database->writeField(ZdbAdrs::Notes, addr.note()); 404 database->writeField(ZdbAdrs::Notes, addr.note());
403 405
404//US QString groups() const { return find( Qtopia::Groups ); } 406//US QString groups() const { return find( Qtopia::Groups ); }
405//US QStringList groupList() const; 407//US QStringList groupList() const;
406 408
407 409
408 //qDebug("SharpDTMConverter::addresseeToSharp please check if category transformation works"); 410 //qDebug("OlaccessConverter::addresseeToSharp please check if category transformation works");
409 411
410 return true; 412 return true;
411} 413}
412 414
413 415
414bool SharpDTMConverter::setCategories( const Addressee &addr, SlZDataBase* database , const CardId &contact ) 416bool OlaccessConverter::setCategories( const Addressee &addr, SlZDataBase* database , const CardId &contact )
415{ 417{
416 QStringList list = addr.categories(); 418 QStringList list = addr.categories();
417 419
418 QArray<int> ids(list.count()); 420 QArray<int> ids(list.count());
419 uint index = 0; 421 uint index = 0;
420 for(uint i=0; i<ids.size(); i++){ 422 for(uint i=0; i<ids.size(); i++){
421 if(catDB->exists(list[i])){ 423 if(catDB->exists(list[i])){
422 ids[index] = catDB->id(list[i]); 424 ids[index] = catDB->id(list[i]);
423 //qDebug("set exist cat %d %s ",ids[index] , list[i].latin1()); 425 //qDebug("set exist cat %d %s ",ids[index] , list[i].latin1());
424 index++; 426 index++;
425 } else { 427 } else {
426 ids[index] = catDB->addCategory(list[i]); 428 ids[index] = catDB->addCategory(list[i]);
427 //qDebug("add new cat %d %s ",ids[index] , list[i].latin1()); 429 //qDebug("add new cat %d %s ",ids[index] , list[i].latin1());
428 index++; 430 index++;
429 } 431 }
430 } 432 }
431 bool res ; 433 bool res ;
432 434
433 if ( !(res = database->updateCategories(contact, ids) )) 435 if ( !(res = database->updateCategories(contact, ids) ))
434 qDebug("SharpDTMConverter::Error updating categories"); 436 qDebug("OlaccessConverter::Error updating categories");
435 437
436 return res; 438 return res;
437} 439}
438 440#endif
439QDate SharpDTMConverter::convertDate( QString s) 441QDate OlaccessConverter::convertDate( QString s)
440{ 442{
441 QDate dt = KGlobal::locale()->readDate( s ); 443 QDate dt = KGlobal::locale()->readDate( s );
442 return dt; 444 return dt;
443 return QDate (); 445 return QDate ();
444} 446}