5#ifndef QXMPPMIXCONFIGITEM_H
6#define QXMPPMIXCONFIGITEM_H
8#include "QXmppDataForm.h"
9#include "QXmppPubSubBaseItem.h"
11class QXmppMixConfigItemPrivate;
37 Q_DECLARE_FLAGS(Nodes, Node)
42 ~QXmppMixConfigItem()
override;
44 QXmppMixConfigItem &
operator=(
const QXmppMixConfigItem &);
45 QXmppMixConfigItem &
operator=(QXmppMixConfigItem &&);
113 static bool isItem(
const QDomElement &itemElement);
117 void parsePayload(
const QDomElement &payloadElement)
override;
122 QSharedDataPointer<QXmppMixConfigItemPrivate> d;
125Q_DECLARE_OPERATORS_FOR_FLAGS(QXmppMixConfigItem::Nodes)
128inline auto qHash(
QXmppMixConfigItem::Node key, uint seed)
noexcept {
return qHash(std::underlying_type_t<QXmppMixConfigItem::Node>(key), seed); }
132Q_DECLARE_METATYPE(QXmppMixConfigItem::Nodes)
The QXmppMixConfigItem class represents a PubSub item of a MIX channel containing its configuration a...
Definition QXmppMixConfigItem.h:14
QXmppMixConfigItem & operator=(QXmppMixConfigItem &&)
Default move-assignment operator.
void setMessagesRetractRole(std::optional< Role > messagesRetractRole)
Definition QXmppMixItems.cpp:580
Role
Definition QXmppMixConfigItem.h:16
@ Anyone
Definition QXmppMixConfigItem.h:21
@ Administrator
Definition QXmppMixConfigItem.h:18
@ Owner
Definition QXmppMixConfigItem.h:17
@ Nobody
Definition QXmppMixConfigItem.h:22
@ Allowed
Definition QXmppMixConfigItem.h:20
@ Participant
Definition QXmppMixConfigItem.h:19
std::optional< Role > participantsSubscribeRole() const
Definition QXmppMixItems.cpp:615
std::optional< Role > bannedJidsSubscribeRole() const
Definition QXmppMixItems.cpp:715
void setAvatarUpdateRole(std::optional< Role > avatarUpdateRole)
Definition QXmppMixItems.cpp:785
QXmppMixConfigItem & operator=(const QXmppMixConfigItem &)
Default assignment operator.
void setMessagesSubscribeRole(std::optional< Role > messagesSubscribeRole)
Definition QXmppMixItems.cpp:555
QStringList ownerJids() const
Definition QXmppMixItems.cpp:450
Node
Definition QXmppMixConfigItem.h:25
@ JidMap
Definition QXmppMixConfigItem.h:32
@ Configuration
Definition QXmppMixConfigItem.h:30
@ Presence
Definition QXmppMixConfigItem.h:35
@ AvatarData
Definition QXmppMixConfigItem.h:27
@ Messages
Definition QXmppMixConfigItem.h:33
@ Participants
Definition QXmppMixConfigItem.h:34
@ BannedJids
Definition QXmppMixConfigItem.h:29
@ AvatarMetadata
Definition QXmppMixConfigItem.h:28
@ Information
Definition QXmppMixConfigItem.h:31
@ AllowedJids
Definition QXmppMixConfigItem.h:26
Nodes nodes() const
Definition QXmppMixItems.cpp:520
void setConfigurationReadRole(std::optional< Role > configurationReadRole)
Definition QXmppMixItems.cpp:760
std::optional< Role > informationUpdateRole() const
Definition QXmppMixItems.cpp:660
void setAllowedJidsSubscribeRole(std::optional< Role > allowedJidsSubscribeRole)
Definition QXmppMixItems.cpp:704
void setOnlyParticipantsPermittedToSubmitPresence(std::optional< bool > onlyParticipantsPermittedToSubmitPresence)
Definition QXmppMixItems.cpp:846
std::optional< Role > informationSubscribeRole() const
Definition QXmppMixItems.cpp:635
void setInvitationsPermitted(std::optional< bool > invitationsPermitted)
Definition QXmppMixItems.cpp:894
void setParticipantsSubscribeRole(std::optional< Role > participantsSubscribeRole)
Definition QXmppMixItems.cpp:625
std::optional< Role > messagesRetractRole() const
Definition QXmppMixItems.cpp:565
void setInformationUpdateRole(std::optional< Role > informationUpdateRole)
Definition QXmppMixItems.cpp:675
std::optional< Role > configurationReadRole() const
Definition QXmppMixItems.cpp:743
std::optional< bool > ownMessageRetractionPermitted() const
Definition QXmppMixItems.cpp:856
std::optional< bool > onlyParticipantsPermittedToSubmitPresence() const
Definition QXmppMixItems.cpp:835
void setFormType(QXmppDataForm::Type formType)
Definition QXmppMixItems.cpp:412
std::optional< Role > avatarUpdateRole() const
Definition QXmppMixItems.cpp:770
QXmppMixConfigItem(QXmppMixConfigItem &&)
Default move-constructor.
void setOwnerJids(const QStringList &ownerJids)
Definition QXmppMixItems.cpp:462
QXmppDataForm::Type formType() const
Definition QXmppMixItems.cpp:402
std::optional< Role > allowedJidsSubscribeRole() const
Definition QXmppMixItems.cpp:686
void setAdministratorJids(const QStringList &administratorJids)
Definition QXmppMixItems.cpp:486
std::optional< bool > presenceRequired() const
Definition QXmppMixItems.cpp:815
std::optional< Role > presenceSubscribeRole() const
Definition QXmppMixItems.cpp:590
void setLastEditorJid(const QString &lastEditorJid)
Definition QXmppMixItems.cpp:436
void setBannedJidsSubscribeRole(std::optional< Role > bannedJidsSubscribeRole)
Definition QXmppMixItems.cpp:733
QString lastEditorJid() const
Definition QXmppMixItems.cpp:424
QStringList administratorJids() const
Definition QXmppMixItems.cpp:474
void setPrivateMessagesPermitted(std::optional< bool > privateMessagesPermitted)
Definition QXmppMixItems.cpp:914
QDateTime channelDeletion() const
Definition QXmppMixItems.cpp:498
void setOwnMessageRetractionPermitted(std::optional< bool > ownMessageRetractionPermitted)
Definition QXmppMixItems.cpp:866
std::optional< Role > messagesSubscribeRole() const
Definition QXmppMixItems.cpp:540
void setNicknameRequired(std::optional< bool > nicknameRequired)
Definition QXmppMixItems.cpp:805
QXmppMixConfigItem(const QXmppMixConfigItem &)
Default copy-constructor.
std::optional< bool > privateMessagesPermitted() const
Definition QXmppMixItems.cpp:904
std::optional< bool > invitationsPermitted() const
Definition QXmppMixItems.cpp:882
void setPresenceSubscribeRole(std::optional< Role > presenceSubscribeRole)
Definition QXmppMixItems.cpp:605
void setInformationSubscribeRole(std::optional< Role > informationSubscribeRole)
Definition QXmppMixItems.cpp:650
void setNodes(Nodes nodes)
Definition QXmppMixItems.cpp:530
std::optional< bool > nicknameRequired() const
Definition QXmppMixItems.cpp:795
void setChannelDeletion(const QDateTime &channelDeletion)
Definition QXmppMixItems.cpp:510
void setPresenceRequired(std::optional< bool > presenceRequired)
Definition QXmppMixItems.cpp:825
virtual void serializePayload(QXmlStreamWriter *writer) const
Definition QXmppPubSubBaseItem.cpp:154
QXmppPubSubBaseItem(const QString &id={}, const QString &publisher={})
Definition QXmppPubSubBaseItem.cpp:61
virtual void parsePayload(const QDomElement &payloadElement)
Definition QXmppPubSubBaseItem.cpp:144
static bool isItem(const QDomElement &element)
Definition QXmppPubSubBaseItem.cpp:134