Ripper: Ensuring that GetProgress does never divide by zero

Also removed superfluous null check in RipCDDialog
This commit is contained in:
Lukas Prediger 2022-01-24 20:34:37 +02:00 committed by John Maguire
parent f35e1b543d
commit 794c1b8c92
2 changed files with 4 additions and 5 deletions

View File

@ -213,10 +213,6 @@ void RipCDDialog::ClickedRipButton() {
// create and connect Ripper instance for this task
Ripper* ripper = new Ripper(cdda_device_->song_count(), this);
if (!ripper) {
qLog(Error) << "Could not create Ripper instance";
return;
}
connect(cancel_button_, SIGNAL(clicked()), ripper, SLOT(Cancel()));

View File

@ -154,11 +154,14 @@ void Ripper::Rip() {
}
float Ripper::GetProgress() const {
int added_tracks = AddedTracks();
if (added_tracks == 0) return 1.0f;
float progress = finished_success_ + finished_failed_;
QList<float> current_job_progress_ = transcoder_->GetProgress().values();
progress += std::accumulate(current_job_progress_.begin(),
current_job_progress_.end(), 0.0f);
progress /= AddedTracks();
progress /= added_tracks;
qLog(Debug) << "Progress: " << progress;
return progress;