From bd12b09cbc8132fd39a266fd091e24bc6c3c040f Mon Sep 17 00:00:00 2001 From: Jordan Petridis Date: Wed, 16 May 2018 19:44:58 +0300 Subject: [PATCH] ShowsView: Fix a bug where the last show would not be shown. utils::lazy_load() now calls widget.show() for each widget it adds to the parent container. --- hammond-gtk/src/utils.rs | 8 ++++++-- hammond-gtk/src/widgets/shows_view.rs | 8 ++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/hammond-gtk/src/utils.rs b/hammond-gtk/src/utils.rs index 34cecb3..3704246 100644 --- a/hammond-gtk/src/utils.rs +++ b/hammond-gtk/src/utils.rs @@ -68,10 +68,14 @@ where T::Item: 'static, C: ContainerExt + 'static, F: FnMut(T::Item) -> W + 'static, - W: IsA, + W: IsA + WidgetExt, U: Fn() + 'static, { - let func = move |x| container.add(&contructor(x)); + let func = move |x| { + let widget = contructor(x); + container.add(&widget); + widget.show(); + }; lazy_load_full(data, func, callback); } diff --git a/hammond-gtk/src/widgets/shows_view.rs b/hammond-gtk/src/widgets/shows_view.rs index 56e9492..d9dc9e7 100644 --- a/hammond-gtk/src/widgets/shows_view.rs +++ b/hammond-gtk/src/widgets/shows_view.rs @@ -93,18 +93,14 @@ fn populate_flowbox(shows: &Rc) -> Result<(), Error> { let ignore = get_ignored_shows()?; let podcasts = dbqueries::get_podcasts_filter(&ignore)?; - let flowbox = shows.flowbox.clone(); - let constructor = clone!(flowbox => move |parent| { - flowbox.show_all(); - ShowsChild::new(&parent).child - }); - + let constructor = move |parent| ShowsChild::new(&parent).child; let callback = clone!(shows => move || { shows.set_vadjustment() .map_err(|err| error!("Failed to set ShowsView Alignment: {}", err)) .ok(); }); + let flowbox = shows.flowbox.clone(); lazy_load(podcasts, flowbox, constructor, callback); Ok(()) }