mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-01-29 17:15:38 +08:00
refactor: update update_icon method to require a non-optional verge reference and adjust related calls (#5417)
This commit is contained in:
@@ -348,7 +348,7 @@ impl Tray {
|
|||||||
|
|
||||||
/// 更新托盘图标
|
/// 更新托盘图标
|
||||||
#[cfg(target_os = "macos")]
|
#[cfg(target_os = "macos")]
|
||||||
pub async fn update_icon(&self, verge: Option<&IVerge>) -> Result<()> {
|
pub async fn update_icon(&self, verge: &IVerge) -> Result<()> {
|
||||||
if handle::Handle::global().is_exiting() {
|
if handle::Handle::global().is_exiting() {
|
||||||
logging!(debug, Type::Tray, "应用正在退出,跳过托盘图标更新");
|
logging!(debug, Type::Tray, "应用正在退出,跳过托盘图标更新");
|
||||||
return Ok(());
|
return Ok(());
|
||||||
@@ -368,11 +368,6 @@ impl Tray {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let verge = match verge {
|
|
||||||
Some(v) => v,
|
|
||||||
None => &Config::verge().await.data_arc(),
|
|
||||||
};
|
|
||||||
|
|
||||||
let system_mode = verge.enable_system_proxy.as_ref().unwrap_or(&false);
|
let system_mode = verge.enable_system_proxy.as_ref().unwrap_or(&false);
|
||||||
let tun_mode = verge.enable_tun_mode.as_ref().unwrap_or(&false);
|
let tun_mode = verge.enable_tun_mode.as_ref().unwrap_or(&false);
|
||||||
|
|
||||||
@@ -395,7 +390,7 @@ impl Tray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(not(target_os = "macos"))]
|
#[cfg(not(target_os = "macos"))]
|
||||||
pub async fn update_icon(&self, verge: Option<&IVerge>) -> Result<()> {
|
pub async fn update_icon(&self, verge: &IVerge) -> Result<()> {
|
||||||
if handle::Handle::global().is_exiting() {
|
if handle::Handle::global().is_exiting() {
|
||||||
logging!(debug, Type::Tray, "应用正在退出,跳过托盘图标更新");
|
logging!(debug, Type::Tray, "应用正在退出,跳过托盘图标更新");
|
||||||
return Ok(());
|
return Ok(());
|
||||||
@@ -415,11 +410,6 @@ impl Tray {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let verge = match verge {
|
|
||||||
Some(v) => v,
|
|
||||||
None => &Config::verge().await.data_arc(),
|
|
||||||
};
|
|
||||||
|
|
||||||
let system_mode = verge.enable_system_proxy.as_ref().unwrap_or(&false);
|
let system_mode = verge.enable_system_proxy.as_ref().unwrap_or(&false);
|
||||||
let tun_mode = verge.enable_tun_mode.as_ref().unwrap_or(&false);
|
let tun_mode = verge.enable_tun_mode.as_ref().unwrap_or(&false);
|
||||||
|
|
||||||
@@ -510,8 +500,9 @@ impl Tray {
|
|||||||
logging!(debug, Type::Tray, "应用正在退出,跳过托盘局部更新");
|
logging!(debug, Type::Tray, "应用正在退出,跳过托盘局部更新");
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
let verge = Config::verge().await.data_arc();
|
||||||
self.update_menu().await?;
|
self.update_menu().await?;
|
||||||
self.update_icon(None).await?;
|
self.update_icon(&verge).await?;
|
||||||
self.update_tooltip().await?;
|
self.update_tooltip().await?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,7 +82,12 @@ pub async fn change_clash_mode(mode: String) {
|
|||||||
if clash_data.save_config().await.is_ok() {
|
if clash_data.save_config().await.is_ok() {
|
||||||
handle::Handle::refresh_clash();
|
handle::Handle::refresh_clash();
|
||||||
logging_error!(Type::Tray, tray::Tray::global().update_menu().await);
|
logging_error!(Type::Tray, tray::Tray::global().update_menu().await);
|
||||||
logging_error!(Type::Tray, tray::Tray::global().update_icon(None).await);
|
logging_error!(
|
||||||
|
Type::Tray,
|
||||||
|
tray::Tray::global()
|
||||||
|
.update_icon(&Config::verge().await.data_arc())
|
||||||
|
.await
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
let is_auto_close_connection = Config::verge()
|
let is_auto_close_connection = Config::verge()
|
||||||
|
|||||||
@@ -22,7 +22,12 @@ pub async fn patch_clash(patch: Mapping) -> Result<()> {
|
|||||||
} else {
|
} else {
|
||||||
if patch.get("mode").is_some() {
|
if patch.get("mode").is_some() {
|
||||||
logging_error!(Type::Tray, tray::Tray::global().update_menu().await);
|
logging_error!(Type::Tray, tray::Tray::global().update_menu().await);
|
||||||
logging_error!(Type::Tray, tray::Tray::global().update_icon(None).await);
|
logging_error!(
|
||||||
|
Type::Tray,
|
||||||
|
tray::Tray::global()
|
||||||
|
.update_icon(&Config::verge().await.data_arc())
|
||||||
|
.await
|
||||||
|
);
|
||||||
}
|
}
|
||||||
Config::runtime()
|
Config::runtime()
|
||||||
.await
|
.await
|
||||||
@@ -213,7 +218,7 @@ async fn process_terminated_flags(update_flags: i32, patch: &IVerge) -> Result<(
|
|||||||
}
|
}
|
||||||
if (update_flags & (UpdateFlags::SystrayIcon as i32)) != 0 {
|
if (update_flags & (UpdateFlags::SystrayIcon as i32)) != 0 {
|
||||||
tray::Tray::global()
|
tray::Tray::global()
|
||||||
.update_icon(Some(&Config::verge().await.latest_arc()))
|
.update_icon(&Config::verge().await.data_arc())
|
||||||
.await?;
|
.await?;
|
||||||
}
|
}
|
||||||
if (update_flags & (UpdateFlags::SystrayTooltip as i32)) != 0 {
|
if (update_flags & (UpdateFlags::SystrayTooltip as i32)) != 0 {
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ pub async fn init_logger() -> Result<()> {
|
|||||||
// TODO 提供 runtime 级别实时修改
|
// TODO 提供 runtime 级别实时修改
|
||||||
let (log_level, log_max_size, log_max_count) = {
|
let (log_level, log_max_size, log_max_count) = {
|
||||||
let verge_guard = Config::verge().await;
|
let verge_guard = Config::verge().await;
|
||||||
let verge = verge_guard.latest_arc();
|
let verge = verge_guard.data_arc();
|
||||||
(
|
(
|
||||||
verge.get_log_level(),
|
verge.get_log_level(),
|
||||||
verge.app_log_max_size.unwrap_or(128),
|
verge.app_log_max_size.unwrap_or(128),
|
||||||
@@ -89,7 +89,7 @@ pub async fn init_logger() -> Result<()> {
|
|||||||
pub async fn sidecar_writer() -> Result<FileLogWriter> {
|
pub async fn sidecar_writer() -> Result<FileLogWriter> {
|
||||||
let (log_max_size, log_max_count) = {
|
let (log_max_size, log_max_count) = {
|
||||||
let verge_guard = Config::verge().await;
|
let verge_guard = Config::verge().await;
|
||||||
let verge = verge_guard.latest_arc();
|
let verge = verge_guard.data_arc();
|
||||||
(
|
(
|
||||||
verge.app_log_max_size.unwrap_or(128),
|
verge.app_log_max_size.unwrap_or(128),
|
||||||
verge.app_log_max_count.unwrap_or(8),
|
verge.app_log_max_count.unwrap_or(8),
|
||||||
@@ -117,7 +117,7 @@ pub async fn sidecar_writer() -> Result<FileLogWriter> {
|
|||||||
pub async fn service_writer_config() -> Result<WriterConfig> {
|
pub async fn service_writer_config() -> Result<WriterConfig> {
|
||||||
let (log_max_size, log_max_count) = {
|
let (log_max_size, log_max_count) = {
|
||||||
let verge_guard = Config::verge().await;
|
let verge_guard = Config::verge().await;
|
||||||
let verge = verge_guard.latest_arc();
|
let verge = verge_guard.data_arc();
|
||||||
(
|
(
|
||||||
verge.app_log_max_size.unwrap_or(128),
|
verge.app_log_max_size.unwrap_or(128),
|
||||||
verge.app_log_max_count.unwrap_or(8),
|
verge.app_log_max_count.unwrap_or(8),
|
||||||
@@ -142,7 +142,7 @@ pub async fn delete_log() -> Result<()> {
|
|||||||
|
|
||||||
let auto_log_clean = {
|
let auto_log_clean = {
|
||||||
let verge = Config::verge().await;
|
let verge = Config::verge().await;
|
||||||
let verge = verge.latest_arc();
|
let verge = verge.data_arc();
|
||||||
verge.auto_log_clean.unwrap_or(0)
|
verge.auto_log_clean.unwrap_or(0)
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -517,7 +517,7 @@ pub async fn startup_script() -> Result<()> {
|
|||||||
let app_handle = handle::Handle::app_handle();
|
let app_handle = handle::Handle::app_handle();
|
||||||
let script_path = {
|
let script_path = {
|
||||||
let verge = Config::verge().await;
|
let verge = Config::verge().await;
|
||||||
let verge = verge.latest_arc();
|
let verge = verge.data_arc();
|
||||||
verge.startup_script.clone().unwrap_or_else(|| "".into())
|
verge.startup_script.clone().unwrap_or_else(|| "".into())
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -159,10 +159,10 @@ impl NetworkManager {
|
|||||||
ProxyType::None => None,
|
ProxyType::None => None,
|
||||||
ProxyType::Localhost => {
|
ProxyType::Localhost => {
|
||||||
let port = {
|
let port = {
|
||||||
let verge_port = Config::verge().await.latest_arc().verge_mixed_port;
|
let verge_port = Config::verge().await.data_arc().verge_mixed_port;
|
||||||
match verge_port {
|
match verge_port {
|
||||||
Some(port) => port,
|
Some(port) => port,
|
||||||
None => Config::clash().await.latest_arc().get_mixed_port(),
|
None => Config::clash().await.data_arc().get_mixed_port(),
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let proxy_scheme = format!("http://127.0.0.1:{port}");
|
let proxy_scheme = format!("http://127.0.0.1:{port}");
|
||||||
|
|||||||
@@ -91,15 +91,15 @@ pub fn embed_server() {
|
|||||||
let clash_config = Config::clash().await;
|
let clash_config = Config::clash().await;
|
||||||
|
|
||||||
let pac_content = verge_config
|
let pac_content = verge_config
|
||||||
.latest_arc()
|
.data_arc()
|
||||||
.pac_file_content
|
.pac_file_content
|
||||||
.clone()
|
.clone()
|
||||||
.unwrap_or_else(|| DEFAULT_PAC.into());
|
.unwrap_or_else(|| DEFAULT_PAC.into());
|
||||||
|
|
||||||
let pac_port = verge_config
|
let pac_port = verge_config
|
||||||
.latest_arc()
|
.data_arc()
|
||||||
.verge_mixed_port
|
.verge_mixed_port
|
||||||
.unwrap_or_else(|| clash_config.latest_arc().get_mixed_port());
|
.unwrap_or_else(|| clash_config.data_arc().get_mixed_port());
|
||||||
|
|
||||||
let pac = warp::path!("commands" / "pac").map(move || {
|
let pac = warp::path!("commands" / "pac").map(move || {
|
||||||
let processed_content = pac_content.replace("%mixed-port%", &format!("{pac_port}"));
|
let processed_content = pac_content.replace("%mixed-port%", &format!("{pac_port}"));
|
||||||
|
|||||||
Reference in New Issue
Block a user