Fix logs folder opening wrong folder in Linux and macOS (#1363)

This commit is contained in:
Eiren Rain
2025-04-02 01:54:08 +02:00
committed by GitHub
3 changed files with 40 additions and 12 deletions

View File

@@ -726,9 +726,12 @@ settings-utils-advanced-reset_warning =
settings-utils-advanced-reset_warning-reset = Reset settings
settings-utils-advanced-reset_warning-cancel = Cancel
settings-utils-advanced-open_data = Data folder
settings-utils-advanced-open_data-description = Open SlimeVR's data folder in file explorer, containing config and log files.
settings-utils-advanced-open_data-v1 = Config folder
settings-utils-advanced-open_data-description-v1 = Open SlimeVR's config folder in file explorer, containing the configuration
settings-utils-advanced-open_data-label = Open folder
settings-utils-advanced-open_logs = Logs folder
settings-utils-advanced-open_logs-description = Open SlimeVR's logs folder in file explorer, containing the logs of the app
settings-utils-advanced-open_logs-label = Open folder
## Setup/onboarding menu
onboarding-skip = Skip setup

View File

@@ -64,23 +64,20 @@ fn open_config_folder(app_handle: tauri::AppHandle) {
.path()
.app_config_dir()
.unwrap_or_else(|_| Path::new(".").to_path_buf());
let path_str = path.to_string_lossy().into_owned();
if let Err(err) = open::that(path_str) {
if let Err(err) = open::that(path) {
eprintln!("Failed to open config folder: {}", err);
}
}
#[tauri::command]
fn open_logs_folder(app_handle: tauri::AppHandle) {
let config_dir = app_handle
let path = app_handle
.path()
.app_config_dir()
.unwrap_or_else(|_| Path::new(".").to_path_buf());
let path = config_dir.join("logs");
let path_str = path.to_string_lossy().into_owned();
.app_log_dir()
.unwrap_or_else(|_| Path::new("./logs/").to_path_buf());
if let Err(err) = open::that(path_str) {
if let Err(err) = open::that(path) {
eprintln!("Failed to open logs folder: {}", err);
}
}

View File

@@ -45,6 +45,14 @@ export function AdvancedSettings() {
}
};
const openLogsFolder = async () => {
try {
await invoke<string | null>('open_logs_folder');
} catch (err) {
error('Failed to open config folder:', err);
}
};
return (
<SettingsPageLayout>
<form className="flex flex-col gap-2 w-full">
@@ -163,12 +171,12 @@ export function AdvancedSettings() {
<div className="sm:grid sm:grid-cols-[1.75fr,_1fr] items-center">
<div>
<Typography bold>
{l10n.getString('settings-utils-advanced-open_data')}
{l10n.getString('settings-utils-advanced-open_data-v1')}
</Typography>
<div className="flex flex-col">
<Typography color="secondary">
{l10n.getString(
'settings-utils-advanced-open_data-description'
'settings-utils-advanced-open_data-description-v1'
)}
</Typography>
</div>
@@ -179,6 +187,26 @@ export function AdvancedSettings() {
</Button>
</div>
</div>
<div className="sm:grid sm:grid-cols-[1.75fr,_1fr] items-center">
<div>
<Typography bold>
{l10n.getString('settings-utils-advanced-open_logs')}
</Typography>
<div className="flex flex-col">
<Typography color="secondary">
{l10n.getString(
'settings-utils-advanced-open_logs-description'
)}
</Typography>
</div>
</div>
<div className="flex flex-col nsm:pt-2">
<Button variant="secondary" onClick={openLogsFolder}>
{l10n.getString('settings-utils-advanced-open_logs-label')}
</Button>
</div>
</div>
</div>
</>
</SettingsPagePaneLayout>