From af82a8df8e469739765918b1627de20948186eb4 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Sat, 5 Sep 2020 23:04:11 -0400 Subject: better member list, role color, some fixes --- components/chatmessage.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'components/chatmessage.cpp') diff --git a/components/chatmessage.cpp b/components/chatmessage.cpp index bb61e81..d2b0dde 100644 --- a/components/chatmessage.cpp +++ b/components/chatmessage.cpp @@ -6,6 +6,7 @@ ChatMessageContainer::ChatMessageContainer(const MessageData *data) { UserID = data->Author.ID; + ChannelID = data->ChannelID; m_main_box = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL)); m_content_box = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_VERTICAL)); @@ -49,6 +50,27 @@ ChatMessageContainer::ChatMessageContainer(const MessageData *data) { show(); } +void ChatMessageContainer::SetAbaddon(Abaddon *ptr) { + m_abaddon = ptr; +} + +void ChatMessageContainer::Update() { + if (m_abaddon == nullptr) return; + auto &discord = m_abaddon->GetDiscordClient(); + auto guild_id = discord.GetChannel(ChannelID)->GuildID; + auto role_id = discord.GetMemberHoistedRole(guild_id, UserID, true); + auto *user = discord.GetUser(UserID); + std::string md; + if (role_id.IsValid()) { + auto *role = discord.GetRole(role_id); + if (role != nullptr) + md = "" + Glib::Markup::escape_text(user->Username) + ""; + } else { + md = "" + Glib::Markup::escape_text(user->Username) + ""; + } + m_author->set_markup(md); +} + void ChatMessageContainer::AddNewContent(Gtk::Widget *widget, bool prepend) { if (prepend) m_content_box->pack_end(*widget); -- cgit v1.2.3