summaryrefslogtreecommitdiff
path: root/libopie/pim
authoreilers <eilers>2002-12-07 13:26:22 (UTC)
committer eilers <eilers>2002-12-07 13:26:22 (UTC)
commit1e0c4ae8e82863179199b0437a6d9cca6b661a7e (patch) (unidiff)
tree8a452f8747290d638787ee47a3a8bf8147db0786 /libopie/pim
parentad2a10877ae6e50b1a765a9b7cff14494c65e588 (diff)
downloadopie-1e0c4ae8e82863179199b0437a6d9cca6b661a7e.zip
opie-1e0c4ae8e82863179199b0437a6d9cca6b661a7e.tar.gz
opie-1e0c4ae8e82863179199b0437a6d9cca6b661a7e.tar.bz2
Fixing bug in storing anniversary..
Diffstat (limited to 'libopie/pim') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/pim/ocontactaccessbackend_vcard.cpp37
-rw-r--r--libopie/pim/ocontactaccessbackend_vcard.h4
2 files changed, 28 insertions, 13 deletions
diff --git a/libopie/pim/ocontactaccessbackend_vcard.cpp b/libopie/pim/ocontactaccessbackend_vcard.cpp
index 09ae37b..ca9e410 100644
--- a/libopie/pim/ocontactaccessbackend_vcard.cpp
+++ b/libopie/pim/ocontactaccessbackend_vcard.cpp
@@ -16,8 +16,11 @@
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
@@ -382,9 +385,9 @@ OContact OContactAccessBackend_VCard::parseVObject( VObject *obj )
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 }
@@ -493,19 +496,10 @@ VObject* OContactAccessBackend_VCard::createVObject( const OContact &c )
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 );
@@ -520,15 +514,32 @@ VObject* OContactAccessBackend_VCard::createVObject( const OContact &c )
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
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('-');
534 int dayPos = datestr.find('-', monthPos+1 ); 545 int dayPos = datestr.find('-', monthPos+1 );
diff --git a/libopie/pim/ocontactaccessbackend_vcard.h b/libopie/pim/ocontactaccessbackend_vcard.h
index 4437756..236da00 100644
--- a/libopie/pim/ocontactaccessbackend_vcard.h
+++ b/libopie/pim/ocontactaccessbackend_vcard.h
@@ -16,8 +16,11 @@
16 * Version: $Id$ 16 * Version: $Id$
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 *
23 * Revision 1.2 2002/11/10 15:41:53 eilers 26 * Revision 1.2 2002/11/10 15:41:53 eilers
@@ -61,8 +64,9 @@ class OContactAccessBackend_VCard : public OContactAccessBackend {
61 64
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);
68 72