Use MessageFactoryNG

wilder-work
Montel Laurent 9 years ago
parent db5ddcc430
commit 310241ca9f
  1. 2
      CMakeLists.txt
  2. 49
      src/job/createforwardmessagejob.cpp
  3. 10
      src/job/createforwardmessagejob.h
  4. 60
      src/job/createreplymessagejob.cpp
  5. 9
      src/job/createreplymessagejob.h
  6. 23
      src/kmcommands.cpp
  7. 6
      src/kmcommands.h
  8. 2
      src/kmreaderwin.cpp
  9. 5
      src/messageactions.h

@ -66,7 +66,7 @@ find_package(Qt5 ${QT_REQUIRED_VERSION} CONFIG REQUIRED DBus Network Test Widget
set(LIBGRAVATAR_VERSION_LIB "5.4.40")
set(MAILCOMMON_LIB_VERSION_LIB "5.4.42")
set(KDEPIM_APPS_LIB_VERSION_LIB "5.4.40")
set(MESSAGELIB_LIB_VERSION_LIB "5.4.51")
set(MESSAGELIB_LIB_VERSION_LIB "5.4.53")
set(LIBKLEO_LIB_VERSION_LIB "5.4.40")
set(PIMCOMMON_LIB_VERSION_LIB "5.4.43")
set(LIBKDEPIM_LIB_VERSION_LIB "5.4.40")

@ -19,7 +19,6 @@
#include "createforwardmessagejob.h"
#include "config-kmail.h"
#include "kmkernel.h"
#include "../util.h"
#include "composer.h"
@ -27,18 +26,22 @@
#include <KMime/Message>
#include <KEmailAddress>
#include <MailCommon/MailUtil>
#include <MessageComposer/MessageFactory>
#include <QUrl>
CreateForwardMessageJob::CreateForwardMessageJob(QObject *parent)
: QObject(parent)
#ifdef KDEPIM_TEMPLATEPARSER_ASYNC_BUILD
, mMessageFactory(nullptr)
#endif
{
}
CreateForwardMessageJob::~CreateForwardMessageJob()
{
#ifdef KDEPIM_TEMPLATEPARSER_ASYNC_BUILD
delete mMessageFactory;
#endif
}
void CreateForwardMessageJob::setSettings(const CreateForwardMessageJobSettings &value)
@ -48,6 +51,17 @@ void CreateForwardMessageJob::setSettings(const CreateForwardMessageJobSettings
void CreateForwardMessageJob::start()
{
#ifdef KDEPIM_TEMPLATEPARSER_ASYNC_BUILD
mMessageFactory = new MessageComposer::MessageFactoryNG(mSettings.mMsg, mSettings.mItem.id(), MailCommon::Util::updatedCollection(mSettings.mItem.parentCollection()));
connect(mMessageFactory, &MessageComposer::MessageFactoryNG::createForwardDone, this, &CreateForwardMessageJob::slotCreateForwardDone);
mMessageFactory->setIdentityManager(KMKernel::self()->identityManager());
mMessageFactory->setFolderIdentity(MailCommon::Util::folderIdentity(mSettings.mItem));
mMessageFactory->setSelection(mSettings.mSelection);
if (!mSettings.mTemplate.isEmpty()) {
mMessageFactory->setTemplate(mSettings.mTemplate);
}
mMessageFactory->createForwardAsync();
#else
MessageComposer::MessageFactory factory(mSettings.mMsg, mSettings.mItem.id(), MailCommon::Util::updatedCollection(mSettings.mItem.parentCollection()));
factory.setIdentityManager(KMKernel::self()->identityManager());
factory.setFolderIdentity(MailCommon::Util::folderIdentity(mSettings.mItem));
@ -79,5 +93,34 @@ void CreateForwardMessageJob::start()
win->show();
}
deleteLater();
#endif
}
#ifdef KDEPIM_TEMPLATEPARSER_ASYNC_BUILD
void CreateForwardMessageJob::slotCreateForwardDone(const KMime::Message::Ptr &fmsg)
{
if (mSettings.mUrl.isValid()) {
fmsg->to()->fromUnicodeString(KEmailAddress::decodeMailtoUrl(mSettings.mUrl).toLower(), "utf-8");
}
bool lastEncrypt = false;
bool lastSign = false;
KMail::Util::lastEncryptAndSignState(lastEncrypt, lastSign, mSettings.mMsg);
if (mSettings.mUrl.isValid()) {
KMail::Composer *win = KMail::makeComposer(fmsg, lastSign, lastEncrypt, KMail::Composer::Forward);
win->show();
} else {
uint id = 0;
if (auto hrd = mSettings.mMsg->headerByType("X-KMail-Identity")) {
id = hrd->asUnicodeString().trimmed().toUInt();
}
if (id == 0) {
id = mSettings.mIdentity;
}
KMail::Composer *win = KMail::makeComposer(fmsg, lastSign, lastEncrypt, KMail::Composer::Forward, id, QString(), mSettings.mTemplate);
win->show();
}
deleteLater();
}
#endif

@ -22,9 +22,15 @@
#define CREATEFORWARDMESSAGEJOB_H
#include <QObject>
#include "config-kmail.h"
#include <QUrl>
#include <KMime/Message>
#include <AkonadiCore/Item>
#ifdef KDEPIM_TEMPLATEPARSER_ASYNC_BUILD
#include <MessageComposer/MessageFactoryNG>
#else
#include <MessageComposer/MessageFactory>
#endif
struct CreateForwardMessageJobSettings
{
@ -53,6 +59,10 @@ public:
void setSettings(const CreateForwardMessageJobSettings &value);
private:
#ifdef KDEPIM_TEMPLATEPARSER_ASYNC_BUILD
MessageComposer::MessageFactoryNG *mMessageFactory;
void slotCreateForwardDone(const KMime::Message::Ptr &msg);
#endif
CreateForwardMessageJobSettings mSettings;
};

@ -18,7 +18,7 @@
*/
#include "createreplymessagejob.h"
#include "config-kmail.h"
#include "kmkernel.h"
#include "../util.h"
#include "composer.h"
@ -27,16 +27,23 @@
#include <KEmailAddress>
#include <MailCommon/MailUtil>
#include <QUrl>
#include <QDebug>
CreateReplyMessageJob::CreateReplyMessageJob(QObject *parent)
: QObject(parent)
#ifdef KDEPIM_TEMPLATEPARSER_ASYNC_BUILD
, mMessageFactory(nullptr)
#endif
{
qDebug() << " CreateReplyMessageJob::CreateReplyMessageJob(QObject *parent)"<<this;
}
CreateReplyMessageJob::~CreateReplyMessageJob()
{
#ifdef KDEPIM_TEMPLATEPARSER_ASYNC_BUILD
delete mMessageFactory;
#endif
qDebug() << " CreateReplyMessageJob::~CreateReplyMessageJob(QObject *parent)"<<this;
}
void CreateReplyMessageJob::setSettings(const CreateReplyMessageJobSettings &settings)
@ -45,7 +52,11 @@ void CreateReplyMessageJob::setSettings(const CreateReplyMessageJobSettings &set
}
/// Small helper function to get the composer context from a reply
#ifdef KDEPIM_TEMPLATEPARSER_ASYNC_BUILD
static KMail::Composer::TemplateContext replyContext(MessageComposer::MessageFactoryNG::MessageReply reply)
#else
static KMail::Composer::TemplateContext replyContext(MessageComposer::MessageFactory::MessageReply reply)
#endif
{
if (reply.replyAll) {
return KMail::Composer::ReplyToAll;
@ -56,6 +67,25 @@ static KMail::Composer::TemplateContext replyContext(MessageComposer::MessageFac
void CreateReplyMessageJob::start()
{
#ifdef KDEPIM_TEMPLATEPARSER_ASYNC_BUILD
qDebug() << " void CreateReplyMessageJob::start()";
mMessageFactory = new MessageComposer::MessageFactoryNG(mSettings.mMsg, mSettings.mItem.id(), MailCommon::Util::updatedCollection(mSettings.mItem.parentCollection()));
mMessageFactory->setIdentityManager(KMKernel::self()->identityManager());
mMessageFactory->setFolderIdentity(MailCommon::Util::folderIdentity(mSettings.mItem));
mMessageFactory->setMailingListAddresses(KMail::Util::mailingListsFromMessage(mSettings.mItem));
mMessageFactory->putRepliesInSameFolder(KMail::Util::putRepliesInSameFolder(mSettings.mItem));
mMessageFactory->setSelection(mSettings.mSelection);
if (!mSettings.mTemplate.isEmpty()) {
mMessageFactory->setTemplate(mSettings.mTemplate);
}
if (mSettings.mNoQuote) {
mMessageFactory->setQuote(false);
}
connect(mMessageFactory, &MessageComposer::MessageFactoryNG::createReplyDone, this, &CreateReplyMessageJob::slotCreateReplyDone);
mMessageFactory->setReplyStrategy(mSettings.m_replyStrategy);
mMessageFactory->createReplyAsync();
#else
MessageComposer::MessageFactory factory(mSettings.mMsg, mSettings.mItem.id(), MailCommon::Util::updatedCollection(mSettings.mItem.parentCollection()));
factory.setIdentityManager(KMKernel::self()->identityManager());
factory.setFolderIdentity(MailCommon::Util::folderIdentity(mSettings.mItem));
@ -88,5 +118,29 @@ void CreateReplyMessageJob::start()
win->setFocusToEditor();
win->show();
deleteLater();
#endif
}
#ifdef KDEPIM_TEMPLATEPARSER_ASYNC_BUILD
void CreateReplyMessageJob::slotCreateReplyDone(const MessageComposer::MessageFactoryNG::MessageReply &reply)
{
qDebug() << " void CreateReplyMessageJob::slotCreateReplyDone(const MessageComposer::MessageFactoryNG::MessageReply &reply)";
KMime::Message::Ptr rmsg = reply.msg;
if (mSettings.mUrl.isValid()) {
rmsg->to()->fromUnicodeString(KEmailAddress::decodeMailtoUrl(mSettings.mUrl), "utf-8");
}
bool lastEncrypt = false;
bool lastSign = false;
KMail::Util::lastEncryptAndSignState(lastEncrypt, lastSign, mSettings.mMsg);
KMail::Composer *win = KMail::makeComposer(rmsg,
lastSign,
lastEncrypt,
(mSettings.m_replyStrategy == MessageComposer::ReplyNone) ? KMail::Composer::Reply : replyContext(reply),
0,
mSettings.mSelection, mSettings.mTemplate);
win->setFocusToEditor();
win->show();
deleteLater();
}
#endif

@ -21,9 +21,14 @@
#define CREATEREPLYMESSAGEJOB_H
#include <QObject>
#include "config-kmail.h"
#include <AkonadiCore/Item>
#include <KMime/Message>
#ifdef KDEPIM_TEMPLATEPARSER_ASYNC_BUILD
#include <MessageComposer/MessageFactoryNG>
#else
#include <MessageComposer/MessageFactory>
#endif
#include <QUrl>
@ -57,6 +62,10 @@ public:
void setSettings(const CreateReplyMessageJobSettings &settings);
private:
#ifdef KDEPIM_TEMPLATEPARSER_ASYNC_BUILD
MessageComposer::MessageFactoryNG *mMessageFactory;
void slotCreateReplyDone(const MessageComposer::MessageFactoryNG::MessageReply &reply);
#endif
CreateReplyMessageJobSettings mSettings;
};

@ -88,7 +88,6 @@
#include <MessageComposer/MessageSender>
#include <MessageComposer/MessageHelper>
#include <MessageComposer/MessageComposerSettings>
#include <MessageComposer/MessageFactory>
#include <MessageComposer/Util>
#include <MessageList/Pane>
@ -142,7 +141,11 @@
using KMail::SecondaryWindow;
using MailTransport::TransportManager;
#ifdef KDEPIM_TEMPLATEPARSER_ASYNC_BUILD
using MessageComposer::MessageFactoryNG;
#else
using MessageComposer::MessageFactory;
#endif
using KPIM::ProgressManager;
using KPIM::ProgressItem;
@ -930,7 +933,11 @@ KMCommand::Result KMForwardCommand::execute()
if (answer == KMessageBox::Yes) {
Akonadi::Item firstItem(msgList.first());
#ifdef KDEPIM_TEMPLATEPARSER_ASYNC_BUILD
MessageFactoryNG factory(KMime::Message::Ptr(new KMime::Message), firstItem.id(), MailCommon::Util::updatedCollection(firstItem.parentCollection()));
#else
MessageFactory factory(KMime::Message::Ptr(new KMime::Message), firstItem.id(), MailCommon::Util::updatedCollection(firstItem.parentCollection()));
#endif
factory.setIdentityManager(KMKernel::self()->identityManager());
factory.setFolderIdentity(MailCommon::Util::folderIdentity(firstItem));
@ -985,7 +992,11 @@ KMCommand::Result KMForwardAttachedCommand::execute()
{
Akonadi::Item::List msgList = retrievedMsgs();
Akonadi::Item firstItem(msgList.first());
#ifdef KDEPIM_TEMPLATEPARSER_ASYNC_BUILD
MessageFactoryNG factory(KMime::Message::Ptr(new KMime::Message), firstItem.id(), MailCommon::Util::updatedCollection(firstItem.parentCollection()));
#else
MessageFactory factory(KMime::Message::Ptr(new KMime::Message), firstItem.id(), MailCommon::Util::updatedCollection(firstItem.parentCollection()));
#endif
factory.setIdentityManager(KMKernel::self()->identityManager());
factory.setFolderIdentity(MailCommon::Util::folderIdentity(firstItem));
@ -1053,8 +1064,11 @@ KMCommand::Result KMRedirectCommand::execute()
if (!msg) {
return Failed;
}
#ifdef KDEPIM_TEMPLATEPARSER_ASYNC_BUILD
MessageFactoryNG factory(msg, item.id(), MailCommon::Util::updatedCollection(item.parentCollection()));
#else
MessageFactory factory(msg, item.id(), MailCommon::Util::updatedCollection(item.parentCollection()));
#endif
factory.setIdentityManager(KMKernel::self()->identityManager());
factory.setFolderIdentity(MailCommon::Util::folderIdentity(item));
@ -1600,8 +1614,11 @@ KMCommand::Result KMResendMessageCommand::execute()
if (!msg) {
return Failed;
}
#ifdef KDEPIM_TEMPLATEPARSER_ASYNC_BUILD
MessageFactoryNG factory(msg, item.id(), MailCommon::Util::updatedCollection(item.parentCollection()));
#else
MessageFactory factory(msg, item.id(), MailCommon::Util::updatedCollection(item.parentCollection()));
#endif
factory.setIdentityManager(KMKernel::self()->identityManager());
factory.setFolderIdentity(MailCommon::Util::folderIdentity(item));
KMime::Message::Ptr newMsg = factory.createResend();

@ -2,8 +2,12 @@
#ifndef KMCommands_h
#define KMCommands_h
#include "config-kmail.h"
#ifdef KDEPIM_TEMPLATEPARSER_ASYNC_BUILD
#include <MessageComposer/MessageFactoryNG>
#else
#include <MessageComposer/MessageFactory>
#endif
#include "MessageList/View"
#include "mailcommon/searchpattern.h"
#include "messageviewer/viewer.h"

@ -55,13 +55,11 @@ using namespace MessageViewer;
#include <MimeTreeParser/AttachmentStrategy>
#include <MessageComposer/MessageSender>
#include <MessageComposer/MessageFactory>
#include "MessageComposer/Composer"
#include "MessageComposer/TextPart"
#include "MessageComposer/InfoPart"
#include <KIO/JobUiDelegate>
using MessageComposer::MessageFactory;
#include "messagecore/messagehelpers.h"

@ -19,7 +19,12 @@
#ifndef KMAIL_MESSAGEACTIONS_H
#define KMAIL_MESSAGEACTIONS_H
#include "config-kmail.h"
#ifdef KDEPIM_TEMPLATEPARSER_ASYNC_BUILD
#include <MessageComposer/MessageFactoryNG>
#else
#include <MessageComposer/MessageFactory>
#endif
#include <QUrl>
#include <qobject.h>

Loading…
Cancel
Save