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 } |