EpisodeWidget: Update the progrress bar only when download clicked.
This commit is contained in:
parent
632f011db5
commit
bda09c032a
@ -101,12 +101,6 @@ impl EpisodeWidget {
|
|||||||
.map(|c| c.add_class("dim-label"));
|
.map(|c| c.add_class("dim-label"));
|
||||||
}
|
}
|
||||||
|
|
||||||
let progress = self.progress.clone();
|
|
||||||
timeout_add(200, move || {
|
|
||||||
progress.pulse();
|
|
||||||
glib::Continue(true)
|
|
||||||
});
|
|
||||||
|
|
||||||
if let Some(size) = episode.length() {
|
if let Some(size) = episode.length() {
|
||||||
let megabytes = size / 1024 / 1024; // episode.length represents bytes
|
let megabytes = size / 1024 / 1024; // episode.length represents bytes
|
||||||
self.size.set_text(&format!("{} MB", megabytes))
|
self.size.set_text(&format!("{} MB", megabytes))
|
||||||
@ -150,7 +144,7 @@ impl EpisodeWidget {
|
|||||||
let play = &self.play;
|
let play = &self.play;
|
||||||
let delete = &self.delete;
|
let delete = &self.delete;
|
||||||
let cancel = &self.cancel;
|
let cancel = &self.cancel;
|
||||||
let progress = &self.progress;
|
let progress = self.progress.clone();
|
||||||
self.download.connect_clicked(
|
self.download.connect_clicked(
|
||||||
clone!(play, delete, episode, cancel, progress => move |dl| {
|
clone!(play, delete, episode, cancel, progress => move |dl| {
|
||||||
on_download_clicked(
|
on_download_clicked(
|
||||||
@ -159,7 +153,7 @@ impl EpisodeWidget {
|
|||||||
&play,
|
&play,
|
||||||
&delete,
|
&delete,
|
||||||
&cancel,
|
&cancel,
|
||||||
&progress
|
progress.clone()
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
@ -173,20 +167,28 @@ fn on_download_clicked(
|
|||||||
play_bttn: >k::Button,
|
play_bttn: >k::Button,
|
||||||
del_bttn: >k::Button,
|
del_bttn: >k::Button,
|
||||||
cancel_bttn: >k::Button,
|
cancel_bttn: >k::Button,
|
||||||
progress_bar: >k::ProgressBar,
|
progress_bar: gtk::ProgressBar,
|
||||||
) {
|
) {
|
||||||
|
let progress = progress_bar.clone();
|
||||||
|
|
||||||
|
// Start the proggress_bar pulse.
|
||||||
|
timeout_add(200, move || {
|
||||||
|
progress_bar.pulse();
|
||||||
|
glib::Continue(true)
|
||||||
|
});
|
||||||
|
|
||||||
// Create a async channel.
|
// Create a async channel.
|
||||||
let (sender, receiver) = channel();
|
let (sender, receiver) = channel();
|
||||||
|
|
||||||
// Pass the desired arguments into the Local Thread Storage.
|
// Pass the desired arguments into the Local Thread Storage.
|
||||||
GLOBAL.with(
|
GLOBAL.with(
|
||||||
clone!(download_bttn, play_bttn, del_bttn, cancel_bttn, progress_bar => move |global| {
|
clone!(download_bttn, play_bttn, del_bttn, cancel_bttn, progress => move |global| {
|
||||||
*global.borrow_mut() = Some((
|
*global.borrow_mut() = Some((
|
||||||
download_bttn,
|
download_bttn,
|
||||||
play_bttn,
|
play_bttn,
|
||||||
del_bttn,
|
del_bttn,
|
||||||
cancel_bttn,
|
cancel_bttn,
|
||||||
progress_bar,
|
progress,
|
||||||
receiver));
|
receiver));
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
@ -195,7 +197,7 @@ fn on_download_clicked(
|
|||||||
let pd_title = pd.title().to_owned();
|
let pd_title = pd.title().to_owned();
|
||||||
let mut ep = ep.clone();
|
let mut ep = ep.clone();
|
||||||
cancel_bttn.show();
|
cancel_bttn.show();
|
||||||
progress_bar.show();
|
progress.show();
|
||||||
download_bttn.hide();
|
download_bttn.hide();
|
||||||
thread::spawn(move || {
|
thread::spawn(move || {
|
||||||
let download_fold = downloader::get_download_folder(&pd_title).unwrap();
|
let download_fold = downloader::get_download_folder(&pd_title).unwrap();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user