diff --git a/Passepartout/App/Descriptible.swift b/Passepartout/App/Descriptible.swift index 0900a0db..a8646e4c 100644 --- a/Passepartout/App/Descriptible.swift +++ b/Passepartout/App/Descriptible.swift @@ -154,3 +154,21 @@ extension DNSProtocol: CustomStringConvertible { } } } + +extension VPNStatus: UIDescriptible { + public var uiDescription: String { + switch self { + case .connecting: + return L10n.Core.Vpn.connecting + + case .connected: + return L10n.Core.Vpn.active + + case .disconnecting: + return L10n.Core.Vpn.disconnecting + + case .disconnected: + return L10n.Core.Vpn.inactive + } + } +} diff --git a/Passepartout/App/macOS/Menu/StatusMenu.swift b/Passepartout/App/macOS/Menu/StatusMenu.swift index 120b010f..89b94590 100644 --- a/Passepartout/App/macOS/Menu/StatusMenu.swift +++ b/Passepartout/App/macOS/Menu/StatusMenu.swift @@ -215,10 +215,11 @@ class StatusMenu: NSObject { itemToggleVPN = nil itemReconnectVPN = nil statusItem.button?.image = imageStatusInactive + statusItem.button?.toolTip = nil return } - - itemProfileName?.title = service.screenTitle(ProfileKey(profile)) + let profileTitle = service.screenTitle(ProfileKey(profile)) + itemProfileName?.title = profileTitle // itemProfileName?.image = profile.image let needsCredentials = service.needsCredentials(for: profile) @@ -548,6 +549,12 @@ class StatusMenu: NSObject { itemToggleVPN?.title = L10n.App.Service.Cells.Vpn.TurnOn.caption itemToggleVPN?.action = #selector(enableVPN) } + if let profile = service.activeProfile { + let profileTitle = service.screenTitle(ProfileKey(profile)) + statusItem.button?.toolTip = "\(GroupConstants.App.name)\n\(profileTitle)\n\((vpn.status ?? .disconnected).uiDescription)" + } else { + statusItem.button?.toolTip = nil + } switch vpn.status ?? .disconnected { case .connected: