summaryrefslogtreecommitdiffstats
path: root/framework/src/domain/composercontroller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/domain/composercontroller.cpp')
-rw-r--r--framework/src/domain/composercontroller.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/framework/src/domain/composercontroller.cpp b/framework/src/domain/composercontroller.cpp
index e4bd6ae2..b6380f50 100644
--- a/framework/src/domain/composercontroller.cpp
+++ b/framework/src/domain/composercontroller.cpp
@@ -62,6 +62,15 @@ public:
62 } 62 }
63 63
64 } 64 }
65
66 QVector<QByteArray> getAllAddresses()
67 {
68 QVector<QByteArray> list;
69 for (int i = 0; i < model()->rowCount(); i++) {
70 list << model()->data(model()->index(i, 0), IdentitiesModel::Address).toString().toUtf8();
71 }
72 return list;
73 }
65private: 74private:
66 ComposerController &mController; 75 ComposerController &mController;
67}; 76};
@@ -365,10 +374,19 @@ void ComposerController::loadMessage(const QVariant &message, bool loadAsDraft)
365 if (loadAsDraft) { 374 if (loadAsDraft) {
366 setMessage(mail); 375 setMessage(mail);
367 } else { 376 } else {
377 //Find all personal email addresses to exclude from reply
378 KMime::Types::AddrSpecList me;
379 auto list = static_cast<IdentitySelector*>(mIdentitySelector.data())->getAllAddresses();
380 for (const auto &a : list) {
381 KMime::Types::Mailbox mb;
382 mb.setAddress(a);
383 me << mb.addrSpec();
384 }
385
368 MailTemplates::reply(mail, [this] (const KMime::Message::Ptr &reply) { 386 MailTemplates::reply(mail, [this] (const KMime::Message::Ptr &reply) {
369 //We assume reply 387 //We assume reply
370 setMessage(reply); 388 setMessage(reply);
371 }); 389 }, me);
372 } 390 }
373 } else { 391 } else {
374 qWarning() << "Retrieved empty message"; 392 qWarning() << "Retrieved empty message";