From fc9e2de72cd9166572b3099fe0cc8102c9f2f2d0 Mon Sep 17 00:00:00 2001 From: Roopesh Chander Date: Wed, 9 Jan 2019 00:52:11 +0530 Subject: macOS: Update detail view after editing Signed-off-by: Roopesh Chander --- .../ViewController/TunnelDetailTableViewController.swift | 12 ++++++++++++ .../UI/macOS/ViewController/TunnelEditViewController.swift | 9 +++++++++ 2 files changed, 21 insertions(+) (limited to 'WireGuard/WireGuard/UI/macOS') diff --git a/WireGuard/WireGuard/UI/macOS/ViewController/TunnelDetailTableViewController.swift b/WireGuard/WireGuard/UI/macOS/ViewController/TunnelDetailTableViewController.swift index 9e84e12..3c07060 100644 --- a/WireGuard/WireGuard/UI/macOS/ViewController/TunnelDetailTableViewController.swift +++ b/WireGuard/WireGuard/UI/macOS/ViewController/TunnelDetailTableViewController.swift @@ -192,6 +192,7 @@ class TunnelDetailTableViewController: NSViewController { @objc func editButtonClicked() { let tunnelEditVC = TunnelEditViewController(tunnelsManager: tunnelsManager, tunnel: tunnel) + tunnelEditVC.delegate = self presentAsSheet(tunnelEditVC) } @@ -234,3 +235,14 @@ extension TunnelDetailTableViewController: NSTableViewDelegate { } } } + +extension TunnelDetailTableViewController: TunnelEditViewControllerDelegate { + func tunnelSaved(tunnel: TunnelContainer) { + tunnelViewModel = TunnelViewModel(tunnelConfiguration: tunnel.tunnelConfiguration) + tableView.reloadData() + } + + func tunnelEditingCancelled() { + // Nothing to do + } +} diff --git a/WireGuard/WireGuard/UI/macOS/ViewController/TunnelEditViewController.swift b/WireGuard/WireGuard/UI/macOS/ViewController/TunnelEditViewController.swift index d8dbbd2..62eba17 100644 --- a/WireGuard/WireGuard/UI/macOS/ViewController/TunnelEditViewController.swift +++ b/WireGuard/WireGuard/UI/macOS/ViewController/TunnelEditViewController.swift @@ -3,6 +3,11 @@ import Cocoa +protocol TunnelEditViewControllerDelegate: class { + func tunnelSaved(tunnel: TunnelContainer) + func tunnelEditingCancelled() +} + class TunnelEditViewController: NSViewController { let nameRow: EditableKeyValueRow = { @@ -62,6 +67,8 @@ class TunnelEditViewController: NSViewController { let tunnelsManager: TunnelsManager let tunnel: TunnelContainer? + weak var delegate: TunnelEditViewControllerDelegate? + var textViewObservationToken: AnyObject? init(tunnelsManager: TunnelsManager, tunnel: TunnelContainer?) { @@ -149,6 +156,7 @@ class TunnelEditViewController: NSViewController { return } self?.dismiss(self) + self?.delegate?.tunnelSaved(tunnel: tunnel) } } catch let error as WireGuardAppError { ErrorPresenter.showErrorAlert(error: error, from: self) @@ -159,6 +167,7 @@ class TunnelEditViewController: NSViewController { } @objc func discardButtonClicked() { + delegate?.tunnelEditingCancelled() dismiss(self) } } -- cgit v1.2.3-59-g8ed1b