Compare commits

...

23 Commits
6.25 ... 6.27

Author SHA1 Message Date
2dust
4458fd7541 Up 6.27 2023-06-18 16:44:03 +08:00
2dust
f0b03f59ff Up PackageReference 2023-06-18 16:33:18 +08:00
2dust
d5b17b3cfb Update MainWindowViewModel.cs 2023-06-18 16:23:03 +08:00
2dust
9664d1d77f Fix update the pre version 2023-06-18 16:18:50 +08:00
2dust
d329646a52 Merge pull request #3989 from hvvvvvvv/v2rayN_2
Update HotkeyHandler.cs
2023-06-18 09:43:50 +08:00
2dust
8eafe72bb0 Merge pull request #3943 from hsbtr/master
feat: pac rule add chat.openai.com
2023-06-18 09:43:31 +08:00
2dust
c38a0bde65 Optimize interface 2023-06-18 09:42:45 +08:00
2dust
eef5d3cc16 Update DNSSettingWindow.xaml.cs
https://github.com/2dust/v2rayN/issues/3992
2023-06-18 08:49:04 +08:00
咸鱼而已
59ada594a5 Merge pull request #1 from hvvvvvvv/hvvvvvvv-patch-1
Update HotkeyHandler.cs
2023-06-15 17:12:03 +08:00
咸鱼而已
5ec1d18143 Update HotkeyHandler.cs
fix bug
2023-06-15 16:58:04 +08:00
2dust
fd1e1bb6bf AddServerView CanResize 2023-06-11 19:57:00 +08:00
2dust
5d545d8a85 bug fixes 2023-06-08 20:36:13 +08:00
liuyan
e38bc45527 feat: pac rule add chat.openai.com 2023-06-05 17:42:06 +08:00
2dust
1b11425acd up 6.26 2023-06-04 20:31:05 +08:00
2dust
1e67850a80 Add inet6_address for sing-box 2023-06-04 20:30:00 +08:00
2dust
975f89456f Update ProtosLib.csproj 2023-06-04 17:13:37 +08:00
2dust
e267b4b379 Update v2rayN.csproj 2023-06-04 17:13:34 +08:00
2dust
2fd21690a5 Enable extra inbound for tun mode 2023-06-04 17:11:37 +08:00
2dust
b176ad03aa Remove ToolTipText 2023-06-04 16:30:42 +08:00
2dust
152c4802d0 Fix the bug for flow is empty 2023-06-04 16:24:48 +08:00
2dust
8adbc57f23 remove statisticsFreshRate 2023-06-04 16:14:17 +08:00
2dust
d263a78db8 bug fixes 2023-06-04 15:50:38 +08:00
2dust
b94a065c06 Optimize Subscription 2023-06-04 15:50:25 +08:00
32 changed files with 156 additions and 187 deletions

View File

@@ -5982,7 +5982,8 @@ var rules = [
"zyzc9.com",
"zzcartoon.com",
"zzcloud.me",
"zzux.com"
"zzux.com",
"chat.openai.com"
]
]
];

View File

@@ -9,8 +9,8 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Google.Protobuf" Version="3.23.0" />
<PackageReference Include="Grpc.Net.Client" Version="2.53.0" />
<PackageReference Include="Google.Protobuf" Version="3.23.3" />
<PackageReference Include="Grpc.Net.Client" Version="2.54.0" />
<PackageReference Include="Grpc.Tools" Version="2.54.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

View File

@@ -70,5 +70,15 @@ namespace v2rayN.Base
return value;
}
}
public static string UpperFirstChar(this string value)
{
if (string.IsNullOrEmpty(value))
{
return string.Empty;
}
return char.ToUpper(value[0]) + value.Substring(1);
}
}
}

View File

@@ -140,7 +140,6 @@ namespace v2rayN.Handler
config.guiItem = new()
{
enableStatistics = false,
statisticsFreshRate = 1,
};
}
if (config.uiItem == null)
@@ -185,11 +184,6 @@ namespace v2rayN.Handler
config.speedTestItem.speedPingTestUrl = Global.SpeedPingTestUrl;
}
if (config.guiItem.statisticsFreshRate is > 100 or < 1)
{
config.guiItem.statisticsFreshRate = 1;
}
if (config.mux4Sbox == null)
{
config.mux4Sbox = new()
@@ -331,7 +325,6 @@ namespace v2rayN.Handler
config.guiItem = new()
{
enableStatistics = configOld.enableStatistics,
statisticsFreshRate = configOld.statisticsFreshRate,
keepOlderDedupl = configOld.keepOlderDedupl,
ignoreGeoUpdateCore = configOld.ignoreGeoUpdateCore,
autoUpdateInterval = configOld.autoUpdateInterval,
@@ -376,6 +369,10 @@ namespace v2rayN.Handler
{
return -1;
}
if (profileItem.id.IsNullOrEmpty())
{
return -1;
}
AddServerCommon(ref config, profileItem, toFile);
@@ -643,6 +640,10 @@ namespace v2rayN.Handler
{
return -1;
}
if (profileItem.id.IsNullOrEmpty())
{
return -1;
}
AddServerCommon(ref config, profileItem, toFile);
@@ -682,6 +683,10 @@ namespace v2rayN.Handler
{
profileItem.streamSecurity = Global.StreamSecurity;
}
if (profileItem.id.IsNullOrEmpty())
{
return -1;
}
AddServerCommon(ref config, profileItem, toFile);
@@ -807,6 +812,10 @@ namespace v2rayN.Handler
{
profileItem.flow = Global.flows.First();
}
if (profileItem.id.IsNullOrEmpty())
{
return -1;
}
AddServerCommon(ref config, profileItem, toFile);
@@ -1034,7 +1043,7 @@ namespace v2rayN.Handler
addStatus = AddVlessServer(ref config, profileItem, false);
}
if (addStatus == 0 && profileItem.port > 0)
if (addStatus == 0)
{
countServers++;
lstAdd.Add(profileItem);

View File

@@ -107,29 +107,18 @@ namespace v2rayN.Handler
{
try
{
if (_config.tunModeItem.enableTun)
singboxConfig.inbounds.Clear();
if (!_config.tunModeItem.enableTun || (_config.tunModeItem.enableTun && _config.tunModeItem.enableExInbound))
{
singboxConfig.inbounds.Clear();
if (_config.tunModeItem.mtu <= 0)
var inbound = new Inbound4Sbox()
{
_config.tunModeItem.mtu = Convert.ToInt32(Global.TunMtus[0]);
}
if (Utils.IsNullOrEmpty(_config.tunModeItem.stack))
{
_config.tunModeItem.stack = Global.TunStacks[0];
}
type = Global.InboundSocks,
tag = Global.InboundSocks,
listen = Global.Loopback,
};
singboxConfig.inbounds.Add(inbound);
var tunInbound = Utils.FromJson<Inbound4Sbox>(Utils.GetEmbedText(Global.TunSingboxInboundFileName));
tunInbound.mtu = _config.tunModeItem.mtu;
tunInbound.strict_route = _config.tunModeItem.strictRoute;
tunInbound.stack = _config.tunModeItem.stack;
singboxConfig.inbounds.Add(tunInbound);
}
else
{
var inbound = singboxConfig.inbounds[0];
inbound.listen_port = LazyConfig.Instance.GetLocalPort(Global.InboundSocks);
inbound.sniff = _config.inbound[0].sniffingEnabled;
inbound.sniff_override_destination = _config.inbound[0].routeOnly ? false : _config.inbound[0].sniffingEnabled;
@@ -174,6 +163,25 @@ namespace v2rayN.Handler
}
}
}
if (_config.tunModeItem.enableTun)
{
if (_config.tunModeItem.mtu <= 0)
{
_config.tunModeItem.mtu = Convert.ToInt32(Global.TunMtus[0]);
}
if (Utils.IsNullOrEmpty(_config.tunModeItem.stack))
{
_config.tunModeItem.stack = Global.TunStacks[0];
}
var tunInbound = Utils.FromJson<Inbound4Sbox>(Utils.GetEmbedText(Global.TunSingboxInboundFileName));
tunInbound.mtu = _config.tunModeItem.mtu;
tunInbound.strict_route = _config.tunModeItem.strictRoute;
tunInbound.stack = _config.tunModeItem.stack;
singboxConfig.inbounds.Add(tunInbound);
}
}
catch (Exception ex)
{
@@ -255,7 +263,6 @@ namespace v2rayN.Handler
outbound.type = Global.vlessProtocolLite;
outbound.uuid = node.id;
outbound.flow = node.flow;
outbound.packet_encoding = "xudp";
@@ -263,6 +270,10 @@ namespace v2rayN.Handler
{
outboundMux(node, outbound);
}
else
{
outbound.flow = node.flow;
}
}
else if (node.configType == EConfigType.Trojan)
{

View File

@@ -423,7 +423,6 @@ namespace v2rayN.Handler
usersItem = vnextItem.users[0];
}
usersItem.id = node.id;
usersItem.flow = string.Empty;
usersItem.email = Global.userEMail;
usersItem.encryption = node.security;
@@ -462,7 +461,6 @@ namespace v2rayN.Handler
serversItem.address = node.address;
serversItem.port = node.port;
serversItem.password = node.id;
serversItem.flow = string.Empty;
serversItem.ota = false;
serversItem.level = 1;

View File

@@ -113,9 +113,9 @@ namespace v2rayN.Handler
var mdif = (KeyModifiers)_fsModifiers;
var key = KeyInterop.KeyFromVirtualKey(_vkey);
if ((mdif | KeyModifiers.Ctrl) == KeyModifiers.Ctrl) _hotkeyStr.Append($"{KeyModifiers.Ctrl}+");
if ((mdif | KeyModifiers.Alt) == KeyModifiers.Alt) _hotkeyStr.Append($"{KeyModifiers.Alt}+");
if ((mdif | KeyModifiers.Shift) == KeyModifiers.Shift) _hotkeyStr.Append($"{KeyModifiers.Shift}+");
if ((mdif & KeyModifiers.Ctrl) == KeyModifiers.Ctrl) _hotkeyStr.Append($"{KeyModifiers.Ctrl}+");
if ((mdif & KeyModifiers.Alt) == KeyModifiers.Alt) _hotkeyStr.Append($"{KeyModifiers.Alt}+");
if ((mdif & KeyModifiers.Shift) == KeyModifiers.Shift) _hotkeyStr.Append($"{KeyModifiers.Shift}+");
_hotkeyStr.Append(key.ToString());
foreach (var name in _hotkeyTriggerDic[hotkeycode])
@@ -177,4 +177,4 @@ namespace v2rayN.Handler
NoRepeat = 0x4000
}
}
}
}

View File

@@ -629,7 +629,7 @@ namespace v2rayN.Handler
server.security = details.Groups["method"].Value;
server.id = details.Groups["password"].Value;
server.address = details.Groups["hostname"].Value;
server.port = int.Parse(details.Groups["port"].Value);
server.port = Utils.ToInt(details.Groups["port"].Value);
return server;
}

View File

@@ -71,6 +71,7 @@ namespace v2rayN.Handler
webSocket.Abort();
webSocket = null;
Init();
continue;
}
if (webSocket.State != WebSocketState.Open)

View File

@@ -61,8 +61,7 @@ namespace v2rayN.Handler
_updateFunc(server);
}
}
var sleep = _config.guiItem.statisticsFreshRate < 1 ? 1 : _config.guiItem.statisticsFreshRate;
await Task.Delay(1000 * sleep);
await Task.Delay(1000);
await _channel.ConnectAsync();
}
catch

View File

@@ -154,7 +154,7 @@ namespace v2rayN.Handler
_updateFunc = update;
_updateFunc(false, ResUI.MsgUpdateSubscriptionStart);
var subItem = LazyConfig.Instance.SubItems();
var subItem = LazyConfig.Instance.SubItems().OrderBy(t => t.sort).ToList();
if (subItem == null || subItem.Count <= 0)
{
@@ -175,6 +175,10 @@ namespace v2rayN.Handler
//_updateFunc(false, $"{hashCode}{ResUI.MsgNoValidSubscription}");
continue;
}
if (!url.StartsWith(Global.httpsProtocol) && !url.StartsWith(Global.httpProtocol))
{
continue;
}
if (item.enabled == false)
{
_updateFunc(false, $"{hashCode}{ResUI.MsgSkipSubscriptionUpdate}");
@@ -510,7 +514,7 @@ namespace v2rayN.Handler
throw new ArgumentException("Type");
}
if (curVersion >= version)
if (curVersion >= version && version != new SemanticVersion(0, 0, 0))
{
AbsoluteCompleted?.Invoke(this, new ResultEventArgs(false, message));
return;

View File

@@ -88,8 +88,6 @@ namespace v2rayN.Mode
public bool enableStatistics { get; set; }
public int statisticsFreshRate { get; set; }
public bool keepOlderDedupl { get; set; }
public bool ignoreGeoUpdateCore { get; set; } = true;
@@ -162,9 +160,10 @@ namespace v2rayN.Mode
public class TunModeItem
{
public bool enableTun { get; set; }
public bool strictRoute { get; set; }
public bool strictRoute { get; set; } = true;
public string stack { get; set; }
public int mtu { get; set; }
public bool enableExInbound { get; set; }
}
[Serializable]

View File

@@ -185,7 +185,7 @@ namespace v2rayN.Mode
/// <summary>
/// VLESS
/// </summary>
public string flow { get; set; }
public string? flow { get; set; }
}
public class Sniffing4Ray

View File

@@ -2752,15 +2752,6 @@ namespace v2rayN.Resx {
}
}
/// <summary>
/// 查找类似 Statistics freshrate (second) 的本地化字符串。
/// </summary>
public static string TbSettingsStatisticsFreshRate {
get {
return ResourceManager.GetString("TbSettingsStatisticsFreshRate", resourceCulture);
}
}
/// <summary>
/// 查找类似 Subscription conversion Url 的本地化字符串。
/// </summary>

View File

@@ -793,9 +793,6 @@
<data name="TbSettingsStatistics" xml:space="preserve">
<value>فعال کردن آمار (نیاز به راه اندازی مجدد)</value>
</data>
<data name="TbSettingsStatisticsFreshRate" xml:space="preserve">
<value>نرخ تازه سازی آمار (ثانیه)</value>
</data>
<data name="TbSettingsSubConvert" xml:space="preserve">
<value>Subscription conversion Url</value>
</data>

View File

@@ -796,9 +796,6 @@
<data name="TbSettingsStatistics" xml:space="preserve">
<value>Enable Statistics (Require restart)</value>
</data>
<data name="TbSettingsStatisticsFreshRate" xml:space="preserve">
<value>Statistics freshrate (second)</value>
</data>
<data name="TbSettingsSubConvert" xml:space="preserve">
<value>Subscription conversion Url</value>
</data>

View File

@@ -796,9 +796,6 @@
<data name="TbSettingsStatistics" xml:space="preserve">
<value>Включить статистику (требуется перезагрузка)</value>
</data>
<data name="TbSettingsStatisticsFreshRate" xml:space="preserve">
<value>Частота обновления статистики в секундах</value>
</data>
<data name="TbSettingsSubConvert" xml:space="preserve">
<value>URL-адрес конверсии подписки</value>
</data>

View File

@@ -796,9 +796,6 @@
<data name="TbSettingsStatistics" xml:space="preserve">
<value>启用统计(实时网速显示,需重启)</value>
</data>
<data name="TbSettingsStatisticsFreshRate" xml:space="preserve">
<value>统计刷新频率(单位秒)</value>
</data>
<data name="TbSettingsSubConvert" xml:space="preserve">
<value>订阅转换网址(可选)</value>
</data>

View File

@@ -1,11 +1,12 @@
{
"type":"tun",
"tag":"tun-in",
"interface_name":"singbox_tun",
"inet4_address":"172.19.0.1/30",
"mtu":9000,
"auto_route":true,
"strict_route":false,
"stack":"system",
"sniff":true
"type": "tun",
"tag": "tun-in",
"interface_name": "singbox_tun",
"inet4_address": "172.19.0.1/30",
"inet6_address": "fdfe:dcba:9876::1/126",
"mtu": 9000,
"auto_route": true,
"strict_route": false,
"stack": "system",
"sniff": true
}

View File

@@ -45,7 +45,7 @@ namespace v2rayN.Tool
this.major = 0;
this.minor = 0;
this.patch = 0;
this.version = "0.0.0";
//this.version = "0.0.0";
}
}

View File

@@ -167,8 +167,8 @@ namespace v2rayN.ViewModels
[Reactive]
public ImageSource AppIcon { get; set; }
[Reactive]
public bool BlShowTrayTip { get; set; }
//[Reactive]
//public bool BlShowTrayTip { get; set; }
#endregion Menu
@@ -210,8 +210,8 @@ namespace v2rayN.ViewModels
[Reactive]
public string RunningServerDisplay { get; set; }
[Reactive]
public string RunningServerToolTipText { get; set; }
//[Reactive]
//public string RunningServerToolTipText { get; set; }
[Reactive]
public string RunningInfoDisplay { get; set; }
@@ -849,12 +849,12 @@ namespace v2rayN.ViewModels
{
var runningSummary = running.GetSummary();
RunningServerDisplay = $"{ResUI.menuServers}:{runningSummary}";
RunningServerToolTipText = runningSummary;
//RunningServerToolTipText = runningSummary;
}
else
{
RunningServerDisplay =
RunningServerToolTipText = ResUI.CheckServerSettings;
RunningServerDisplay = ResUI.CheckServerSettings;
//RunningServerToolTipText = ResUI.CheckServerSettings;
}
}));
}
@@ -1529,7 +1529,7 @@ namespace v2rayN.ViewModels
private void ChangeSystemProxyStatus(ESysProxyType type, bool blChange)
{
SysProxyHandle.UpdateSysProxy(_config, _config.tunModeItem.enableTun ? true : false);
_noticeHandler?.SendMessage(ResUI.TipChangeSystemProxy, true);
_noticeHandler?.SendMessage(ResUI.TipChangeSystemProxy + _config.sysProxyType.ToString(), true);
Application.Current.Dispatcher.Invoke((Action)(() =>
{
@@ -1686,7 +1686,7 @@ namespace v2rayN.ViewModels
}
CurrentFontSize = _config.uiItem.currentFontSize;
CurrentLanguage = _config.uiItem.currentLanguage;
BlShowTrayTip = _config.uiItem.showTrayTip;
//BlShowTrayTip = _config.uiItem.showTrayTip;
this.WhenAnyValue(
x => x.ColorModeDark,

View File

@@ -51,7 +51,6 @@ namespace v2rayN.ViewModels
[Reactive] public bool AutoRun { get; set; }
[Reactive] public bool EnableStatistics { get; set; }
[Reactive] public int StatisticsFreshRate { get; set; }
[Reactive] public bool KeepOlderDedupl { get; set; }
[Reactive] public bool IgnoreGeoUpdateCore { get; set; }
[Reactive] public bool EnableAutoAdjustMainLvColWidth { get; set; }
@@ -141,7 +140,6 @@ namespace v2rayN.ViewModels
AutoRun = _config.guiItem.autoRun;
EnableStatistics = _config.guiItem.enableStatistics;
StatisticsFreshRate = _config.guiItem.statisticsFreshRate;
KeepOlderDedupl = _config.guiItem.keepOlderDedupl;
IgnoreGeoUpdateCore = _config.guiItem.ignoreGeoUpdateCore;
EnableAutoAdjustMainLvColWidth = _config.uiItem.enableAutoAdjustMainLvColWidth;
@@ -291,11 +289,6 @@ namespace v2rayN.ViewModels
Utils.SetAutoRun(AutoRun);
_config.guiItem.autoRun = AutoRun;
_config.guiItem.enableStatistics = EnableStatistics;
_config.guiItem.statisticsFreshRate = StatisticsFreshRate;
if (_config.guiItem.statisticsFreshRate > 100 || _config.guiItem.statisticsFreshRate < 1)
{
_config.guiItem.statisticsFreshRate = 1;
}
_config.guiItem.keepOlderDedupl = KeepOlderDedupl;
_config.guiItem.ignoreGeoUpdateCore = IgnoreGeoUpdateCore;
_config.uiItem.enableAutoAdjustMainLvColWidth = EnableAutoAdjustMainLvColWidth;

View File

@@ -47,7 +47,7 @@ namespace v2rayN.ViewModels
private void SaveSub()
{
string remarks = SelectedSource.remarks;
if (Utils.IsNullOrEmpty(remarks))
if (string.IsNullOrEmpty(remarks))
{
UI.Show(ResUI.PleaseFillRemarks);
return;

View File

@@ -15,7 +15,7 @@
x:TypeArguments="vms:AddServerViewModel"
Background="{DynamicResource MaterialDesignPaper}"
FontFamily="{x:Static conv:MaterialDesignFonts.MyFont}"
ResizeMode="NoResize"
ResizeMode="CanResize"
ShowInTaskbar="False"
TextElement.FontFamily="{x:Static conv:MaterialDesignFonts.MyFont}"
TextElement.Foreground="{DynamicResource MaterialDesignBody}"

View File

@@ -4,6 +4,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:conv="clr-namespace:v2rayN.Converters"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:reactiveui="http://reactiveui.net"
xmlns:resx="clr-namespace:v2rayN.Resx"
@@ -84,13 +85,15 @@
Cursor="Hand"
Style="{StaticResource DefButton}" />
</StackPanel>
<TextBox
x:Name="txtnormalDNS"
Margin="{StaticResource SettingItemMargin}"
VerticalAlignment="Stretch"
materialDesign:HintAssist.Hint="Http/Socks"
AcceptsReturn="True"
BorderThickness="1"
Style="{StaticResource DefTextBox}"
Style="{StaticResource MaterialDesignOutlinedTextBox}"
TextWrapping="Wrap"
VerticalScrollBarVisibility="Auto" />
</DockPanel>
@@ -122,35 +125,29 @@
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions>
<GroupBox
<TextBox
x:Name="txtnormalDNS2"
Grid.Column="0"
Header=""
Style="{StaticResource MyGroupBox}">
<TextBox
x:Name="txtnormalDNS2"
Margin="{StaticResource SettingItemMargin}"
VerticalAlignment="Stretch"
AcceptsReturn="True"
BorderThickness="1"
Style="{StaticResource DefTextBox}"
TextWrapping="Wrap"
VerticalScrollBarVisibility="Auto" />
</GroupBox>
VerticalAlignment="Stretch"
materialDesign:HintAssist.Hint="Http/Socks"
AcceptsReturn="True"
BorderThickness="1"
Style="{StaticResource MaterialDesignOutlinedTextBox}"
TextWrapping="Wrap"
VerticalScrollBarVisibility="Auto" />
<GridSplitter Grid.Column="1" HorizontalAlignment="Stretch" />
<GroupBox
<TextBox
x:Name="txttunDNS2"
Grid.Column="2"
Header="{x:Static resx:ResUI.TbSettingsTunMode}"
Style="{StaticResource MyGroupBox}">
<TextBox
x:Name="txttunDNS2"
Margin="{StaticResource SettingItemMargin}"
VerticalAlignment="Stretch"
AcceptsReturn="True"
BorderThickness="1"
Style="{StaticResource DefTextBox}"
TextWrapping="Wrap"
VerticalScrollBarVisibility="Auto" />
</GroupBox>
VerticalAlignment="Stretch"
materialDesign:HintAssist.Hint="{x:Static resx:ResUI.TbSettingsTunMode}"
AcceptsReturn="True"
BorderThickness="1"
Style="{StaticResource MaterialDesignOutlinedTextBox}"
TextWrapping="Wrap"
VerticalScrollBarVisibility="Auto" />
</Grid>
</DockPanel>
</TabItem>

View File

@@ -44,7 +44,7 @@ namespace v2rayN.Views
private void linkDnsSingboxObjectDoc_Click(object sender, RoutedEventArgs e)
{
Utils.ProcessStart("http://sing-box.sagernet.org/zh/configuration/dns/");
Utils.ProcessStart("https://sing-box.sagernet.org/zh/configuration/dns/");
}
private void btnCancel_Click(object sender, RoutedEventArgs e)

View File

@@ -209,7 +209,7 @@
<MenuItem
x:Name="menuCheckUpdateN"
Height="{StaticResource MenuItemHeight}"
Header="v2rayN" />
Header="V2rayN" />
<MenuItem
x:Name="menuCheckUpdateV2flyCore"
Height="{StaticResource MenuItemHeight}"
@@ -235,7 +235,7 @@
<MenuItem
x:Name="menuCheckUpdateSingBoxCore"
Height="{StaticResource MenuItemHeight}"
Header="sing-box Core" />
Header="Sing-box Core" />
<Separator Margin="-40,5" />
<MenuItem
x:Name="menuCheckUpdateGeo"
@@ -301,7 +301,7 @@
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
@@ -323,13 +323,13 @@
Margin="8"
IsEnabled="{Binding ElementName=followSystemTheme, Path=IsChecked, Converter={StaticResource InverseBooleanConverter}}" />
<TextBlock
Grid.Row="1"
Grid.Column="0"
VerticalAlignment="Center"
Style="{StaticResource ToolbarTextBlock}"
Text="{x:Static resx:ResUI.TbSettingsFollowSystemTheme}" />
<ToggleButton
<TextBlock
Grid.Row="1"
Grid.Column="0"
VerticalAlignment="Center"
Style="{StaticResource ToolbarTextBlock}"
Text="{x:Static resx:ResUI.TbSettingsFollowSystemTheme}" />
<ToggleButton
x:Name="followSystemTheme"
Grid.Row="1"
Grid.Column="1"
@@ -856,23 +856,6 @@
Header="{x:Static resx:ResUI.menuExit}" />
</ContextMenu>
</tb:TaskbarIcon.ContextMenu>
<tb:TaskbarIcon.TrayToolTip>
<Border
x:Name="borTrayToolTip"
Width="Auto"
Height="Auto"
Background="{DynamicResource MaterialDesignLightBackground}"
BorderBrush="{DynamicResource MaterialDesignDarkBackground}"
BorderThickness="0"
CornerRadius="4">
<TextBlock
Margin="8"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Foreground="{DynamicResource MaterialDesignDarkBackground}"
Text="{Binding Mode=OneWay, Path=ToolTipText}" />
</Border>
</tb:TaskbarIcon.TrayToolTip>
</tb:TaskbarIcon>
<materialDesign:Snackbar x:Name="MainSnackbar" MessageQueue="{materialDesign:MessageQueue}" />
</Grid>

View File

@@ -163,10 +163,10 @@ namespace v2rayN.Views
this.BindCommand(ViewModel, vm => vm.SubUpdateViaProxyCmd, v => v.menuSubUpdateViaProxy2).DisposeWith(disposables);
this.OneWayBind(ViewModel, vm => vm.NotifyIcon, v => v.tbNotify.Icon).DisposeWith(disposables);
this.OneWayBind(ViewModel, vm => vm.RunningServerToolTipText, v => v.tbNotify.ToolTipText).DisposeWith(disposables);
//this.OneWayBind(ViewModel, vm => vm.RunningServerToolTipText, v => v.tbNotify.ToolTipText).DisposeWith(disposables);
this.OneWayBind(ViewModel, vm => vm.NotifyLeftClickCmd, v => v.tbNotify.LeftClickCommand).DisposeWith(disposables);
this.OneWayBind(ViewModel, vm => vm.AppIcon, v => v.Icon).DisposeWith(disposables);
this.OneWayBind(ViewModel, vm => vm.BlShowTrayTip, v => v.borTrayToolTip.Visibility).DisposeWith(disposables);
//this.OneWayBind(ViewModel, vm => vm.BlShowTrayTip, v => v.borTrayToolTip.Visibility).DisposeWith(disposables);
//status bar
this.OneWayBind(ViewModel, vm => vm.InboundDisplay, v => v.txtInboundDisplay.Text).DisposeWith(disposables);
@@ -519,10 +519,14 @@ namespace v2rayN.Views
var coreInfos = LazyConfig.Instance.GetCoreInfos();
foreach (var it in coreInfos)
{
if (it.coreType == ECoreType.v2fly)
{
continue;
}
var item = new MenuItem()
{
Tag = it.coreUrl.Replace(@"/releases", ""),
Header = string.Format(Resx.ResUI.menuWebsiteItem, it.coreType.ToString().Replace("_", " "))
Header = string.Format(Resx.ResUI.menuWebsiteItem, it.coreType.ToString().Replace("_", " ")).UpperFirstChar()
};
item.Click += MenuItem_Click;
menuHelp.Items.Add(item);

View File

@@ -1,12 +1,12 @@
<reactiveui:ReactiveWindow
x:Class="v2rayN.Views.OptionSettingWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:conv="clr-namespace:v2rayN.Converters"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:reactiveui="http://reactiveui.net"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:conv="clr-namespace:v2rayN.Converters"
xmlns:resx="clr-namespace:v2rayN.Resx"
xmlns:vms="clr-namespace:v2rayN.ViewModels"
Title="{x:Static resx:ResUI.menuSetting}"
@@ -498,21 +498,6 @@
Margin="{StaticResource SettingItemMargin}"
HorizontalAlignment="Left" />
<TextBlock
Grid.Row="3"
Grid.Column="0"
Margin="{StaticResource SettingItemMargin}"
VerticalAlignment="Center"
Style="{StaticResource ToolbarTextBlock}"
Text="{x:Static resx:ResUI.TbSettingsStatisticsFreshRate}" />
<ComboBox
x:Name="cmbStatisticsFreshRate"
Grid.Row="3"
Grid.Column="1"
Width="200"
Margin="{StaticResource SettingItemMargin}"
Style="{StaticResource DefComboBox}" />
<TextBlock
Grid.Row="4"
Grid.Column="0"

View File

@@ -44,10 +44,6 @@ namespace v2rayN.Views
cmbmux4SboxProtocol.Items.Add(it);
});
for (int i = 1; i <= 10; i++)
{
cmbStatisticsFreshRate.Items.Add(i);
}
Global.TunMtus.ForEach(it =>
{
cmbMtu.Items.Add(it);
@@ -150,7 +146,6 @@ namespace v2rayN.Views
this.Bind(ViewModel, vm => vm.AutoRun, v => v.togAutoRun.IsChecked).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.EnableStatistics, v => v.togEnableStatistics.IsChecked).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.StatisticsFreshRate, v => v.cmbStatisticsFreshRate.Text).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.KeepOlderDedupl, v => v.togKeepOlderDedupl.IsChecked).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.IgnoreGeoUpdateCore, v => v.togIgnoreGeoUpdateCore.IsChecked).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.EnableAutoAdjustMainLvColWidth, v => v.togEnableAutoAdjustMainLvColWidth.IsChecked).DisposeWith(disposables);

View File

@@ -10,7 +10,7 @@
xmlns:resx="clr-namespace:v2rayN.Resx"
xmlns:vms="clr-namespace:v2rayN.ViewModels"
Title="{x:Static resx:ResUI.menuRoutingRuleSetting}"
Width="900"
Width="960"
Height="700"
x:TypeArguments="vms:RoutingRuleSettingViewModel"
Background="{DynamicResource MaterialDesignPaper}"
@@ -280,7 +280,7 @@
Binding="{Binding outboundTag}"
Header="outboundTag" />
<DataGridTextColumn
Width="100"
Width="80"
Binding="{Binding port}"
Header="port" />
<DataGridTextColumn
@@ -288,15 +288,15 @@
Binding="{Binding protocols}"
Header="protocol" />
<DataGridTextColumn
Width="120"
Width="110"
Binding="{Binding inboundTags}"
Header="inboundTag" />
<DataGridTextColumn
Width="150"
Width="220"
Binding="{Binding domains}"
Header="domain" />
<DataGridTextColumn
Width="150"
Width="220"
Binding="{Binding ips}"
Header="ip" />
<DataGridTextColumn

View File

@@ -10,11 +10,11 @@
<ImplicitUsings>enable</ImplicitUsings>
<ApplicationIcon>v2rayN.ico</ApplicationIcon>
<Copyright>Copyright © 2017-2023 (GPLv3)</Copyright>
<FileVersion>6.25</FileVersion>
<FileVersion>6.27</FileVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Downloader" Version="3.0.4" />
<PackageReference Include="Downloader" Version="3.0.6" />
<PackageReference Include="MaterialDesignThemes" Version="4.9.0" />
<PackageReference Include="H.NotifyIcon.Wpf" Version="2.0.108" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
@@ -25,8 +25,8 @@
<PackageReference Include="ReactiveUI.Fody" Version="18.4.1" />
<PackageReference Include="ReactiveUI.Validation" Version="3.0.22" />
<PackageReference Include="ReactiveUI.WPF" Version="18.4.1" />
<PackageReference Include="Splat.NLog" Version="14.6.8" />
<PackageReference Include="System.Reactive" Version="5.0.0" />
<PackageReference Include="Splat.NLog" Version="14.6.37" />
<PackageReference Include="System.Reactive" Version="6.0.0" />
</ItemGroup>
<ItemGroup>