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 {
|
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")
|
text: i18nc("@action:button Set the power level (such as 'Admin') for this user", "Set Power Level")
|
||||||
icon.name: "document-edit-symbolic"
|
icon.name: "document-edit-symbolic"
|
||||||
display: QQC2.AbstractButton.IconOnly
|
display: QQC2.AbstractButton.IconOnly
|
||||||
|
|||||||
@@ -12,6 +12,10 @@ QString PowerLevel::nameForLevel(Level level)
|
|||||||
return i18n("Moderator");
|
return i18n("Moderator");
|
||||||
case PowerLevel::Admin:
|
case PowerLevel::Admin:
|
||||||
return i18n("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:
|
case PowerLevel::Mute:
|
||||||
return i18n("Mute");
|
return i18n("Mute");
|
||||||
case PowerLevel::Custom:
|
case PowerLevel::Custom:
|
||||||
@@ -30,6 +34,8 @@ int PowerLevel::valueForLevel(Level level)
|
|||||||
return 50;
|
return 50;
|
||||||
case PowerLevel::Admin:
|
case PowerLevel::Admin:
|
||||||
return 100;
|
return 100;
|
||||||
|
case PowerLevel::Owner:
|
||||||
|
return 150;
|
||||||
case PowerLevel::Mute:
|
case PowerLevel::Mute:
|
||||||
return -1;
|
return -1;
|
||||||
default:
|
default:
|
||||||
@@ -46,8 +52,12 @@ PowerLevel::Level PowerLevel::levelForValue(int value)
|
|||||||
return PowerLevel::Moderator;
|
return PowerLevel::Moderator;
|
||||||
case 100:
|
case 100:
|
||||||
return PowerLevel::Admin;
|
return PowerLevel::Admin;
|
||||||
|
case 150:
|
||||||
|
return PowerLevel::Owner;
|
||||||
case -1:
|
case -1:
|
||||||
return PowerLevel::Mute;
|
return PowerLevel::Mute;
|
||||||
|
case std::numeric_limits<int>::max():
|
||||||
|
return PowerLevel::Creator;
|
||||||
default:
|
default:
|
||||||
return PowerLevel::Custom;
|
return PowerLevel::Custom;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,10 +31,12 @@ public:
|
|||||||
enum Level {
|
enum Level {
|
||||||
Member, /**< A basic member. */
|
Member, /**< A basic member. */
|
||||||
Moderator, /**< A moderator with enhanced powers. */
|
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. */
|
Mute, /**< The level to remove posting privileges. */
|
||||||
NUMLevels,
|
NUMLevels,
|
||||||
Custom, /**< A non-standard value. Intentionally after NUMLevels so it doesn't appear in the model. */
|
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);
|
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.
|
* @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.
|
* @return The most recent pinned message in the room.
|
||||||
|
|||||||
Reference in New Issue
Block a user