From ec6c20185e39345b68d846d7d417e532f0ed53e2 Mon Sep 17 00:00:00 2001 From: Jaby Date: Wed, 2 Apr 2025 21:04:42 +0200 Subject: [PATCH] Support loading relative pathes --- .../tim_tool/src/gui/file_tab/callbacks.rs | 31 ++++++++++++++----- 1 file changed, 24 insertions(+), 7 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 1ae8d47e..a8808e66 100644 --- a/src/Tools/tim_tool/src/gui/file_tab/callbacks.rs +++ b/src/Tools/tim_tool/src/gui/file_tab/callbacks.rs @@ -76,12 +76,33 @@ pub(super) fn on_load_project_clicked(tim_manager: MutexTIMManager) -> impl FnMu main_window.invoke_clear_file_tab_current_selected_file(); } - for job in new_project.jobs { - let (_, _) = tim_manager.load_unadded_tim(&job.file_path)?; + for job in new_project.jobs { + let file_path = { + if job.file_path.is_file() { + job.file_path + } + + else { + let mut new_file_path = PathBuf::from(open_location.as_str()); + + new_file_path.pop(); + new_file_path.push(job.file_path); + new_file_path + } + }; + let (_, _) = tim_manager.load_unadded_tim(&file_path)?; let (pal_width, pal_height) = job.palette_rect.size.into(); tim_manager.change_unadded_tim_palette_size(pal_width, pal_height)?; - add_unadded_tim(main_tab, &mut tim_manager, UnaddedTIM::from_job(&job))?; + let unadded_tim = UnaddedTIM{ + file_name: &job.name, + image_x: job.image_pos.x, + image_y: job.image_pos.y, + palette_x: job.palette_rect.pos.x, + palette_y: job.palette_rect.pos.y, + encoding: job.encoding + }; + add_unadded_tim(main_tab, &mut tim_manager, unadded_tim)?; } main_window.invoke_change_to_main(); @@ -209,10 +230,6 @@ impl<'a> UnaddedTIM<'a> { pub fn new(file_name: &String, encoding: Encoding,) -> UnaddedTIM { UnaddedTIM{file_name, image_x: 0, image_y: 0, palette_x: 0, palette_y: 0, encoding} } - - pub fn from_job(job: &Job) -> UnaddedTIM { - UnaddedTIM{file_name: &job.name, image_x: job.image_pos.x, image_y: job.image_pos.y, palette_x: job.palette_rect.pos.x, palette_y: job.palette_rect.pos.y, encoding: job.encoding } - } } fn add_unadded_tim(main_tab: &mut MainTab, tim_manager: &mut TIMManager, unadded_tim: UnaddedTIM) -> Result<(), Error> {