summaryrefslogtreecommitdiffstats
path: root/src/libraries/qmfclient/qmailmessage.cpp
diff options
context:
space:
mode:
authorValerio Valerio <valerio.valerio@nokia.com>2012-02-16 14:07:00 +0200
committerValerio Valerio <valerio.valerio@nokia.com>2012-02-16 14:07:00 +0200
commit965cd6e8b4a0c7fc8756664233d48cf0e84c7784 (patch)
tree2f898458f86529a3325cfdb9d3faaf888a5e0ca3 /src/libraries/qmfclient/qmailmessage.cpp
parent99821f8893570d12f6da53010ea41b3569f44a5a (diff)
Fixes: NB#278651 - Messageserver crashes upon attempt to fetch Russian news letter mails in particular account.
Diffstat (limited to 'src/libraries/qmfclient/qmailmessage.cpp')
-rw-r--r--src/libraries/qmfclient/qmailmessage.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/libraries/qmfclient/qmailmessage.cpp b/src/libraries/qmfclient/qmailmessage.cpp
index a8ad6165..b0645f57 100644
--- a/src/libraries/qmfclient/qmailmessage.cpp
+++ b/src/libraries/qmfclient/qmailmessage.cpp
@@ -8380,8 +8380,20 @@ void QMailMessage::setUnmodified()
void QMailMessage::setHeader(const QMailMessageHeader& partHeader, const QMailMessagePartContainerPrivate* parent)
{
QMailMessagePartContainer::setHeader(partHeader, parent);
-}
-
+ // See if any of the header fields need to be propagated to the meta data object
+ foreach (const QMailMessageHeaderField& field, headerFields()) {
+ QByteArray duplicatedId(duplicatedData(field.id()));
+ if (!duplicatedId.isNull()) {
+ QMailMessageContentType ct(headerField("Content-Type"));
+ if (!is7BitAscii(field.content()) && unicodeConvertingCharset(ct.charset())) {
+ updateMetaData(duplicatedId, toUnicode(field.content(), ct.charset()));
+ } else {
+ updateMetaData(duplicatedId, field.decodedContent());
+ }
+ }
+ }
+}
+
/*! \internal */
QByteArray QMailMessage::duplicatedData(const QString& id) const
{