From 121d2232296e936b68268b75560d5ab6f35bf2cd Mon Sep 17 00:00:00 2001 From: Roopesh Chander Date: Mon, 18 Mar 2019 11:57:09 +0530 Subject: [PATCH] macOS: Tunnels list: Double-click to activate / deactivate Signed-off-by: Roopesh Chander --- .../TunnelsListTableViewController.swift | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/WireGuard/WireGuard/UI/macOS/ViewController/TunnelsListTableViewController.swift b/WireGuard/WireGuard/UI/macOS/ViewController/TunnelsListTableViewController.swift index 0dffd48..f922f61 100644 --- a/WireGuard/WireGuard/UI/macOS/ViewController/TunnelsListTableViewController.swift +++ b/WireGuard/WireGuard/UI/macOS/ViewController/TunnelsListTableViewController.swift @@ -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() {