--- a/qtmobility/plugins/contacts/symbian/src/transform/cnttransformavatar.cpp Fri Apr 16 15:51:22 2010 +0300
+++ b/qtmobility/plugins/contacts/symbian/src/transform/cnttransformavatar.cpp Mon May 03 13:18:40 2010 +0300
@@ -48,75 +48,59 @@
QList<CContactItemField *> fieldList;
- //cast to avatar
- const QContactAvatar &avatar(static_cast<const QContactAvatar&>(detail));
-
+ //cast to avatar
+ const QContactAvatar &avatar(static_cast<const QContactAvatar&>(detail));
- //create new field
- TPtrC fieldText(reinterpret_cast<const TUint16*>(avatar.avatar().utf16()));
-
- if(fieldText.Length()) {
- //supported subTypes
- const QString& subTypeImage(QContactAvatar::SubTypeImage);
- const QString& subTypeAudioRingtone(QContactAvatar::SubTypeAudioRingtone);
- const QString& subTypeVideoRingtone(QContactAvatar::SubTypeVideoRingtone);
+ //create new field
+ QString urlString = avatar.imageUrl().toString();
+ TPtrC fieldText(reinterpret_cast<const TUint16*>(urlString.utf16()));
- QString subType = avatar.subType();
- TUid uid(KNullUid);
- if(subType.isEmpty()) {
- uid = KUidContactFieldCodImage;
- } else if (subType.compare(subTypeImage) == 0) {
- uid = KUidContactFieldCodImage;
- } else if (subType.compare(subTypeAudioRingtone) == 0) {
- uid = KUidContactFieldRingTone;
- } else if (subType.compare(subTypeVideoRingtone) == 0) {
- uid = KUidContactFieldVideoRingTone;
- } else {
- User::LeaveIfError(KErrNotSupported);
- }
- CContactItemField* newField = CContactItemField::NewLC(KStorageTypeText, uid);
+ //copy filename and replace slash with a backslash
+ TFileName filename;
+ for(TInt i(0); i < fieldText.Length(); ++i) {
+ if(i >= filename.MaxLength())
+ User::Leave(KErrTooBig);
+ if(fieldText[i] == '/') {
+ filename.Append('\\');
+ } else {
+ filename.Append(fieldText[i]);
+ }
+ }
- newField->SetMapping(KUidContactFieldVCardMapUnknown);
- newField->TextStorage()->SetTextL(fieldText);
+ if(filename.Length()) {
+ TUid uid(KUidContactFieldCodImage);
+
+ CContactItemField* newField = CContactItemField::NewLC(KStorageTypeText, uid);
- fieldList.append(newField);
- CleanupStack::Pop(newField);
- }
+ newField->SetMapping(KUidContactFieldVCardMapUnknown);
+ newField->TextStorage()->SetTextL(filename);
- return fieldList;
+ fieldList.append(newField);
+ CleanupStack::Pop(newField);
+ }
+
+ return fieldList;
}
QContactDetail *CntTransformAvatar::transformItemField(const CContactItemField& field, const QContact &contact)
{
- Q_UNUSED(contact);
-
- QContactAvatar *avatar = new QContactAvatar();
-
- CContactTextField* storage = field.TextStorage();
- QString avatarString = QString::fromUtf16(storage->Text().Ptr(), storage->Text().Length());
- avatar->setAvatar(avatarString);
+ Q_UNUSED(contact);
+ QContactAvatar *avatar = new QContactAvatar();
- if (field.ContentType().ContainsFieldType(KUidContactFieldCodImage)) {
- avatar->setSubType(QContactAvatar::SubTypeImage);
- }
- else if (field.ContentType().ContainsFieldType(KUidContactFieldRingTone)) {
- avatar->setSubType(QContactAvatar::SubTypeAudioRingtone);
- }
- else if (field.ContentType().ContainsFieldType(KUidContactFieldVideoRingTone)) {
- avatar->setSubType(QContactAvatar::SubTypeVideoRingtone);
+ if (field.ContentType().ContainsFieldType(KUidContactFieldCodImage)) {
+ CContactTextField* storage = field.TextStorage();
+ QString avatarString = QString::fromUtf16(storage->Text().Ptr(), storage->Text().Length());
+ avatar->setImageUrl(QUrl(avatarString));
}
- return avatar;
+ return avatar;
}
bool CntTransformAvatar::supportsField(TUint32 fieldType) const
{
bool ret = false;
- if (fieldType == KUidContactFieldCodImage.iUid ||
- fieldType == KUidContactFieldRingTone.iUid ||
- fieldType == KUidContactFieldVideoRingTone.iUid) {
+ if (fieldType == KUidContactFieldCodImage.iUid)
ret = true;
- }
return ret;
}
@@ -142,12 +126,10 @@
* \a subType The subtype to be checked
* \return True if this subtype is supported
*/
-bool CntTransformAvatar::supportsSubType(const QString& subType) const
+bool CntTransformAvatar::supportsSubType(const QString& /*subType*/) const
{
- if(QContactAvatar::FieldSubType == subType)
- return true;
- else
- return false;
+ // XXX todo
+ return false;
}
/*!
@@ -156,22 +138,10 @@
* \a fieldName The name of the supported field
* \return fieldId for the fieldName, 0 if not supported
*/
-quint32 CntTransformAvatar::getIdForField(const QString& fieldName) const
+quint32 CntTransformAvatar::getIdForField(const QString& /*fieldName*/) const
{
- if (QContactAvatar::FieldAvatar == fieldName)
- return 0;
- else if (QContactAvatar::SubTypeImage == fieldName)
- return 0;
- else if (QContactAvatar::SubTypeVideo == fieldName)
- return 0;
- else if (QContactAvatar::SubTypeTexturedMesh == fieldName)
- return 0;
- else if (QContactAvatar::SubTypeAudioRingtone == fieldName)
- return 0;
- else if (QContactAvatar::SubTypeVideoRingtone == fieldName)
- return 0;
- else
- return 0;
+ // XXX todo
+ return 0;
}
/*!
@@ -190,15 +160,8 @@
QContactDetailDefinition d = definitions.value(QContactAvatar::DefinitionName);
QMap<QString, QContactDetailFieldDefinition> fields = d.fields();
- // Update sub-types
- QContactDetailFieldDefinition f;
- f.setDataType(QVariant::String); // only allowed to be a single subtype
- f.setAllowableValues(QVariantList()
- << QString(QLatin1String(QContactAvatar::SubTypeImage))
- << QString(QLatin1String(QContactAvatar::SubTypeAudioRingtone))
- << QString(QLatin1String(QContactAvatar::SubTypeVideoRingtone)));
- fields.insert(QContactAvatar::FieldSubType, f);
-
+ // We only support imageUrl
+ fields.remove(QContactAvatar::FieldVideoUrl);
// Context not supported in symbian back-end, remove
fields.remove(QContactAvatar::FieldContext);