qtmobility/plugins/contacts/symbian/src/transform/cnttransformonlineaccount.cpp
changeset 14 6fbed849b4f4
parent 11 06b8e2af4411
--- a/qtmobility/plugins/contacts/symbian/src/transform/cnttransformonlineaccount.cpp	Fri Jun 11 14:26:25 2010 +0300
+++ b/qtmobility/plugins/contacts/symbian/src/transform/cnttransformonlineaccount.cpp	Wed Jun 23 19:08:38 2010 +0300
@@ -199,20 +199,6 @@
 	return onlineAccount;
 }
 
-bool CntTransformOnlineAccount::supportsField(TUint32 fieldType) const
-{
-    bool ret = false;
-    if (fieldType == KUidContactFieldSIPID.iUid ||
-        fieldType == KUidContactFieldIMPP.iUid  ||
-        fieldType == KUidContactFieldServiceProvider.iUid  ||
-        fieldType == KUidContactFieldPresence.iUid  ||
-        fieldType == KUidContactFieldStatusMsg.iUid )         
-    {
-        ret = true;
-    }
-    return ret;
-}
-
 bool CntTransformOnlineAccount::supportsDetail(QString detailName) const
 {
     bool ret = false;
@@ -222,6 +208,16 @@
     return ret;
 }
 
+QList<TUid> CntTransformOnlineAccount::supportedFields() const
+{
+    return QList<TUid>()
+        << KUidContactFieldSIPID
+        << KUidContactFieldIMPP
+        << KUidContactFieldServiceProvider
+        << KUidContactFieldPresence
+        << KUidContactFieldStatusMsg;
+}
+
 QList<TUid> CntTransformOnlineAccount::supportedSortingFieldTypes(QString detailFieldName) const
 {
     QList<TUid> uids;
@@ -285,6 +281,16 @@
         QContactDetailDefinition d = definitions.value(QContactOnlineAccount::DefinitionName);
         QMap<QString, QContactDetailFieldDefinition> fields = d.fields();
         QContactDetailFieldDefinition f;
+        
+        // Support only certain subtypes 
+        f.setDataType(QVariant::StringList);
+        QVariantList subTypes;
+        subTypes << QString(QLatin1String(QContactOnlineAccount::SubTypeSip));
+        subTypes << QString(QLatin1String(QContactOnlineAccount::SubTypeSipVoip));
+        subTypes << QString(QLatin1String(QContactOnlineAccount::SubTypeImpp));
+        subTypes << QString(QLatin1String(QContactOnlineAccount::SubTypeVideoShare));
+        f.setAllowableValues(subTypes);
+        fields[QContactOnlineAccount::FieldSubTypes] = f;        
 
         // Don't support "ContextOther"
         f.setDataType(QVariant::StringList);