From 69c4b0c948b6c141c9d251f20a973be064ab0087 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Sun, 4 Oct 2020 15:31:39 -0400 Subject: use sigc in imgmanager to hopefully get rid of some lifetime errors --- components/channels.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'components/channels.cpp') diff --git a/components/channels.cpp b/components/channels.cpp index 6d2f60e..9b95f1d 100644 --- a/components/channels.cpp +++ b/components/channels.cpp @@ -70,7 +70,7 @@ ChannelListRowDMChannel::ChannelListRowDMChannel(const Channel *data) { void ChannelListRowDMChannel::OnImageLoad(Glib::RefPtr buf) { if (m_icon != nullptr) - m_icon->property_pixbuf() = buf; + m_icon->property_pixbuf() = buf->scale_simple(24, 24, Gdk::INTERP_BILINEAR); } ChannelListRowGuild::ChannelListRowGuild(const Guild *data) { @@ -85,13 +85,7 @@ ChannelListRowGuild::ChannelListRowGuild(const Guild *data) { 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 ldbuf) { - Glib::signal_idle().connect([this, ldbuf]() -> bool { - m_icon->property_pixbuf() = ldbuf->scale_simple(24, 24, Gdk::INTERP_BILINEAR); - - return false; - }); - }); + Abaddon::Get().GetImageManager().LoadFromURL(data->GetIconURL("png", "32"), sigc::mem_fun(*this, &ChannelListRowGuild::OnImageLoad)); } } else { m_icon = Gtk::manage(new Gtk::Image(Abaddon::Get().GetImageManager().GetPlaceholder(24))); @@ -110,6 +104,10 @@ ChannelListRowGuild::ChannelListRowGuild(const Guild *data) { show_all_children(); } +void ChannelListRowGuild::OnImageLoad(Glib::RefPtr buf) { + m_icon->property_pixbuf() = buf->scale_simple(24, 24, Gdk::INTERP_BILINEAR); +} + ChannelListRowCategory::ChannelListRowCategory(const Channel *data) { ID = data->ID; m_ev = Gtk::manage(new Gtk::EventBox); -- cgit v1.2.3