1 /* 2 SPDX-FileCopyrightText: 2017-2021 Laurent Montel <montel@kde.org> 3 4 SPDX-License-Identifier: LGPL-2.0-or-later 5 */ 6 7 #pragma once 8 9 #include <KMime/Message> 10 #include <QObject> 11 12 struct FillComposerJobSettings { 13 FillComposerJobSettings() = default; 14 FillComposerJobSettingsFillComposerJobSettings15 FillComposerJobSettings(bool hidden, 16 const QString &to, 17 const QString &cc, 18 const QString &bcc, 19 const QString &subject, 20 const QString &body, 21 const QString &attachName, 22 const QByteArray &attachCte, 23 const QByteArray &attachData, 24 const QByteArray &attachType, 25 const QByteArray &attachSubType, 26 const QByteArray &attachParamAttr, 27 const QString &attachParamValue, 28 const QByteArray &attachContDisp, 29 const QByteArray &attachCharset, 30 unsigned int identity, 31 bool forceShowWindow) 32 : mTo(to) 33 , mCc(cc) 34 , mBcc(bcc) 35 , mSubject(subject) 36 , mBody(body) 37 , mAttachName(attachName) 38 , mAttachCte(attachCte) 39 , mAttachData(attachData) 40 , mAttachType(attachType) 41 , mAttachSubType(attachSubType) 42 , mAttachParamAttr(attachParamAttr) 43 , mAttachParamValue(attachParamValue) 44 , mAttachContDisp(attachContDisp) 45 , mAttachCharset(attachCharset) 46 , mIdentity(identity) 47 , mForceShowWindow(forceShowWindow) 48 , mHidden(hidden) 49 { 50 } 51 52 QString mTo; 53 QString mCc; 54 QString mBcc; 55 QString mSubject; 56 QString mBody; 57 QString mAttachName; 58 QByteArray mAttachCte; 59 QByteArray mAttachData; 60 QByteArray mAttachType; 61 QByteArray mAttachSubType; 62 QByteArray mAttachParamAttr; 63 QString mAttachParamValue; 64 QByteArray mAttachContDisp; 65 QByteArray mAttachCharset; 66 unsigned int mIdentity = 0; 67 bool mForceShowWindow = false; 68 bool mHidden = false; 69 }; 70 71 class FillComposerJob : public QObject 72 { 73 Q_OBJECT 74 public: 75 explicit FillComposerJob(QObject *parent = nullptr); 76 ~FillComposerJob() override; 77 void start(); 78 void setSettings(const FillComposerJobSettings &settings); 79 80 private: 81 Q_DISABLE_COPY(FillComposerJob) 82 void slotOpenComposer(); 83 FillComposerJobSettings mSettings; 84 KMime::Message::Ptr mMsg = nullptr; 85 }; 86 87