Diffstat (limited to 'libopie2/opiepim/backend/ocontactaccessbackend_vcard.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | libopie2/opiepim/backend/ocontactaccessbackend_vcard.cpp | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/libopie2/opiepim/backend/ocontactaccessbackend_vcard.cpp b/libopie2/opiepim/backend/ocontactaccessbackend_vcard.cpp index 09ae37b..ca9e410 100644 --- a/libopie2/opiepim/backend/ocontactaccessbackend_vcard.cpp +++ b/libopie2/opiepim/backend/ocontactaccessbackend_vcard.cpp | |||
@@ -14,12 +14,15 @@ | |||
14 | * | 14 | * |
15 | * ===================================================================== | 15 | * ===================================================================== |
16 | * Version: $Id$ | 16 | * Version: $Id$ |
17 | * ===================================================================== | 17 | * ===================================================================== |
18 | * History: | 18 | * History: |
19 | * $Log$ | 19 | * $Log$ |
20 | * Revision 1.5 2002/12/07 13:26:22 eilers | ||
21 | * Fixing bug in storing anniversary.. | ||
22 | * | ||
20 | * Revision 1.4 2002/11/13 14:14:51 eilers | 23 | * Revision 1.4 2002/11/13 14:14:51 eilers |
21 | * Added sorted for Contacts.. | 24 | * Added sorted for Contacts.. |
22 | * | 25 | * |
23 | * Revision 1.3 2002/11/11 16:41:09 kergoth | 26 | * Revision 1.3 2002/11/11 16:41:09 kergoth |
24 | * no default arguments in implementation | 27 | * no default arguments in implementation |
25 | * | 28 | * |
@@ -380,13 +383,13 @@ OContact OContactAccessBackend_VCard::parseVObject( VObject *obj ) | |||
380 | c.setSpouse( value ); | 383 | c.setSpouse( value ); |
381 | } | 384 | } |
382 | else if ( name == "X-Qtopia-Gender" ) { | 385 | else if ( name == "X-Qtopia-Gender" ) { |
383 | c.setGender( value ); | 386 | c.setGender( value ); |
384 | } | 387 | } |
385 | else if ( name == "X-Qtopia-Anniversary" ) { | 388 | else if ( name == "X-Qtopia-Anniversary" ) { |
386 | c.setAnniversary( TimeConversion::fromString( value ) ); | 389 | c.setAnniversary( convVCardDateToDate( value ) ); |
387 | } | 390 | } |
388 | else if ( name == "X-Qtopia-Nickname" ) { | 391 | else if ( name == "X-Qtopia-Nickname" ) { |
389 | c.setNickname( value ); | 392 | c.setNickname( value ); |
390 | } | 393 | } |
391 | else if ( name == "X-Qtopia-Children" ) { | 394 | else if ( name == "X-Qtopia-Children" ) { |
392 | c.setChildren( value ); | 395 | c.setChildren( value ); |
@@ -491,23 +494,14 @@ VObject* OContactAccessBackend_VCard::createVObject( const OContact &c ) | |||
491 | } | 494 | } |
492 | 495 | ||
493 | safeAddPropValue( vcard, VCNoteProp, c.notes() ); | 496 | safeAddPropValue( vcard, VCNoteProp, c.notes() ); |
494 | 497 | ||
495 | // Exporting Birthday regarding RFC 2425 (5.8.4) | 498 | // Exporting Birthday regarding RFC 2425 (5.8.4) |
496 | if ( c.birthday().isValid() ){ | 499 | if ( c.birthday().isValid() ){ |
497 | QString birthd_rfc2425 = QString("%1-%2-%3") | 500 | qWarning("Exporting birthday as: %s", convDateToVCardDate( c.birthday() ).latin1() ); |
498 | .arg( c.birthday().year() ) | 501 | safeAddPropValue( vcard, VCBirthDateProp, convDateToVCardDate( c.birthday() ) ); |
499 | .arg( c.birthday().month(), 2 ) | ||
500 | .arg( c.birthday().day(), 2 ); | ||
501 | // Now replace spaces with "0"... | ||
502 | int pos = 0; | ||
503 | while ( ( pos = birthd_rfc2425.find (' ') ) > 0 ) | ||
504 | birthd_rfc2425.replace( pos, 1, "0" ); | ||
505 | |||
506 | qWarning("Exporting birthday as: %s", birthd_rfc2425.latin1()); | ||
507 | safeAddPropValue( vcard, VCBirthDateProp, birthd_rfc2425.latin1() ); | ||
508 | } | 502 | } |
509 | 503 | ||
510 | if ( !c.company().isEmpty() || !c.department().isEmpty() || !c.office().isEmpty() ) { | 504 | if ( !c.company().isEmpty() || !c.department().isEmpty() || !c.office().isEmpty() ) { |
511 | VObject *org = safeAddProp( vcard, VCOrgProp ); | 505 | VObject *org = safeAddProp( vcard, VCOrgProp ); |
512 | safeAddPropValue( org, VCOrgNameProp, c.company() ); | 506 | safeAddPropValue( org, VCOrgNameProp, c.company() ); |
513 | safeAddPropValue( org, VCOrgUnitProp, c.department() ); | 507 | safeAddPropValue( org, VCOrgUnitProp, c.department() ); |
@@ -518,19 +512,36 @@ VObject* OContactAccessBackend_VCard::createVObject( const OContact &c ) | |||
518 | safeAddPropValue( vcard, "X-Qtopia-Profession", c.profession() ); | 512 | safeAddPropValue( vcard, "X-Qtopia-Profession", c.profession() ); |
519 | safeAddPropValue( vcard, "X-Qtopia-Manager", c.manager() ); | 513 | safeAddPropValue( vcard, "X-Qtopia-Manager", c.manager() ); |
520 | safeAddPropValue( vcard, "X-Qtopia-Assistant", c.assistant() ); | 514 | safeAddPropValue( vcard, "X-Qtopia-Assistant", c.assistant() ); |
521 | 515 | ||
522 | safeAddPropValue( vcard, "X-Qtopia-Spouse", c.spouse() ); | 516 | safeAddPropValue( vcard, "X-Qtopia-Spouse", c.spouse() ); |
523 | safeAddPropValue( vcard, "X-Qtopia-Gender", c.gender() ); | 517 | safeAddPropValue( vcard, "X-Qtopia-Gender", c.gender() ); |
524 | safeAddPropValue( vcard, "X-Qtopia-Anniversary", TimeConversion::toString( c.anniversary() ) ); | 518 | if ( c.anniversary().isValid() ){ |
519 | qWarning("Exporting anniversary as: %s", convDateToVCardDate( c.anniversary() ).latin1() ); | ||
520 | safeAddPropValue( vcard, "X-Qtopia-Anniversary", convDateToVCardDate( c.anniversary() ) ); | ||
521 | } | ||
525 | safeAddPropValue( vcard, "X-Qtopia-Nickname", c.nickname() ); | 522 | safeAddPropValue( vcard, "X-Qtopia-Nickname", c.nickname() ); |
526 | safeAddPropValue( vcard, "X-Qtopia-Children", c.children() ); | 523 | safeAddPropValue( vcard, "X-Qtopia-Children", c.children() ); |
527 | 524 | ||
528 | return vcard; | 525 | return vcard; |
529 | } | 526 | } |
530 | 527 | ||
528 | QString OContactAccessBackend_VCard::convDateToVCardDate( const QDate& d ) const | ||
529 | { | ||
530 | QString str_rfc2425 = QString("%1-%2-%3") | ||
531 | .arg( d.year() ) | ||
532 | .arg( d.month(), 2 ) | ||
533 | .arg( d.day(), 2 ); | ||
534 | // Now replace spaces with "0"... | ||
535 | int pos = 0; | ||
536 | while ( ( pos = str_rfc2425.find (' ') ) > 0 ) | ||
537 | str_rfc2425.replace( pos, 1, "0" ); | ||
538 | |||
539 | return str_rfc2425; | ||
540 | } | ||
541 | |||
531 | QDate OContactAccessBackend_VCard::convVCardDateToDate( const QString& datestr ) | 542 | QDate OContactAccessBackend_VCard::convVCardDateToDate( const QString& datestr ) |
532 | { | 543 | { |
533 | int monthPos = datestr.find('-'); | 544 | int monthPos = datestr.find('-'); |
534 | int dayPos = datestr.find('-', monthPos+1 ); | 545 | int dayPos = datestr.find('-', monthPos+1 ); |
535 | int sep_ignore = 1; | 546 | int sep_ignore = 1; |
536 | if ( monthPos == -1 || dayPos == -1 ) { | 547 | if ( monthPos == -1 || dayPos == -1 ) { |