Messagelib
messagecomposer/src/utils/util.cpp
3 SPDX-FileCopyrightText: 2009 Klaralvdalens Datakonsult AB, a KDAB Group company, [email protected]
36 KMime::Content *setBodyAndCTE(QByteArray &encodedBody, KMime::Headers::ContentType *contentType, KMime::Content *ret)
130 void MessageComposer::Util::makeToplevelContentType(KMime::Content *content, Kleo::CryptoMessageFormat format, bool sign, const QByteArray &hashAlgo)
140 ct->setParameter(QStringLiteral("micalg"), QString::fromLatin1(QByteArray(QByteArrayLiteral("pgp-") + hashAlgo)).toLower());
176 void MessageComposer::Util::setNestedContentType(KMime::Content *content, Kleo::CryptoMessageFormat format, bool sign)
206 void MessageComposer::Util::setNestedContentDisposition(KMime::Content *content, Kleo::CryptoMessageFormat format, bool sign)
232 QByteArray MessageComposer::Util::selectCharset(const QVector<QByteArray> &charsets, const QString &text)
273 void MessageComposer::Util::addSendReplyForwardAction(const KMime::Message::Ptr &message, MailTransport::MessageQueueJob *qjob)
280 qjob->sentActionAttribute().addAction(MailTransport::SentActionAttribute::Action::MarkAsReplied, QVariant(id));
282 qjob->sentActionAttribute().addAction(MailTransport::SentActionAttribute::Action::MarkAsForwarded, QVariant(id));
290 Akonadi::AgentInstance instance = Akonadi::AgentManager::self()->instance(QStringLiteral("akonadi_maildispatcher_agent"));
293 i18n("The mail dispatcher is not set up, so mails cannot be sent. Do you want to create a mail dispatcher?"),
299 const Akonadi::AgentType type = Akonadi::AgentManager::self()->type(QStringLiteral("akonadi_maildispatcher_agent"));
310 i18n("The mail dispatcher is offline, so mails cannot be sent. Do you want to make it online?"),
323 KMime::Content *MessageComposer::Util::findTypeInMessage(KMime::Content *data, const QByteArray &mimeType, const QByteArray &subType)
329 if ((mimeType == data->contentType()->mediaType()) && (subType == data->contentType(false)->subType())) {
336 if ((!child->contentType()->isEmpty()) && (mimeType == child->contentType()->mimeType()) && (subType == child->contentType()->subType())) {
347 void MessageComposer::Util::addLinkInformation(const KMime::Message::Ptr &msg, Akonadi::Item::Id id, Akonadi::MessageStatus status)
383 bool MessageComposer::Util::getLinkInformation(const KMime::Message::Ptr &msg, QVector<Akonadi::Item::Id> &id, QVector<Akonadi::MessageStatus> &status)
391 const QStringList messages = hrdLinkMsg->asUnicodeString().split(QLatin1Char(','), Qt::SkipEmptyParts);
392 const QStringList types = hrdLinkType->asUnicodeString().split(QLatin1Char(','), Qt::SkipEmptyParts);
428 bool MessageComposer::Util::hasMissingAttachments(const QStringList &attachmentKeywords, QTextDocument *doc, const QString &subj)
435 QRegularExpression rx(QLatin1String("\\b") + attachWordsList.join(QLatin1String("\\b|\\b")) + QLatin1String("\\b"),
440 bool gotMatch = (MessageCore::StringUtil::stripOffPrefixes(subj) == subj) && (rx.match(subj).hasMatch());
487 void MessageComposer::Util::addCustomHeaders(const KMime::Message::Ptr &message, const QMap<QByteArray, QString> &custom)
bool isValid() const
KCODECS_EXPORT QByteArray extractEmailAddress(const QByteArray &address)
bool isEmpty() const override
QTextBlock end() const const
QString number(int n, int base)
void addAction(Action::Type type, const QVariant &value)
void setIsOnline(bool online)
QByteArray mimeType() const
QStringList split(const QString &sep, QString::SplitBehavior behavior, Qt::CaseSensitivity cs) const const
int count(const T &value) const const
QTextCodec * codecForName(const QString &n, bool &ok) const
KCALUTILS_EXPORT QString mimeType()
void setMimeType(const QByteArray &mimeType)
ButtonCode warningYesNo(QWidget *parent, const QString &text, const QString &caption=QString(), const KGuiItem &buttonYes=KStandardGuiItem::yes(), const KGuiItem &buttonNo=KStandardGuiItem::no(), const QString &dontAskAgainName=QString(), Options options=Options(Notify|Dangerous))
T & first()
QTextBlock next() const const
bool hasPayload() const
QByteArray mediaType() const
QString stripOffPrefixes(const QString &subject)
Removes the forward and reply marks (e.g.
Definition: stringutil.cpp:783
QStringList types(Mode mode=Writing)
void reserve(int alloc)
qint64 Id
AgentInstance instance(const QString &identifier) const
static const MessageStatus statusForwarded()
SentActionAttribute & sentActionAttribute()
QString i18n(const char *text, const TYPE &arg...)
void setBody(const QByteArray &body)
SkipEmptyParts
bool isEmpty() const const
NETWORKMANAGERQT_EXPORT NetworkManager::Status status()
Headers::ContentDisposition * contentDisposition(bool create=true)
Headers::ContentTransferEncoding * contentTransferEncoding(bool create=true)
bool isEmpty() const const
QByteArray head() const
void setEncoding(contentEncoding e)
QByteArray subType() const
MarkAsForwarded
QString join(const QString &separator) const const
CaseInsensitiveOption
AgentType type(const QString &identifier) const
void setDisposition(contentDisposition disp)
QByteArray charset() const
QTextBlock begin() const const
bool isEmpty() const const
static KCharsets * charsets()
bool isOnline() const
QString fromLatin1(const char *str, int size)
const char * name(StandardAction id)
static const MessageStatus statusReplied()
virtual void from7BitString(const char *s, size_t len)
QString i18nc(const char *context, const char *text, const TYPE &arg...)
static AgentManager * self()
bool canEncode(QChar ch) const const
Headers::ContentType * contentType(bool create=true)
T payload() const
KGuiItem cancel()
bool isValid() const
QString message
const QList< QKeySequence > & end()
Headers::ContentDescription * contentDescription(bool create=true)
KCODECS_EXPORT QString normalizeAddressesAndEncodeIdn(const QString &str)
QVector< Content * > contents() const
QChar fromLatin1(char c)
This file is part of the KDE documentation.
Documentation copyright © 1996-2022 The KDE developers.
Generated on Thu May 19 2022 03:53:26 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006
Documentation copyright © 1996-2022 The KDE developers.
Generated on Thu May 19 2022 03:53:26 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.