h-gtk: Nuke Action::UpdateSource.

Use inline glib::idle_add since it can be called on the spot.
This commit is contained in:
Jordan Petridis 2018-04-16 04:34:17 +03:00
parent bc6eeec663
commit a9abd75b51
No known key found for this signature in database
GPG Key ID: CEABAD9F5683B9A6
2 changed files with 12 additions and 18 deletions

View File

@ -10,7 +10,7 @@ use failure::Error;
use rayon; use rayon;
use hammond_data::utils::delete_show; use hammond_data::utils::delete_show;
use hammond_data::{Podcast, Source}; use hammond_data::Podcast;
use appnotif::*; use appnotif::*;
use headerbar::Header; use headerbar::Header;
@ -25,7 +25,6 @@ use std::time::Duration;
#[derive(Clone, Debug)] #[derive(Clone, Debug)]
pub enum Action { pub enum Action {
UpdateSources(Option<Source>),
RefreshAllViews, RefreshAllViews,
RefreshEpisodesView, RefreshEpisodesView,
RefreshEpisodesViewBGR, RefreshEpisodesViewBGR,
@ -170,14 +169,6 @@ impl App {
let receiver = self.receiver; let receiver = self.receiver;
gtk::idle_add(move || { gtk::idle_add(move || {
match receiver.recv_timeout(Duration::from_millis(10)) { 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<Vec<_>> = None;
utils::refresh(s, sender.clone());
}
}
Ok(Action::RefreshAllViews) => content.update(), Ok(Action::RefreshAllViews) => content.update(),
Ok(Action::RefreshShowsView) => content.update_shows_view(), Ok(Action::RefreshShowsView) => content.update_shows_view(),
Ok(Action::RefreshWidget) => content.update_widget(), Ok(Action::RefreshWidget) => content.update_widget(),

View File

@ -1,3 +1,4 @@
use glib;
use gtk; use gtk;
use gtk::prelude::*; use gtk::prelude::*;
@ -12,7 +13,7 @@ use std::sync::mpsc::Sender;
use app::Action; use app::Action;
use stacks::Content; use stacks::Content;
use utils::itunes_to_rss; use utils::{itunes_to_rss, refresh};
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct Header { pub struct Header {
@ -92,10 +93,11 @@ impl Header {
self.update_button self.update_button
.connect_clicked(clone!(sender => move |_| { .connect_clicked(clone!(sender => move |_| {
sender glib::idle_add(clone!(sender => move || {
.send(Action::UpdateSources(None)) let s: Option<Vec<_>> = None;
.map_err(|err| error!("Action Sender: {}", err)) refresh(s, sender.clone());
.ok(); glib::Continue(false)
}));
})); }));
self.about_button self.about_button
@ -171,9 +173,10 @@ fn on_add_bttn_clicked(entry: &gtk::Entry, sender: Sender<Action>) -> Result<(),
let source = Source::from_url(&url).context("Failed to convert url to a Source entry.")?; let source = Source::from_url(&url).context("Failed to convert url to a Source entry.")?;
entry.set_text(""); entry.set_text("");
sender glib::idle_add(move || {
.send(Action::UpdateSources(Some(source))) refresh(Some(vec![source.clone()]), sender.clone());
.context("App channel blew up.")?; glib::Continue(false)
});
Ok(()) Ok(())
} }