49 #include "cnttransformaddress.h" |
49 #include "cnttransformaddress.h" |
50 #include "cnttransformbirthday.h" |
50 #include "cnttransformbirthday.h" |
51 #include "cnttransformonlineaccount.h" |
51 #include "cnttransformonlineaccount.h" |
52 #include "cnttransformorganisation.h" |
52 #include "cnttransformorganisation.h" |
53 #include "cnttransformavatar.h" |
53 #include "cnttransformavatar.h" |
54 #include "cnttransformavatarsimple.h" |
54 #include "cnttransformringtone.h" |
|
55 #include "cnttransformthumbnail.h" |
55 #include "cnttransformsynctarget.h" |
56 #include "cnttransformsynctarget.h" |
56 #include "cnttransformgender.h" |
57 #include "cnttransformgender.h" |
57 #include "cnttransformanniversary.h" |
58 #include "cnttransformanniversary.h" |
58 #include "cnttransformanniversarysimple.h" |
59 #include "cnttransformanniversarysimple.h" |
59 #include "cnttransformgeolocation.h" |
60 #include "cnttransformgeolocation.h" |
106 m_transformContactData.insert(Birthday, new CntTransformBirthday); |
107 m_transformContactData.insert(Birthday, new CntTransformBirthday); |
107 m_transformContactData.insert(Organisation, new CntTransformOrganisation); |
108 m_transformContactData.insert(Organisation, new CntTransformOrganisation); |
108 m_transformContactData.insert(SyncTarget, new CntTransformSyncTarget); |
109 m_transformContactData.insert(SyncTarget, new CntTransformSyncTarget); |
109 m_transformContactData.insert(Note, new CntTransformNote); |
110 m_transformContactData.insert(Note, new CntTransformNote); |
110 m_transformContactData.insert(Family, new CntTransformFamily); |
111 m_transformContactData.insert(Family, new CntTransformFamily); |
|
112 m_transformContactData.insert(Ringtone, new CntTransformRingtone); |
|
113 m_transformContactData.insert(Avatar, new CntTransformAvatar); |
111 |
114 |
112 #ifdef SYMBIAN_BACKEND_USE_SQLITE |
115 #ifdef SYMBIAN_BACKEND_USE_SQLITE |
113 // variated transform classes |
116 // variated transform classes |
114 m_transformContactData.insert(Avatar, new CntTransformAvatar); |
|
115 m_transformContactData.insert(Anniversary, new CntTransformAnniversary); |
117 m_transformContactData.insert(Anniversary, new CntTransformAnniversary); |
116 |
118 |
117 // not supported on pre-10.1 |
119 // not supported on pre-10.1 |
118 m_transformContactData.insert(Geolocation, new CntTransformGeolocation); |
120 m_transformContactData.insert(Geolocation, new CntTransformGeolocation); |
119 m_transformContactData.insert(Gender, new CntTransformGender); |
121 m_transformContactData.insert(Gender, new CntTransformGender); |
126 |
128 |
127 #else |
129 #else |
128 // Empty transform class for removing unsupported detail definitions |
130 // Empty transform class for removing unsupported detail definitions |
129 m_transformContactData.insert(Empty, new CntTransformEmpty); |
131 m_transformContactData.insert(Empty, new CntTransformEmpty); |
130 |
132 |
|
133 m_transformContactData.insert(Thumbnail, new CntTransformThumbnail); |
|
134 |
131 // variated transform classes |
135 // variated transform classes |
132 m_transformContactData.insert(Anniversary, new CntTransformAnniversarySimple); |
136 m_transformContactData.insert(Anniversary, new CntTransformAnniversarySimple); |
133 m_transformContactData.insert(Avatar, new CntTransformAvatarSimple); |
|
134 #endif |
137 #endif |
135 } |
138 } |
136 |
139 |
137 /*! |
140 /*! |
138 * Converts Symbian contact item to QContact. Note that the contact is not |
141 * Converts Symbian contact item to QContact. Note that the contact is not |
327 } |
330 } |
328 |
331 |
329 void CntTransformContact::detailDefinitions( |
332 void CntTransformContact::detailDefinitions( |
330 QMap<QString, QContactDetailDefinition>& defaultSchema, |
333 QMap<QString, QContactDetailDefinition>& defaultSchema, |
331 const QString& contactType, |
334 const QString& contactType, |
332 QContactManager::Error& error) const |
335 QContactManager::Error* error) const |
333 { |
336 { |
334 Q_UNUSED(error); |
337 Q_UNUSED(error); |
335 |
338 |
336 // Ask leaf classes to do the modifications required to the default schema |
339 // Ask leaf classes to do the modifications required to the default schema |
337 QMap<ContactData, CntTransformContactData*>::const_iterator i = m_transformContactData.constBegin(); |
340 QMap<ContactData, CntTransformContactData*>::const_iterator i = m_transformContactData.constBegin(); |
338 while (i != m_transformContactData.constEnd()) { |
341 while (i != m_transformContactData.constEnd()) { |
339 i.value()->detailDefinitions(defaultSchema, contactType); |
342 i.value()->detailDefinitions(defaultSchema, contactType); |
340 i++; |
343 i++; |
341 } |
344 } |
|
345 |
|
346 #ifndef SYMBIAN_CNTMODEL_V2 |
|
347 // Cannot support timestamp |
|
348 defaultSchema.remove(QContactTimestamp::DefinitionName); |
|
349 #endif |
342 } |
350 } |
343 |
351 |
344 QList<CContactItemField *> CntTransformContact::transformDetailL(const QContactDetail &detail) const |
352 QList<CContactItemField *> CntTransformContact::transformDetailL(const QContactDetail &detail) const |
345 { |
353 { |
346 QList<CContactItemField *> itemFieldList; |
354 QList<CContactItemField *> itemFieldList; |
390 return guidDetail; |
398 return guidDetail; |
391 } |
399 } |
392 |
400 |
393 QContactDetail* CntTransformContact::transformTimestampItemFieldL(const CContactItem &contactItem, const CContactDatabase &contactDatabase) const |
401 QContactDetail* CntTransformContact::transformTimestampItemFieldL(const CContactItem &contactItem, const CContactDatabase &contactDatabase) const |
394 { |
402 { |
|
403 #ifdef SYMBIAN_CNTMODEL_V2 |
395 QContactTimestamp *timestampDetail = 0; |
404 QContactTimestamp *timestampDetail = 0; |
396 |
|
397 // NOTE: In S60 3.1 we cannot use ContactGuid::GetCreationDate() because |
|
398 // it is not exported. |
|
399 // TODO: Make sure SYMBIAN_CNTMODEL_V2 is the right flag for this. |
|
400 #ifdef SYMBIAN_CNTMODEL_V2 |
|
401 HBufC* guidBuf = contactItem.UidStringL(contactDatabase.MachineId()).AllocLC(); |
405 HBufC* guidBuf = contactItem.UidStringL(contactDatabase.MachineId()).AllocLC(); |
402 TPtr ptr = guidBuf->Des(); |
406 TPtr ptr = guidBuf->Des(); |
403 if (ContactGuid::GetCreationDate(ptr, contactDatabase.MachineId())) |
407 if (ContactGuid::GetCreationDate(ptr, contactDatabase.MachineId())) |
404 { |
408 { |
405 if (ptr.Length() > 0) |
409 if (ptr.Length() > 0) |
427 timestampDetail->setLastModified(qDateTimeModified); |
431 timestampDetail->setLastModified(qDateTimeModified); |
428 } |
432 } |
429 } |
433 } |
430 } |
434 } |
431 CleanupStack::PopAndDestroy(guidBuf); |
435 CleanupStack::PopAndDestroy(guidBuf); |
|
436 return timestampDetail; |
|
437 #else |
|
438 // NOTE: In S60 3.1 we cannot use ContactGuid::GetCreationDate() because |
|
439 // it is not exported. |
|
440 // TODO: Make sure SYMBIAN_CNTMODEL_V2 is the right flag for this. |
|
441 Q_UNUSED(contactItem); |
|
442 Q_UNUSED(contactDatabase) |
|
443 return 0; |
432 #endif |
444 #endif |
433 return timestampDetail; |
|
434 } |
445 } |
435 |
446 |
436 void CntTransformContact::transformPreferredDetailL(const QContact& contact, |
447 void CntTransformContact::transformPreferredDetailL(const QContact& contact, |
437 const QContactDetail& detail, QList<CContactItemField*> &fieldList) const |
448 const QContactDetail& detail, QList<CContactItemField*> &fieldList) const |
438 { |
449 { |