From 942f152ec6bad1c8a204ae6d50ab39f5eeeab9b1 Mon Sep 17 00:00:00 2001 From: Melvin Keskin Date: Mon, 11 Mar 2024 17:20:49 +0100 Subject: [PATCH] MixItems: Use 'std::optional' instead of 'Role::None' --- src/base/QXmppMixConfigItem.h | 41 ++++++++--------- src/base/QXmppMixItems.cpp | 87 +++++++++++++++++------------------ 2 files changed, 63 insertions(+), 65 deletions(-) diff --git a/src/base/QXmppMixConfigItem.h b/src/base/QXmppMixConfigItem.h index c9b32aec8..e828175ae 100644 --- a/src/base/QXmppMixConfigItem.h +++ b/src/base/QXmppMixConfigItem.h @@ -14,7 +14,6 @@ class QXMPP_EXPORT QXmppMixConfigItem : public QXmppPubSubBaseItem { public: enum class Role { - None, Owner, Administrator, Participant, @@ -63,35 +62,35 @@ class QXMPP_EXPORT QXmppMixConfigItem : public QXmppPubSubBaseItem Nodes nodes() const; void setNodes(Nodes nodes); - Role messagesSubscribeRole() const; - void setMessagesSubscribeRole(Role messagesSubscribeRole); + std::optional messagesSubscribeRole() const; + void setMessagesSubscribeRole(std::optional messagesSubscribeRole); - Role messagesRetractRole() const; - void setMessagesRetractRole(Role messagesRetractRole); + std::optional messagesRetractRole() const; + void setMessagesRetractRole(std::optional messagesRetractRole); - Role presenceSubscribeRole() const; - void setPresenceSubscribeRole(Role presenceSubscribeRole); + std::optional presenceSubscribeRole() const; + void setPresenceSubscribeRole(std::optional presenceSubscribeRole); - Role participantsSubscribeRole() const; - void setParticipantsSubscribeRole(Role participantsSubscribeRole); + std::optional participantsSubscribeRole() const; + void setParticipantsSubscribeRole(std::optional participantsSubscribeRole); - Role informationSubscribeRole() const; - void setInformationSubscribeRole(Role informationSubscribeRole); + std::optional informationSubscribeRole() const; + void setInformationSubscribeRole(std::optional informationSubscribeRole); - Role informationUpdateRole() const; - void setInformationUpdateRole(Role informationUpdateRole); + std::optional informationUpdateRole() const; + void setInformationUpdateRole(std::optional informationUpdateRole); - Role allowedJidsSubscribeRole() const; - void setAllowedJidsSubscribeRole(Role allowedJidsSubscribeRole); + std::optional allowedJidsSubscribeRole() const; + void setAllowedJidsSubscribeRole(std::optional allowedJidsSubscribeRole); - Role bannedJidsSubscribeRole() const; - void setBannedJidsSubscribeRole(Role bannedJidsSubscribeRole); + std::optional bannedJidsSubscribeRole() const; + void setBannedJidsSubscribeRole(std::optional bannedJidsSubscribeRole); - Role configurationReadRole() const; - void setConfigurationReadRole(Role configurationReadRole); + std::optional configurationReadRole() const; + void setConfigurationReadRole(std::optional configurationReadRole); - Role avatarUpdateRole() const; - void setAvatarUpdateRole(Role avatarUpdateRole); + std::optional avatarUpdateRole() const; + void setAvatarUpdateRole(std::optional avatarUpdateRole); std::optional nicknameRequired() const; void setNicknameRequired(std::optional nicknameRequired); diff --git a/src/base/QXmppMixItems.cpp b/src/base/QXmppMixItems.cpp index 86ca0f5bc..d010ee05a 100644 --- a/src/base/QXmppMixItems.cpp +++ b/src/base/QXmppMixItems.cpp @@ -41,7 +41,6 @@ static const auto INVITATIONS_PERMITTED_KEY = QStringLiteral("Participation Addi static const auto PRIVATE_MESSAGES_PERMITTED_KEY = QStringLiteral("Private Messages"); static const QMap ROLES = { - { QXmppMixConfigItem::Role::None, {} }, { QXmppMixConfigItem::Role::Owner, QStringLiteral("owners") }, { QXmppMixConfigItem::Role::Administrator, QStringLiteral("admins") }, { QXmppMixConfigItem::Role::Participant, QStringLiteral("participants") }, @@ -70,16 +69,16 @@ class QXmppMixConfigItemPrivate : public QSharedData, public QXmppDataFormBase QStringList administratorJids; QDateTime channelDeletion; QXmppMixConfigItem::Nodes nodes; - QXmppMixConfigItem::Role messagesSubscribeRole = QXmppMixConfigItem::Role::None; - QXmppMixConfigItem::Role messagesRetractRole = QXmppMixConfigItem::Role::None; - QXmppMixConfigItem::Role presenceSubscribeRole = QXmppMixConfigItem::Role::None; - QXmppMixConfigItem::Role participantsSubscribeRole = QXmppMixConfigItem::Role::None; - QXmppMixConfigItem::Role informationSubscribeRole = QXmppMixConfigItem::Role::None; - QXmppMixConfigItem::Role informationUpdateRole = QXmppMixConfigItem::Role::None; - QXmppMixConfigItem::Role allowedJidsSubscribeRole = QXmppMixConfigItem::Role::None; - QXmppMixConfigItem::Role bannedJidsSubscribeRole = QXmppMixConfigItem::Role::None; - QXmppMixConfigItem::Role configurationReadRole = QXmppMixConfigItem::Role::None; - QXmppMixConfigItem::Role avatarUpdateRole = QXmppMixConfigItem::Role::None; + std::optional messagesSubscribeRole; + std::optional messagesRetractRole; + std::optional presenceSubscribeRole; + std::optional participantsSubscribeRole; + std::optional informationSubscribeRole; + std::optional informationUpdateRole; + std::optional allowedJidsSubscribeRole; + std::optional bannedJidsSubscribeRole; + std::optional configurationReadRole; + std::optional avatarUpdateRole; std::optional nicknameRequired; std::optional presenceRequired; std::optional onlyParticipantsPermittedToSubmitPresence; @@ -97,16 +96,16 @@ class QXmppMixConfigItemPrivate : public QSharedData, public QXmppDataFormBase administratorJids.clear(); channelDeletion = {}; nodes = {}; - messagesSubscribeRole = QXmppMixConfigItem::Role::None; - messagesRetractRole = QXmppMixConfigItem::Role::None; - presenceSubscribeRole = QXmppMixConfigItem::Role::None; - participantsSubscribeRole = QXmppMixConfigItem::Role::None; - informationSubscribeRole = QXmppMixConfigItem::Role::None; - informationUpdateRole = QXmppMixConfigItem::Role::None; - allowedJidsSubscribeRole = QXmppMixConfigItem::Role::None; - bannedJidsSubscribeRole = QXmppMixConfigItem::Role::None; - configurationReadRole = QXmppMixConfigItem::Role::None; - avatarUpdateRole = QXmppMixConfigItem::Role::None; + messagesSubscribeRole = std::nullopt; + messagesRetractRole = std::nullopt; + presenceSubscribeRole = std::nullopt; + participantsSubscribeRole = std::nullopt; + informationSubscribeRole = std::nullopt; + informationUpdateRole = std::nullopt; + allowedJidsSubscribeRole = std::nullopt; + bannedJidsSubscribeRole = std::nullopt; + configurationReadRole = std::nullopt; + avatarUpdateRole = std::nullopt; nicknameRequired = std::nullopt; presenceRequired = std::nullopt; onlyParticipantsPermittedToSubmitPresence = std::nullopt; @@ -212,7 +211,7 @@ class QXmppMixConfigItemPrivate : public QSharedData, public QXmppDataFormBase /// \param name name of the form field /// \param role role to serialize /// - static void serializeRole(QXmppDataForm &form, const QString &name, QXmppMixConfigItem::Role role) + static void serializeRole(QXmppDataForm &form, const QString &name, std::optional role) { serializeNullable(form, QXmppDataForm::Field::Type::ListSingleField, name, roleToString(role)); } @@ -224,9 +223,9 @@ class QXmppMixConfigItemPrivate : public QSharedData, public QXmppDataFormBase /// /// \return the string representation of the role /// - static QString roleToString(QXmppMixConfigItem::Role role) + static QString roleToString(std::optional role) { - return ROLES.value(role); + return role ? ROLES.value(*role) : QString(); } /// @@ -539,7 +538,7 @@ void QXmppMixConfigItem::setNodes(Nodes nodes) /// /// \return the role permitted to subscribe to the messages /// -QXmppMixConfigItem::Role QXmppMixConfigItem::messagesSubscribeRole() const +std::optional QXmppMixConfigItem::messagesSubscribeRole() const { return d->messagesSubscribeRole; } @@ -554,7 +553,7 @@ QXmppMixConfigItem::Role QXmppMixConfigItem::messagesSubscribeRole() const /// /// \param messagesSubscribeRole role permitted to subscribe to the messages /// -void QXmppMixConfigItem::setMessagesSubscribeRole(Role messagesSubscribeRole) +void QXmppMixConfigItem::setMessagesSubscribeRole(std::optional messagesSubscribeRole) { d->messagesSubscribeRole = messagesSubscribeRole; } @@ -564,7 +563,7 @@ void QXmppMixConfigItem::setMessagesSubscribeRole(Role messagesSubscribeRole) /// /// \return the role permitted to retract any message /// -QXmppMixConfigItem::Role QXmppMixConfigItem::messagesRetractRole() const +std::optional QXmppMixConfigItem::messagesRetractRole() const { return d->messagesRetractRole; } @@ -579,7 +578,7 @@ QXmppMixConfigItem::Role QXmppMixConfigItem::messagesRetractRole() const /// /// \param messagesRetractRole role permitted to retract any message /// -void QXmppMixConfigItem::setMessagesRetractRole(Role messagesRetractRole) +void QXmppMixConfigItem::setMessagesRetractRole(std::optional messagesRetractRole) { d->messagesRetractRole = messagesRetractRole; } @@ -589,7 +588,7 @@ void QXmppMixConfigItem::setMessagesRetractRole(Role messagesRetractRole) /// /// \return the role permitted to subscribe to the presence /// -QXmppMixConfigItem::Role QXmppMixConfigItem::presenceSubscribeRole() const +std::optional QXmppMixConfigItem::presenceSubscribeRole() const { return d->presenceSubscribeRole; } @@ -604,7 +603,7 @@ QXmppMixConfigItem::Role QXmppMixConfigItem::presenceSubscribeRole() const /// /// \param presenceSubscribeRole role permitted to subscribe to the presence /// -void QXmppMixConfigItem::setPresenceSubscribeRole(Role presenceSubscribeRole) +void QXmppMixConfigItem::setPresenceSubscribeRole(std::optional presenceSubscribeRole) { d->presenceSubscribeRole = presenceSubscribeRole; } @@ -614,7 +613,7 @@ void QXmppMixConfigItem::setPresenceSubscribeRole(Role presenceSubscribeRole) /// /// \return the role permitted to subscribe to the participants /// -QXmppMixConfigItem::Role QXmppMixConfigItem::participantsSubscribeRole() const +std::optional QXmppMixConfigItem::participantsSubscribeRole() const { return d->participantsSubscribeRole; } @@ -624,7 +623,7 @@ QXmppMixConfigItem::Role QXmppMixConfigItem::participantsSubscribeRole() const /// /// \param participantsSubscribeRole role permitted to subscribe to the participants /// -void QXmppMixConfigItem::setParticipantsSubscribeRole(Role participantsSubscribeRole) +void QXmppMixConfigItem::setParticipantsSubscribeRole(std::optional participantsSubscribeRole) { d->participantsSubscribeRole = participantsSubscribeRole; } @@ -634,7 +633,7 @@ void QXmppMixConfigItem::setParticipantsSubscribeRole(Role participantsSubscribe /// /// \return the role permitted to subscribe to the information /// -QXmppMixConfigItem::Role QXmppMixConfigItem::informationSubscribeRole() const +std::optional QXmppMixConfigItem::informationSubscribeRole() const { return d->informationSubscribeRole; } @@ -649,7 +648,7 @@ QXmppMixConfigItem::Role QXmppMixConfigItem::informationSubscribeRole() const /// /// \param informationSubscribeRole role permitted to subscribe to the information /// -void QXmppMixConfigItem::setInformationSubscribeRole(Role informationSubscribeRole) +void QXmppMixConfigItem::setInformationSubscribeRole(std::optional informationSubscribeRole) { d->informationSubscribeRole = informationSubscribeRole; } @@ -659,7 +658,7 @@ void QXmppMixConfigItem::setInformationSubscribeRole(Role informationSubscribeRo /// /// \return the role permitted to update the information /// -QXmppMixConfigItem::Role QXmppMixConfigItem::informationUpdateRole() const +std::optional QXmppMixConfigItem::informationUpdateRole() const { return d->informationUpdateRole; } @@ -674,7 +673,7 @@ QXmppMixConfigItem::Role QXmppMixConfigItem::informationUpdateRole() const /// /// \param informationUpdateRole role permitted to update the information /// -void QXmppMixConfigItem::setInformationUpdateRole(Role informationUpdateRole) +void QXmppMixConfigItem::setInformationUpdateRole(std::optional informationUpdateRole) { d->informationUpdateRole = informationUpdateRole; } @@ -685,7 +684,7 @@ void QXmppMixConfigItem::setInformationUpdateRole(Role informationUpdateRole) /// /// \return the role permitted to subscribe to the allowed JIDs /// -QXmppMixConfigItem::Role QXmppMixConfigItem::allowedJidsSubscribeRole() const +std::optional QXmppMixConfigItem::allowedJidsSubscribeRole() const { return d->allowedJidsSubscribeRole; } @@ -703,7 +702,7 @@ QXmppMixConfigItem::Role QXmppMixConfigItem::allowedJidsSubscribeRole() const /// /// \param allowedJidsSubscribeRole role permitted to subscribe to the allowed JIDs /// -void QXmppMixConfigItem::setAllowedJidsSubscribeRole(Role allowedJidsSubscribeRole) +void QXmppMixConfigItem::setAllowedJidsSubscribeRole(std::optional allowedJidsSubscribeRole) { d->allowedJidsSubscribeRole = allowedJidsSubscribeRole; } @@ -714,7 +713,7 @@ void QXmppMixConfigItem::setAllowedJidsSubscribeRole(Role allowedJidsSubscribeRo /// /// \return the role permitted to subscribe to the banned JIDs /// -QXmppMixConfigItem::Role QXmppMixConfigItem::bannedJidsSubscribeRole() const +std::optional QXmppMixConfigItem::bannedJidsSubscribeRole() const { return d->bannedJidsSubscribeRole; } @@ -732,7 +731,7 @@ QXmppMixConfigItem::Role QXmppMixConfigItem::bannedJidsSubscribeRole() const /// /// \param bannedJidsSubscribeRole role permitted to subscribe to the banned JIDs /// -void QXmppMixConfigItem::setBannedJidsSubscribeRole(Role bannedJidsSubscribeRole) +void QXmppMixConfigItem::setBannedJidsSubscribeRole(std::optional bannedJidsSubscribeRole) { d->bannedJidsSubscribeRole = bannedJidsSubscribeRole; } @@ -742,7 +741,7 @@ void QXmppMixConfigItem::setBannedJidsSubscribeRole(Role bannedJidsSubscribeRole /// /// \return the role permitted to subscribe to and read the configuration /// -QXmppMixConfigItem::Role QXmppMixConfigItem::configurationReadRole() const +std::optional QXmppMixConfigItem::configurationReadRole() const { return d->configurationReadRole; } @@ -759,7 +758,7 @@ QXmppMixConfigItem::Role QXmppMixConfigItem::configurationReadRole() const /// /// \param configurationReadRole role permitted to subscribe to and read the configuration /// -void QXmppMixConfigItem::setConfigurationReadRole(Role configurationReadRole) +void QXmppMixConfigItem::setConfigurationReadRole(std::optional configurationReadRole) { d->configurationReadRole = configurationReadRole; } @@ -769,7 +768,7 @@ void QXmppMixConfigItem::setConfigurationReadRole(Role configurationReadRole) /// /// \return the role permitted to update the avatar /// -QXmppMixConfigItem::Role QXmppMixConfigItem::avatarUpdateRole() const +std::optional QXmppMixConfigItem::avatarUpdateRole() const { return d->avatarUpdateRole; } @@ -784,7 +783,7 @@ QXmppMixConfigItem::Role QXmppMixConfigItem::avatarUpdateRole() const /// /// \param avatarUpdateRole role permitted to update the avatar /// -void QXmppMixConfigItem::setAvatarUpdateRole(Role avatarUpdateRole) +void QXmppMixConfigItem::setAvatarUpdateRole(std::optional avatarUpdateRole) { d->avatarUpdateRole = avatarUpdateRole; }