Add menu option to open ZeroTier Central in the system default browser

This commit is contained in:
Grant Limberg 2017-08-09 14:19:37 -07:00
parent ff5e22031a
commit 6842490c1f
2 changed files with 26 additions and 4 deletions

View File

@ -41,6 +41,9 @@
</CollectionContainer>
<Separator/>
<MenuItem Header="ZeroTier Central"
Click="ToolbarItem_CentralClicked"/>
<MenuItem Header="About..."
Click="ToolbarItem_AboutClicked"/>
<MenuItem Header="Preferences..."

View File

@ -44,6 +44,8 @@ namespace WinUI
private ObservableCollection<MenuItem> _networkCollection = new ObservableCollection<MenuItem>();
private static Boolean shouldShowOnboardProcess = true;
public ObservableCollection<MenuItem> NetworkCollection
{
get { return _networkCollection; }
@ -79,7 +81,12 @@ namespace WinUI
{
if (networks != null)
{
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() =>
if (networks.Count > 0)
{
shouldShowOnboardProcess = false;
}
Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() =>
{
NetworkCollection.Clear();
foreach (ZeroTierNetwork n in networks)
@ -93,6 +100,13 @@ namespace WinUI
NetworkCollection.Add(item);
}
}));
if (shouldShowOnboardProcess)
{
// TODO: Show onboarding process window (on main thread)
shouldShowOnboardProcess = false;
}
}
}
@ -194,6 +208,11 @@ namespace WinUI
joinNetView = null;
}
private void ToolbarItem_CentralClicked(object sender, System.EventArgs e)
{
Process.Start("https://my.zerotier.com");
}
private void ToolbarItem_AboutClicked(object sender, System.EventArgs e)
{
if (aboutView == null)
@ -267,7 +286,7 @@ namespace WinUI
private void ToolbarItem_QuitClicked(object sender, System.EventArgs e)
{
NetworkMonitor.Instance.StopMonitor();
this.Close();
Close();
Application.Current.Shutdown();
}
@ -281,11 +300,11 @@ namespace WinUI
ZeroTierNetwork network = item.DataContext as ZeroTierNetwork;
if (item.IsChecked)
{
APIHandler.Instance.LeaveNetwork(this.Dispatcher, network.NetworkId);
APIHandler.Instance.LeaveNetwork(Dispatcher, network.NetworkId);
}
else
{
APIHandler.Instance.JoinNetwork(this.Dispatcher, network.NetworkId, network.AllowManaged, network.AllowGlobal, network.AllowDefault);
APIHandler.Instance.JoinNetwork(Dispatcher, network.NetworkId, network.AllowManaged, network.AllowGlobal, network.AllowDefault);
}
}
}