From 18e6800e0fe2b852bbd4a067e6d34306e5396fbc Mon Sep 17 00:00:00 2001 From: Jaby Date: Wed, 19 Mar 2025 21:17:26 +0100 Subject: [PATCH] Implement browsing project save location --- src/Tools/tim_tool/src/gui/file_tab/callbacks.rs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/Tools/tim_tool/src/gui/file_tab/callbacks.rs b/src/Tools/tim_tool/src/gui/file_tab/callbacks.rs index 27caacf9..9d3c5934 100644 --- a/src/Tools/tim_tool/src/gui/file_tab/callbacks.rs +++ b/src/Tools/tim_tool/src/gui/file_tab/callbacks.rs @@ -113,7 +113,19 @@ pub(super) fn on_browse_open_project_clicked() -> impl FnMut(&mut FileTab, &Main } pub(super) fn on_browse_save_project_clicked() -> impl FnMut(&mut FileTab, &MainWindow) -> Result<(), Error> + 'static { - move |_file_tab, _main_window| { - Err(Error::not_implemented("on_browse_save_project_clicked")) + 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", &["*"]) + .set_title("Save location for TIM project file") + .save_file(); + + if let Some(file_path) = file_path { + if let Some(file_path) = file_path.to_str() { + main_window.set_project_widget_save_project_path(SharedString::from(file_path)); + } + } + Ok(()) } } \ No newline at end of file