Fixes for v12 power levels
This commit is contained in:
committed by
Tobias Fella
parent
82f54b4f2c
commit
657c8a0dcd
@@ -300,7 +300,7 @@ Kirigami.Dialog {
|
||||
}
|
||||
|
||||
QQC2.Button {
|
||||
visible: root.room.canSendState("m.room.power_levels")
|
||||
visible: root.room.canSendState("m.room.power_levels") && !(root.room.roomCreatorHasUltimatePowerLevel() && root.room.isCreator(root.user.id))
|
||||
text: i18nc("@action:button Set the power level (such as 'Admin') for this user", "Set Power Level")
|
||||
icon.name: "document-edit-symbolic"
|
||||
display: QQC2.AbstractButton.IconOnly
|
||||
|
||||
@@ -12,6 +12,10 @@ QString PowerLevel::nameForLevel(Level level)
|
||||
return i18n("Moderator");
|
||||
case PowerLevel::Admin:
|
||||
return i18n("Admin");
|
||||
case PowerLevel::Owner:
|
||||
return i18nc("The person that owns a room", "Owner");
|
||||
case PowerLevel::Creator:
|
||||
return i18nc("The person that created a room", "Creator");
|
||||
case PowerLevel::Mute:
|
||||
return i18n("Mute");
|
||||
case PowerLevel::Custom:
|
||||
@@ -30,6 +34,8 @@ int PowerLevel::valueForLevel(Level level)
|
||||
return 50;
|
||||
case PowerLevel::Admin:
|
||||
return 100;
|
||||
case PowerLevel::Owner:
|
||||
return 150;
|
||||
case PowerLevel::Mute:
|
||||
return -1;
|
||||
default:
|
||||
@@ -46,8 +52,12 @@ PowerLevel::Level PowerLevel::levelForValue(int value)
|
||||
return PowerLevel::Moderator;
|
||||
case 100:
|
||||
return PowerLevel::Admin;
|
||||
case 150:
|
||||
return PowerLevel::Owner;
|
||||
case -1:
|
||||
return PowerLevel::Mute;
|
||||
case std::numeric_limits<int>::max():
|
||||
return PowerLevel::Creator;
|
||||
default:
|
||||
return PowerLevel::Custom;
|
||||
}
|
||||
|
||||
@@ -31,10 +31,12 @@ public:
|
||||
enum Level {
|
||||
Member, /**< A basic member. */
|
||||
Moderator, /**< A moderator with enhanced powers. */
|
||||
Admin, /**< The highest power level in the room. */
|
||||
Admin, /**< Power level 100. */
|
||||
Owner, /**< Power level 150. */
|
||||
Mute, /**< The level to remove posting privileges. */
|
||||
NUMLevels,
|
||||
Custom, /**< A non-standard value. Intentionally after NUMLevels so it doesn't appear in the model. */
|
||||
Creator, /**< The user creating the (co-)creating the room. */
|
||||
};
|
||||
Q_ENUM(Level);
|
||||
|
||||
|
||||
@@ -615,7 +615,7 @@ public:
|
||||
/**
|
||||
* @brief Whether this user is considered a creator of this room. Only applies to post-v12 rooms.
|
||||
*/
|
||||
bool isCreator(const QString &userId) const;
|
||||
Q_INVOKABLE bool isCreator(const QString &userId) const;
|
||||
|
||||
/**
|
||||
* @return The most recent pinned message in the room.
|
||||
|
||||
Reference in New Issue
Block a user