EpisodeWidget: Dim/Grey out widget if episode is played.
This commit is contained in:
parent
aca35c0513
commit
f7af05a650
@ -50,7 +50,7 @@ pub fn get_played_episodes() -> Result<Vec<Episode>> {
|
|||||||
Ok(episode.filter(played.is_not_null()).load::<Episode>(&*con)?)
|
Ok(episode.filter(played.is_not_null()).load::<Episode>(&*con)?)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_episode_from_id(ep_id: i32) -> Result<Episode> {
|
pub fn get_episode_from_rowid(ep_id: i32) -> Result<Episode> {
|
||||||
use schema::episode::dsl::*;
|
use schema::episode::dsl::*;
|
||||||
|
|
||||||
let db = connection();
|
let db = connection();
|
||||||
|
|||||||
@ -109,6 +109,12 @@ impl EpisodeWidget {
|
|||||||
self.title.set_xalign(0.0);
|
self.title.set_xalign(0.0);
|
||||||
self.title.set_text(episode.title());
|
self.title.set_text(episode.title());
|
||||||
|
|
||||||
|
if episode.played().is_some() {
|
||||||
|
self.title
|
||||||
|
.get_style_context()
|
||||||
|
.map(|c| c.add_class("dim-label"));
|
||||||
|
}
|
||||||
|
|
||||||
let progress = self.progress.clone();
|
let progress = self.progress.clone();
|
||||||
timeout_add(200, move || {
|
timeout_add(200, move || {
|
||||||
progress.pulse();
|
progress.pulse();
|
||||||
@ -133,10 +139,16 @@ impl EpisodeWidget {
|
|||||||
self.delete.show();
|
self.delete.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
self.play.connect_clicked(clone!(episode => move |_| {
|
let title = &self.title;
|
||||||
|
self.play
|
||||||
|
.connect_clicked(clone!(episode, title => move |_| {
|
||||||
let mut episode = episode.clone();
|
let mut episode = episode.clone();
|
||||||
on_play_bttn_clicked(episode.rowid());
|
on_play_bttn_clicked(episode.rowid());
|
||||||
let _ = episode.set_played_now();
|
if episode.set_played_now().is_ok() {
|
||||||
|
title
|
||||||
|
.get_style_context()
|
||||||
|
.map(|c| c.add_class("dim-label"));
|
||||||
|
};
|
||||||
}));
|
}));
|
||||||
|
|
||||||
let play = &self.play;
|
let play = &self.play;
|
||||||
@ -234,7 +246,7 @@ fn on_play_bttn_clicked(episode_id: i32) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn on_delete_bttn_clicked(episode_id: i32) {
|
fn on_delete_bttn_clicked(episode_id: i32) {
|
||||||
let mut ep = dbqueries::get_episode_from_id(episode_id).unwrap();
|
let mut ep = dbqueries::get_episode_from_rowid(episode_id).unwrap();
|
||||||
|
|
||||||
let e = delete_local_content(&mut ep);
|
let e = delete_local_content(&mut ep);
|
||||||
if let Err(err) = e {
|
if let Err(err) = e {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user