Skip to content

Commit

Permalink
MixItems: Use 'std::optional<Role>' instead of 'Role::None'
Browse files Browse the repository at this point in the history
  • Loading branch information
melvo committed Mar 11, 2024
1 parent ca56bbd commit 942f152
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 65 deletions.
41 changes: 20 additions & 21 deletions src/base/QXmppMixConfigItem.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ class QXMPP_EXPORT QXmppMixConfigItem : public QXmppPubSubBaseItem
{
public:
enum class Role {
None,
Owner,
Administrator,
Participant,
Expand Down Expand Up @@ -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<Role> messagesSubscribeRole() const;
void setMessagesSubscribeRole(std::optional<Role> messagesSubscribeRole);

Role messagesRetractRole() const;
void setMessagesRetractRole(Role messagesRetractRole);
std::optional<Role> messagesRetractRole() const;
void setMessagesRetractRole(std::optional<Role> messagesRetractRole);

Role presenceSubscribeRole() const;
void setPresenceSubscribeRole(Role presenceSubscribeRole);
std::optional<Role> presenceSubscribeRole() const;
void setPresenceSubscribeRole(std::optional<Role> presenceSubscribeRole);

Role participantsSubscribeRole() const;
void setParticipantsSubscribeRole(Role participantsSubscribeRole);
std::optional<Role> participantsSubscribeRole() const;
void setParticipantsSubscribeRole(std::optional<Role> participantsSubscribeRole);

Role informationSubscribeRole() const;
void setInformationSubscribeRole(Role informationSubscribeRole);
std::optional<Role> informationSubscribeRole() const;
void setInformationSubscribeRole(std::optional<Role> informationSubscribeRole);

Role informationUpdateRole() const;
void setInformationUpdateRole(Role informationUpdateRole);
std::optional<Role> informationUpdateRole() const;
void setInformationUpdateRole(std::optional<Role> informationUpdateRole);

Role allowedJidsSubscribeRole() const;
void setAllowedJidsSubscribeRole(Role allowedJidsSubscribeRole);
std::optional<Role> allowedJidsSubscribeRole() const;
void setAllowedJidsSubscribeRole(std::optional<Role> allowedJidsSubscribeRole);

Role bannedJidsSubscribeRole() const;
void setBannedJidsSubscribeRole(Role bannedJidsSubscribeRole);
std::optional<Role> bannedJidsSubscribeRole() const;
void setBannedJidsSubscribeRole(std::optional<Role> bannedJidsSubscribeRole);

Role configurationReadRole() const;
void setConfigurationReadRole(Role configurationReadRole);
std::optional<Role> configurationReadRole() const;
void setConfigurationReadRole(std::optional<Role> configurationReadRole);

Role avatarUpdateRole() const;
void setAvatarUpdateRole(Role avatarUpdateRole);
std::optional<Role> avatarUpdateRole() const;
void setAvatarUpdateRole(std::optional<Role> avatarUpdateRole);

std::optional<bool> nicknameRequired() const;
void setNicknameRequired(std::optional<bool> nicknameRequired);
Expand Down
87 changes: 43 additions & 44 deletions src/base/QXmppMixItems.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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<QXmppMixConfigItem::Role, QString> ROLES = {
{ QXmppMixConfigItem::Role::None, {} },
{ QXmppMixConfigItem::Role::Owner, QStringLiteral("owners") },
{ QXmppMixConfigItem::Role::Administrator, QStringLiteral("admins") },
{ QXmppMixConfigItem::Role::Participant, QStringLiteral("participants") },
Expand Down Expand Up @@ -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<QXmppMixConfigItem::Role> messagesSubscribeRole;
std::optional<QXmppMixConfigItem::Role> messagesRetractRole;
std::optional<QXmppMixConfigItem::Role> presenceSubscribeRole;
std::optional<QXmppMixConfigItem::Role> participantsSubscribeRole;
std::optional<QXmppMixConfigItem::Role> informationSubscribeRole;
std::optional<QXmppMixConfigItem::Role> informationUpdateRole;
std::optional<QXmppMixConfigItem::Role> allowedJidsSubscribeRole;
std::optional<QXmppMixConfigItem::Role> bannedJidsSubscribeRole;
std::optional<QXmppMixConfigItem::Role> configurationReadRole;
std::optional<QXmppMixConfigItem::Role> avatarUpdateRole;
std::optional<bool> nicknameRequired;
std::optional<bool> presenceRequired;
std::optional<bool> onlyParticipantsPermittedToSubmitPresence;
Expand All @@ -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;
Expand Down Expand Up @@ -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<QXmppMixConfigItem::Role> role)
{
serializeNullable(form, QXmppDataForm::Field::Type::ListSingleField, name, roleToString(role));
}
Expand All @@ -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<QXmppMixConfigItem::Role> role)
{
return ROLES.value(role);
return role ? ROLES.value(*role) : QString();
}

///
Expand Down Expand Up @@ -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::Role> QXmppMixConfigItem::messagesSubscribeRole() const
{
return d->messagesSubscribeRole;
}
Expand All @@ -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<Role> messagesSubscribeRole)
{
d->messagesSubscribeRole = messagesSubscribeRole;
}
Expand All @@ -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::Role> QXmppMixConfigItem::messagesRetractRole() const
{
return d->messagesRetractRole;
}
Expand All @@ -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<Role> messagesRetractRole)
{
d->messagesRetractRole = messagesRetractRole;
}
Expand All @@ -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::Role> QXmppMixConfigItem::presenceSubscribeRole() const
{
return d->presenceSubscribeRole;
}
Expand All @@ -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<Role> presenceSubscribeRole)
{
d->presenceSubscribeRole = presenceSubscribeRole;
}
Expand All @@ -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::Role> QXmppMixConfigItem::participantsSubscribeRole() const
{
return d->participantsSubscribeRole;
}
Expand All @@ -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<Role> participantsSubscribeRole)
{
d->participantsSubscribeRole = participantsSubscribeRole;
}
Expand All @@ -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::Role> QXmppMixConfigItem::informationSubscribeRole() const
{
return d->informationSubscribeRole;
}
Expand All @@ -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<Role> informationSubscribeRole)
{
d->informationSubscribeRole = informationSubscribeRole;
}
Expand All @@ -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::Role> QXmppMixConfigItem::informationUpdateRole() const
{
return d->informationUpdateRole;
}
Expand All @@ -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<Role> informationUpdateRole)
{
d->informationUpdateRole = informationUpdateRole;
}
Expand All @@ -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::Role> QXmppMixConfigItem::allowedJidsSubscribeRole() const
{
return d->allowedJidsSubscribeRole;
}
Expand All @@ -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<Role> allowedJidsSubscribeRole)
{
d->allowedJidsSubscribeRole = allowedJidsSubscribeRole;
}
Expand All @@ -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::Role> QXmppMixConfigItem::bannedJidsSubscribeRole() const
{
return d->bannedJidsSubscribeRole;
}
Expand All @@ -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<Role> bannedJidsSubscribeRole)
{
d->bannedJidsSubscribeRole = bannedJidsSubscribeRole;
}
Expand All @@ -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::Role> QXmppMixConfigItem::configurationReadRole() const
{
return d->configurationReadRole;
}
Expand All @@ -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<Role> configurationReadRole)
{
d->configurationReadRole = configurationReadRole;
}
Expand All @@ -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::Role> QXmppMixConfigItem::avatarUpdateRole() const
{
return d->avatarUpdateRole;
}
Expand All @@ -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<Role> avatarUpdateRole)
{
d->avatarUpdateRole = avatarUpdateRole;
}
Expand Down

0 comments on commit 942f152

Please sign in to comment.