]> git.ipfire.org Git - thirdparty/wireguard-apple.git/commitdiff
macOS: Tunnels list: Double-click to activate / deactivate
authorRoopesh Chander <roop@roopc.net>
Mon, 18 Mar 2019 06:27:09 +0000 (11:57 +0530)
committerRoopesh Chander <roop@roopc.net>
Mon, 18 Mar 2019 06:33:41 +0000 (12:03 +0530)
Signed-off-by: Roopesh Chander <roop@roopc.net>
WireGuard/WireGuard/UI/macOS/ViewController/TunnelsListTableViewController.swift

index 0dffd48104d3848182c5fda78f95c3dd042991eb..f922f615e86146455efe641d3bfe0672368bd23a 100644 (file)
@@ -78,6 +78,8 @@ class TunnelsListTableViewController: NSViewController {
         tableView.dataSource = self
         tableView.delegate = self
 
+        tableView.doubleAction = #selector(listDoubleClicked(sender:))
+
         let isSelected = selectTunnelInOperation() || selectTunnel(at: 0)
         if !isSelected {
             delegate?.tunnelsListEmpty()
@@ -242,6 +244,17 @@ class TunnelsListTableViewController: NSViewController {
         }
     }
 
+    @objc func listDoubleClicked(sender: AnyObject) {
+        let tunnelIndex = tableView.clickedRow
+        guard tunnelIndex >= 0 && tunnelIndex < tunnelsManager.numberOfTunnels() else { return }
+        let tunnel = tunnelsManager.tunnel(at: tunnelIndex)
+        if tunnel.status == .inactive {
+            tunnelsManager.startActivation(of: tunnel)
+        } else if tunnel.status == .active {
+            tunnelsManager.startDeactivation(of: tunnel)
+        }
+    }
+
     @discardableResult
     private func selectTunnel(at index: Int) -> Bool {
         if index < tunnelsManager.numberOfTunnels() {