phonebookengines/cntactions/src/cntemailaction.cpp
changeset 81 640d30f4fb64
parent 53 e6aff7b69165
--- a/phonebookengines/cntactions/src/cntemailaction.cpp	Fri Oct 08 11:42:51 2010 +0300
+++ b/phonebookengines/cntactions/src/cntemailaction.cpp	Fri Oct 15 12:24:46 2010 +0300
@@ -68,7 +68,8 @@
     m_request = m_AppManager.create(XQI_EMAIL_MESSAGE_SEND, "send(QVariant)", true);
     
     if (m_request) {
-        QMap<QString, QVariant> map;
+        QVariantMap dataMap;
+        QVariantMap emailMap;
         QStringList recipients;
         QList<QVariant> data;
 
@@ -76,16 +77,32 @@
         if (QContactType::TypeGroup == m_contact.type()) {
             QStringList emails;
             QVariant value = m_data.value("email");
-            if (value.canConvert<QStringList>()) {
-                emails = value.toStringList();
+            if (value.canConvert<QVariantMap>()) {
+                emailMap = value.toMap();
             }
             
-            if (!emails.isEmpty()) {
-                for (int i=0;i<emails.count();i++) {
-                    recipients.append(emails.at(i));
+            if (!emailMap.isEmpty()) {
+                QVariantMap::const_iterator i = emailMap.constBegin();
+                while (i != emailMap.constEnd()) {
+                    QString formatString;
+                    QString emailAddress;
+                    QString displayLabel;
+                    
+                    emailAddress = i.key();
+                    if (i.value().canConvert<QString>())
+                        displayLabel = i.value().toString();
+                    
+                    // Email addresses format string:
+                    // Firstname Lastname <email@address.com>
+                    if (!displayLabel.isEmpty())
+                        formatString += displayLabel + " ";
+                    formatString += "<" + emailAddress + ">";
+                    recipients.append(formatString);
+                 
+                    ++i;
                 }
-                map.insert(EMAIL_SEND_TO_KEY, recipients);
-                data.append(map);
+                dataMap.insert(EMAIL_SEND_TO_KEY, recipients);
+                data.append(dataMap);
 
                 m_request->setArguments(data);
                 m_request->send(retValue);
@@ -100,9 +117,17 @@
         else if (m_detail.definitionName() == QContactEmailAddress::DefinitionName) {
             const QContactEmailAddress &email = static_cast<const QContactEmailAddress &>(m_detail);
 
-            recipients.append(email.emailAddress());
-            map.insert(EMAIL_SEND_TO_KEY, recipients);
-            data.append(map);
+            // Email addresses format string:
+            // Firstname Lastname <email@address.com>
+            QString formatString;
+            QString displayLabel = m_contact.displayLabel();
+            if (!displayLabel.isEmpty())
+                formatString += displayLabel + " ";
+            formatString += "<" + email.emailAddress() + ">";
+            
+            recipients.append(formatString);
+            dataMap.insert(EMAIL_SEND_TO_KEY, recipients);
+            data.append(dataMap);
 
             m_request->setArguments(data);
             m_request->send(retValue);