summaryrefslogtreecommitdiff
path: root/schist_desktop_gui/src/dialog/new_file_dialog.rs
blob: 0a148e10bf7c9ecb90a16bffd4507bf05b4c129e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use std::path::PathBuf;

pub fn new_file_dialog<P>(starting_directory: Option<P>) -> Option<PathBuf>
where
    P: AsRef<std::path::Path>,
{
    let mut file_dialog = rfd::FileDialog::new()
        .add_filter("SQLite database", &["sqlite"])
        .set_file_name("schist.sqlite")
        .set_title("New file");
    if let Some(starting_directory) = starting_directory {
        file_dialog = file_dialog.set_directory(starting_directory);
    }
    file_dialog.save_file()
}