diff options
Diffstat (limited to 'src/libraries')
-rw-r--r-- | src/libraries/qmfclient/qmailmessage.cpp | 28 | ||||
-rw-r--r-- | src/libraries/qmfclient/qmailmessage.h | 2 |
2 files changed, 30 insertions, 0 deletions
diff --git a/src/libraries/qmfclient/qmailmessage.cpp b/src/libraries/qmfclient/qmailmessage.cpp index cb900418..70fb5c66 100644 --- a/src/libraries/qmfclient/qmailmessage.cpp +++ b/src/libraries/qmfclient/qmailmessage.cpp @@ -8564,6 +8564,34 @@ void QMailMessage::setInReplyTo(const QString &messageId) } /*! + Setup In-Reply-To: and References: header fields according to RFC2822 + section 3.6.4. Also internally set the metadata inResponseTo to point + to the id() of \a msg, if valid. + */ +void QMailMessage::setInResponseTo(const QMailMessage &msg) +{ + if (msg.id().isValid()) { + setInResponseTo(msg.id()); + } + QString references(msg.headerFieldText(QLatin1String("References"))); + if (references.isEmpty()) { + references = msg.inReplyTo(); + } + const QString precursorId(msg.headerFieldText(QLatin1String("Message-ID"))); + if (!precursorId.isEmpty()) { + setInReplyTo(precursorId); + + if (!references.isEmpty()) { + references.append(' '); + } + references.append(precursorId); + } + if (!references.isEmpty()) { + setHeaderField(QLatin1String("References"), references); + } +} + +/*! Returns a list of all the recipients specified for the message, either as To, CC, or BCC addresses. \sa to(), cc(), bcc(), hasRecipients() diff --git a/src/libraries/qmfclient/qmailmessage.h b/src/libraries/qmfclient/qmailmessage.h index 2e3c211f..86525fad 100644 --- a/src/libraries/qmfclient/qmailmessage.h +++ b/src/libraries/qmfclient/qmailmessage.h @@ -786,6 +786,8 @@ public: virtual QString inReplyTo() const; virtual void setInReplyTo(const QString &s); + void setInResponseTo(const QMailMessage &msg); + virtual uint contentSize() const; virtual void setContentSize(uint size); |