瀏覽代碼

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

Grant Limberg 8 年之前
父節點
當前提交
6842490c1f
共有 2 個文件被更改,包括 26 次插入4 次删除
  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>
 
 							<Separator/>
+							<MenuItem Header="ZeroTier Central"
+												Click="ToolbarItem_CentralClicked"/>
+								
 							<MenuItem Header="About..."
                                       Click="ToolbarItem_AboutClicked"/>
 							<MenuItem Header="Preferences..."

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

@@ -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);
                     }
                 }   
             }