summaryrefslogtreecommitdiff
path: root/windows
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2021-03-04 00:02:37 -0500
committerouwou <26526779+ouwou@users.noreply.github.com>2021-03-04 00:02:37 -0500
commit9186a4f3f5723989dc07ee5fe2d59aa88f0de552 (patch)
tree566ffc0067921a9185084c79f2818b82b21868cc /windows
parentd6a8b8c33372fe41d9e7f8453d15f491b25680a6 (diff)
downloadabaddon-portaudio-9186a4f3f5723989dc07ee5fe2d59aa88f0de552.tar.gz
abaddon-portaudio-9186a4f3f5723989dc07ee5fe2d59aa88f0de552.zip
show crown next to owner
Diffstat (limited to 'windows')
-rw-r--r--windows/guildsettings/memberspane.cpp22
-rw-r--r--windows/guildsettings/memberspane.hpp4
2 files changed, 22 insertions, 4 deletions
diff --git a/windows/guildsettings/memberspane.cpp b/windows/guildsettings/memberspane.cpp
index 0f29223..5fbdada 100644
--- a/windows/guildsettings/memberspane.cpp
+++ b/windows/guildsettings/memberspane.cpp
@@ -40,11 +40,12 @@ GuildSettingsMembersPaneMembers::GuildSettingsMembersPaneMembers(Snowflake id)
auto &discord = Abaddon::Get().GetDiscordClient();
auto members = discord.GetUsersInGuild(id);
+ const auto guild = *discord.GetGuild(GuildID);
for (const auto member_id : members) {
auto member = *discord.GetMember(member_id, GuildID);
member.User = discord.GetUser(member_id);
if (member.User->IsDeleted()) continue;
- auto *row = Gtk::manage(new GuildSettingsMembersListItem(GuildID, member));
+ auto *row = Gtk::manage(new GuildSettingsMembersListItem(guild, member));
row->show();
m_list.add(*row);
}
@@ -81,9 +82,9 @@ GuildSettingsMembersPaneMembers::type_signal_member_select GuildSettingsMembersP
return m_signal_member_select;
}
-GuildSettingsMembersListItem::GuildSettingsMembersListItem(Snowflake guild_id, const GuildMember &member)
+GuildSettingsMembersListItem::GuildSettingsMembersListItem(const GuildData &guild, const GuildMember &member)
: UserID(member.User->ID)
- , GuildID(guild_id)
+ , GuildID(guild.ID)
, m_avatar(32, 32) {
m_avatar.SetAnimated(true);
@@ -113,14 +114,29 @@ GuildSettingsMembersListItem::GuildSettingsMembersListItem(Snowflake guild_id, c
discord.signal_guild_member_update().connect(sigc::track_obj(member_update_cb, *this));
UpdateColor();
+ static bool crown = Abaddon::Get().GetSettings().GetShowOwnerCrown();
+ if (crown && guild.OwnerID == member.User->ID) {
+ try {
+ auto pixbuf = Gdk::Pixbuf::create_from_file("./res/crown.png", 12, 12);
+ m_crown = Gtk::manage(new Gtk::Image(pixbuf));
+ m_crown->set_valign(Gtk::ALIGN_CENTER);
+ m_crown->set_margin_start(10);
+ m_crown->show();
+ } catch (...) {}
+ }
+
m_avatar.set_margin_end(5);
m_avatar.set_halign(Gtk::ALIGN_START);
m_avatar.set_valign(Gtk::ALIGN_CENTER);
m_name.set_halign(Gtk::ALIGN_START);
m_name.set_valign(Gtk::ALIGN_CENTER);
+ m_main.set_hexpand(true);
+
m_main.add(m_avatar);
m_main.add(m_name);
+ if (m_crown != nullptr)
+ m_main.add(*m_crown);
m_ev.add(m_main);
add(m_ev);
diff --git a/windows/guildsettings/memberspane.hpp b/windows/guildsettings/memberspane.hpp
index abffce5..7b221b2 100644
--- a/windows/guildsettings/memberspane.hpp
+++ b/windows/guildsettings/memberspane.hpp
@@ -2,6 +2,7 @@
#include <unordered_set>
#include <gtkmm.h>
#include "../../discord/member.hpp"
+#include "../../discord/guild.hpp"
#include "../../components/lazyimage.hpp"
class GuildSettingsMembersPaneRolesItem : public Gtk::ListBoxRow {
@@ -103,7 +104,7 @@ public:
class GuildSettingsMembersListItem : public Gtk::ListBoxRow {
public:
- GuildSettingsMembersListItem(Snowflake guild_id, const GuildMember &member);
+ GuildSettingsMembersListItem(const GuildData &guild, const GuildMember &member);
Glib::ustring DisplayTerm;
@@ -117,6 +118,7 @@ private:
LazyImage m_avatar;
Gtk::Label m_name;
Gtk::Box m_main;
+ Gtk::Image *m_crown = nullptr;
};
class GuildSettingsMembersPane : public Gtk::Box {