blocking_dialog/linux/
pick_directory.rs1use crate::{BlockingDialogError, BlockingPickDirectoryDialog};
5use native_dialog::DialogBuilder;
6use raw_window_handle::HasWindowHandle;
7use std::path::PathBuf;
8
9impl<'a, W: HasWindowHandle> BlockingPickDirectoryDialog<'a, W> {
10 pub fn show(&self) -> Result<Option<PathBuf>, BlockingDialogError> {
11 let dialog = DialogBuilder::file()
12 .set_title(self.title)
13 .set_owner(&self.window)
14 .open_single_dir();
15
16 match dialog.show() {
17 Ok(maybe_path) => Ok(maybe_path),
18 Err(e) => Err(BlockingDialogError::NativeDialog(e)),
19 }
20 }
21}