12#include "QXmppFileShare.h"
13#include "QXmppStanza.h"
20class QXmppMessagePrivate;
25class QXmppMixInvitation;
27class QXmppOmemoElement;
41#if QXMPP_DEPRECATED_SINCE(1, 5)
45 static const EncryptionMethod NoEncryption = EncryptionMethod::NoEncryption;
46 static const EncryptionMethod UnknownEncryption = EncryptionMethod::UnknownEncryption;
47 static const EncryptionMethod OTR = EncryptionMethod::Otr;
48 static const EncryptionMethod LegacyOpenPGP = EncryptionMethod::LegacyOpenPgp;
49 static const EncryptionMethod OX = EncryptionMethod::Ox;
50 static const EncryptionMethod OMEMO = EncryptionMethod::Omemo0;
96 NoPermanentStore = 1 << 0,
102 QXmppMessage(
const QString &from = QString(),
const QString &to = QString(),
103 const QString &body = QString(),
const QString &thread = QString());
114 QString body()
const;
115 void setBody(
const QString &);
117 QString e2eeFallbackBody()
const;
118 void setE2eeFallbackBody(
const QString &fallbackBody);
120 QString subject()
const;
121 void setSubject(
const QString &);
123 QString thread()
const;
124 void setThread(
const QString &);
126 QString parentThread()
const;
127 void setParentThread(
const QString &);
133 QString outOfBandUrl()
const;
134 void setOutOfBandUrl(
const QString &);
136 QVector<QXmppOutOfBandUrl> outOfBandUrls()
const;
137 void setOutOfBandUrls(
const QVector<QXmppOutOfBandUrl> &urls);
140 QString xhtml()
const;
141 void setXhtml(
const QString &xhtml);
148 QDateTime stamp()
const;
149 void setStamp(
const QDateTime &stamp);
152 bool isReceiptRequested()
const;
153 void setReceiptRequested(
bool requested);
155 QString receiptId()
const;
156 void setReceiptId(
const QString &
id);
159 bool isAttentionRequested()
const;
160 void setAttentionRequested(
bool requested);
168 static bool isSlashMeCommand(
const QString &body);
169 bool isSlashMeCommand()
const;
170 static QString slashMeCommandText(
const QString &body);
171 QString slashMeCommandText()
const;
174 QString mucInvitationJid()
const;
175 void setMucInvitationJid(
const QString &jid);
177 QString mucInvitationPassword()
const;
178 void setMucInvitationPassword(
const QString &password);
180 QString mucInvitationReason()
const;
181 void setMucInvitationReason(
const QString &reason);
184 bool isPrivate()
const;
185 void setPrivate(
const bool);
186 bool isCarbonForwarded()
const;
187 void setCarbonForwarded(
bool);
190 QString replaceId()
const;
191 void setReplaceId(
const QString &);
194 bool isMarkable()
const;
195 void setMarkable(
const bool);
197 QString markedId()
const;
198 void setMarkerId(
const QString &);
200 QString markedThread()
const;
201 void setMarkedThread(
const QString &);
204 void setMarker(
const Marker);
207 bool hasHint(
const Hint hint)
const;
208 void addHint(
const Hint hint);
209 void removeHint(
const Hint hint);
210 void removeAllHints();
213 std::optional<QXmppJingleMessageInitiationElement> jingleMessageInitiationElement()
const;
214 void setJingleMessageInitiationElement(
const std::optional<QXmppJingleMessageInitiationElement> &jingleMessageInitiationElement);
217 QString stanzaId()
const;
218 void setStanzaId(
const QString &
id);
220 QString stanzaIdBy()
const;
221 void setStanzaIdBy(
const QString &
id);
223 QString originId()
const;
224 void setOriginId(
const QString &
id);
227 QString attachId()
const;
228 void setAttachId(
const QString &);
231 QString mixParticipantId()
const;
233 QString mixUserJid()
const;
234 void setMixUserJid(
const QString &);
236 QString mixUserNick()
const;
237 void setMixUserNick(
const QString &);
242 QString encryptionMethodNs()
const;
243 void setEncryptionMethodNs(
const QString &);
245 QString encryptionName()
const;
246 void setEncryptionName(
const QString &);
249 bool isSpoiler()
const;
250 void setIsSpoiler(
bool);
252 QString spoilerHint()
const;
253 void setSpoilerHint(
const QString &);
256 std::optional<QXmppMixInvitation> mixInvitation()
const;
257 void setMixInvitation(
const std::optional<QXmppMixInvitation> &mixInvitation);
260#if QXMPP_DEPRECATED_SINCE(1, 7)
261 [[deprecated(
"Use fallbackMarkers()")]]
bool isFallback()
const;
262 [[deprecated(
"Use setFallbackMarkers()")]]
void setIsFallback(
bool isFallback);
264 const QVector<QXmppFallback> &fallbackMarkers()
const;
265 void setFallbackMarkers(
const QVector<QXmppFallback> &);
268 std::optional<QXmppTrustMessageElement> trustMessageElement()
const;
269 void setTrustMessageElement(
const std::optional<QXmppTrustMessageElement> &trustMessageElement);
272 std::optional<QXmppMessageReaction> reaction()
const;
273 void setReaction(
const std::optional<QXmppMessageReaction> &reaction);
276 const QVector<QXmppFileShare> &sharedFiles()
const;
277 void setSharedFiles(
const QVector<QXmppFileShare> &sharedFiles);
278 QVector<QXmppFileSourcesAttachment> fileSourcesAttachments()
const;
279 void setFileSourcesAttachments(
const QVector<QXmppFileSourcesAttachment> &);
282 std::optional<QXmppCallInviteElement> callInviteElement()
const;
283 void setCallInviteElement(std::optional<QXmppCallInviteElement> callInviteElement);
288 std::optional<QXmppOmemoElement> omemoElement()
const;
289 void setOmemoElement(
const std::optional<QXmppOmemoElement> &omemoElement);
292 void parse(
const QDomElement &element)
override final;
294 void toXml(QXmlStreamWriter *writer)
const override final;
298 void parseExtensions(
const QDomElement &element,
QXmpp::SceMode sceMode);
299 virtual bool parseExtension(
const QDomElement &element,
QXmpp::SceMode);
300 virtual void serializeExtensions(QXmlStreamWriter *writer,
QXmpp::SceMode,
const QString &baseNamespace = {})
const;
303 QSharedDataPointer<QXmppMessagePrivate> d;
Definition: QXmppBitsOfBinaryDataList.h:16
The QXmppCallInviteElement class represents a Call Invite element as specified by XEP-0482: Call Invi...
Definition: QXmppJingleData.h:649
Definition: QXmppFallback.h:20
The QXmppJingleMessageInitiationElement class represents a Jingle Message Initiation element as speci...
Definition: QXmppJingleData.h:602
The QXmppMessageReaction class represents a reaction to a message in the form of emojis as specified ...
Definition: QXmppMessageReaction.h:17
The QXmppMessage class represents an XMPP message.
Definition: QXmppMessage.h:39
QXmppMessage & operator=(QXmppMessage &&)
Move-assignment operator.
QXmppMessage & operator=(const QXmppMessage &other)
Assignment operator.
Type
This enum describes a message type.
Definition: QXmppMessage.h:55
QXmppMessage(QXmppMessage &&)
Move-constructor.
Marker
Definition: QXmppMessage.h:83
Hint
Definition: QXmppMessage.h:95
State
Definition: QXmppMessage.h:69
@ Active
User is actively participating in the chat session.
Definition: QXmppMessage.h:71
@ Inactive
User has not been actively participating in the chat session.
Definition: QXmppMessage.h:72
@ Composing
User is composing a message.
Definition: QXmppMessage.h:74
@ Gone
User has effectively ended their participation in the chat session.
Definition: QXmppMessage.h:73
QXmppMessage(const QXmppMessage &other)
Constructs a copy of other.
virtual void parse(const QDomElement &)=0
virtual bool isXmppStanza() const
Definition: QXmppNonza.h:19
virtual void toXml(QXmlStreamWriter *writer) const =0
Definition: QXmppOutOfBandUrl.h:19
The Error class represents a stanza error.
Definition: QXmppStanza.h:94
The QXmppStanza class is the base class for all XMPP stanzas.
Definition: QXmppStanza.h:88
The QXmppTrustMessageElement class represents a trust message element as defined by XEP-0434: Trust M...
Definition: QXmppTrustMessageElement.h:18
SceMode
Definition: QXmppGlobal.h:136
EncryptionMethod
Definition: QXmppGlobal.h:89