Browse Source

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

Grant Limberg 8 years ago
parent
commit
6842490c1f
2 changed files with 26 additions and 4 deletions
  1. 3 0
      windows/WinUI/ToolbarItem.xaml
  2. 23 4
      windows/WinUI/ToolbarItem.xaml.cs

+ 3 - 0
windows/WinUI/ToolbarItem.xaml

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

+ 23 - 4
windows/WinUI/ToolbarItem.xaml.cs

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