From d57e343245558312847dc37ecdbebf6b65b6a66e Mon Sep 17 00:00:00 2001 From: Grant Limberg Date: Sun, 26 Jun 2016 17:21:45 -0700 Subject: add UI elements in network details for allowDefault, allowGlobal, allowManaged --- ZeroTier One/Network.swift | 10 + ZeroTier One/NetworkInfoCell.swift | 4 + ZeroTier One/ShowNetworksViewController.swift | 17 ++ ZeroTier One/ShowNetworksViewController.xib | 280 +++++++++++++++----------- 4 files changed, 197 insertions(+), 114 deletions(-) diff --git a/ZeroTier One/Network.swift b/ZeroTier One/Network.swift index 2e66ac8e..b344b6c2 100644 --- a/ZeroTier One/Network.swift +++ b/ZeroTier One/Network.swift @@ -260,3 +260,13 @@ class Network: NSObject, NSCoding { aCoder.encodeBool(self.allowDefault, forKey: PropertyKeys.allowDefaultKey) } } + +func defaultRouteExists(netList: [Network]) -> Bool { + for net in netList { + if net.allowDefault { + return true + } + } + + return false +} diff --git a/ZeroTier One/NetworkInfoCell.swift b/ZeroTier One/NetworkInfoCell.swift index c31fcb91..427bdc84 100644 --- a/ZeroTier One/NetworkInfoCell.swift +++ b/ZeroTier One/NetworkInfoCell.swift @@ -24,6 +24,10 @@ class NetworkInfoCell: NSTableCellView { @IBOutlet var deviceField: NSTextField! @IBOutlet var addressesField: NSTextField! + @IBOutlet var allowManaged: NSButton! + @IBOutlet var allowGlobal: NSButton! + @IBOutlet var allowDefault: NSButton! + @IBOutlet var connectedCheckbox: NSButton! @IBOutlet var deleteButton: NSButton! diff --git a/ZeroTier One/ShowNetworksViewController.swift b/ZeroTier One/ShowNetworksViewController.swift index e8b9e332..250cc73a 100644 --- a/ZeroTier One/ShowNetworksViewController.swift +++ b/ZeroTier One/ShowNetworksViewController.swift @@ -77,6 +77,23 @@ class ShowNetworksViewController: NSViewController, NSTableViewDelegate, NSTable cell.deviceField.stringValue = network.portDeviceName + if network.allowDefault { + cell.allowDefault.state = NSOnState + } + else { + cell.allowDefault.state = NSOffState + + if defaultRouteExists(networkList) { + cell.allowDefault.enabled = false + } + else { + cell.allowDefault.enabled = true + } + } + + cell.allowGlobal.state = (network.allowGlobal ? NSOnState : NSOffState) + cell.allowManaged.state = (network.allowManaged ? NSOnState : NSOffState) + cell.addressesField.stringValue = "" for nw in network.assignedAddresses { diff --git a/ZeroTier One/ShowNetworksViewController.xib b/ZeroTier One/ShowNetworksViewController.xib index 69120fc9..74582eb6 100644 --- a/ZeroTier One/ShowNetworksViewController.xib +++ b/ZeroTier One/ShowNetworksViewController.xib @@ -16,13 +16,13 @@ - + - + @@ -43,83 +43,75 @@ - + - - - - - - - - - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -127,143 +119,203 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3