From a9abd75b515ddfbef3e523f6e165728a211a7913 Mon Sep 17 00:00:00 2001 From: Jordan Petridis Date: Mon, 16 Apr 2018 04:34:17 +0300 Subject: [PATCH] h-gtk: Nuke Action::UpdateSource. Use inline glib::idle_add since it can be called on the spot. --- hammond-gtk/src/app.rs | 11 +---------- hammond-gtk/src/headerbar.rs | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/hammond-gtk/src/app.rs b/hammond-gtk/src/app.rs index ec818ee..198c718 100644 --- a/hammond-gtk/src/app.rs +++ b/hammond-gtk/src/app.rs @@ -10,7 +10,7 @@ use failure::Error; use rayon; use hammond_data::utils::delete_show; -use hammond_data::{Podcast, Source}; +use hammond_data::Podcast; use appnotif::*; use headerbar::Header; @@ -25,7 +25,6 @@ use std::time::Duration; #[derive(Clone, Debug)] pub enum Action { - UpdateSources(Option), RefreshAllViews, RefreshEpisodesView, RefreshEpisodesViewBGR, @@ -170,14 +169,6 @@ impl App { let receiver = self.receiver; gtk::idle_add(move || { match receiver.recv_timeout(Duration::from_millis(10)) { - Ok(Action::UpdateSources(source)) => { - if let Some(s) = source { - utils::refresh(Some(vec![s]), sender.clone()); - } else { - let s: Option> = None; - utils::refresh(s, sender.clone()); - } - } Ok(Action::RefreshAllViews) => content.update(), Ok(Action::RefreshShowsView) => content.update_shows_view(), Ok(Action::RefreshWidget) => content.update_widget(), diff --git a/hammond-gtk/src/headerbar.rs b/hammond-gtk/src/headerbar.rs index 13aa5c6..617bcac 100644 --- a/hammond-gtk/src/headerbar.rs +++ b/hammond-gtk/src/headerbar.rs @@ -1,3 +1,4 @@ +use glib; use gtk; use gtk::prelude::*; @@ -12,7 +13,7 @@ use std::sync::mpsc::Sender; use app::Action; use stacks::Content; -use utils::itunes_to_rss; +use utils::{itunes_to_rss, refresh}; #[derive(Debug, Clone)] pub struct Header { @@ -92,10 +93,11 @@ impl Header { self.update_button .connect_clicked(clone!(sender => move |_| { - sender - .send(Action::UpdateSources(None)) - .map_err(|err| error!("Action Sender: {}", err)) - .ok(); + glib::idle_add(clone!(sender => move || { + let s: Option> = None; + refresh(s, sender.clone()); + glib::Continue(false) + })); })); self.about_button @@ -171,9 +173,10 @@ fn on_add_bttn_clicked(entry: >k::Entry, sender: Sender) -> Result<(), let source = Source::from_url(&url).context("Failed to convert url to a Source entry.")?; entry.set_text(""); - sender - .send(Action::UpdateSources(Some(source))) - .context("App channel blew up.")?; + glib::idle_add(move || { + refresh(Some(vec![source.clone()]), sender.clone()); + glib::Continue(false) + }); Ok(()) }