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"