handle nickname in reply component

This commit is contained in:
ouwou
2023-06-13 22:15:48 -04:00
parent c98d2c96b4
commit 29a049e62a
3 changed files with 21 additions and 2 deletions

View File

@@ -656,7 +656,7 @@ Gtk::Widget *ChatMessageItemContainer::CreateReplyComponent(const Message &data)
if (role.has_value()) {
const auto author = discord.GetUser(author_id);
if (author.has_value()) {
return "<b><span color=\"#" + IntToCSSColor(role->Color) + "\">" + author->GetDisplayNameEscaped() + "</span></b>";
return "<b><span color=\"#" + IntToCSSColor(role->Color) + "\">" + author->GetDisplayNameEscaped(guild_id) + "</span></b>";
}
}
}
@@ -664,7 +664,7 @@ Gtk::Widget *ChatMessageItemContainer::CreateReplyComponent(const Message &data)
const auto author = discord.GetUser(author_id);
if (author.has_value()) {
return author->GetDisplayNameEscapedBold();
return author->GetDisplayNameEscapedBold(guild_id);
}
return "<b>Unknown User</b>";

View File

@@ -89,14 +89,30 @@ std::string UserData::GetDisplayName() const {
return Username;
}
std::string UserData::GetDisplayName(Snowflake guild_id) const {
const auto member = Abaddon::Get().GetDiscordClient().GetMember(ID, guild_id);
if (member.has_value() && !member->Nickname.empty()) {
return member->Nickname;
}
return GetDisplayName();
}
std::string UserData::GetDisplayNameEscaped() const {
return Glib::Markup::escape_text(GetDisplayName());
}
std::string UserData::GetDisplayNameEscaped(Snowflake guild_id) const {
return Glib::Markup::escape_text(GetDisplayName(guild_id));
}
std::string UserData::GetDisplayNameEscapedBold() const {
return "<b>" + Glib::Markup::escape_text(GetDisplayName()) + "</b>";
}
std::string UserData::GetDisplayNameEscapedBold(Snowflake guild_id) const {
return "<b>" + Glib::Markup::escape_text(GetDisplayName(guild_id)) + "</b>";
}
std::string UserData::GetUsername() const {
if (IsPomelo()) {
return Username;

View File

@@ -80,8 +80,11 @@ struct UserData {
[[nodiscard]] Snowflake GetHoistedRole(Snowflake guild_id, bool with_color = false) const;
[[nodiscard]] std::string GetMention() const;
[[nodiscard]] std::string GetDisplayName() const;
[[nodiscard]] std::string GetDisplayName(Snowflake guild_id) const;
[[nodiscard]] std::string GetDisplayNameEscaped() const;
[[nodiscard]] std::string GetDisplayNameEscaped(Snowflake guild_id) const;
[[nodiscard]] std::string GetDisplayNameEscapedBold() const;
[[nodiscard]] std::string GetDisplayNameEscapedBold(Snowflake guild_id) const;
[[nodiscard]] std::string GetUsername() const;
[[nodiscard]] std::string GetUsernameEscaped() const;
[[nodiscard]] std::string GetUsernameEscapedBold() const;