File indexing completed on 2024-10-27 04:51:00

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 "kmcomposerupdatetemplatejob.h"
0008 #include "kmkernel.h"
0009 #include <MessageComposer/Composer>
0010 
0011 #include <MessageComposer/MessageHelper>
0012 #include <TemplateParser/TemplateParserJob>
0013 
0014 KMComposerUpdateTemplateJob::KMComposerUpdateTemplateJob(QObject *parent)
0015     : QObject(parent)
0016 {
0017 }
0018 
0019 KMComposerUpdateTemplateJob::~KMComposerUpdateTemplateJob() = default;
0020 
0021 void KMComposerUpdateTemplateJob::start()
0022 {
0023     auto parser = new TemplateParser::TemplateParserJob(mMsg, TemplateParser::TemplateParserJob::NewMessage, this);
0024     connect(parser, &TemplateParser::TemplateParserJob::parsingDone, this, &KMComposerUpdateTemplateJob::slotFinished);
0025     parser->setSelection(mTextSelection);
0026     parser->setAllowDecryption(true);
0027     parser->setIdentityManager(KMKernel::self()->identityManager());
0028     if (!mCustomTemplate.isEmpty()) {
0029         parser->process(mCustomTemplate, mMsg, mCollectionForNewMessage.id());
0030     } else {
0031         parser->processWithIdentity(mUoid, mMsg, mCollectionForNewMessage.id());
0032     }
0033 }
0034 
0035 void KMComposerUpdateTemplateJob::slotFinished()
0036 {
0037     Q_EMIT updateComposer(mIdent, mMsg, mUoid, mUoldId, mWasModified);
0038     deleteLater();
0039 }
0040 
0041 void KMComposerUpdateTemplateJob::setMsg(const KMime::Message::Ptr &msg)
0042 {
0043     mMsg = msg;
0044 }
0045 
0046 void KMComposerUpdateTemplateJob::setCustomTemplate(const QString &customTemplate)
0047 {
0048     mCustomTemplate = customTemplate;
0049 }
0050 
0051 void KMComposerUpdateTemplateJob::setTextSelection(const QString &textSelection)
0052 {
0053     mTextSelection = textSelection;
0054 }
0055 
0056 void KMComposerUpdateTemplateJob::setWasModified(bool wasModified)
0057 {
0058     mWasModified = wasModified;
0059 }
0060 
0061 void KMComposerUpdateTemplateJob::setUoldId(uint uoldId)
0062 {
0063     mUoldId = uoldId;
0064 }
0065 
0066 void KMComposerUpdateTemplateJob::setUoid(uint uoid)
0067 {
0068     mUoid = uoid;
0069 }
0070 
0071 void KMComposerUpdateTemplateJob::setIdent(const KIdentityManagementCore::Identity &ident)
0072 {
0073     mIdent = ident;
0074 }
0075 
0076 void KMComposerUpdateTemplateJob::setCollection(const Akonadi::Collection &col)
0077 {
0078     mCollectionForNewMessage = col;
0079 }
0080 
0081 #include "moc_kmcomposerupdatetemplatejob.cpp"