author | zecke <zecke> | 2002-11-02 12:36:34 (UTC) |
---|---|---|
committer | zecke <zecke> | 2002-11-02 12:36:34 (UTC) |
commit | ffd0a764e4ac7f9bf29edf3b9b4d341e153ecf4a (patch) (side-by-side diff) | |
tree | 601ac645a3768c1fe89fce01243f54a24f08dc15 /libopie2/opiepim/ocontact.cpp | |
parent | 74f49994a9c19bdfdbfdfb57a5cf5e1a1f966b53 (diff) | |
download | opie-ffd0a764e4ac7f9bf29edf3b9b4d341e153ecf4a.zip opie-ffd0a764e4ac7f9bf29edf3b9b4d341e153ecf4a.tar.gz opie-ffd0a764e4ac7f9bf29edf3b9b4d341e153ecf4a.tar.bz2 |
Fix a vCard problem in OContact
cell phones do not set the UId property...
add some more states to otodo
Diffstat (limited to 'libopie2/opiepim/ocontact.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | libopie2/opiepim/ocontact.cpp | 41 |
1 files changed, 25 insertions, 16 deletions
diff --git a/libopie2/opiepim/ocontact.cpp b/libopie2/opiepim/ocontact.cpp index acd65c4..cd238ef 100644 --- a/libopie2/opiepim/ocontact.cpp +++ b/libopie2/opiepim/ocontact.cpp @@ -1128,5 +1128,5 @@ static VObject *createVObject( const OContact &c ) if ( c.birthday().isValid() ){ QString birthd_rfc2425 = QString("%1-%2-%3") - .arg( c.birthday().year() ) + .arg( c.birthday().year() ) .arg( c.birthday().month(), 2 ) .arg( c.birthday().day(), 2 ); @@ -1135,5 +1135,5 @@ static VObject *createVObject( const OContact &c ) 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() ); @@ -1389,9 +1389,9 @@ static OContact parseVObject( VObject *obj ) else if ( name == "X-Qtopia-Children" ) { c.setChildren( value ); - } + } else if ( name == VCBirthDateProp ) { // Reading Birthdate regarding RFC 2425 (5.8.4) c.setBirthday( convVCardDateToDate( value ) ); - + } @@ -1465,5 +1465,14 @@ QValueList<OContact> OContact::readVCard( const QString &filename ) while ( obj ) { - contacts.append( parseVObject( obj ) ); + OContact con = parseVObject( obj ); + /* + * if uid is 0 assign a new one + * this at least happens on + * Nokia6210 + */ + if ( con.uid() == 0 ) + con.setUid( 1 ); + + contacts.append(con ); VObject *t = obj; @@ -1528,5 +1537,5 @@ class QString OContact::recordField( int pos ) const // In future releases, we should store birthday and anniversary -// internally as QDate instead of QString ! +// internally as QDate instead of QString ! // QString is always too complicate to interprete (DD.MM.YY, DD/MM/YY, MM/DD/YY, etc..)(se) @@ -1535,8 +1544,8 @@ class QString OContact::recordField( int pos ) const */ void OContact::setBirthday( const QDate &v ) -{ +{ if ( ( !v.isNull() ) && ( v.isValid() ) ) replace( Qtopia::Birthday, TimeConversion::toString( v ) ); - + } @@ -1554,6 +1563,6 @@ void OContact::setAnniversary( const QDate &v ) Returns the birthday of the contact. */ -QDate OContact::birthday() const -{ +QDate OContact::birthday() const +{ QString str = find( Qtopia::Birthday ); qWarning ("Birthday %s", str.latin1() ); @@ -1568,11 +1577,11 @@ QDate OContact::birthday() const Returns the anniversary of the contact. */ -QDate OContact::anniversary() const -{ +QDate OContact::anniversary() const +{ QDate empty; QString str = find( Qtopia::Anniversary ); qWarning ("Anniversary %s", str.latin1() ); if ( !str.isEmpty() ) - return TimeConversion::fromString ( str ); + return TimeConversion::fromString ( str ); else return empty; @@ -1608,5 +1617,5 @@ void OContact::removeEmail( const QString &v ) QString emailsStr = find( Qtopia::Emails ); QStringList emails = emailList(); - + // otherwise, must first contain it if ( !emailsStr.contains( e ) ) @@ -1641,7 +1650,7 @@ void OContact::setDefaultEmail( const QString &v ) replace( Qtopia::DefaultEmail, e ); - if ( !e.isEmpty() ) + if ( !e.isEmpty() ) insertEmail( e ); - + } |