Render Queue: the failure toast says why the render failed (#568)

This commit is contained in:
Marco Arnulfo
2026-10-12 13:23:06 +02:00
parent 9efe75330c
commit d9b8f65d7c
2 changed files with 35 additions and 4 deletions
+10 -3
View File
@@ -610,10 +610,17 @@ impl Session {
let _ = t.join();
}
let st = job.shared.snapshot();
let failed = updates.iter().filter(|u| matches!(u, ItemUpdate::Finished { status: RenderStatus::Failed(_), .. })).count();
let failures: Vec<&str> = updates
.iter()
.filter_map(|u| if let ItemUpdate::Finished { status: RenderStatus::Failed(e), .. } = u { Some(e.as_str()) } else { None })
.collect();
let failed = failures.len();
let stopped = updates.iter().any(|u| matches!(u, ItemUpdate::Finished { status: RenderStatus::UserStopped, .. }));
let msg = if failed > 0 {
format!("Render finished with {failed} failed item(s)")
// The reason is otherwise only in the Status column's tooltip (#568).
let msg = if let [only] = failures.as_slice() {
format!("Render finished with 1 failed item(s): {only}")
} else if let Some(first) = failures.first() {
format!("Render finished with {failed} failed item(s), first: {first}")
} else if stopped {
"Render stopped".to_string()
} else {