Fixed restricted users' usernames not being clickable (#5405)

This commit is contained in:
pajlada
2024-06-01 13:07:01 +02:00
committed by GitHub
parent 65bfec963b
commit 2a46ee708e
5 changed files with 55 additions and 27 deletions
+25 -2
View File
@@ -703,11 +703,14 @@ Link LinkElement::getLink() const
return {Link::Url, this->linkInfo_.url()};
}
MentionElement::MentionElement(const QString &name, MessageColor fallbackColor_,
MentionElement::MentionElement(const QString &displayName, QString loginName_,
MessageColor fallbackColor_,
MessageColor userColor_)
: TextElement(name, {MessageElementFlag::Text, MessageElementFlag::Mention})
: TextElement(displayName,
{MessageElementFlag::Text, MessageElementFlag::Mention})
, fallbackColor(fallbackColor_)
, userColor(userColor_)
, userLoginName(std::move(loginName_))
{
}
@@ -735,6 +738,26 @@ void MentionElement::addToContainer(MessageLayoutContainer &container,
TextElement::addToContainer(container, flags);
}
MessageElement *MentionElement::setLink(const Link &link)
{
assert(false && "MentionElement::setLink should not be called. Pass "
"through a valid login name in the constructor and it will "
"automatically be a UserInfo link");
return TextElement::setLink(link);
}
Link MentionElement::getLink() const
{
if (this->userLoginName.isEmpty())
{
// Some rare mention elements don't have the knowledge of the login name
return {};
}
return {Link::UserInfo, this->userLoginName};
}
// TIMESTAMP
TimestampElement::TimestampElement(QTime time)
: MessageElement(MessageElementFlag::Timestamp)