From ad4c18e425c16464702133b616737607171d464f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mikrut?= Date: Mon, 7 Dec 2020 15:14:14 +0100 Subject: [PATCH] Fix errors in progress bar caused by dividing by 0 --- czkawka_gui/src/connect_progress_window.rs | 54 +++++++++++++++++----- 1 file changed, 42 insertions(+), 12 deletions(-) diff --git a/czkawka_gui/src/connect_progress_window.rs b/czkawka_gui/src/connect_progress_window.rs index a03b4a8..a0f92ee 100644 --- a/czkawka_gui/src/connect_progress_window.rs +++ b/czkawka_gui/src/connect_progress_window.rs @@ -42,14 +42,24 @@ pub fn connect_progress_window( 1 => { progress_bar_current_stage.show(); // progress_bar_all_stages.show(); - progress_bar_all_stages.set_fraction((1f64 + (item.files_checked) as f64 / item.files_to_check as f64) / (item.max_stage + 1) as f64); - progress_bar_current_stage.set_fraction((item.files_checked) as f64 / item.files_to_check as f64); + if item.files_to_check != 0 { + progress_bar_all_stages.set_fraction((1f64 + (item.files_checked) as f64 / item.files_to_check as f64) / (item.max_stage + 1) as f64); + progress_bar_current_stage.set_fraction((item.files_checked) as f64 / item.files_to_check as f64); + } else { + progress_bar_all_stages.set_fraction((1f64) / (item.max_stage + 1) as f64); + progress_bar_current_stage.set_fraction(0f64); + } label_stage.set_text(format!("Analyzed partial hash of {}/{} files", item.files_checked, item.files_to_check).as_str()); } // Hash - first 1MB of file or normal hash 2 => { - progress_bar_all_stages.set_fraction((2f64 + (item.files_checked) as f64 / item.files_to_check as f64) / (item.max_stage + 1) as f64); - progress_bar_current_stage.set_fraction((item.files_checked) as f64 / item.files_to_check as f64); + if item.files_to_check != 0 { + progress_bar_all_stages.set_fraction((2f64 + (item.files_checked) as f64 / item.files_to_check as f64) / (item.max_stage + 1) as f64); + progress_bar_current_stage.set_fraction((item.files_checked) as f64 / item.files_to_check as f64); + } else { + progress_bar_all_stages.set_fraction((2f64) / (item.max_stage + 1) as f64); + progress_bar_current_stage.set_fraction(0f64); + } label_stage.set_text(format!("Analyzed full hash of {}/{} files", item.files_checked, item.files_to_check).as_str()); } _ => { @@ -121,13 +131,23 @@ pub fn connect_progress_window( } 1 => { progress_bar_current_stage.show(); - progress_bar_all_stages.set_fraction((1f64 + (item.music_checked) as f64 / item.music_to_check as f64) / (item.max_stage + 1) as f64); - progress_bar_current_stage.set_fraction((item.music_checked) as f64 / item.music_to_check as f64); + if item.music_to_check != 0 { + progress_bar_all_stages.set_fraction((1f64 + (item.music_checked) as f64 / item.music_to_check as f64) / (item.max_stage + 1) as f64); + progress_bar_current_stage.set_fraction((item.music_checked) as f64 / item.music_to_check as f64); + } else { + progress_bar_all_stages.set_fraction((1f64) / (item.max_stage + 1) as f64); + progress_bar_current_stage.set_fraction(0f64); + } label_stage.set_text(format!("Reading tags of {}/{} music files", item.music_checked, item.music_to_check).as_str()); } 2 => { - progress_bar_all_stages.set_fraction((2f64 + (item.music_checked) as f64 / item.music_to_check as f64) / (item.max_stage + 1) as f64); - progress_bar_current_stage.set_fraction((item.music_checked) as f64 / item.music_to_check as f64); + if item.music_to_check != 0 { + progress_bar_all_stages.set_fraction((2f64 + (item.music_checked) as f64 / item.music_to_check as f64) / (item.max_stage + 1) as f64); + progress_bar_current_stage.set_fraction((item.music_checked) as f64 / item.music_to_check as f64); + } else { + progress_bar_all_stages.set_fraction((2f64) / (item.max_stage + 1) as f64); + progress_bar_current_stage.set_fraction(0f64); + } label_stage.set_text(format!("Checking for duplicates of {}/{} music files", item.music_checked, item.music_to_check).as_str()); } _ => { @@ -152,8 +172,13 @@ pub fn connect_progress_window( } 1 => { progress_bar_current_stage.show(); - progress_bar_all_stages.set_fraction((1f64 + (item.images_checked) as f64 / item.images_to_check as f64) / (item.max_stage + 1) as f64); - progress_bar_current_stage.set_fraction((item.images_checked) as f64 / item.images_to_check as f64); + if item.images_to_check != 0 { + progress_bar_all_stages.set_fraction((1f64 + (item.images_checked) as f64 / item.images_to_check as f64) / (item.max_stage + 1) as f64); + progress_bar_current_stage.set_fraction((item.images_checked) as f64 / item.images_to_check as f64); + } else { + progress_bar_all_stages.set_fraction((1f64) / (item.max_stage + 1) as f64); + progress_bar_current_stage.set_fraction(0f64); + } label_stage.set_text(format!("Hashing {}/{} image", item.images_checked, item.images_to_check).as_str()); } _ => { @@ -188,8 +213,13 @@ pub fn connect_progress_window( } 1 => { progress_bar_current_stage.show(); - progress_bar_all_stages.set_fraction((1f64 + (item.files_checked) as f64 / item.files_to_check as f64) / (item.max_stage + 1) as f64); - progress_bar_current_stage.set_fraction((item.files_checked) as f64 / item.files_to_check as f64); + if item.files_to_check != 0 { + progress_bar_all_stages.set_fraction((1f64 + (item.files_checked) as f64 / item.files_to_check as f64) / (item.max_stage + 1) as f64); + progress_bar_current_stage.set_fraction((item.files_checked) as f64 / item.files_to_check as f64); + } else { + progress_bar_all_stages.set_fraction((1f64) / (item.max_stage + 1) as f64); + progress_bar_current_stage.set_fraction(0f64); + } label_stage.set_text(format!("Checking {}/{} file", item.files_checked, item.files_to_check).as_str()); } _ => {