macOS: Select the active tunnel when showing the manage tunnels window
Signed-off-by: Roopesh Chander <roop@roopc.net>
This commit is contained in:
parent
52eec55d36
commit
eabeb8ff05
|
@ -226,6 +226,10 @@ class TunnelsManager {
|
|||
return tunnels[index]
|
||||
}
|
||||
|
||||
func index(of tunnel: TunnelContainer) -> Int? {
|
||||
return tunnels.firstIndex(of: tunnel)
|
||||
}
|
||||
|
||||
func tunnel(named tunnelName: String) -> TunnelContainer? {
|
||||
return tunnels.first { $0.name == tunnelName }
|
||||
}
|
||||
|
|
|
@ -61,7 +61,8 @@ class TunnelsListTableViewController: NSViewController {
|
|||
override func loadView() {
|
||||
tableView.dataSource = self
|
||||
tableView.delegate = self
|
||||
let isSelected = selectTunnel(at: 0)
|
||||
|
||||
let isSelected = selectTunnelInOperation() || selectTunnel(at: 0)
|
||||
if !isSelected {
|
||||
delegate?.tunnelsListEmpty()
|
||||
}
|
||||
|
@ -110,6 +111,18 @@ class TunnelsListTableViewController: NSViewController {
|
|||
view = containerView
|
||||
}
|
||||
|
||||
override func viewWillAppear() {
|
||||
selectTunnelInOperation()
|
||||
}
|
||||
|
||||
@discardableResult
|
||||
func selectTunnelInOperation() -> Bool {
|
||||
if let currentTunnel = tunnelsManager.tunnelInOperation(), let indexToSelect = tunnelsManager.index(of: currentTunnel) {
|
||||
return selectTunnel(at: indexToSelect)
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
@objc func buttonBarClicked(sender: AnyObject?) {
|
||||
guard let buttonBar = sender as? NSSegmentedControl else { return }
|
||||
// We have to resort to explicitly showing the menu instead of using NSSegmentedControl.setMenu()
|
||||
|
|
Loading…
Reference in New Issue