EpisodeWidget: Re-enable on_play_bttn_clicked callback.
Before we were avoiding reloading the widget in view by directly dimming the title label. Now instead we reload the whole widget since I can't figure out a way to have multiple Owneded refferences of the same state machine.
This commit is contained in:
parent
7690cb1356
commit
e22a78fac6
@ -183,7 +183,7 @@ impl Default for EpisodeWidget {
|
|||||||
|
|
||||||
impl EpisodeWidget {
|
impl EpisodeWidget {
|
||||||
pub fn new(episode: EpisodeWidgetQuery, sender: Sender<Action>) -> EpisodeWidget {
|
pub fn new(episode: EpisodeWidgetQuery, sender: Sender<Action>) -> EpisodeWidget {
|
||||||
let mut widget = EpisodeWidget::default();
|
let widget = EpisodeWidget::default();
|
||||||
widget.init(episode, sender)
|
widget.init(episode, sender)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -219,15 +219,14 @@ impl EpisodeWidget {
|
|||||||
|
|
||||||
let episode = Arc::new(Mutex::new(episode));
|
let episode = Arc::new(Mutex::new(episode));
|
||||||
|
|
||||||
// let title = self.title.clone();
|
self.play
|
||||||
// self.play
|
.connect_clicked(clone!(episode, sender => move |_| {
|
||||||
// .connect_clicked(clone!(episode, sender => move |_| {
|
if let Ok(mut ep) = episode.lock() {
|
||||||
// if let Ok(mut ep) = episode.lock() {
|
if let Err(err) = on_play_bttn_clicked(&mut ep, sender.clone()){
|
||||||
// if let Err(err) = on_play_bttn_clicked(&mut ep, &title, sender.clone()){
|
error!("Error: {}", err);
|
||||||
// error!("Error: {}", err);
|
};
|
||||||
// };
|
}
|
||||||
// }
|
}));
|
||||||
// }));
|
|
||||||
|
|
||||||
self.download
|
self.download
|
||||||
.connect_clicked(clone!(episode, sender => move |dl| {
|
.connect_clicked(clone!(episode, sender => move |dl| {
|
||||||
@ -366,16 +365,13 @@ fn on_download_clicked(ep: &EpisodeWidgetQuery, sender: Sender<Action>) -> Resul
|
|||||||
|
|
||||||
fn on_play_bttn_clicked(
|
fn on_play_bttn_clicked(
|
||||||
episode: &mut EpisodeWidgetQuery,
|
episode: &mut EpisodeWidgetQuery,
|
||||||
title: >k::Label,
|
|
||||||
sender: Sender<Action>,
|
sender: Sender<Action>,
|
||||||
) -> Result<(), Error> {
|
) -> Result<(), Error> {
|
||||||
open_uri(episode.rowid())?;
|
open_uri(episode.rowid())?;
|
||||||
|
episode.set_played_now()?;
|
||||||
|
|
||||||
if episode.set_played_now().is_ok() {
|
sender.send(Action::RefreshWidgetIfVis)?;
|
||||||
title.get_style_context().map(|c| c.add_class("dim-label"));
|
sender.send(Action::RefreshEpisodesView)?;
|
||||||
sender.send(Action::RefreshEpisodesViewBGR)?;
|
|
||||||
};
|
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user