ShowWidget: Add some assertions.
This commit is contained in:
parent
536805791e
commit
b5ddca65f5
@ -63,9 +63,8 @@ impl ShowWidget {
|
|||||||
sender.send(Action::InitShowMenu(SendCell::new(menu)));
|
sender.send(Action::InitShowMenu(SendCell::new(menu)));
|
||||||
|
|
||||||
let pdw = Rc::new(pdw);
|
let pdw = Rc::new(pdw);
|
||||||
populate_listbox(&pdw, pd.clone(), sender)
|
let res = populate_listbox(&pdw, pd.clone(), sender);
|
||||||
.map_err(|err| error!("Failed to populate the listbox: {}", err))
|
debug_assert!(res.is_ok());
|
||||||
.ok();
|
|
||||||
|
|
||||||
pdw
|
pdw
|
||||||
}
|
}
|
||||||
@ -74,9 +73,8 @@ impl ShowWidget {
|
|||||||
self.set_description(pd.description());
|
self.set_description(pd.description());
|
||||||
self.show_id = Some(pd.id());
|
self.show_id = Some(pd.id());
|
||||||
|
|
||||||
self.set_cover(&pd)
|
let res = self.set_cover(&pd);
|
||||||
.map_err(|err| error!("Failed to set a cover: {}", err))
|
debug_assert!(res.is_ok());
|
||||||
.ok();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Set the show cover.
|
/// Set the show cover.
|
||||||
@ -135,7 +133,6 @@ impl ShowWidget {
|
|||||||
|
|
||||||
/// Populate the listbox with the shows episodes.
|
/// Populate the listbox with the shows episodes.
|
||||||
fn populate_listbox(
|
fn populate_listbox(
|
||||||
// FIXME: Refference cycle
|
|
||||||
show: &Rc<ShowWidget>,
|
show: &Rc<ShowWidget>,
|
||||||
pd: Arc<Show>,
|
pd: Arc<Show>,
|
||||||
sender: Sender<Action>,
|
sender: Sender<Action>,
|
||||||
@ -146,15 +143,18 @@ fn populate_listbox(
|
|||||||
|
|
||||||
let (sender_, receiver) = bounded(1);
|
let (sender_, receiver) = bounded(1);
|
||||||
rayon::spawn(clone!(pd => move || {
|
rayon::spawn(clone!(pd => move || {
|
||||||
let episodes = dbqueries::get_pd_episodeswidgets(&pd).unwrap();
|
if let Ok(episodes) = dbqueries::get_pd_episodeswidgets(&pd) {
|
||||||
// The receiver can be dropped if there's an early return
|
// The receiver can be dropped if there's an early return
|
||||||
// like on show without episodes for example.
|
// like on show without episodes for example.
|
||||||
sender_.send(episodes);
|
sender_.send(episodes);
|
||||||
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
if count == 0 {
|
if count == 0 {
|
||||||
let builder = gtk::Builder::new_from_resource("/org/gnome/Hammond/gtk/empty_show.ui");
|
let builder = gtk::Builder::new_from_resource("/org/gnome/Hammond/gtk/empty_show.ui");
|
||||||
let container: gtk::Box = builder.get_object("empty_show").unwrap();
|
let container: gtk::Box = builder
|
||||||
|
.get_object("empty_show")
|
||||||
|
.ok_or_else(|| format_err!("FOO"))?;
|
||||||
show.episodes.add(&container);
|
show.episodes.add(&container);
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
@ -165,17 +165,16 @@ fn populate_listbox(
|
|||||||
Some(e) => e,
|
Some(e) => e,
|
||||||
None => return glib::Continue(true),
|
None => return glib::Continue(true),
|
||||||
};
|
};
|
||||||
|
debug_assert!(episodes.len() as i64 == count);
|
||||||
|
|
||||||
let list = show_.episodes.clone();
|
let list = show_.episodes.clone();
|
||||||
|
|
||||||
let constructor = clone!(sender => move |ep| {
|
let constructor = clone!(sender => move |ep| {
|
||||||
EpisodeWidget::new(ep, &sender).container.clone()
|
EpisodeWidget::new(ep, &sender).container.clone()
|
||||||
});
|
});
|
||||||
|
|
||||||
let callback = clone!(pd, show_ => move || {
|
let callback = clone!(pd, show_ => move || {
|
||||||
show_.set_vadjustment(&pd)
|
let res = show_.set_vadjustment(&pd);
|
||||||
.map_err(|err| error!("Failed to set ShowWidget Alignment: {}", err))
|
debug_assert!(res.is_ok());
|
||||||
.ok();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
lazy_load(episodes, list.clone(), constructor, callback);
|
lazy_load(episodes, list.clone(), constructor, callback);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user