Struct FileDialog

Source
pub struct FileDialog<'a> { /* private fields */ }
Expand description

Builds and shows file dialogs.

Implementations§

Source§

impl<'a> FileDialog<'a>

Source

pub fn new() -> Self

Creates a file dialog builder.

Examples found in repository?
examples/tour.rs (line 23)
11fn main() {
12    let result = MessageDialog::new()
13        .set_title("Tour")
14        .set_text("Do you want to begin the tour?")
15        .set_type(MessageType::Warning)
16        .show_confirm()
17        .unwrap();
18    if !result {
19        return;
20    }
21    echo("show_confirm", &result);
22
23    let result = FileDialog::new()
24        .set_location("~")
25        .show_open_single_file()
26        .unwrap();
27    echo("show_open_single_file", &result);
28
29    let result = FileDialog::new()
30        .add_filter("Rust Source", &["rs"])
31        .add_filter("Image", &["png", "jpg", "gif"])
32        .show_open_multiple_file()
33        .unwrap();
34    echo("show_open_multiple_file", &result);
35
36    let result = FileDialog::new().show_open_single_dir().unwrap();
37    echo("show_open_single_dir", &result);
38
39    let result = FileDialog::new()
40        .add_filter("Rust Source", &["rs"])
41        .add_filter("Image", &["png", "jpg", "gif"])
42        .show_save_single_file()
43        .unwrap();
44    echo("show_save_single_file", &result);
45
46    MessageDialog::new()
47        .set_title("End")
48        .set_text("That's the end!")
49        .show_alert()
50        .unwrap();
51}
Source

pub fn set_title(self, title: &'a str) -> Self

Sets the window title for the dialog.

Source

pub fn set_filename(self, filename: &'a str) -> Self

Sets the default value of the filename text field in the dialog. For open dialogs of macOS and zenity, this is a no-op because there’s no such text field on the dialog.

Source

pub fn reset_filename(self) -> Self

Resets the default value of the filename field in the dialog.

Source

pub fn set_location<P: AsRef<Path> + ?Sized>(self, path: &'a P) -> Self

Sets the default location that the dialog shows at open.

Examples found in repository?
examples/tour.rs (line 24)
11fn main() {
12    let result = MessageDialog::new()
13        .set_title("Tour")
14        .set_text("Do you want to begin the tour?")
15        .set_type(MessageType::Warning)
16        .show_confirm()
17        .unwrap();
18    if !result {
19        return;
20    }
21    echo("show_confirm", &result);
22
23    let result = FileDialog::new()
24        .set_location("~")
25        .show_open_single_file()
26        .unwrap();
27    echo("show_open_single_file", &result);
28
29    let result = FileDialog::new()
30        .add_filter("Rust Source", &["rs"])
31        .add_filter("Image", &["png", "jpg", "gif"])
32        .show_open_multiple_file()
33        .unwrap();
34    echo("show_open_multiple_file", &result);
35
36    let result = FileDialog::new().show_open_single_dir().unwrap();
37    echo("show_open_single_dir", &result);
38
39    let result = FileDialog::new()
40        .add_filter("Rust Source", &["rs"])
41        .add_filter("Image", &["png", "jpg", "gif"])
42        .show_save_single_file()
43        .unwrap();
44    echo("show_save_single_file", &result);
45
46    MessageDialog::new()
47        .set_title("End")
48        .set_text("That's the end!")
49        .show_alert()
50        .unwrap();
51}
Source

pub fn reset_location(self) -> Self

Resets the default location that the dialog shows at open. Without a default location set, the dialog will probably use the current working directory as default location.

Source

pub fn add_filter(self, description: &'a str, extensions: &'a [&'a str]) -> Self

Adds a file type filter. The filter must contains at least one extension, otherwise this method will panic. For dialogs that open directories, this is a no-op.

Examples found in repository?
examples/tour.rs (line 30)
11fn main() {
12    let result = MessageDialog::new()
13        .set_title("Tour")
14        .set_text("Do you want to begin the tour?")
15        .set_type(MessageType::Warning)
16        .show_confirm()
17        .unwrap();
18    if !result {
19        return;
20    }
21    echo("show_confirm", &result);
22
23    let result = FileDialog::new()
24        .set_location("~")
25        .show_open_single_file()
26        .unwrap();
27    echo("show_open_single_file", &result);
28
29    let result = FileDialog::new()
30        .add_filter("Rust Source", &["rs"])
31        .add_filter("Image", &["png", "jpg", "gif"])
32        .show_open_multiple_file()
33        .unwrap();
34    echo("show_open_multiple_file", &result);
35
36    let result = FileDialog::new().show_open_single_dir().unwrap();
37    echo("show_open_single_dir", &result);
38
39    let result = FileDialog::new()
40        .add_filter("Rust Source", &["rs"])
41        .add_filter("Image", &["png", "jpg", "gif"])
42        .show_save_single_file()
43        .unwrap();
44    echo("show_save_single_file", &result);
45
46    MessageDialog::new()
47        .set_title("End")
48        .set_text("That's the end!")
49        .show_alert()
50        .unwrap();
51}
Source

pub fn remove_all_filters(self) -> Self

Removes all file type filters.

Source

pub fn set_owner<W: HasRawWindowHandle>(self, window: &W) -> Self

Sets the owner of the dialog. On Unix and GNU/Linux, this is a no-op.

Source

pub unsafe fn set_owner_handle(self, handle: RawWindowHandle) -> Self

Sets the owner of the dialog by raw handle. On Unix and GNU/Linux, this is a no-op.

§Safety

It’s the caller’s responsibility that ensuring the handle is valid.

Source

pub fn reset_owner(self) -> Self

Resets the owner of the dialog to nothing.

Source

pub fn show_open_single_file(self) -> Result<Option<PathBuf>>

Shows a dialog that let users to open one file.

Examples found in repository?
examples/tour.rs (line 25)
11fn main() {
12    let result = MessageDialog::new()
13        .set_title("Tour")
14        .set_text("Do you want to begin the tour?")
15        .set_type(MessageType::Warning)
16        .show_confirm()
17        .unwrap();
18    if !result {
19        return;
20    }
21    echo("show_confirm", &result);
22
23    let result = FileDialog::new()
24        .set_location("~")
25        .show_open_single_file()
26        .unwrap();
27    echo("show_open_single_file", &result);
28
29    let result = FileDialog::new()
30        .add_filter("Rust Source", &["rs"])
31        .add_filter("Image", &["png", "jpg", "gif"])
32        .show_open_multiple_file()
33        .unwrap();
34    echo("show_open_multiple_file", &result);
35
36    let result = FileDialog::new().show_open_single_dir().unwrap();
37    echo("show_open_single_dir", &result);
38
39    let result = FileDialog::new()
40        .add_filter("Rust Source", &["rs"])
41        .add_filter("Image", &["png", "jpg", "gif"])
42        .show_save_single_file()
43        .unwrap();
44    echo("show_save_single_file", &result);
45
46    MessageDialog::new()
47        .set_title("End")
48        .set_text("That's the end!")
49        .show_alert()
50        .unwrap();
51}
Source

pub fn show_open_multiple_file(self) -> Result<Vec<PathBuf>>

Shows a dialog that let users to open multiple files.

Examples found in repository?
examples/tour.rs (line 32)
11fn main() {
12    let result = MessageDialog::new()
13        .set_title("Tour")
14        .set_text("Do you want to begin the tour?")
15        .set_type(MessageType::Warning)
16        .show_confirm()
17        .unwrap();
18    if !result {
19        return;
20    }
21    echo("show_confirm", &result);
22
23    let result = FileDialog::new()
24        .set_location("~")
25        .show_open_single_file()
26        .unwrap();
27    echo("show_open_single_file", &result);
28
29    let result = FileDialog::new()
30        .add_filter("Rust Source", &["rs"])
31        .add_filter("Image", &["png", "jpg", "gif"])
32        .show_open_multiple_file()
33        .unwrap();
34    echo("show_open_multiple_file", &result);
35
36    let result = FileDialog::new().show_open_single_dir().unwrap();
37    echo("show_open_single_dir", &result);
38
39    let result = FileDialog::new()
40        .add_filter("Rust Source", &["rs"])
41        .add_filter("Image", &["png", "jpg", "gif"])
42        .show_save_single_file()
43        .unwrap();
44    echo("show_save_single_file", &result);
45
46    MessageDialog::new()
47        .set_title("End")
48        .set_text("That's the end!")
49        .show_alert()
50        .unwrap();
51}
Source

pub fn show_open_single_dir(self) -> Result<Option<PathBuf>>

Shows a dialog that let users to open one directory.

Examples found in repository?
examples/tour.rs (line 36)
11fn main() {
12    let result = MessageDialog::new()
13        .set_title("Tour")
14        .set_text("Do you want to begin the tour?")
15        .set_type(MessageType::Warning)
16        .show_confirm()
17        .unwrap();
18    if !result {
19        return;
20    }
21    echo("show_confirm", &result);
22
23    let result = FileDialog::new()
24        .set_location("~")
25        .show_open_single_file()
26        .unwrap();
27    echo("show_open_single_file", &result);
28
29    let result = FileDialog::new()
30        .add_filter("Rust Source", &["rs"])
31        .add_filter("Image", &["png", "jpg", "gif"])
32        .show_open_multiple_file()
33        .unwrap();
34    echo("show_open_multiple_file", &result);
35
36    let result = FileDialog::new().show_open_single_dir().unwrap();
37    echo("show_open_single_dir", &result);
38
39    let result = FileDialog::new()
40        .add_filter("Rust Source", &["rs"])
41        .add_filter("Image", &["png", "jpg", "gif"])
42        .show_save_single_file()
43        .unwrap();
44    echo("show_save_single_file", &result);
45
46    MessageDialog::new()
47        .set_title("End")
48        .set_text("That's the end!")
49        .show_alert()
50        .unwrap();
51}
Source

pub fn show_save_single_file(self) -> Result<Option<PathBuf>>

Shows a dialog that let users to save one file.

Examples found in repository?
examples/tour.rs (line 42)
11fn main() {
12    let result = MessageDialog::new()
13        .set_title("Tour")
14        .set_text("Do you want to begin the tour?")
15        .set_type(MessageType::Warning)
16        .show_confirm()
17        .unwrap();
18    if !result {
19        return;
20    }
21    echo("show_confirm", &result);
22
23    let result = FileDialog::new()
24        .set_location("~")
25        .show_open_single_file()
26        .unwrap();
27    echo("show_open_single_file", &result);
28
29    let result = FileDialog::new()
30        .add_filter("Rust Source", &["rs"])
31        .add_filter("Image", &["png", "jpg", "gif"])
32        .show_open_multiple_file()
33        .unwrap();
34    echo("show_open_multiple_file", &result);
35
36    let result = FileDialog::new().show_open_single_dir().unwrap();
37    echo("show_open_single_dir", &result);
38
39    let result = FileDialog::new()
40        .add_filter("Rust Source", &["rs"])
41        .add_filter("Image", &["png", "jpg", "gif"])
42        .show_save_single_file()
43        .unwrap();
44    echo("show_save_single_file", &result);
45
46    MessageDialog::new()
47        .set_title("End")
48        .set_text("That's the end!")
49        .show_alert()
50        .unwrap();
51}

Trait Implementations§

Source§

impl<'a> Clone for FileDialog<'a>

Source§

fn clone(&self) -> FileDialog<'a>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Debug for FileDialog<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for FileDialog<'_>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for FileDialog<'a>

§

impl<'a> RefUnwindSafe for FileDialog<'a>

§

impl<'a> !Send for FileDialog<'a>

§

impl<'a> !Sync for FileDialog<'a>

§

impl<'a> Unpin for FileDialog<'a>

§

impl<'a> UnwindSafe for FileDialog<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.