diff options
Diffstat (limited to 'framework/mail/composer.cpp')
-rw-r--r-- | framework/mail/composer.cpp | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/framework/mail/composer.cpp b/framework/mail/composer.cpp index 4ef112fa..9edc8345 100644 --- a/framework/mail/composer.cpp +++ b/framework/mail/composer.cpp | |||
@@ -27,6 +27,8 @@ | |||
27 | #include <QVariant> | 27 | #include <QVariant> |
28 | #include <QDebug> | 28 | #include <QDebug> |
29 | 29 | ||
30 | #include "mailtemplates.h" | ||
31 | |||
30 | Composer::Composer(QObject *parent) : QObject(parent) | 32 | Composer::Composer(QObject *parent) : QObject(parent) |
31 | { | 33 | { |
32 | m_identityModel << "Kuberich <kuberich@kolabnow.com>" << "Uni <kuberich@university.edu>" << "Spam <hello.spam@spam.to>"; | 34 | m_identityModel << "Kuberich <kuberich@kolabnow.com>" << "Uni <kuberich@university.edu>" << "Spam <hello.spam@spam.to>"; |
@@ -115,9 +117,36 @@ void Composer::setFromIndex(int fromIndex) | |||
115 | } | 117 | } |
116 | } | 118 | } |
117 | 119 | ||
120 | QVariant Composer::originalMessage() const | ||
121 | { | ||
122 | return m_originalMessage; | ||
123 | } | ||
124 | |||
125 | void Composer::setOriginalMessage(const QVariant &originalMessage) | ||
126 | { | ||
127 | const auto mailData = KMime::CRLFtoLF(originalMessage.toByteArray()); | ||
128 | if (!mailData.isEmpty()) { | ||
129 | KMime::Message::Ptr mail(new KMime::Message); | ||
130 | mail->setContent(mailData); | ||
131 | mail->parse(); | ||
132 | auto reply = MailTemplates::reply(mail); | ||
133 | //We assume reply | ||
134 | setTo(reply->to(true)->asUnicodeString()); | ||
135 | setCc(reply->cc(true)->asUnicodeString()); | ||
136 | setSubject(reply->subject(true)->asUnicodeString()); | ||
137 | setBody(reply->body()); | ||
138 | m_msg = QVariant::fromValue(reply); | ||
139 | } else { | ||
140 | m_msg = QVariant(); | ||
141 | } | ||
142 | } | ||
143 | |||
118 | void Composer::send() | 144 | void Composer::send() |
119 | { | 145 | { |
120 | auto mail = KMime::Message::Ptr::create(); | 146 | auto mail = m_msg.value<KMime::Message::Ptr>(); |
147 | if (!mail) { | ||
148 | mail = KMime::Message::Ptr::create(); | ||
149 | } | ||
121 | for (const auto &to : KEmailAddress::splitAddressList(m_to)) { | 150 | for (const auto &to : KEmailAddress::splitAddressList(m_to)) { |
122 | QByteArray displayName; | 151 | QByteArray displayName; |
123 | QByteArray addrSpec; | 152 | QByteArray addrSpec; |
@@ -159,4 +188,4 @@ void Composer::clear() | |||
159 | setCc(""); | 188 | setCc(""); |
160 | setBcc(""); | 189 | setBcc(""); |
161 | setFromIndex(-1); | 190 | setFromIndex(-1); |
162 | } \ No newline at end of file | 191 | } |