Struct FileDialogBuilder

Source
pub struct FileDialogBuilder {
    pub filename: Option<String>,
    pub location: Option<PathBuf>,
    pub filters: Vec<Filter>,
    pub owner: UnsafeWindowHandle,
    pub title: Option<String>,
}
Expand description

Builder for file dialogs.

Fields§

§filename: Option<String>§location: Option<PathBuf>§filters: Vec<Filter>§owner: UnsafeWindowHandle§title: Option<String>

Implementations§

Source§

impl FileDialogBuilder

Source

pub fn set_title(self, title: impl ToString) -> Self

Sets the window title for the dialog.

Source

pub fn set_filename(self, filename: impl ToString) -> 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: &P) -> Self

Sets the default directory that the dialog shows at open.

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

pub fn reset_location(self) -> Self

Resets the default directory that the dialog shows at open. If a location is not set, the dialog will probably go to the current working directory.

Source

pub fn add_filter( self, description: impl ToString, extensions: &[impl ToString], ) -> Self

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

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

pub fn reset_filters(self) -> Self

Removes all file type filters.

Source

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

Sets the owner of the dialog.

Source

pub fn reset_owner(self) -> Self

Resets the owner of the dialog to nothing.

Source

pub fn open_single_file(self) -> OpenSingleFile

Builds a dialog that let users to open one file.

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

pub fn open_multiple_file(self) -> OpenMultipleFile

Builds a dialog that let users to open multiple files.

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

pub fn open_single_dir(self) -> OpenSingleDir

Builds a dialog that let users to open one directory.

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

pub fn save_single_file(self) -> SaveSingleFile

Builds a dialog that let users to save one file.

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

Trait Implementations§

Source§

impl Clone for FileDialogBuilder

Source§

fn clone(&self) -> FileDialogBuilder

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 Debug for FileDialogBuilder

Source§

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

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

impl Default for FileDialogBuilder

Source§

fn default() -> FileDialogBuilder

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

Auto Trait Implementations§

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, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
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.