]> git.ipfire.org Git - thirdparty/wireguard-apple.git/commitdiff
macOS: Add About dialog
authorRoopesh Chander <roop@roopc.net>
Fri, 11 Jan 2019 18:50:02 +0000 (00:20 +0530)
committerRoopesh Chander <roop@roopc.net>
Mon, 14 Jan 2019 09:22:37 +0000 (14:52 +0530)
Signed-off-by: Roopesh Chander <roop@roopc.net>
WireGuard/WireGuard/Base.lproj/Localizable.strings
WireGuard/WireGuard/UI/macOS/StatusMenu.swift

index cf73bf30ceba6ed10c879ae989b856dbc2a192a5..ab4211690102ef999e9e2c59ccccc1fe45b85d9c 100644 (file)
 "macMenuAddEmptyTunnel" = "Add empty tunnel...";
 "macMenuExportLog" = "Export log to file...";
 "macMenuExportTunnels" = "Export tunnels to zip...";
+"macMenuAbout" = "About WireGuard";
 "macMenuQuit" = "Quit";
 
 // Mac manage tunnels window
 "macAlertInfoUnrecognizedPeerKey" = "Valid keys are: 'PublicKey', 'PresharedKey', 'AllowedIPs', 'Endpoint' and 'PersistentKeepalive'";
 
 "macAlertMultipleEntriesForKey (%@)" = "There should be only one entry per section for key '%@'";
+
+// Mac about dialog
+
+"macAppVersion (%@)" = "App version: %@";
+"macGoBackendVersion (%@)" = "Go backend version: %@";
index 3a22d25ce13e8a0ec48f27ce839f9e3151825220..78e71ba7d1adcafb9673ef13db7c1af0b19f87df 100644 (file)
@@ -123,6 +123,9 @@ class StatusMenu: NSMenu {
     }
 
     func addApplicationItems() {
+        let aboutItem = NSMenuItem(title: tr("macMenuAbout"), action: #selector(aboutClicked), keyEquivalent: "")
+        aboutItem.target = self
+        addItem(aboutItem)
         let quitItem = NSMenuItem(title: tr("macMenuQuit"), action: #selector(NSApplication.terminate), keyEquivalent: "")
         quitItem.target = NSApp
         addItem(quitItem)
@@ -148,6 +151,21 @@ class StatusMenu: NSMenu {
         manageTunnelsWindow.makeKeyAndOrderFront(self)
         ImportPanelPresenter.presentImportPanel(tunnelsManager: tunnelsManager, sourceVC: manageTunnelsRootVC!)
     }
+
+    @objc func aboutClicked() {
+        var appVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "Unknown"
+        if let appBuild = Bundle.main.infoDictionary?["CFBundleVersion"] as? String {
+            appVersion += " (\(appBuild))"
+        }
+        let appVersionString = [
+            tr(format: "macAppVersion (%@)", appVersion),
+            tr(format: "macGoBackendVersion (%@)", WIREGUARD_GO_VERSION)
+        ].joined(separator: "\n")
+        NSApp.orderFrontStandardAboutPanel(options: [
+            .applicationVersion: appVersionString,
+            .version: ""
+        ])
+    }
 }
 
 extension StatusMenu {