Wired the download button.

This commit is contained in:
Jordan Petridis 2017-10-18 04:28:00 +03:00
parent eccbbf0fc1
commit eb0ee994fe
No known key found for this signature in database
GPG Key ID: CEABAD9F5683B9A6

View File

@ -113,7 +113,7 @@ fn podcast_widget(
} }
fn epidose_widget( fn epidose_widget(
connection: &SqliteConnection, connection: Arc<Mutex<SqliteConnection>>,
episode: &mut Episode, episode: &mut Episode,
pd_title: &str, pd_title: &str,
) -> gtk::Box { ) -> gtk::Box {
@ -152,12 +152,22 @@ fn epidose_widget(
} }
let pd_title_cloned = pd_title.clone().to_owned(); let pd_title_cloned = pd_title.clone().to_owned();
// let db = rc::Rc::new(connection); let db = connection.clone();
let ep_clone = episode.clone();
dl_button.connect_clicked(move |_| { dl_button.connect_clicked(move |_| {
// ugly hack to bypass the borrowchecker // ugly hack to bypass the borrowchecker
let pd_title = pd_title_cloned.clone(); let pd_title = pd_title_cloned.clone();
let db = db.clone();
let mut ep_clone = ep_clone.clone();
thread::spawn(move || { thread::spawn(move || {
let dl_fold = downloader::get_dl_folder(&pd_title); let dl_fold = downloader::get_dl_folder(&pd_title).unwrap();
let tempdb = db.lock().unwrap();
let e = downloader::get_episode(&tempdb, &mut ep_clone, dl_fold.as_str());
if let Err(err) = e {
error!("Error while trying to download: {}", ep_clone.uri());
error!("Error: {}", err);
};
}); });
}); });
@ -172,9 +182,7 @@ fn episodes_listbox(connection: Arc<Mutex<SqliteConnection>>, pd_title: &str) ->
let list = gtk::ListBox::new(); let list = gtk::ListBox::new();
episodes.iter_mut().for_each(|ep| { episodes.iter_mut().for_each(|ep| {
let m = connection.clone(); let w = epidose_widget(connection.clone(), ep, pd_title);
let db = m.lock().unwrap();
let w = epidose_widget(&db, ep, pd_title);
list.add(&w) list.add(&w)
}); });