From 0b1b68165541a6f42b3dcdb729950f9ead2b0109 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Tue, 18 Feb 2025 14:38:08 +0800 Subject: [PATCH] Add system proxy pac to the Windows desktop version --- v2rayN/ServiceLib/ViewModels/StatusBarViewModel.cs | 4 ++++ v2rayN/v2rayN.Desktop/App.axaml | 8 +++++++- v2rayN/v2rayN.Desktop/Views/StatusBarView.axaml | 3 ++- v2rayN/v2rayN.Desktop/Views/StatusBarView.axaml.cs | 5 +++++ v2rayN/v2rayN/Views/StatusBarView.xaml.cs | 2 +- 5 files changed, 19 insertions(+), 3 deletions(-) diff --git a/v2rayN/ServiceLib/ViewModels/StatusBarViewModel.cs b/v2rayN/ServiceLib/ViewModels/StatusBarViewModel.cs index efff6195..7990f219 100644 --- a/v2rayN/ServiceLib/ViewModels/StatusBarViewModel.cs +++ b/v2rayN/ServiceLib/ViewModels/StatusBarViewModel.cs @@ -60,6 +60,9 @@ namespace ServiceLib.ViewModels [Reactive] public int SystemProxySelected { get; set; } + [Reactive] + public bool BlSystemProxyPacVisible { get; set; } + #endregion System Proxy #region UI @@ -96,6 +99,7 @@ namespace ServiceLib.ViewModels SelectedRouting = new(); SelectedServer = new(); RunningServerToolTipText = "-"; + BlSystemProxyPacVisible = Utils.IsWindows(); if (_config.TunModeItem.EnableTun && AllowEnableTun()) { diff --git a/v2rayN/v2rayN.Desktop/App.axaml b/v2rayN/v2rayN.Desktop/App.axaml index 99852cd2..9dc9dd4a 100644 --- a/v2rayN/v2rayN.Desktop/App.axaml +++ b/v2rayN/v2rayN.Desktop/App.axaml @@ -46,6 +46,12 @@ Header="{x:Static resx:ResUI.menuSystemProxyNothing}" IsChecked="{Binding BlSystemProxyNothing}" ToggleType="Radio" /> + @@ -61,4 +67,4 @@ - \ No newline at end of file + diff --git a/v2rayN/v2rayN.Desktop/Views/StatusBarView.axaml b/v2rayN/v2rayN.Desktop/Views/StatusBarView.axaml index 0eff80a3..c619a78f 100644 --- a/v2rayN/v2rayN.Desktop/Views/StatusBarView.axaml +++ b/v2rayN/v2rayN.Desktop/Views/StatusBarView.axaml @@ -60,6 +60,7 @@ + - \ No newline at end of file + diff --git a/v2rayN/v2rayN.Desktop/Views/StatusBarView.axaml.cs b/v2rayN/v2rayN.Desktop/Views/StatusBarView.axaml.cs index 2ecd3ae6..7512ce80 100644 --- a/v2rayN/v2rayN.Desktop/Views/StatusBarView.axaml.cs +++ b/v2rayN/v2rayN.Desktop/Views/StatusBarView.axaml.cs @@ -43,6 +43,11 @@ namespace v2rayN.Desktop.Views }); //spEnableTun.IsVisible = (Utils.IsWindows() || AppHandler.Instance.IsAdministrator); + + if (Utils.IsNonWindows() && cmbSystemProxy.Items.IsReadOnly == false) + { + cmbSystemProxy.Items.RemoveAt(cmbSystemProxy.Items.Count - 1); + } } private async Task UpdateViewHandler(EViewAction action, object? obj) diff --git a/v2rayN/v2rayN/Views/StatusBarView.xaml.cs b/v2rayN/v2rayN/Views/StatusBarView.xaml.cs index ed6177be..90e5c5b6 100644 --- a/v2rayN/v2rayN/Views/StatusBarView.xaml.cs +++ b/v2rayN/v2rayN/Views/StatusBarView.xaml.cs @@ -32,8 +32,8 @@ namespace v2rayN.Views this.OneWayBind(ViewModel, vm => vm.BlSystemProxyPac, v => v.menuSystemProxyPac2.Visibility, conversionHint: BooleanToVisibilityHint.UseHidden, vmToViewConverterOverride: new BooleanToVisibilityTypeConverter()).DisposeWith(disposables); this.BindCommand(ViewModel, vm => vm.SystemProxyClearCmd, v => v.menuSystemProxyClear).DisposeWith(disposables); this.BindCommand(ViewModel, vm => vm.SystemProxySetCmd, v => v.menuSystemProxySet).DisposeWith(disposables); - this.BindCommand(ViewModel, vm => vm.SystemProxyPacCmd, v => v.menuSystemProxyPac).DisposeWith(disposables); this.BindCommand(ViewModel, vm => vm.SystemProxyNothingCmd, v => v.menuSystemProxyNothing).DisposeWith(disposables); + this.BindCommand(ViewModel, vm => vm.SystemProxyPacCmd, v => v.menuSystemProxyPac).DisposeWith(disposables); //routings and servers this.OneWayBind(ViewModel, vm => vm.RoutingItems, v => v.cmbRoutings.ItemsSource).DisposeWith(disposables);