feat: replaced auto_close option by behavior

This commit is contained in:
Observer KRypt0n_ 2023-07-31 19:38:51 +02:00
parent 4b2e02c10e
commit 42215728a2
No known key found for this signature in database
GPG key ID: 844DA47BA25FE1E2
8 changed files with 93 additions and 40 deletions

View file

@ -19,7 +19,8 @@ pub mod discord_rpc;
pub mod prelude { pub mod prelude {
pub use super::{ pub use super::{
Launcher, Launcher,
LauncherStyle LauncherStyle,
LauncherBehavior
}; };
#[cfg(feature = "discord-rpc")] #[cfg(feature = "discord-rpc")]
@ -41,6 +42,20 @@ impl Default for LauncherStyle {
} }
} }
#[derive(Debug, Clone, Copy, PartialEq, Eq, Ordinalize, Serialize, Deserialize)]
pub enum LauncherBehavior {
Nothing,
Hide,
Close
}
impl Default for LauncherBehavior {
#[inline]
fn default() -> Self {
Self::Hide
}
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct Launcher { pub struct Launcher {
pub language: String, pub language: String,
@ -55,7 +70,7 @@ pub struct Launcher {
#[cfg(feature = "environment-emulation")] #[cfg(feature = "environment-emulation")]
pub environment: Environment, pub environment: Environment,
pub auto_close: bool pub behavior: LauncherBehavior
} }
impl Default for Launcher { impl Default for Launcher {
@ -74,7 +89,7 @@ impl Default for Launcher {
#[cfg(feature = "environment-emulation")] #[cfg(feature = "environment-emulation")]
environment: Environment::default(), environment: Environment::default(),
auto_close: false behavior: LauncherBehavior::default()
} }
} }
} }
@ -130,9 +145,9 @@ impl From<&JsonValue> for Launcher {
None => default.environment None => default.environment
}, },
auto_close: match value.get("auto_close") { behavior: match value.get("behavior") {
Some(value) => value.as_bool().unwrap_or(default.auto_close), Some(value) => serde_json::from_value(value.clone()).unwrap_or(default.behavior),
None => default.auto_close None => default.behavior
} }
} }
} }

View file

@ -324,9 +324,5 @@ pub fn run() -> anyhow::Result<()> {
Sessions::update(current, config.get_wine_prefix_path())?; Sessions::update(current, config.get_wine_prefix_path())?;
} }
if config.launcher.auto_close {
std::process::exit(0);
}
Ok(()) Ok(())
} }

View file

@ -12,7 +12,11 @@ use crate::config::schema_blanks::prelude::*;
use crate::honkai::consts::launcher_dir; use crate::honkai::consts::launcher_dir;
pub mod prelude { pub mod prelude {
pub use super::{Launcher, LauncherStyle}; pub use super::{
Launcher,
LauncherStyle,
LauncherBehavior
};
#[cfg(feature = "discord-rpc")] #[cfg(feature = "discord-rpc")]
pub use super::discord_rpc::DiscordRpc; pub use super::discord_rpc::DiscordRpc;
@ -33,6 +37,20 @@ impl Default for LauncherStyle {
} }
} }
#[derive(Debug, Clone, Copy, PartialEq, Eq, Ordinalize, Serialize, Deserialize)]
pub enum LauncherBehavior {
Nothing,
Hide,
Close
}
impl Default for LauncherBehavior {
#[inline]
fn default() -> Self {
Self::Hide
}
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct Launcher { pub struct Launcher {
pub language: String, pub language: String,
@ -43,7 +61,7 @@ pub struct Launcher {
#[cfg(feature = "discord-rpc")] #[cfg(feature = "discord-rpc")]
pub discord_rpc: DiscordRpc, pub discord_rpc: DiscordRpc,
pub auto_close: bool pub behavior: LauncherBehavior
} }
impl Default for Launcher { impl Default for Launcher {
@ -58,7 +76,7 @@ impl Default for Launcher {
#[cfg(feature = "discord-rpc")] #[cfg(feature = "discord-rpc")]
discord_rpc: DiscordRpc::default(), discord_rpc: DiscordRpc::default(),
auto_close: false behavior: LauncherBehavior::default()
} }
} }
} }
@ -103,9 +121,9 @@ impl From<&JsonValue> for Launcher {
None => default.discord_rpc None => default.discord_rpc
}, },
auto_close: match value.get("auto_close") { behavior: match value.get("behavior") {
Some(value) => value.as_bool().unwrap_or(default.auto_close), Some(value) => serde_json::from_value(value.clone()).unwrap_or(default.behavior),
None => default.auto_close None => default.behavior
} }
} }
} }

View file

@ -257,9 +257,5 @@ pub fn run() -> anyhow::Result<()> {
Sessions::update(current, config.get_wine_prefix_path())?; Sessions::update(current, config.get_wine_prefix_path())?;
} }
if config.launcher.auto_close {
std::process::exit(0);
}
Ok(()) Ok(())
} }

View file

@ -12,7 +12,11 @@ use crate::config::schema_blanks::prelude::*;
use crate::pgr::consts::launcher_dir; use crate::pgr::consts::launcher_dir;
pub mod prelude { pub mod prelude {
pub use super::{Launcher, LauncherStyle}; pub use super::{
Launcher,
LauncherStyle,
LauncherBehavior
};
#[cfg(feature = "discord-rpc")] #[cfg(feature = "discord-rpc")]
pub use super::discord_rpc::DiscordRpc; pub use super::discord_rpc::DiscordRpc;
@ -33,6 +37,20 @@ impl Default for LauncherStyle {
} }
} }
#[derive(Debug, Clone, Copy, PartialEq, Eq, Ordinalize, Serialize, Deserialize)]
pub enum LauncherBehavior {
Nothing,
Hide,
Close
}
impl Default for LauncherBehavior {
#[inline]
fn default() -> Self {
Self::Hide
}
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct Launcher { pub struct Launcher {
pub language: String, pub language: String,
@ -43,7 +61,7 @@ pub struct Launcher {
#[cfg(feature = "discord-rpc")] #[cfg(feature = "discord-rpc")]
pub discord_rpc: DiscordRpc, pub discord_rpc: DiscordRpc,
pub auto_close: bool pub behavior: LauncherBehavior
} }
impl Default for Launcher { impl Default for Launcher {
@ -58,7 +76,7 @@ impl Default for Launcher {
#[cfg(feature = "discord-rpc")] #[cfg(feature = "discord-rpc")]
discord_rpc: DiscordRpc::default(), discord_rpc: DiscordRpc::default(),
auto_close: false behavior: LauncherBehavior::default()
} }
} }
} }
@ -103,9 +121,9 @@ impl From<&JsonValue> for Launcher {
None => default.discord_rpc None => default.discord_rpc
}, },
auto_close: match value.get("auto_close") { behavior: match value.get("behavior") {
Some(value) => value.as_bool().unwrap_or(default.auto_close), Some(value) => serde_json::from_value(value.clone()).unwrap_or(default.behavior),
None => default.auto_close None => default.behavior
} }
} }
} }

View file

@ -243,9 +243,5 @@ pub fn run() -> anyhow::Result<()> {
Sessions::update(current, config.get_wine_prefix_path())?; Sessions::update(current, config.get_wine_prefix_path())?;
} }
if config.launcher.auto_close {
std::process::exit(0);
}
Ok(()) Ok(())
} }

View file

@ -14,7 +14,11 @@ use crate::star_rail::consts::launcher_dir;
pub mod discord_rpc; pub mod discord_rpc;
pub mod prelude { pub mod prelude {
pub use super::{Launcher, LauncherStyle}; pub use super::{
Launcher,
LauncherStyle,
LauncherBehavior
};
#[cfg(feature = "discord-rpc")] #[cfg(feature = "discord-rpc")]
pub use super::discord_rpc::DiscordRpc; pub use super::discord_rpc::DiscordRpc;
@ -35,6 +39,20 @@ impl Default for LauncherStyle {
} }
} }
#[derive(Debug, Clone, Copy, PartialEq, Eq, Ordinalize, Serialize, Deserialize)]
pub enum LauncherBehavior {
Nothing,
Hide,
Close
}
impl Default for LauncherBehavior {
#[inline]
fn default() -> Self {
Self::Hide
}
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct Launcher { pub struct Launcher {
pub language: String, pub language: String,
@ -46,7 +64,7 @@ pub struct Launcher {
#[cfg(feature = "discord-rpc")] #[cfg(feature = "discord-rpc")]
pub discord_rpc: DiscordRpc, pub discord_rpc: DiscordRpc,
pub auto_close: bool pub behavior: LauncherBehavior
} }
impl Default for Launcher { impl Default for Launcher {
@ -62,7 +80,7 @@ impl Default for Launcher {
#[cfg(feature = "discord-rpc")] #[cfg(feature = "discord-rpc")]
discord_rpc: DiscordRpc::default(), discord_rpc: DiscordRpc::default(),
auto_close: false behavior: LauncherBehavior::default()
} }
} }
} }
@ -112,9 +130,9 @@ impl From<&JsonValue> for Launcher {
None => default.discord_rpc None => default.discord_rpc
}, },
auto_close: match value.get("auto_close") { behavior: match value.get("behavior") {
Some(value) => value.as_bool().unwrap_or(default.auto_close), Some(value) => serde_json::from_value(value.clone()).unwrap_or(default.behavior),
None => default.auto_close None => default.behavior
} }
} }
} }

View file

@ -258,9 +258,5 @@ pub fn run() -> anyhow::Result<()> {
Sessions::update(current, config.get_wine_prefix_path())?; Sessions::update(current, config.get_wine_prefix_path())?;
} }
if config.launcher.auto_close {
std::process::exit(0);
}
Ok(()) Ok(())
} }