diff options
author | Roopesh Chander <roop@roopc.net> | 2019-03-10 20:02:19 +0530 |
---|---|---|
committer | Roopesh Chander <roop@roopc.net> | 2019-03-10 20:02:19 +0530 |
commit | 9250780ffc8f996bad39fa5c1a7d193232bbb01f (patch) | |
tree | 97452025542f1744b1bbb1479fb286c901efb40c /WireGuard/WireGuard/UI/macOS/ViewController/ManageTunnelsRootViewController.swift | |
parent | TunnelsManager: Support for removing multiple tunnels at a time (diff) | |
download | wireguard-apple-9250780ffc8f996bad39fa5c1a7d193232bbb01f.tar.xz wireguard-apple-9250780ffc8f996bad39fa5c1a7d193232bbb01f.zip |
macOS: Ability to remove multiple tunnels at a time
Signed-off-by: Roopesh Chander <roop@roopc.net>
Diffstat (limited to '')
-rw-r--r-- | WireGuard/WireGuard/UI/macOS/ViewController/ManageTunnelsRootViewController.swift | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/WireGuard/WireGuard/UI/macOS/ViewController/ManageTunnelsRootViewController.swift b/WireGuard/WireGuard/UI/macOS/ViewController/ManageTunnelsRootViewController.swift index 5806547..18b8fcb 100644 --- a/WireGuard/WireGuard/UI/macOS/ViewController/ManageTunnelsRootViewController.swift +++ b/WireGuard/WireGuard/UI/macOS/ViewController/ManageTunnelsRootViewController.swift @@ -77,10 +77,27 @@ class ManageTunnelsRootViewController: NSViewController { } extension ManageTunnelsRootViewController: TunnelsListTableViewControllerDelegate { - func tunnelSelected(tunnel: TunnelContainer) { - let tunnelDetailVC = TunnelDetailTableViewController(tunnelsManager: tunnelsManager, tunnel: tunnel) - setTunnelDetailContentVC(tunnelDetailVC) - self.tunnelDetailVC = tunnelDetailVC + func tunnelsSelected(tunnelIndices: [Int]) { + assert(!tunnelIndices.isEmpty) + if tunnelIndices.count == 1 { + let tunnel = tunnelsManager.tunnel(at: tunnelIndices.first!) + let tunnelDetailVC = TunnelDetailTableViewController(tunnelsManager: tunnelsManager, tunnel: tunnel) + setTunnelDetailContentVC(tunnelDetailVC) + self.tunnelDetailVC = tunnelDetailVC + } else if tunnelIndices.count > 1 { + let multiSelectionVC: ButtonedDetailViewController + if let buttonedDetailVC = tunnelDetailContentVC as? ButtonedDetailViewController { + multiSelectionVC = buttonedDetailVC + } else { + multiSelectionVC = ButtonedDetailViewController() + } + multiSelectionVC.setButtonTitle(tr(format: "macButtonDeleteTunnels (%d)", tunnelIndices.count)) + multiSelectionVC.onButtonClicked = { [weak tunnelsListVC] in + tunnelsListVC?.handleRemoveTunnelAction() + } + setTunnelDetailContentVC(multiSelectionVC) + self.tunnelDetailVC = nil + } } func tunnelsListEmpty() { |