]> git.ipfire.org Git - thirdparty/wireguard-apple.git/commitdiff
macOS: Update detail view after editing
authorRoopesh Chander <roop@roopc.net>
Tue, 8 Jan 2019 19:22:11 +0000 (00:52 +0530)
committerRoopesh Chander <roop@roopc.net>
Mon, 14 Jan 2019 09:22:35 +0000 (14:52 +0530)
Signed-off-by: Roopesh Chander <roop@roopc.net>
WireGuard/WireGuard/UI/macOS/ViewController/TunnelDetailTableViewController.swift
WireGuard/WireGuard/UI/macOS/ViewController/TunnelEditViewController.swift

index 9e84e120d9099fd8b1add8833ba4f74691dad1ea..3c070606f8a92c919f05bb46e6f0739aca41aa99 100644 (file)
@@ -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
+    }
+}
index d8dbbd20721e1e05d73ba54845d6664d9311b43c..62eba17a4f4e549d20199b724d25c001c56f1584 100644 (file)
@@ -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)
     }
 }