summaryrefslogtreecommitdiff
authoreilers <eilers>2002-10-28 13:41:31 (UTC)
committer eilers <eilers>2002-10-28 13:41:31 (UTC)
commitd033fbaff92f1e8e89a96c69dadda068cf3177cd (patch) (side-by-side diff)
treed23b6ee600ef7ac095a2ae191ac63436386351f6
parent54b9d51694242a1f2e0c1898b05c56114827ca10 (diff)
downloadopie-d033fbaff92f1e8e89a96c69dadda068cf3177cd.zip
opie-d033fbaff92f1e8e89a96c69dadda068cf3177cd.tar.gz
opie-d033fbaff92f1e8e89a96c69dadda068cf3177cd.tar.bz2
Vcard now exports date in correct format (Regarding RFC 2425).
Vcard now imports birthday..
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--libopie/pim/ocontact.cpp28
-rw-r--r--libopie/pim/ocontact.h3
-rw-r--r--libopie2/opiepim/ocontact.cpp28
-rw-r--r--libopie2/opiepim/ocontact.h3
4 files changed, 58 insertions, 4 deletions
diff --git a/libopie/pim/ocontact.cpp b/libopie/pim/ocontact.cpp
index 21fc088..734f5a2 100644
--- a/libopie/pim/ocontact.cpp
+++ b/libopie/pim/ocontact.cpp
@@ -1124,3 +1124,8 @@ static VObject *createVObject( const OContact &c )
- safeAddPropValue( vcard, VCBirthDateProp, TimeConversion::toString( c.birthday() ) );
+ // Exporting Birthday regarding RFC 2425 (5.8.4)
+ if ( !c.birthday().isNull() ){
+ QString birthd_rfc2425 = c.birthday().year() + QString( "-" ) + c.birthday().month() + QString( "-" ) + c.birthday().day();
+ qWarning("Exporting birthday as: %s", birthd_rfc2425.latin1());
+ safeAddPropValue( vcard, VCBirthDateProp, birthd_rfc2425.latin1() );
+ }
@@ -1151,2 +1156,18 @@ static VObject *createVObject( const OContact &c )
*/
+static QDate convVCardDateToDate( const QString& datestr )
+{
+ int monthPos = datestr.find('-');
+ int dayPos = datestr.find('-', monthPos+1 );
+ if ( monthPos == -1 || dayPos == -1 ) {
+ qDebug("fromString didn't find - in str = %s; mpos = %d ypos = %d", datestr.latin1(), monthPos, dayPos );
+ return QDate();
+ }
+ int y = datestr.left( monthPos ).toInt();
+ int m = datestr.mid( monthPos+1, dayPos - monthPos - 1 ).toInt();
+ int d = datestr.mid( dayPos+1 ).toInt();
+ QDate date ( y,m,d );
+ qDebug("TimeConversion::fromString ymd = %s => %d %d %d; mpos = %d ypos = %d", datestr.latin1(), y, m, d, monthPos, dayPos);
+ return date;
+}
+
static OContact parseVObject( VObject *obj )
@@ -1351,3 +1372,7 @@ static OContact parseVObject( VObject *obj )
}
+ else if ( name == VCBirthDateProp ) {
+ // Reading Birthdate regarding RFC 2425 (5.8.4)
+ c.setBirthday( convVCardDateToDate( value ) );
+ }
@@ -1609 +1634,2 @@ void OContact::insertEmails( const QStringList &v )
}
+
diff --git a/libopie/pim/ocontact.h b/libopie/pim/ocontact.h
index 9e83150..382ab94 100644
--- a/libopie/pim/ocontact.h
+++ b/libopie/pim/ocontact.h
@@ -226,3 +226,2 @@ private:
-
void insert( int key, const QString &value );
@@ -238,2 +237,4 @@ private:
Qtopia::UidGen &uidGen() { return sUidGen; }
+
+
static Qtopia::UidGen sUidGen;
diff --git a/libopie2/opiepim/ocontact.cpp b/libopie2/opiepim/ocontact.cpp
index 21fc088..734f5a2 100644
--- a/libopie2/opiepim/ocontact.cpp
+++ b/libopie2/opiepim/ocontact.cpp
@@ -1124,3 +1124,8 @@ static VObject *createVObject( const OContact &c )
- safeAddPropValue( vcard, VCBirthDateProp, TimeConversion::toString( c.birthday() ) );
+ // Exporting Birthday regarding RFC 2425 (5.8.4)
+ if ( !c.birthday().isNull() ){
+ QString birthd_rfc2425 = c.birthday().year() + QString( "-" ) + c.birthday().month() + QString( "-" ) + c.birthday().day();
+ qWarning("Exporting birthday as: %s", birthd_rfc2425.latin1());
+ safeAddPropValue( vcard, VCBirthDateProp, birthd_rfc2425.latin1() );
+ }
@@ -1151,2 +1156,18 @@ static VObject *createVObject( const OContact &c )
*/
+static QDate convVCardDateToDate( const QString& datestr )
+{
+ int monthPos = datestr.find('-');
+ int dayPos = datestr.find('-', monthPos+1 );
+ if ( monthPos == -1 || dayPos == -1 ) {
+ qDebug("fromString didn't find - in str = %s; mpos = %d ypos = %d", datestr.latin1(), monthPos, dayPos );
+ return QDate();
+ }
+ int y = datestr.left( monthPos ).toInt();
+ int m = datestr.mid( monthPos+1, dayPos - monthPos - 1 ).toInt();
+ int d = datestr.mid( dayPos+1 ).toInt();
+ QDate date ( y,m,d );
+ qDebug("TimeConversion::fromString ymd = %s => %d %d %d; mpos = %d ypos = %d", datestr.latin1(), y, m, d, monthPos, dayPos);
+ return date;
+}
+
static OContact parseVObject( VObject *obj )
@@ -1351,3 +1372,7 @@ static OContact parseVObject( VObject *obj )
}
+ else if ( name == VCBirthDateProp ) {
+ // Reading Birthdate regarding RFC 2425 (5.8.4)
+ c.setBirthday( convVCardDateToDate( value ) );
+ }
@@ -1609 +1634,2 @@ void OContact::insertEmails( const QStringList &v )
}
+
diff --git a/libopie2/opiepim/ocontact.h b/libopie2/opiepim/ocontact.h
index 9e83150..382ab94 100644
--- a/libopie2/opiepim/ocontact.h
+++ b/libopie2/opiepim/ocontact.h
@@ -226,3 +226,2 @@ private:
-
void insert( int key, const QString &value );
@@ -238,2 +237,4 @@ private:
Qtopia::UidGen &uidGen() { return sUidGen; }
+
+
static Qtopia::UidGen sUidGen;