From 8b488a5ca9036caf17ecee000cca6a7eba94d28a Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Wed, 11 May 2022 15:05:32 -0400 Subject: add icons to dms --- src/components/channeltabswitcherhandy.cpp | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) (limited to 'src/components/channeltabswitcherhandy.cpp') diff --git a/src/components/channeltabswitcherhandy.cpp b/src/components/channeltabswitcherhandy.cpp index 7488d6f..14cf9d9 100644 --- a/src/components/channeltabswitcherhandy.cpp +++ b/src/components/channeltabswitcherhandy.cpp @@ -164,19 +164,26 @@ void ChannelTabSwitcherHandy::OnPageIconLoad(HdyTabPage *page, const Glib::RefPt } void ChannelTabSwitcherHandy::CheckPageIcon(HdyTabPage *page, const ChannelData &data) { + std::optional icon_url; + if (data.GuildID.has_value()) { if (const auto guild = Abaddon::Get().GetDiscordClient().GetGuild(*data.GuildID); guild.has_value() && guild->HasIcon()) { - auto *child_widget = hdy_tab_page_get_child(page); - if (child_widget == nullptr) return; // probably wont happen :---) - // i think this works??? - auto *trackable = Glib::wrap(GTK_WIDGET(child_widget)); - - Abaddon::Get().GetImageManager().LoadFromURL( - guild->GetIconURL("png", "16"), - sigc::track_obj([this, page](const Glib::RefPtr &pb) { OnPageIconLoad(page, pb); }, - *trackable)); - return; + icon_url = guild->GetIconURL("png", "16"); } + } else if (data.IsDM()) { + icon_url = data.GetIconURL(); + } + + if (icon_url.has_value()) { + auto *child_widget = hdy_tab_page_get_child(page); + if (child_widget == nullptr) return; // probably wont happen :---) + // i think this works??? + auto *trackable = Glib::wrap(GTK_WIDGET(child_widget)); + Abaddon::Get().GetImageManager().LoadFromURL( + *icon_url, + sigc::track_obj([this, page](const Glib::RefPtr &pb) { OnPageIconLoad(page, pb); }, + *trackable)); + return; } -- cgit v1.2.3