summaryrefslogtreecommitdiff
path: root/libopie2
Unidiff
Diffstat (limited to 'libopie2') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiepim/backend/ocontactaccessbackend_vcard.cpp37
-rw-r--r--libopie2/opiepim/backend/ocontactaccessbackend_vcard.h4
2 files changed, 28 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
@@ -17,6 +17,9 @@
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 *
@@ -383,7 +386,7 @@ OContact OContactAccessBackend_VCard::parseVObject( VObject *obj )
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 );
@@ -494,17 +497,8 @@ VObject* OContactAccessBackend_VCard::createVObject( const OContact &c )
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() ) {
@@ -521,13 +515,30 @@ VObject* OContactAccessBackend_VCard::createVObject( const OContact &c )
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
528QString 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
531QDate OContactAccessBackend_VCard::convVCardDateToDate( const QString& datestr ) 542QDate OContactAccessBackend_VCard::convVCardDateToDate( const QString& datestr )
532{ 543{
533 int monthPos = datestr.find('-'); 544 int monthPos = datestr.find('-');
diff --git a/libopie2/opiepim/backend/ocontactaccessbackend_vcard.h b/libopie2/opiepim/backend/ocontactaccessbackend_vcard.h
index 4437756..236da00 100644
--- a/libopie2/opiepim/backend/ocontactaccessbackend_vcard.h
+++ b/libopie2/opiepim/backend/ocontactaccessbackend_vcard.h
@@ -17,6 +17,9 @@
17 * ===================================================================== 17 * =====================================================================
18 * History: 18 * History:
19 * $Log$ 19 * $Log$
20 * Revision 1.4 2002/12/07 13:26:22 eilers
21 * Fixing bug in storing anniversary..
22 *
20 * Revision 1.3 2002/11/13 14:14:51 eilers 23 * Revision 1.3 2002/11/13 14:14:51 eilers
21 * Added sorted for Contacts.. 24 * Added sorted for Contacts..
22 * 25 *
@@ -62,6 +65,7 @@ class OContactAccessBackend_VCard : public OContactAccessBackend {
62private: 65private:
63 OContact parseVObject( VObject* obj ); 66 OContact parseVObject( VObject* obj );
64 VObject* createVObject( const OContact& c ); 67 VObject* createVObject( const OContact& c );
68 QString convDateToVCardDate( const QDate& c ) const;
65 QDate convVCardDateToDate( const QString& datestr ); 69 QDate convVCardDateToDate( const QString& datestr );
66 VObject *safeAddPropValue( VObject *o, const char* prop, const QString& value ); 70 VObject *safeAddPropValue( VObject *o, const char* prop, const QString& value );
67 VObject *safeAddProp( VObject* o, const char* prop); 71 VObject *safeAddProp( VObject* o, const char* prop);