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 use super::{
Launcher,
LauncherStyle
LauncherStyle,
LauncherBehavior
};
#[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)]
pub struct Launcher {
pub language: String,
@ -55,7 +70,7 @@ pub struct Launcher {
#[cfg(feature = "environment-emulation")]
pub environment: Environment,
pub auto_close: bool
pub behavior: LauncherBehavior
}
impl Default for Launcher {
@ -74,7 +89,7 @@ impl Default for Launcher {
#[cfg(feature = "environment-emulation")]
environment: Environment::default(),
auto_close: false
behavior: LauncherBehavior::default()
}
}
}
@ -130,9 +145,9 @@ impl From<&JsonValue> for Launcher {
None => default.environment
},
auto_close: match value.get("auto_close") {
Some(value) => value.as_bool().unwrap_or(default.auto_close),
None => default.auto_close
behavior: match value.get("behavior") {
Some(value) => serde_json::from_value(value.clone()).unwrap_or(default.behavior),
None => default.behavior
}
}
}

View file

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

View file

@ -12,7 +12,11 @@ use crate::config::schema_blanks::prelude::*;
use crate::honkai::consts::launcher_dir;
pub mod prelude {
pub use super::{Launcher, LauncherStyle};
pub use super::{
Launcher,
LauncherStyle,
LauncherBehavior
};
#[cfg(feature = "discord-rpc")]
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)]
pub struct Launcher {
pub language: String,
@ -43,7 +61,7 @@ pub struct Launcher {
#[cfg(feature = "discord-rpc")]
pub discord_rpc: DiscordRpc,
pub auto_close: bool
pub behavior: LauncherBehavior
}
impl Default for Launcher {
@ -58,7 +76,7 @@ impl Default for Launcher {
#[cfg(feature = "discord-rpc")]
discord_rpc: DiscordRpc::default(),
auto_close: false
behavior: LauncherBehavior::default()
}
}
}
@ -103,9 +121,9 @@ impl From<&JsonValue> for Launcher {
None => default.discord_rpc
},
auto_close: match value.get("auto_close") {
Some(value) => value.as_bool().unwrap_or(default.auto_close),
None => default.auto_close
behavior: match value.get("behavior") {
Some(value) => serde_json::from_value(value.clone()).unwrap_or(default.behavior),
None => default.behavior
}
}
}

View file

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

View file

@ -12,7 +12,11 @@ use crate::config::schema_blanks::prelude::*;
use crate::pgr::consts::launcher_dir;
pub mod prelude {
pub use super::{Launcher, LauncherStyle};
pub use super::{
Launcher,
LauncherStyle,
LauncherBehavior
};
#[cfg(feature = "discord-rpc")]
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)]
pub struct Launcher {
pub language: String,
@ -43,7 +61,7 @@ pub struct Launcher {
#[cfg(feature = "discord-rpc")]
pub discord_rpc: DiscordRpc,
pub auto_close: bool
pub behavior: LauncherBehavior
}
impl Default for Launcher {
@ -58,7 +76,7 @@ impl Default for Launcher {
#[cfg(feature = "discord-rpc")]
discord_rpc: DiscordRpc::default(),
auto_close: false
behavior: LauncherBehavior::default()
}
}
}
@ -103,9 +121,9 @@ impl From<&JsonValue> for Launcher {
None => default.discord_rpc
},
auto_close: match value.get("auto_close") {
Some(value) => value.as_bool().unwrap_or(default.auto_close),
None => default.auto_close
behavior: match value.get("behavior") {
Some(value) => serde_json::from_value(value.clone()).unwrap_or(default.behavior),
None => default.behavior
}
}
}

View file

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

View file

@ -14,7 +14,11 @@ use crate::star_rail::consts::launcher_dir;
pub mod discord_rpc;
pub mod prelude {
pub use super::{Launcher, LauncherStyle};
pub use super::{
Launcher,
LauncherStyle,
LauncherBehavior
};
#[cfg(feature = "discord-rpc")]
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)]
pub struct Launcher {
pub language: String,
@ -46,7 +64,7 @@ pub struct Launcher {
#[cfg(feature = "discord-rpc")]
pub discord_rpc: DiscordRpc,
pub auto_close: bool
pub behavior: LauncherBehavior
}
impl Default for Launcher {
@ -62,7 +80,7 @@ impl Default for Launcher {
#[cfg(feature = "discord-rpc")]
discord_rpc: DiscordRpc::default(),
auto_close: false
behavior: LauncherBehavior::default()
}
}
}
@ -112,9 +130,9 @@ impl From<&JsonValue> for Launcher {
None => default.discord_rpc
},
auto_close: match value.get("auto_close") {
Some(value) => value.as_bool().unwrap_or(default.auto_close),
None => default.auto_close
behavior: match value.get("behavior") {
Some(value) => serde_json::from_value(value.clone()).unwrap_or(default.behavior),
None => default.behavior
}
}
}

View file

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