EpisodeWidget: Dim/Grey out widget if episode is played.

This commit is contained in:
Jordan Petridis 2017-12-16 20:30:25 +02:00
parent aca35c0513
commit f7af05a650
No known key found for this signature in database
GPG Key ID: CEABAD9F5683B9A6
2 changed files with 16 additions and 4 deletions

View File

@ -50,7 +50,7 @@ pub fn get_played_episodes() -> Result<Vec<Episode>> {
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::*;
let db = connection();

View File

@ -109,6 +109,12 @@ impl EpisodeWidget {
self.title.set_xalign(0.0);
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();
timeout_add(200, move || {
progress.pulse();
@ -133,10 +139,16 @@ impl EpisodeWidget {
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();
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;
@ -234,7 +246,7 @@ fn on_play_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);
if let Err(err) = e {