From 26a3dbcbe10d48d79fd8e71e8e227dbec577e22e Mon Sep 17 00:00:00 2001 From: lxk955 <164191365+lxk955@users.noreply.github.com> Date: Sat, 27 Apr 2024 20:54:02 +0800 Subject: [PATCH] feat: support display current profile when the mouse is placed on the tray icon #782 (#938) --- src-tauri/src/cmds.rs | 1 + src-tauri/src/core/tray.rs | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src-tauri/src/cmds.rs b/src-tauri/src/cmds.rs index 8f5d4302..49cc9009 100644 --- a/src-tauri/src/cmds.rs +++ b/src-tauri/src/cmds.rs @@ -65,6 +65,7 @@ pub async fn patch_profiles_config(profiles: IProfiles) -> CmdResult { match CoreManager::global().update_config().await { Ok(_) => { handle::Handle::refresh_clash(); + let _ = handle::Handle::update_systray_part(); Config::profiles().apply(); wrap_err!(Config::profiles().data().save_file())?; Ok(()) diff --git a/src-tauri/src/core/tray.rs b/src-tauri/src/core/tray.rs index 055b3d58..1be7b662 100644 --- a/src-tauri/src/core/tray.rs +++ b/src-tauri/src/core/tray.rs @@ -260,13 +260,25 @@ impl Tray { map.insert(false, "off"); map }; - + + let mut current_profile_name = "None".to_string(); + let profiles = Config::profiles(); + let profiles = profiles.latest(); + if let Some(current_profile_uid) = profiles.get_current() { + let current_profile = profiles.get_item(¤t_profile_uid); + current_profile_name = match ¤t_profile.unwrap().name { + Some(profile_name) => profile_name.to_string(), + None => current_profile_name, + }; + }; let _ = tray.set_tooltip(&format!( - "Clash Verge {version}\n{}: {}\n{}: {}", + "Clash Verge {version}\n{}: {}\n{}: {}\n{}: {}", t!("System Proxy", "系统代理"), switch_map[system_proxy], t!("TUN Mode", "Tun 模式"), - switch_map[tun_mode] + switch_map[tun_mode], + t!("Curent Profile", "当前订阅"), + current_profile_name )); Ok(())