diff options
Diffstat (limited to 'framework/src/domain/composercontroller.cpp')
-rw-r--r-- | framework/src/domain/composercontroller.cpp | 20 |
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 | } | ||
65 | private: | 74 | private: |
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"; |