Messagelib

messagecomposer/src/utils/util.h
1 /*
2  SPDX-FileCopyrightText: 2009 Constantin Berzan <[email protected]>
3  SPDX-FileCopyrightText: 2009 Klaralvdalens Datakonsult AB, a KDAB Group company, [email protected]
4  SPDX-FileCopyrightText: 2009 Leo Franchi <[email protected]>
5 
6  SPDX-License-Identifier: LGPL-2.0-or-later
7 */
8 
9 #pragma once
10 
11 #include "messagecomposer_export.h"
12 #include <Akonadi/Item>
13 #include <Akonadi/KMime/MessageStatus>
14 #include <KMime/Message>
15 #include <Libkleo/Enum>
16 
17 class QTextDocument;
18 
19 namespace KMime
20 {
21 class Content;
22 }
23 
24 namespace MessageComposer
25 {
26 namespace Util
27 {
28 Q_REQUIRED_RESULT MESSAGECOMPOSER_EXPORT QByteArray selectCharset(const QVector<QByteArray> &charsets, const QString &text);
29 
30 Q_REQUIRED_RESULT MESSAGECOMPOSER_EXPORT QStringList AttachmentKeywords();
31 Q_REQUIRED_RESULT MESSAGECOMPOSER_EXPORT QString cleanedUpHeaderString(const QString &s);
32 
33 Q_REQUIRED_RESULT MESSAGECOMPOSER_EXPORT bool sendMailDispatcherIsOnline(QWidget *parent = nullptr);
34 
35 /**
36  * find mimetype in message
37  */
38 Q_REQUIRED_RESULT MESSAGECOMPOSER_EXPORT KMime::Content *findTypeInMessage(KMime::Content *data, const QByteArray &mimeType, const QByteArray &subType);
39 
40 /**
41  * Adds private headers to the given @p message that links it to the original message.
42  *
43  * @param message The message to add the link information to.
44  * @param id The item id of the original message.
45  * @param status The status (replied or forwarded) that links the message to the original message.
46  */
47 MESSAGECOMPOSER_EXPORT void addLinkInformation(const KMime::Message::Ptr &message, Akonadi::Item::Id item, Akonadi::MessageStatus status);
48 
49 /**
50  * Reads the private headers of the given @p message to extract link information to its original message.
51  *
52  * @param message The message to read the link information from.
53  * @param id Will contain the item id of the original message.
54  * @param status Will contain the status (replied or forwarded) that linked the message to the original message.
55  * @returns Whether the mail contains valid link information or not.
56  */
57 Q_REQUIRED_RESULT MESSAGECOMPOSER_EXPORT bool
58 getLinkInformation(const KMime::Message::Ptr &msg, QVector<Akonadi::Item::Id> &id, QVector<Akonadi::MessageStatus> &status);
59 
60 /**
61  * Returns whether the item represents a valid KMime::Message that is not
62  * in the Akonadi store (yet). This happens when operating on messages
63  * attached to other mails, for example. Such items are not "valid", in
64  * the akonadi sense, since jobs cannot sensibly use them, but they do
65  * contain a valid message pointer.
66  */
67 Q_REQUIRED_RESULT MESSAGECOMPOSER_EXPORT bool isStandaloneMessage(const Akonadi::Item &item);
68 
69 /**
70  * Retrieve the KMime::Message from the item, if there is one.
71  * @returns A valid message pointer, or 0, is the item does not contain
72  * a valid message.
73  */
74 Q_REQUIRED_RESULT MESSAGECOMPOSER_EXPORT KMime::Message::Ptr message(const Akonadi::Item &item);
75 
76 Q_REQUIRED_RESULT MESSAGECOMPOSER_EXPORT bool hasMissingAttachments(const QStringList &attachmentKeywords, QTextDocument *doc, const QString &subj);
77 
78 Q_REQUIRED_RESULT MESSAGECOMPOSER_EXPORT QStringList cleanEmailList(const QStringList &emails);
79 Q_REQUIRED_RESULT MESSAGECOMPOSER_EXPORT QStringList cleanUpEmailListAndEncoding(const QStringList &emails);
80 MESSAGECOMPOSER_EXPORT void addCustomHeaders(const KMime::Message::Ptr &message, const QMap<QByteArray, QString> &customHeader);
81 }
82 }
83 
KCOREADDONS_EXPORT void message(KMessage::MessageType messageType, const QString &text, const QString &caption=QString())
Simple interface that both EncryptJob and SignEncryptJob implement so the composer can extract some e...
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Tue Nov 30 2021 23:05:48 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.