Write default location in steam

This commit is contained in:
Philip
2021-10-02 15:57:08 +02:00
parent 6c042a0fef
commit d9a53572e3
2 changed files with 35 additions and 14 deletions
+8
View File
@@ -121,6 +121,14 @@ fn save_settings_to_file(settings: &Settings) {
#[cfg(feature = "ui")]
fn update_ui_with_settings(ui: &mut mainview::UserInterface, settings: &Settings) {
ui.steam_location_input.set_value(
&settings
.steam
.location
.clone()
.unwrap_or(steam::get_default_location().unwrap_or(String::from(""))),
);
ui.enable_steamgrid_db_checkbox
.set_value(settings.steamgrid_db.enabled);
ui.steamgrid_db_auth_key_input.set_value(
+27 -14
View File
@@ -60,20 +60,7 @@ pub fn get_shortcuts_paths(
let user_location = settings.location.clone();
let steam_path_str = match user_location {
Some(location) => location,
None => {
#[cfg(target_os = "windows")]
let path_string = {
let key = "PROGRAMFILES(X86)";
let program_files = env::var(key)?;
format!("{program_files}//Steam//", program_files = program_files)
};
#[cfg(target_os = "linux")]
let path_string = {
let home = std::env::var("HOME")?;
format!("{}/.steam/steam/", home)
};
path_string
}
None => get_default_location()?,
};
let steam_path = Path::new(&steam_path_str);
if !steam_path.exists() {
@@ -113,6 +100,32 @@ pub fn get_shortcuts_paths(
Ok(users_info)
}
pub fn get_default_location() -> Result<String, Box<dyn Error>> {
#[cfg(target_os = "windows")]
let path_string = {
let key = "PROGRAMFILES(X86)";
let program_files = env::var(key)?;
String::from(
Path::new(&program_files)
.join("Steam")
.to_str()
.unwrap_or(""),
)
};
#[cfg(target_os = "linux")]
let path_string = {
let home = std::env::var("HOME")?;
String::from(
Path::new(&home)
.join(".steam")
.join("steam")
.to_str()
.unwrap_or(""),
)
};
Ok(path_string)
}
#[derive(Debug)]
struct SteamFolderNotFound {
location_tried: String,