feat: replaced auto_close
option by behavior
This commit is contained in:
parent
4b2e02c10e
commit
42215728a2
8 changed files with 93 additions and 40 deletions
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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(())
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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(())
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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(())
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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(())
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue