summaryrefslogtreecommitdiffabout
path: root/kabc
authorzautrix <zautrix>2004-09-21 07:05:01 (UTC)
committer zautrix <zautrix>2004-09-21 07:05:01 (UTC)
commit434ddaa08e0a650422ef271332a1d11879028095 (patch) (unidiff)
treee4f229120d8bfa9febb7ab123b1311329f0e6aa4 /kabc
parented49c55dac215ac2ed9286ebfc36e5a19417f0bb (diff)
downloadkdepimpi-434ddaa08e0a650422ef271332a1d11879028095.zip
kdepimpi-434ddaa08e0a650422ef271332a1d11879028095.tar.gz
kdepimpi-434ddaa08e0a650422ef271332a1d11879028095.tar.bz2
DTM sync fixes
Diffstat (limited to 'kabc') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/addressbook.cpp8
-rw-r--r--kabc/addressee.cpp28
-rw-r--r--kabc/plugins/sharpdtm/resourcesharpdtm.cpp57
-rw-r--r--kabc/plugins/sharpdtm/sharpdtmconverter.cpp119
-rw-r--r--kabc/plugins/sharpdtm/sharpdtmconverter.h1
5 files changed, 117 insertions, 96 deletions
diff --git a/kabc/addressbook.cpp b/kabc/addressbook.cpp
index adb451f..5fb49eb 100644
--- a/kabc/addressbook.cpp
+++ b/kabc/addressbook.cpp
@@ -238,7 +238,5 @@ void AddressBook::init(const QString &config, const QString &family )
238 d = new AddressBookData; 238 d = new AddressBookData;
239 QString fami = family; 239 QString fami = family;
240 qDebug("new ab ");
241 if (config != 0) { 240 if (config != 0) {
242 qDebug("config != 0 ");
243 if ( family == "syncContact" ) { 241 if ( family == "syncContact" ) {
244 qDebug("creating sync config "); 242 qDebug("creating sync config ");
@@ -607,5 +605,5 @@ Addressee AddressBook::findByUid( const QString &uid )
607void AddressBook::preExternSync( AddressBook* aBook, const QString& csd ) 605void AddressBook::preExternSync( AddressBook* aBook, const QString& csd )
608{ 606{
609 qDebug("AddressBook::preExternSync "); 607 //qDebug("AddressBook::preExternSync ");
610 AddressBook::Iterator it; 608 AddressBook::Iterator it;
611 for ( it = begin(); it != end(); ++it ) { 609 for ( it = begin(); it != end(); ++it ) {
@@ -617,8 +615,8 @@ void AddressBook::preExternSync( AddressBook* aBook, const QString& csd )
617void AddressBook::postExternSync( AddressBook* aBook , const QString& csd) 615void AddressBook::postExternSync( AddressBook* aBook , const QString& csd)
618{ 616{
619 qDebug("AddressBook::postExternSync "); 617 //qDebug("AddressBook::postExternSync ");
620 AddressBook::Iterator it; 618 AddressBook::Iterator it;
621 for ( it = begin(); it != end(); ++it ) { 619 for ( it = begin(); it != end(); ++it ) {
622 qDebug("check uid %s ", (*it).uid().latin1() ); 620 // qDebug("check uid %s ", (*it).uid().latin1() );
623 if ( (*it).tempSyncStat() == SYNC_TEMPSTATE_NEW_ID || 621 if ( (*it).tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ||
624 (*it).tempSyncStat() == SYNC_TEMPSTATE_NEW_CSUM ) { 622 (*it).tempSyncStat() == SYNC_TEMPSTATE_NEW_CSUM ) {
diff --git a/kabc/addressee.cpp b/kabc/addressee.cpp
index e241281..31ce1d6 100644
--- a/kabc/addressee.cpp
+++ b/kabc/addressee.cpp
@@ -44,4 +44,6 @@ using namespace KABC;
44 44
45static bool matchBinaryPattern( int value, int pattern ); 45static bool matchBinaryPattern( int value, int pattern );
46static bool matchBinaryPatternA( int value, int pattern );
47static bool matchBinaryPatternP( int value, int pattern );
46 48
47struct Addressee::AddresseeData : public KShared 49struct Addressee::AddresseeData : public KShared
@@ -382,5 +384,5 @@ void Addressee::setOriginalExternalUID( const QString &id )
382 detach(); 384 detach();
383 mData->empty = false; 385 mData->empty = false;
384 qDebug("*******Set orig uid %s ", id.latin1()); 386 //qDebug("*******Set orig uid %s ", id.latin1());
385 mData->originalExternalUID = id; 387 mData->originalExternalUID = id;
386} 388}
@@ -395,5 +397,5 @@ void Addressee::setUid( const QString &id )
395 if ( id == mData->uid ) return; 397 if ( id == mData->uid ) return;
396 detach(); 398 detach();
397 qDebug("****setuid %s ", id.latin1()); 399 //qDebug("****setuid %s ", id.latin1());
398 mData->empty = false; 400 mData->empty = false;
399 mData->uid = id; 401 mData->uid = id;
@@ -1291,5 +1293,5 @@ PhoneNumber Addressee::phoneNumber( int type ) const
1291 PhoneNumber::List::ConstIterator it; 1293 PhoneNumber::List::ConstIterator it;
1292 for( it = mData->phoneNumbers.begin(); it != mData->phoneNumbers.end(); ++it ) { 1294 for( it = mData->phoneNumbers.begin(); it != mData->phoneNumbers.end(); ++it ) {
1293 if ( matchBinaryPattern( (*it).type(), type ) ) { 1295 if ( matchBinaryPatternP( (*it).type(), type ) ) {
1294 if ( (*it).type() & PhoneNumber::Pref ) 1296 if ( (*it).type() & PhoneNumber::Pref )
1295 return (*it); 1297 return (*it);
@@ -1528,5 +1530,5 @@ Address Addressee::address( int type ) const
1528 Address::List::ConstIterator it; 1530 Address::List::ConstIterator it;
1529 for( it = mData->addresses.begin(); it != mData->addresses.end(); ++it ) { 1531 for( it = mData->addresses.begin(); it != mData->addresses.end(); ++it ) {
1530 if ( matchBinaryPattern( (*it).type(), type ) ) { 1532 if ( matchBinaryPatternA( (*it).type(), type ) ) {
1531 if ( (*it).type() & Address::Pref ) 1533 if ( (*it).type() & Address::Pref )
1532 return (*it); 1534 return (*it);
@@ -1836,5 +1838,4 @@ QDataStream &KABC::operator>>( QDataStream &s, Addressee &a )
1836 return s; 1838 return s;
1837} 1839}
1838
1839bool matchBinaryPattern( int value, int pattern ) 1840bool matchBinaryPattern( int value, int pattern )
1840{ 1841{
@@ -1850,2 +1851,19 @@ bool matchBinaryPattern( int value, int pattern )
1850 return ( pattern == ( pattern & value ) ); 1851 return ( pattern == ( pattern & value ) );
1851} 1852}
1853
1854bool matchBinaryPatternP( int value, int pattern )
1855{
1856
1857 if ( pattern == 0 )
1858 return ( value == 0 );
1859 else
1860 return ( (pattern |PhoneNumber::Pref ) == ( value |PhoneNumber::Pref ) );
1861}
1862bool matchBinaryPatternA( int value, int pattern )
1863{
1864
1865 if ( pattern == 0 )
1866 return ( value == 0 );
1867 else
1868 return ( (pattern | Address::Pref) == ( value | Address::Pref ) );
1869}
diff --git a/kabc/plugins/sharpdtm/resourcesharpdtm.cpp b/kabc/plugins/sharpdtm/resourcesharpdtm.cpp
index bba5f9a..48d3985 100644
--- a/kabc/plugins/sharpdtm/resourcesharpdtm.cpp
+++ b/kabc/plugins/sharpdtm/resourcesharpdtm.cpp
@@ -130,5 +130,5 @@ bool ResourceSharpDTM::doOpen()
130 mAccess = new SlZDataBase(fileName(), 130 mAccess = new SlZDataBase(fileName(),
131 SlZDataBase::addressbookItems(), 131 SlZDataBase::addressbookItems(),
132 NULL, true); 132 NULL, false);
133 133
134 if ( !mAccess ) { 134 if ( !mAccess ) {
@@ -140,5 +140,5 @@ bool ResourceSharpDTM::doOpen()
140 { 140 {
141 mConverter = new SharpDTMConverter(); 141 mConverter = new SharpDTMConverter();
142 bool res = mConverter->init(); 142 bool res = mConverter->init();
143 if ( !res ) 143 if ( !res )
144 { 144 {
@@ -225,17 +225,16 @@ bool ResourceSharpDTM::save( Ticket *ticket )
225 { 225 {
226 KABC::Addressee addressee; 226 KABC::Addressee addressee;
227 qDebug("1NEW id is %d", id);
228 res = mConverter->sharpToAddressee( id, mAccess, addressee ); 227 res = mConverter->sharpToAddressee( id, mAccess, addressee );
229 addressee.setUid((*it).uid() ); 228 addressee.setUid((*it).uid() );
230 addressee.setTempSyncStat( SYNC_TEMPSTATE_NEW_CSUM ); 229 addressee.setTempSyncStat( SYNC_TEMPSTATE_NEW_ID );
231 changedAddressees.append( addressee );
232 res = mAccess->finishEditCard(&id); 230 res = mAccess->finishEditCard(&id);
233 qDebug("2NEW id is %d", id); 231 //qDebug("2NEW id is %d", id);
232 addressee.setExternalUID( QString::number( id ) );
233 addressee.setOriginalExternalUID( QString::number( id ) );
234 changedAddressees.append( addressee );
234 235
235 if (res == false) 236 if (res == false)
236 qDebug("Unable to append Contact: %s", addressee.formattedName().latin1()); 237 qDebug("Unable to append Contact: %s", addressee.formattedName().latin1());
237 else { 238
238 qDebug("added card success ");
239 }
240 } 239 }
241 else 240 else
@@ -256,4 +255,5 @@ bool ResourceSharpDTM::save( Ticket *ticket )
256 } else if ( (*it).tempSyncStat() != SYNC_TEMPSTATE_NEW_EXTERNAL ) { 255 } else if ( (*it).tempSyncStat() != SYNC_TEMPSTATE_NEW_EXTERNAL ) {
257 //changed 256 //changed
257 qDebug("changed ****");
258 res = mAccess->startEditCard(id); 258 res = mAccess->startEditCard(id);
259 if (res == true) 259 if (res == true)
@@ -270,7 +270,5 @@ bool ResourceSharpDTM::save( Ticket *ticket )
270 if (res == false) 270 if (res == false)
271 qDebug("Unable to append Contact: %s", addressee.formattedName().latin1()); 271 qDebug("Unable to append Contact: %s", addressee.formattedName().latin1());
272 else { 272
273 qDebug("change card succes ");
274 }
275 } 273 }
276 else 274 else
@@ -281,40 +279,5 @@ bool ResourceSharpDTM::save( Ticket *ticket )
281 } 279 }
282 } 280 }
283
284
285
286
287
288
289
290
291 }
292
293#if 0
294 // old code
295 CardId id = 0;// 0 means new card
296 KABC::Addressee addressee = (*it);
297
298 res = mAccess->startEditCard(id);
299 if (res == true)
300 {
301 res = mConverter->addresseeToSharp( *it, mAccess, id );
302 if (res == true)
303 {
304 res = mAccess->finishEditCard(&id);
305 if (res == false)
306 qDebug("Unable to append Contact: %s", addressee.formattedName().latin1());
307 } 281 }
308 else
309 {
310 qDebug("Unable to convert Addressee: %s", addressee.formattedName().latin1());
311 mAccess->cancelEditCard();
312 }
313 }
314 else
315 {
316 qDebug("Unable to add new card. Addressee: %s", addressee.formattedName().latin1());
317 }
318#endif
319 282
320 } 283 }
diff --git a/kabc/plugins/sharpdtm/sharpdtmconverter.cpp b/kabc/plugins/sharpdtm/sharpdtmconverter.cpp
index b065bf3..f3bf2c5 100644
--- a/kabc/plugins/sharpdtm/sharpdtmconverter.cpp
+++ b/kabc/plugins/sharpdtm/sharpdtmconverter.cpp
@@ -27,4 +27,5 @@ $Id$
27 27
28#include "kglobal.h" 28#include "kglobal.h"
29#include <qregexp.h>
29 30
30 31
@@ -32,4 +33,5 @@ $Id$
32 33
33#include <sl/slcategories.h> 34#include <sl/slcategories.h>
35#include <libkdepim/ksyncprofile.h>
34//US #include <qpe/categoryselect.h> 36//US #include <qpe/categoryselect.h>
35 37
@@ -74,9 +76,10 @@ bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBa
74 addr.setExternalUID( QString::number( contact ) ); 76 addr.setExternalUID( QString::number( contact ) );
75 addr.setOriginalExternalUID( QString::number( contact ) ); 77 addr.setOriginalExternalUID( QString::number( contact ) );
78 addr.setTempSyncStat( SYNC_TEMPSTATE_NEW_EXTERNAL );
76 79
77 80
78 // name 81 // name
79 qDebug("SharpDTMConverter::sharpToAddressee check if the fileAs transformation works!!"); 82 //qDebug("SharpDTMConverter::sharpToAddressee check if the fileAs transformation works!!");
80 addr.setFormattedName(db->readField(ZdbAdrs::FileAs)); 83 addr.setFormattedName(db->readField(ZdbAdrs::FileAs)); // needs fix
81 84
82 addr.setFamilyName( db->readField(ZdbAdrs::LastName) ); 85 addr.setFamilyName( db->readField(ZdbAdrs::LastName) );
@@ -87,15 +90,22 @@ bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBa
87 90
88 91
89 // email
90 QString emailstr = db->readField(ZdbAdrs::Emails); 92 QString emailstr = db->readField(ZdbAdrs::Emails);
91 qDebug("SharpDTMConverter::sharpToAddressee whats the character to seperate the emailadresses? %s ", emailstr.latin1()); 93 emailstr.replace( QRegExp(","), " " );
92 QStringList emails = QStringList::split(",", emailstr); 94 emailstr.replace( QRegExp(";"), " " );
93 95 emailstr.replace( QRegExp(":"), " " );
96 //qDebug("SharpDTMConverter::sharpToAddressee whats the character to seperate the emailadresses? %s ", emailstr.latin1());
97 QStringList emails = QStringList::split(" ", emailstr.simplifyWhiteSpace());
98 bool defE = false;
99 bool found = false;
94 for ( QStringList::Iterator it = emails.begin(); it != emails.end(); ++it ) { 100 for ( QStringList::Iterator it = emails.begin(); it != emails.end(); ++it ) {
95 addr.insertEmail( *it, ((*it) == db->readField(ZdbAdrs::DefaultEmail)) ); 101 if (found )
102 defE = false;
103 else
104 found = defE = ((*it).lower() == db->readField(ZdbAdrs::DefaultEmail).lower());
105 addr.insertEmail( *it, defE );
96 } 106 }
97 107 if ( ! found )
98 if (!db->readField(ZdbAdrs::DefaultEmail).isEmpty()) 108 if (!db->readField(ZdbAdrs::DefaultEmail).isEmpty())
99 addr.insertEmail(db->readField(ZdbAdrs::DefaultEmail), true); 109 addr.insertEmail(db->readField(ZdbAdrs::DefaultEmail), true);
100 110
101 // home 111 // home
@@ -199,5 +209,5 @@ bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBa
199 } 209 }
200 210
201 addr.setRole( db->readField(ZdbAdrs::JobTitle) ); //? 211 addr.setRole( db->readField(ZdbAdrs::JobTitle) );
202 addr.setOrganization( db->readField(ZdbAdrs::Company) ); 212 addr.setOrganization( db->readField(ZdbAdrs::Company) );
203 addr.insertCustom( "KADDRESSBOOK", "X-Profession", db->readField(ZdbAdrs::Profession) ); 213 addr.insertCustom( "KADDRESSBOOK", "X-Profession", db->readField(ZdbAdrs::Profession) );
@@ -211,6 +221,6 @@ bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBa
211 221
212 QString gen = db->readField(ZdbAdrs::Gender); 222 QString gen = db->readField(ZdbAdrs::Gender);
213 qDebug("SharpDTMConverter::sharpToAddressee pleas check that gender works!! : Gender: %s", gen.latin1()); 223 //qDebug("SharpDTMConverter::sharpToAddressee pleas check that gender works!! : Gender: %s", gen.latin1());
214 qDebug("SharpDTMConverter::sharpToAddressee: may be int db->readUshortField(\"ZdbAdrs::Gender\") is here better suited"); 224 //qDebug("SharpDTMConverter::sharpToAddressee: may be int db->readUshortField(\"ZdbAdrs::Gender\") is here better suited");
215 225
216 if (gen == "male") 226 if (gen == "male")
@@ -220,17 +230,17 @@ bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBa
220 230
221 231
222 QDate ann = db->readDateField(ZdbAdrs::Anniversary); 232 QDate ann = KGlobal::locale()->readDate( db->readField(ZdbAdrs::Anniversary) );
223
224 if (ann.isValid()) { 233 if (ann.isValid()) {
225 QString dt = KGlobal::locale()->formatDate(ann, true, KLocale::ISODate); 234 QString dt = KGlobal::locale()->formatDate(ann, true, KLocale::ISODate);
226//US 235 //qDebug("qtopiaToAddressee annyversary found:%s", dt.latin1());
227// qDebug("QtopiaConverter::qtopiaToAddressee found:%s", dt.latin1());
228 addr.insertCustom( "KADDRESSBOOK", "X-Anniversary", dt); 236 addr.insertCustom( "KADDRESSBOOK", "X-Anniversary", dt);
229 } 237 }
238
230 239
231 addr.insertCustom( "KADDRESSBOOK", "X-Children", db->readField(ZdbAdrs::Children) ); 240 addr.insertCustom( "KADDRESSBOOK", "X-Children", db->readField(ZdbAdrs::Children) );
232 241
233 242
234 QDate birthd = db->readDateField(ZdbAdrs::Birthday); 243 QDate birthd = KGlobal::locale()->readDate( db->readField(ZdbAdrs::Birthday) );
244 //qDebug("birtd %s ", birthd.toString().latin1());
235 if (birthd.isValid()) 245 if (birthd.isValid())
236 addr.setBirthday( birthd ); 246 addr.setBirthday( birthd );
@@ -241,6 +251,7 @@ bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBa
241 //US I put opies BusinessWebPage into Ka/Pi's notes block, because no other native field is available. 251 //US I put opies BusinessWebPage into Ka/Pi's notes block, because no other native field is available.
242 QString notes = db->readField(ZdbAdrs::Notes); 252 QString notes = db->readField(ZdbAdrs::Notes);
243 notes += "\nBusinessWebPage: " + db->readField(ZdbAdrs::BusinessWebPage) + "\n"; 253 //notes += "\nBusinessWebPage: " + db->readField(ZdbAdrs::BusinessWebPage) + "\n";
244 254 if ( addr.url().isEmpty() )
255 addr.setUrl( db->readField(ZdbAdrs::BusinessWebPage) );
245 addr.setNote( db->readField(ZdbAdrs::Notes) ); 256 addr.setNote( db->readField(ZdbAdrs::Notes) );
246 257
@@ -250,5 +261,5 @@ bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBa
250//US QStringList groupList() const; 261//US QStringList groupList() const;
251 262
252 qDebug("SharpDTMConverter::sharpToAddressee please check that the categories will be converted" ); 263 //qDebug("SharpDTMConverter::sharpToAddressee please check that the categories will be converted" );
253 QArray<int> catArray = db->readCategories(); 264 QArray<int> catArray = db->readCategories();
254 QString cat; 265 QString cat;
@@ -267,4 +278,5 @@ bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBa
267bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* database , const CardId &contact ) 278bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* database , const CardId &contact )
268{ 279{
280 bool cellHome = false, cellWork = false;
269 // name 281 // name
270 database->writeField(ZdbAdrs::LastName, addr.familyName()); 282 database->writeField(ZdbAdrs::LastName, addr.familyName());
@@ -274,12 +286,12 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da
274 database->writeField(ZdbAdrs::Suffix, addr.suffix()); 286 database->writeField(ZdbAdrs::Suffix, addr.suffix());
275 287
276 qDebug("SharpDTMConverter::addresseeToSharp check if the fileAs transformation works!!"); 288 //qDebug("SharpDTMConverter::addresseeToSharp check if the fileAs transformation works!!\n%s",addr.formattedName().latin1() );
277 database->writeField(ZdbAdrs::FileAs, addr.formattedName()); 289 database->writeField(ZdbAdrs::FileAs, addr.formattedName());
278 290 database->writeField(ZdbAdrs::FullName, addr.formattedName());
279 291
280 // email 292 // email
281 qDebug("SharpDTMConverter::addresseeToSharp check which seperator we need here for the emails!!"); 293 //qDebug("SharpDTMConverter::addresseeToSharp check which seperator we need here for the emails!!");
282 qDebug("SharpDTMConverter::addresseeToSharp its probably the same from sharpToAddressee"); 294 //qDebug("SharpDTMConverter::addresseeToSharp its probably the same from sharpToAddressee");
283 QString emails = addr.emails().join(","); 295 QString emails = addr.emails().join(" ");
284 database->writeField(ZdbAdrs::Emails, emails ); 296 database->writeField(ZdbAdrs::Emails, emails );
285 297
@@ -306,6 +318,8 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da
306 318
307 PhoneNumber homemobile = addr.phoneNumber( PhoneNumber::Home | PhoneNumber::Cell ); 319 PhoneNumber homemobile = addr.phoneNumber( PhoneNumber::Home | PhoneNumber::Cell );
308 if (!homemobile.number().isEmpty()) 320 if (!homemobile.number().isEmpty()) {
309 database->writeField(ZdbAdrs::HomeMobile, homemobile.number()); 321 database->writeField(ZdbAdrs::HomeMobile, homemobile.number());
322 cellHome = true;
323 }
310 324
311 database->writeField(ZdbAdrs::HomeWebPage, addr.url().url()); 325 database->writeField(ZdbAdrs::HomeWebPage, addr.url().url());
@@ -331,6 +345,15 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da
331 345
332 PhoneNumber businessmobile = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Cell ); 346 PhoneNumber businessmobile = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Cell );
333 if (!businessmobile.number().isEmpty()) 347 if (!businessmobile.number().isEmpty()) {
334 database->writeField(ZdbAdrs::BusinessMobile, businessmobile.number()); 348 cellWork = true;
349 database->writeField(ZdbAdrs::BusinessMobile, businessmobile.number());
350 }
351 PhoneNumber mobile = addr.phoneNumber( PhoneNumber::Cell );
352 if (!businessmobile.number().isEmpty()) {
353 if ( ! cellHome )
354 database->writeField(ZdbAdrs::HomeMobile, mobile.number());
355 else if (! cellWork )
356 database->writeField(ZdbAdrs::BusinessMobile, mobile.number());
357 }
335 358
336 PhoneNumber businesspager = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Pager ); 359 PhoneNumber businesspager = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Pager );
@@ -351,10 +374,10 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da
351 374
352 QString gt = addr.custom( "KADDRESSBOOK", "X-Gender" ); 375 QString gt = addr.custom( "KADDRESSBOOK", "X-Gender" );
353 qDebug("SharpDTMConverter::addresseeToSharp please check that gender works!! : Gender: %s", gt.latin1()); 376 //qDebug("SharpDTMConverter::addresseeToSharp please check that gender works!! : Gender: %s", gt.latin1());
354 qDebug("SharpDTMConverter::addresseeToSharp: may be writeField(\"ZdbAdrs::Gender\", ushort) is here better suited?"); 377 //qDebug("SharpDTMConverter::addresseeToSharp: may be writeField(\"ZdbAdrs::Gender\", ushort) is here better suited?");
355 qDebug("SharpDTMConverter::addresseeToSharp: check also the reverse functionality in sharpToAddressee"); 378 //qDebug("SharpDTMConverter::addresseeToSharp: check also the reverse functionality in sharpToAddressee");
356 if (gt = "male") 379 if (gt == "male")
357 database->writeField(ZdbAdrs::Gender, "male"); 380 database->writeField(ZdbAdrs::Gender, "male");
358 else if (gt = "female") 381 else if (gt == "female")
359 database->writeField(ZdbAdrs::Gender, "female"); 382 database->writeField(ZdbAdrs::Gender, "female");
360 else 383 else
@@ -364,9 +387,14 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da
364 QDate dt = KGlobal::locale()->readDate( 387 QDate dt = KGlobal::locale()->readDate(
365 addr.custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d"); // = Qt::ISODate 388 addr.custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d"); // = Qt::ISODate
366 database->writeField(ZdbAdrs::Anniversary, dt ); 389 if ( dt.isValid() ) {
367 390 QString dateS = KGlobal::locale()->formatDate(dt, true );
391 database->writeField(ZdbAdrs::Anniversary, dateS );
392 }
368 database->writeField(ZdbAdrs::Children, addr.custom( "KADDRESSBOOK", "X-Children" )); 393 database->writeField(ZdbAdrs::Children, addr.custom( "KADDRESSBOOK", "X-Children" ));
369 394 dt = addr.birthday().date();
370 database->writeField(ZdbAdrs::Birthday, addr.birthday().date()); 395 if ( dt.isValid() ) {
396 QString dateS = KGlobal::locale()->formatDate(dt, true );
397 database->writeField(ZdbAdrs::Birthday, dateS);
398 }
371 database->writeField(ZdbAdrs::Nickname, addr.nickName()); 399 database->writeField(ZdbAdrs::Nickname, addr.nickName());
372 400
@@ -378,10 +406,16 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da
378 406
379 407
380 qDebug("SharpDTMConverter::addresseeToSharp please check if category transformation works"); 408 //qDebug("SharpDTMConverter::addresseeToSharp please check if category transformation works");
381 409
382 QStringList cats = addr.categories(); 410 QStringList cats = addr.categories();
411 int ii;
412 for ( ii = 0; ii < cats.count() ;++ii ) {
413 if ( !catDB->exists( cats[ii] ))
414 catDB->addCategory(cats[ii]);
415 }
383 QArray<int> iar; 416 QArray<int> iar;
384 if ( !cats.isEmpty() ) { 417 if ( !cats.isEmpty() ) {
385 QArray<int> iar = catDB->ids(cats); 418 QArray<int> iar = catDB->ids(cats);
419 qDebug("***cat count is %d ", iar.count());
386 database->updateCategories(contact, iar); 420 database->updateCategories(contact, iar);
387 } 421 }
@@ -389,2 +423,9 @@ bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* da
389 return true; 423 return true;
390} 424}
425
426QDate SharpDTMConverter::convertDate( QString s)
427{
428 QDate dt = KGlobal::locale()->readDate( s );
429 return dt;
430 return QDate ();
431}
diff --git a/kabc/plugins/sharpdtm/sharpdtmconverter.h b/kabc/plugins/sharpdtm/sharpdtmconverter.h
index 99e0413..a04083e 100644
--- a/kabc/plugins/sharpdtm/sharpdtmconverter.h
+++ b/kabc/plugins/sharpdtm/sharpdtmconverter.h
@@ -79,4 +79,5 @@ public:
79 private: 79 private:
80 SlCategory::SlCategories* catDB; 80 SlCategory::SlCategories* catDB;
81 QDate convertDate( QString );
81 82
82 83