File indexing completed on 2024-06-23 05:18:29
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 "messagefactoryforwardjob.h" 0008 #include <KIdentityManagementCore/IdentityManager> 0009 #include <TemplateParser/TemplateParserJob> 0010 0011 using namespace MessageComposer; 0012 0013 MessageFactoryForwardJob::MessageFactoryForwardJob(QObject *parent) 0014 : QObject(parent) 0015 { 0016 } 0017 0018 MessageFactoryForwardJob::~MessageFactoryForwardJob() = default; 0019 0020 void MessageFactoryForwardJob::start() 0021 { 0022 auto parser = new TemplateParser::TemplateParserJob(mMsg, TemplateParser::TemplateParserJob::Forward, this); 0023 connect(parser, &TemplateParser::TemplateParserJob::parsingDone, this, &MessageFactoryForwardJob::slotParsingDone); 0024 connect(parser, &TemplateParser::TemplateParserJob::parsingFailed, this, &MessageFactoryForwardJob::slotParsingDone); 0025 parser->setIdentityManager(mIdentityManager); 0026 parser->setSelection(mSelection); 0027 if (!mTemplate.isEmpty()) { 0028 parser->process(mTemplate, mOrigMsg); 0029 } else { 0030 parser->process(mOrigMsg, mCollection.id()); 0031 } 0032 } 0033 0034 void MessageFactoryForwardJob::slotParsingDone() 0035 { 0036 Q_EMIT forwardDone(mMsg); 0037 deleteLater(); 0038 } 0039 0040 void MessageFactoryForwardJob::setCollection(const Akonadi::Collection &collection) 0041 { 0042 mCollection = collection; 0043 } 0044 0045 void MessageFactoryForwardJob::setMsg(const KMime::Message::Ptr &msg) 0046 { 0047 mMsg = msg; 0048 } 0049 0050 void MessageFactoryForwardJob::setTemplate(const QString &tmpl) 0051 { 0052 mTemplate = tmpl; 0053 } 0054 0055 void MessageFactoryForwardJob::setSelection(const QString &selection) 0056 { 0057 mSelection = selection; 0058 } 0059 0060 void MessageFactoryForwardJob::setOrigMsg(const KMime::Message::Ptr &origMsg) 0061 { 0062 mOrigMsg = origMsg; 0063 } 0064 0065 void MessageFactoryForwardJob::setIdentityManager(KIdentityManagementCore::IdentityManager *identityManager) 0066 { 0067 mIdentityManager = identityManager; 0068 } 0069 0070 #include "moc_messagefactoryforwardjob.cpp"