summaryrefslogtreecommitdiff
path: root/libopie/pim
Side-by-side diff
Diffstat (limited to 'libopie/pim') (more/less context) (show 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 @@
* Version: $Id$
* =====================================================================
* History:
* $Log$
+ * Revision 1.5 2002/12/07 13:26:22 eilers
+ * Fixing bug in storing anniversary..
+ *
* Revision 1.4 2002/11/13 14:14:51 eilers
* Added sorted for Contacts..
*
* Revision 1.3 2002/11/11 16:41:09 kergoth
@@ -382,9 +385,9 @@ OContact OContactAccessBackend_VCard::parseVObject( VObject *obj )
else if ( name == "X-Qtopia-Gender" ) {
c.setGender( value );
}
else if ( name == "X-Qtopia-Anniversary" ) {
- c.setAnniversary( TimeConversion::fromString( value ) );
+ c.setAnniversary( convVCardDateToDate( value ) );
}
else if ( name == "X-Qtopia-Nickname" ) {
c.setNickname( value );
}
@@ -493,19 +496,10 @@ VObject* OContactAccessBackend_VCard::createVObject( const OContact &c )
safeAddPropValue( vcard, VCNoteProp, c.notes() );
// Exporting Birthday regarding RFC 2425 (5.8.4)
if ( c.birthday().isValid() ){
- QString birthd_rfc2425 = QString("%1-%2-%3")
- .arg( c.birthday().year() )
- .arg( c.birthday().month(), 2 )
- .arg( c.birthday().day(), 2 );
- // Now replace spaces with "0"...
- int pos = 0;
- while ( ( pos = birthd_rfc2425.find (' ') ) > 0 )
- birthd_rfc2425.replace( pos, 1, "0" );
-
- qWarning("Exporting birthday as: %s", birthd_rfc2425.latin1());
- safeAddPropValue( vcard, VCBirthDateProp, birthd_rfc2425.latin1() );
+ qWarning("Exporting birthday as: %s", convDateToVCardDate( c.birthday() ).latin1() );
+ safeAddPropValue( vcard, VCBirthDateProp, convDateToVCardDate( c.birthday() ) );
}
if ( !c.company().isEmpty() || !c.department().isEmpty() || !c.office().isEmpty() ) {
VObject *org = safeAddProp( vcard, VCOrgProp );
@@ -520,15 +514,32 @@ VObject* OContactAccessBackend_VCard::createVObject( const OContact &c )
safeAddPropValue( vcard, "X-Qtopia-Assistant", c.assistant() );
safeAddPropValue( vcard, "X-Qtopia-Spouse", c.spouse() );
safeAddPropValue( vcard, "X-Qtopia-Gender", c.gender() );
- safeAddPropValue( vcard, "X-Qtopia-Anniversary", TimeConversion::toString( c.anniversary() ) );
+ if ( c.anniversary().isValid() ){
+ qWarning("Exporting anniversary as: %s", convDateToVCardDate( c.anniversary() ).latin1() );
+ safeAddPropValue( vcard, "X-Qtopia-Anniversary", convDateToVCardDate( c.anniversary() ) );
+ }
safeAddPropValue( vcard, "X-Qtopia-Nickname", c.nickname() );
safeAddPropValue( vcard, "X-Qtopia-Children", c.children() );
return vcard;
}
+QString OContactAccessBackend_VCard::convDateToVCardDate( const QDate& d ) const
+{
+ QString str_rfc2425 = QString("%1-%2-%3")
+ .arg( d.year() )
+ .arg( d.month(), 2 )
+ .arg( d.day(), 2 );
+ // Now replace spaces with "0"...
+ int pos = 0;
+ while ( ( pos = str_rfc2425.find (' ') ) > 0 )
+ str_rfc2425.replace( pos, 1, "0" );
+
+ return str_rfc2425;
+}
+
QDate OContactAccessBackend_VCard::convVCardDateToDate( const QString& datestr )
{
int monthPos = datestr.find('-');
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 @@
* Version: $Id$
* =====================================================================
* History:
* $Log$
+ * Revision 1.4 2002/12/07 13:26:22 eilers
+ * Fixing bug in storing anniversary..
+ *
* Revision 1.3 2002/11/13 14:14:51 eilers
* Added sorted for Contacts..
*
* Revision 1.2 2002/11/10 15:41:53 eilers
@@ -61,8 +64,9 @@ class OContactAccessBackend_VCard : public OContactAccessBackend {
private:
OContact parseVObject( VObject* obj );
VObject* createVObject( const OContact& c );
+ QString convDateToVCardDate( const QDate& c ) const;
QDate convVCardDateToDate( const QString& datestr );
VObject *safeAddPropValue( VObject *o, const char* prop, const QString& value );
VObject *safeAddProp( VObject* o, const char* prop);