Add completion sound, preserve directory structure support

- Play system notification sound via canberra-gtk-play when enabled
- Implement preserve_directory_structure in output_path_for to maintain
  relative paths from input directory in output
This commit is contained in:
2026-03-06 15:24:04 +02:00
parent 1e3ffaadd3
commit 4dd868078a
2 changed files with 25 additions and 1 deletions

View File

@@ -89,6 +89,19 @@ impl ProcessingJob {
}) })
.unwrap_or("bin"); .unwrap_or("bin");
self.output_dir.join(format!("{}.{}", stem, ext)) let filename = format!("{}.{}", stem, ext);
if self.preserve_directory_structure {
// Maintain relative path from input_dir
if let Ok(rel) = source.path.strip_prefix(&self.input_dir) {
if let Some(parent) = rel.parent() {
if parent.components().count() > 0 {
return self.output_dir.join(parent).join(filename);
}
}
}
}
self.output_dir.join(filename)
} }
} }

View File

@@ -1682,6 +1682,17 @@ fn show_results(
} }
} }
// Play completion sound (if enabled in settings)
if config.play_completion_sound {
std::thread::spawn(|| {
// Use canberra-gtk-play for system sound (standard on GNOME)
let _ = std::process::Command::new("canberra-gtk-play")
.arg("--id=complete")
.arg("--description=Processing complete")
.output();
});
}
// Auto-open output folder if enabled // Auto-open output folder if enabled
if config.auto_open_output { if config.auto_open_output {
let output = ui.state.output_dir.borrow().clone(); let output = ui.state.output_dir.borrow().clone();