From 6f956e0423055648be9effeaf74c1ba2b4b59ffc Mon Sep 17 00:00:00 2001 From: Norbiros Date: Wed, 21 Aug 2024 01:08:26 +0200 Subject: [PATCH] fix(theseus): Correctly open/highlight folders (#2180) --- apps/app-frontend/src/helpers/utils.js | 12 ++++++++---- apps/app/src/api/utils.rs | 18 ++++++++++++++---- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/apps/app-frontend/src/helpers/utils.js b/apps/app-frontend/src/helpers/utils.js index d63adbe8f..4cd6e000f 100644 --- a/apps/app-frontend/src/helpers/utils.js +++ b/apps/app-frontend/src/helpers/utils.js @@ -10,8 +10,12 @@ export async function getOS() { return await invoke('plugin:utils|get_os') } -export async function showInFolder(path) { - return await invoke('plugin:utils|show_in_folder', { path }) +export async function openPath(path) { + return await invoke('plugin:utils|open_path', { path }) +} + +export async function highlightInFolder(path) { + return await invoke('plugin:utils|highlight_in_folder', { path }) } export async function showLauncherLogsFolder() { @@ -21,12 +25,12 @@ export async function showLauncherLogsFolder() { // Opens a profile's folder in the OS file explorer export async function showProfileInFolder(path) { const fullPath = await get_full_path(path) - return await showInFolder(fullPath) + return await openPath(fullPath) } export async function highlightModInProfile(profilePath, projectPath) { const fullPath = await get_mod_full_path(profilePath, projectPath) - return await showInFolder(fullPath) + return await highlightInFolder(fullPath) } export const releaseColor = (releaseType) => { diff --git a/apps/app/src/api/utils.rs b/apps/app/src/api/utils.rs index c20169737..831e90d41 100644 --- a/apps/app/src/api/utils.rs +++ b/apps/app/src/api/utils.rs @@ -13,7 +13,8 @@ pub fn init() -> tauri::plugin::TauriPlugin { .invoke_handler(tauri::generate_handler![ get_os, should_disable_mouseover, - show_in_folder, + highlight_in_folder, + open_path, show_launcher_logs_folder, progress_bars_list, get_opening_command @@ -72,11 +73,20 @@ pub async fn should_disable_mouseover() -> bool { } #[tauri::command] -pub fn show_in_folder(path: PathBuf) { +pub fn highlight_in_folder(path: PathBuf) { let res = opener::reveal(path); if let Err(e) = res { - tracing::error!("Failed to open folder: {}", e); + tracing::error!("Failed to highlight file in folder: {}", e); + } +} + +#[tauri::command] +pub fn open_path(path: PathBuf) { + let res = opener::open(path); + + if let Err(e) = res { + tracing::error!("Failed to open path: {}", e); } } @@ -85,7 +95,7 @@ pub fn show_launcher_logs_folder() { let path = DirectoryInfo::launcher_logs_dir().unwrap_or_default(); // failure to get folder just opens filesystem // (ie: if in debug mode only and launcher_logs never created) - show_in_folder(path); + open_path(path); } // Get opening command