phonebookengines/cntactions/src/cntemailaction.cpp
changeset 81 640d30f4fb64
parent 53 e6aff7b69165
equal deleted inserted replaced
77:c18f9fa7f42e 81:640d30f4fb64
    66     delete m_request;
    66     delete m_request;
    67     m_request = NULL;
    67     m_request = NULL;
    68     m_request = m_AppManager.create(XQI_EMAIL_MESSAGE_SEND, "send(QVariant)", true);
    68     m_request = m_AppManager.create(XQI_EMAIL_MESSAGE_SEND, "send(QVariant)", true);
    69     
    69     
    70     if (m_request) {
    70     if (m_request) {
    71         QMap<QString, QVariant> map;
    71         QVariantMap dataMap;
       
    72         QVariantMap emailMap;
    72         QStringList recipients;
    73         QStringList recipients;
    73         QList<QVariant> data;
    74         QList<QVariant> data;
    74 
    75 
    75         //QContactType == TypeGroup
    76         //QContactType == TypeGroup
    76         if (QContactType::TypeGroup == m_contact.type()) {
    77         if (QContactType::TypeGroup == m_contact.type()) {
    77             QStringList emails;
    78             QStringList emails;
    78             QVariant value = m_data.value("email");
    79             QVariant value = m_data.value("email");
    79             if (value.canConvert<QStringList>()) {
    80             if (value.canConvert<QVariantMap>()) {
    80                 emails = value.toStringList();
    81                 emailMap = value.toMap();
    81             }
    82             }
    82             
    83             
    83             if (!emails.isEmpty()) {
    84             if (!emailMap.isEmpty()) {
    84                 for (int i=0;i<emails.count();i++) {
    85                 QVariantMap::const_iterator i = emailMap.constBegin();
    85                     recipients.append(emails.at(i));
    86                 while (i != emailMap.constEnd()) {
       
    87                     QString formatString;
       
    88                     QString emailAddress;
       
    89                     QString displayLabel;
       
    90                     
       
    91                     emailAddress = i.key();
       
    92                     if (i.value().canConvert<QString>())
       
    93                         displayLabel = i.value().toString();
       
    94                     
       
    95                     // Email addresses format string:
       
    96                     // Firstname Lastname <email@address.com>
       
    97                     if (!displayLabel.isEmpty())
       
    98                         formatString += displayLabel + " ";
       
    99                     formatString += "<" + emailAddress + ">";
       
   100                     recipients.append(formatString);
       
   101                  
       
   102                     ++i;
    86                 }
   103                 }
    87                 map.insert(EMAIL_SEND_TO_KEY, recipients);
   104                 dataMap.insert(EMAIL_SEND_TO_KEY, recipients);
    88                 data.append(map);
   105                 data.append(dataMap);
    89 
   106 
    90                 m_request->setArguments(data);
   107                 m_request->setArguments(data);
    91                 m_request->send(retValue);
   108                 m_request->send(retValue);
    92                 emitResult(m_request->lastError(), retValue);
   109                 emitResult(m_request->lastError(), retValue);
    93             }
   110             }
    98         //QContactType == TypeContact
   115         //QContactType == TypeContact
    99         // If detail exists use it.
   116         // If detail exists use it.
   100         else if (m_detail.definitionName() == QContactEmailAddress::DefinitionName) {
   117         else if (m_detail.definitionName() == QContactEmailAddress::DefinitionName) {
   101             const QContactEmailAddress &email = static_cast<const QContactEmailAddress &>(m_detail);
   118             const QContactEmailAddress &email = static_cast<const QContactEmailAddress &>(m_detail);
   102 
   119 
   103             recipients.append(email.emailAddress());
   120             // Email addresses format string:
   104             map.insert(EMAIL_SEND_TO_KEY, recipients);
   121             // Firstname Lastname <email@address.com>
   105             data.append(map);
   122             QString formatString;
       
   123             QString displayLabel = m_contact.displayLabel();
       
   124             if (!displayLabel.isEmpty())
       
   125                 formatString += displayLabel + " ";
       
   126             formatString += "<" + email.emailAddress() + ">";
       
   127             
       
   128             recipients.append(formatString);
       
   129             dataMap.insert(EMAIL_SEND_TO_KEY, recipients);
       
   130             data.append(dataMap);
   106 
   131 
   107             m_request->setArguments(data);
   132             m_request->setArguments(data);
   108             m_request->send(retValue);
   133             m_request->send(retValue);
   109             emitResult(m_request->lastError(), retValue);
   134             emitResult(m_request->lastError(), retValue);
   110         }
   135         }