From 893218346dc97b0b60096aa4e54e970f04a02d1a Mon Sep 17 00:00:00 2001 From: Jordan Petridis Date: Tue, 31 Oct 2017 13:08:53 +0200 Subject: [PATCH] unwrap handling. --- hammond-gtk/src/widgets/episode.rs | 12 ++++++------ hammond-gtk/src/widgets/podcast.rs | 6 ++++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/hammond-gtk/src/widgets/episode.rs b/hammond-gtk/src/widgets/episode.rs index 3875b68..e572000 100644 --- a/hammond-gtk/src/widgets/episode.rs +++ b/hammond-gtk/src/widgets/episode.rs @@ -5,6 +5,7 @@ use hammond_data::models::Episode; use hammond_downloader::downloader; use hammond_data::index_feed::Database; use hammond_data::dbcheckup::*; +use hammond_data::errors::*; use dissolve::strip_html_tags; @@ -133,7 +134,7 @@ fn epidose_widget(db: &Database, episode: &mut Episode, pd_title: &str) -> gtk:: ep } -// TODO: show notification when dl is finished and block play_bttn till then. +// TODO: show notification when dl is finished. fn on_download_clicked( db: &Database, pd_title: &str, @@ -215,11 +216,10 @@ fn receive() -> glib::Continue { glib::Continue(false) } -pub fn episodes_listbox(db: &Database, pd_title: &str) -> gtk::ListBox { - // TODO: handle unwraps. +pub fn episodes_listbox(db: &Database, pd_title: &str) -> Result { let conn = db.lock().unwrap(); - let pd = dbqueries::load_podcast_from_title(&conn, pd_title).unwrap(); - let mut episodes = dbqueries::get_pd_episodes(&conn, &pd).unwrap(); + let pd = dbqueries::load_podcast_from_title(&conn, pd_title)?; + let mut episodes = dbqueries::get_pd_episodes(&conn, &pd)?; drop(conn); let list = gtk::ListBox::new(); @@ -232,5 +232,5 @@ pub fn episodes_listbox(db: &Database, pd_title: &str) -> gtk::ListBox { list.set_hexpand(false); list.set_visible(true); list.set_selection_mode(gtk::SelectionMode::None); - list + Ok(list) } diff --git a/hammond-gtk/src/widgets/podcast.rs b/hammond-gtk/src/widgets/podcast.rs index ba22ea3..a46f51d 100644 --- a/hammond-gtk/src/widgets/podcast.rs +++ b/hammond-gtk/src/widgets/podcast.rs @@ -45,14 +45,16 @@ pub fn podcast_widget(db: &Database, stack: >k::Stack, pd: &Podcast) -> gtk::B .get_object("mark_all_played_button") .unwrap(); - // TODO: spawn a thread to avoid locking the UI probably. + // TODO: should spawn a thread to avoid locking the UI probably. unsub_button.connect_clicked(clone!(db, stack, pd => move |bttn| { on_unsub_button_clicked(&db, &stack, &pd, bttn); })); title_label.set_text(pd.title()); let listbox = episodes_listbox(db, pd.title()); - view.add(&listbox); + if let Ok(l) = listbox { + view.add(&l); + } desc_label.set_text(pd.description());