]> git.ipfire.org Git - thirdparty/wireguard-apple.git/commitdiff
macOS: Minor refactor of StatusMenuWindowDelegate
authorRoopesh Chander <roop@roopc.net>
Wed, 15 May 2019 10:46:00 +0000 (16:16 +0530)
committerRoopesh Chander <roop@roopc.net>
Mon, 20 May 2019 11:12:27 +0000 (16:42 +0530)
Signed-off-by: Roopesh Chander <roop@roopc.net>
WireGuard/WireGuard/UI/macOS/AppDelegate.swift
WireGuard/WireGuard/UI/macOS/StatusMenu.swift

index 8dc58256cbfef29d881925b162409fd34e5b3be9..d3e2c0a4a5698b6c5e5603a774b5b72c257ff38e 100644 (file)
@@ -124,9 +124,13 @@ extension AppDelegate {
 }
 
 extension AppDelegate: StatusMenuWindowDelegate {
-    func manageTunnelsWindow() -> NSWindow {
+    func showManageTunnelsWindow(completion: ((NSWindow?) -> Void)?) {
+        guard let tunnelsManager = tunnelsManager else {
+            completion?(nil)
+            return
+        }
         if manageTunnelsWindowObject == nil {
-            manageTunnelsRootVC = ManageTunnelsRootViewController(tunnelsManager: tunnelsManager!)
+            manageTunnelsRootVC = ManageTunnelsRootViewController(tunnelsManager: tunnelsManager)
             let window = NSWindow(contentViewController: manageTunnelsRootVC!)
             window.title = tr("macWindowTitleManageTunnels")
             window.setContentSize(NSSize(width: 800, height: 480))
@@ -134,7 +138,10 @@ extension AppDelegate: StatusMenuWindowDelegate {
             manageTunnelsWindowObject = window
             tunnelsTracker?.manageTunnelsRootVC = manageTunnelsRootVC
         }
-        return manageTunnelsWindowObject!
+        NSApp.setActivationPolicy(.regular)
+        NSApp.activate(ignoringOtherApps: true)
+        manageTunnelsWindowObject!.makeKeyAndOrderFront(self)
+        completion?(manageTunnelsWindowObject)
     }
 }
 
index 4044d4ee149c6b255c183efb870e69b5dabb0edc..f4f999df6b7d8495286273bf18589b4f9c6163fa 100644 (file)
@@ -4,7 +4,7 @@
 import Cocoa
 
 protocol StatusMenuWindowDelegate: class {
-    func manageTunnelsWindow() -> NSWindow
+    func showManageTunnelsWindow(completion: ((NSWindow?) -> Void)?)
 }
 
 class StatusMenu: NSMenu {
@@ -151,18 +151,16 @@ class StatusMenu: NSMenu {
     }
 
     @objc func manageTunnelsClicked() {
-        NSApp.setActivationPolicy(.regular)
-        NSApp.activate(ignoringOtherApps: true)
-        guard let manageTunnelsWindow = windowDelegate?.manageTunnelsWindow() else { return }
-        manageTunnelsWindow.makeKeyAndOrderFront(self)
+        windowDelegate?.showManageTunnelsWindow(completion: nil)
     }
 
     @objc func importTunnelsClicked() {
-        NSApp.setActivationPolicy(.regular)
-        NSApp.activate(ignoringOtherApps: true)
-        guard let manageTunnelsWindow = windowDelegate?.manageTunnelsWindow() else { return }
-        manageTunnelsWindow.makeKeyAndOrderFront(self)
-        ImportPanelPresenter.presentImportPanel(tunnelsManager: tunnelsManager, sourceVC: manageTunnelsWindow.contentViewController)
+        windowDelegate?.showManageTunnelsWindow { [weak self] manageTunnelsWindow in
+            guard let self = self else { return }
+            guard let manageTunnelsWindow = manageTunnelsWindow else { return }
+            ImportPanelPresenter.presentImportPanel(tunnelsManager: self.tunnelsManager,
+                                                    sourceVC: manageTunnelsWindow.contentViewController)
+        }
     }
 }