Projects: Inital support for saving and loading projects #22
|
@ -128,17 +128,23 @@ pub(super) fn on_save_project_clicked(tim_manager: MutexTIMManager) -> impl FnMu
|
|||
}
|
||||
|
||||
pub(super) fn on_browse_open_project_clicked() -> impl FnMut(&mut FileTab, &MainWindow) -> Result<(), Error> + 'static {
|
||||
move |_file_tab, _main_window| {
|
||||
Err(Error::not_implemented("on_browse_open_project_clicked"))
|
||||
move |_file_tab, main_window| {
|
||||
let file_path = create_project_file_dialog()
|
||||
.set_title("Save location for TIM project file")
|
||||
.pick_file();
|
||||
|
||||
if let Some(file_path) = file_path {
|
||||
if let Some(file_path) = file_path.to_str() {
|
||||
main_window.set_project_widget_open_project_path(SharedString::from(file_path));
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
pub(super) fn on_browse_save_project_clicked() -> impl FnMut(&mut FileTab, &MainWindow) -> Result<(), Error> + 'static {
|
||||
move |_file_tab, main_window| {
|
||||
let file_path = FileDialog::new()
|
||||
.add_filter("TIM project file (.tim_project)", &["tim_project"])
|
||||
.add_filter("JSON file (.json; .jsn)", &["json", "jsn"])
|
||||
.add_filter("All", &["*"])
|
||||
let file_path = create_project_file_dialog()
|
||||
.set_title("Save location for TIM project file")
|
||||
.save_file();
|
||||
|
||||
|
@ -150,3 +156,10 @@ pub(super) fn on_browse_save_project_clicked() -> impl FnMut(&mut FileTab, &Main
|
|||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
fn create_project_file_dialog() -> FileDialog {
|
||||
FileDialog::new()
|
||||
.add_filter("TIM project file (.tim_project)", &["tim_project"])
|
||||
.add_filter("JSON file (.json; .jsn)", &["json", "jsn"])
|
||||
.add_filter("All", &["*"])
|
||||
}
|
Loading…
Reference in New Issue