@objc func editButtonClicked() {
let tunnelEditVC = TunnelEditViewController(tunnelsManager: tunnelsManager, tunnel: tunnel)
+ tunnelEditVC.delegate = self
presentAsSheet(tunnelEditVC)
}
}
}
}
+
+extension TunnelDetailTableViewController: TunnelEditViewControllerDelegate {
+ func tunnelSaved(tunnel: TunnelContainer) {
+ tunnelViewModel = TunnelViewModel(tunnelConfiguration: tunnel.tunnelConfiguration)
+ tableView.reloadData()
+ }
+
+ func tunnelEditingCancelled() {
+ // Nothing to do
+ }
+}
import Cocoa
+protocol TunnelEditViewControllerDelegate: class {
+ func tunnelSaved(tunnel: TunnelContainer)
+ func tunnelEditingCancelled()
+}
+
class TunnelEditViewController: NSViewController {
let nameRow: EditableKeyValueRow = {
let tunnelsManager: TunnelsManager
let tunnel: TunnelContainer?
+ weak var delegate: TunnelEditViewControllerDelegate?
+
var textViewObservationToken: AnyObject?
init(tunnelsManager: TunnelsManager, tunnel: TunnelContainer?) {
return
}
self?.dismiss(self)
+ self?.delegate?.tunnelSaved(tunnel: tunnel)
}
} catch let error as WireGuardAppError {
ErrorPresenter.showErrorAlert(error: error, from: self)
}
@objc func discardButtonClicked() {
+ delegate?.tunnelEditingCancelled()
dismiss(self)
}
}