File indexing completed on 2024-06-23 05:18:30
0001 /* 0002 SPDX-FileCopyrightText: 2017-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "messagefactoryreplyjob.h" 0008 #include "settings/messagecomposersettings.h" 0009 #include <TemplateParser/TemplateParserJob> 0010 0011 using namespace MessageComposer; 0012 0013 MessageFactoryReplyJob::MessageFactoryReplyJob(QObject *parent) 0014 : QObject(parent) 0015 { 0016 } 0017 0018 MessageFactoryReplyJob::~MessageFactoryReplyJob() = default; 0019 0020 void MessageFactoryReplyJob::start() 0021 { 0022 auto parser = 0023 new TemplateParser::TemplateParserJob(mMsg, (mReplyAll ? TemplateParser::TemplateParserJob::ReplyAll : TemplateParser::TemplateParserJob::Reply), this); 0024 connect(parser, &TemplateParser::TemplateParserJob::parsingDone, this, &MessageFactoryReplyJob::slotReplyDone); 0025 connect(parser, &TemplateParser::TemplateParserJob::parsingFailed, this, &MessageFactoryReplyJob::slotReplyDone); 0026 parser->setIdentityManager(mIdentityManager); 0027 parser->setWordWrap(MessageComposerSettings::wordWrap(), MessageComposerSettings::lineWrapWidth()); 0028 parser->setReplyAsHtml(mReplyAsHtml); 0029 if (MessageComposer::MessageComposerSettings::quoteSelectionOnly()) { 0030 parser->setSelection(mSelection); 0031 } 0032 parser->setAllowDecryption(true); 0033 if (!mTemplate.isEmpty()) { 0034 parser->process(mTemplate, mOrigMsg); 0035 } else { 0036 parser->process(mOrigMsg, mCollection.id()); 0037 } 0038 } 0039 0040 void MessageFactoryReplyJob::slotReplyDone() 0041 { 0042 Q_EMIT replyDone(mMsg, mReplyAll); 0043 deleteLater(); 0044 } 0045 0046 void MessageFactoryReplyJob::setCollection(const Akonadi::Collection &collection) 0047 { 0048 mCollection = collection; 0049 } 0050 0051 void MessageFactoryReplyJob::setReplyAsHtml(bool replyAsHtml) 0052 { 0053 mReplyAsHtml = replyAsHtml; 0054 } 0055 0056 void MessageFactoryReplyJob::setReplyAll(bool replyAll) 0057 { 0058 mReplyAll = replyAll; 0059 } 0060 0061 void MessageFactoryReplyJob::setMsg(const KMime::Message::Ptr &msg) 0062 { 0063 mMsg = msg; 0064 } 0065 0066 void MessageFactoryReplyJob::setTemplate(const QString &tmpl) 0067 { 0068 mTemplate = tmpl; 0069 } 0070 0071 void MessageFactoryReplyJob::setSelection(const QString &selection) 0072 { 0073 mSelection = selection; 0074 } 0075 0076 void MessageFactoryReplyJob::setOrigMsg(const KMime::Message::Ptr &origMsg) 0077 { 0078 mOrigMsg = origMsg; 0079 } 0080 0081 void MessageFactoryReplyJob::setIdentityManager(KIdentityManagementCore::IdentityManager *identityManager) 0082 { 0083 mIdentityManager = identityManager; 0084 } 0085 0086 #include "moc_messagefactoryreplyjob.cpp"