diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2020-10-02 23:40:54 -0400 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2020-10-02 23:40:54 -0400 |
commit | 86455b60ca73445369d55958f5d34d33bf7eb7e3 (patch) | |
tree | ca27dd03f4b54f5d0801575a9857efe7de71b5fb /components | |
parent | 08f304da1b19793aa06d13c0243db47235892145 (diff) | |
download | abaddon-portaudio-86455b60ca73445369d55958f5d34d33bf7eb7e3.tar.gz abaddon-portaudio-86455b60ca73445369d55958f5d34d33bf7eb7e3.zip |
fix some requests being fired for icons that dont exist
Diffstat (limited to 'components')
-rw-r--r-- | components/channels.cpp | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/components/channels.cpp b/components/channels.cpp index cb5307b..6d2f60e 100644 --- a/components/channels.cpp +++ b/components/channels.cpp @@ -41,12 +41,16 @@ ChannelListRowDMChannel::ChannelListRowDMChannel(const Channel *data) { m_lbl->get_style_context()->add_class("channel-row-label"); if (data->Type == ChannelType::DM) { - auto buf = Abaddon::Get().GetImageManager().GetFromURLIfCached(data->Recipients[0].GetAvatarURL("png", "16")); - if (buf) - m_icon = Gtk::manage(new Gtk::Image(buf)); - else { + if (data->Recipients[0].HasAvatar()) { + auto buf = Abaddon::Get().GetImageManager().GetFromURLIfCached(data->Recipients[0].GetAvatarURL("png", "16")); + if (buf) + m_icon = Gtk::manage(new Gtk::Image(buf)); + else { + m_icon = Gtk::manage(new Gtk::Image(Abaddon::Get().GetImageManager().GetPlaceholder(24))); + Abaddon::Get().GetImageManager().LoadFromURL(data->Recipients[0].GetAvatarURL("png", "16"), sigc::mem_fun(*this, &ChannelListRowDMChannel::OnImageLoad)); + } + } else { m_icon = Gtk::manage(new Gtk::Image(Abaddon::Get().GetImageManager().GetPlaceholder(24))); - Abaddon::Get().GetImageManager().LoadFromURL(data->Recipients[0].GetAvatarURL("png", "16"), sigc::mem_fun(*this, &ChannelListRowDMChannel::OnImageLoad)); } } @@ -75,18 +79,22 @@ ChannelListRowGuild::ChannelListRowGuild(const Guild *data) { m_box = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL)); m_lbl = Gtk::manage(new Gtk::Label); - auto buf = Abaddon::Get().GetImageManager().GetFromURLIfCached(data->GetIconURL("png", "32")); - if (buf) - m_icon = Gtk::manage(new Gtk::Image(buf->scale_simple(24, 24, Gdk::INTERP_BILINEAR))); - else { - m_icon = Gtk::manage(new Gtk::Image(Abaddon::Get().GetImageManager().GetPlaceholder(24))); - Abaddon::Get().GetImageManager().LoadFromURL(data->GetIconURL("png", "32"), [this](Glib::RefPtr<Gdk::Pixbuf> ldbuf) { - Glib::signal_idle().connect([this, ldbuf]() -> bool { - m_icon->property_pixbuf() = ldbuf->scale_simple(24, 24, Gdk::INTERP_BILINEAR); + if (data->HasIcon()) { + auto buf = Abaddon::Get().GetImageManager().GetFromURLIfCached(data->GetIconURL("png", "32")); + if (buf) + m_icon = Gtk::manage(new Gtk::Image(buf->scale_simple(24, 24, Gdk::INTERP_BILINEAR))); + else { + m_icon = Gtk::manage(new Gtk::Image(Abaddon::Get().GetImageManager().GetPlaceholder(24))); + Abaddon::Get().GetImageManager().LoadFromURL(data->GetIconURL("png", "32"), [this](Glib::RefPtr<Gdk::Pixbuf> ldbuf) { + Glib::signal_idle().connect([this, ldbuf]() -> bool { + m_icon->property_pixbuf() = ldbuf->scale_simple(24, 24, Gdk::INTERP_BILINEAR); - return false; + return false; + }); }); - }); + } + } else { + m_icon = Gtk::manage(new Gtk::Image(Abaddon::Get().GetImageManager().GetPlaceholder(24))); } get_style_context()->add_class("channel-row"); |