diff --git a/v2rayN/v2rayN.Desktop/v2rayN.ico b/v2rayN/v2rayN.Desktop/Assets/v2rayN.ico similarity index 100% rename from v2rayN/v2rayN.Desktop/v2rayN.ico rename to v2rayN/v2rayN.Desktop/Assets/v2rayN.ico diff --git a/v2rayN/v2rayN.Desktop/ViewModels/AppViewModel.cs b/v2rayN/v2rayN.Desktop/ViewModels/AppViewModel.cs deleted file mode 100644 index 4b56a9a5..00000000 --- a/v2rayN/v2rayN.Desktop/ViewModels/AppViewModel.cs +++ /dev/null @@ -1,98 +0,0 @@ -using Avalonia; -using Avalonia.Controls.ApplicationLifetimes; -using ReactiveUI; -using Splat; -using System.Reactive; -using v2rayN.Desktop.Common; - -namespace v2rayN.Desktop.ViewModels -{ - public class AppViewModel : MyReactiveObject - { - public ReactiveCommand<Unit, Unit> SystemProxyClearCmd { get; } - public ReactiveCommand<Unit, Unit> SystemProxySetCmd { get; } - public ReactiveCommand<Unit, Unit> SystemProxyNothingCmd { get; } - public ReactiveCommand<Unit, Unit> AddServerViaClipboardCmd { get; } - public ReactiveCommand<Unit, Unit> SubUpdateCmd { get; } - public ReactiveCommand<Unit, Unit> SubUpdateViaProxyCmd { get; } - public ReactiveCommand<Unit, Unit> ExitCmd { get; } - - public AppViewModel() - { - _config = AppHandler.Instance.Config; - - SystemProxyClearCmd = ReactiveCommand.CreateFromTask(async () => - { - await SetListenerType(ESysProxyType.ForcedClear); - }); - SystemProxySetCmd = ReactiveCommand.CreateFromTask(async () => - { - await SetListenerType(ESysProxyType.ForcedChange); - }); - SystemProxyNothingCmd = ReactiveCommand.CreateFromTask(async () => - { - await SetListenerType(ESysProxyType.Unchanged); - }); - - AddServerViaClipboardCmd = ReactiveCommand.CreateFromTask(async () => - { - await AddServerViaClipboard(); - }); - - SubUpdateCmd = ReactiveCommand.CreateFromTask(async () => - { - await UpdateSubscriptionProcess(false); - }); - SubUpdateViaProxyCmd = ReactiveCommand.CreateFromTask(async () => - { - await UpdateSubscriptionProcess(true); - }); - - ExitCmd = ReactiveCommand.CreateFromTask(async () => - { - await Exit(); - }); - } - - private async Task SetListenerType(ESysProxyType type) - { - if (_config.systemProxyItem.sysProxyType == type) - { - return; - } - - var service = Locator.Current.GetService<StatusBarViewModel>(); - if (service != null) await service.SetListenerType(type); - } - - private async Task AddServerViaClipboard() - { - if (Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) - { - if (desktop.MainWindow != null) - { - var clipboardData = await AvaUtils.GetClipboardData(desktop.MainWindow); - var service = Locator.Current.GetService<MainWindowViewModel>(); - if (service != null) await service.AddServerViaClipboardAsync(clipboardData); - } - } - } - - private async Task UpdateSubscriptionProcess(bool blProxy) - { - var service = Locator.Current.GetService<MainWindowViewModel>(); - if (service != null) await service.UpdateSubscriptionProcess("", blProxy); - } - - private async Task Exit() - { - if (Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) - { - var service = Locator.Current.GetService<MainWindowViewModel>(); - if (service != null) await service.MyAppExitAsync(false); - - desktop.Shutdown(); - } - } - } -} \ No newline at end of file diff --git a/v2rayN/v2rayN.Desktop/Views/ProfilesView.axaml b/v2rayN/v2rayN.Desktop/Views/ProfilesView.axaml index 6adffd7d..53e0e305 100644 --- a/v2rayN/v2rayN.Desktop/Views/ProfilesView.axaml +++ b/v2rayN/v2rayN.Desktop/Views/ProfilesView.axaml @@ -170,10 +170,10 @@ Content="{x:Static resx:ResUI.TipActiveServer}" IsVisible="{Binding isActive}" Theme="{StaticResource TagLabel}" /> - <Label + <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" - Content="{Binding remarks}" /> + Text="{Binding remarks}" /> </StackPanel> </DataTemplate> </DataGridTemplateColumn.CellTemplate> diff --git a/v2rayN/v2rayN.Desktop/Views/ThemeSettingView.axaml b/v2rayN/v2rayN.Desktop/Views/ThemeSettingView.axaml index 42804ce1..f898a1df 100644 --- a/v2rayN/v2rayN.Desktop/Views/ThemeSettingView.axaml +++ b/v2rayN/v2rayN.Desktop/Views/ThemeSettingView.axaml @@ -27,46 +27,32 @@ <StackPanel> <StackPanel Orientation="Horizontal"> <TextBlock - Grid.Row="0" - Grid.Column="0" Width="100" VerticalAlignment="Center" Classes="Margin8" Text="{x:Static resx:ResUI.TbSettingsColorMode}" /> - <ToggleSwitch - x:Name="togDarkMode" - Grid.Row="0" - Grid.Column="1" - Classes="Margin8" /> + <ToggleSwitch x:Name="togDarkMode" Classes="Margin8" /> </StackPanel> <StackPanel Orientation="Horizontal"> <TextBlock - Grid.Row="1" - Grid.Column="0" Width="100" VerticalAlignment="Center" Classes="Margin8" Text="{x:Static resx:ResUI.TbSettingsFontSize}" /> <ComboBox x:Name="cmbCurrentFontSize" - Grid.Row="1" - Grid.Column="1" Width="100" Classes="Margin8" /> </StackPanel> <StackPanel Orientation="Horizontal"> <TextBlock - Grid.Row="2" - Grid.Column="0" Width="100" VerticalAlignment="Center" Classes="Margin8" Text="{x:Static resx:ResUI.TbSettingsLanguage}" /> <ComboBox x:Name="cmbCurrentLanguage" - Grid.Row="2" - Grid.Column="1" Width="100" Classes="Margin8" /> </StackPanel> diff --git a/v2rayN/v2rayN.Desktop/v2rayN.Desktop.csproj b/v2rayN/v2rayN.Desktop/v2rayN.Desktop.csproj index 5319c903..a5750c74 100644 --- a/v2rayN/v2rayN.Desktop/v2rayN.Desktop.csproj +++ b/v2rayN/v2rayN.Desktop/v2rayN.Desktop.csproj @@ -4,7 +4,7 @@ <TargetFramework>net8.0</TargetFramework> <Nullable>enable</Nullable> <ImplicitUsings>enable</ImplicitUsings> - <ApplicationIcon>v2rayN.ico</ApplicationIcon> + <ApplicationIcon>Assets\v2rayN.ico</ApplicationIcon> <BuiltInComInteropSupport>true</BuiltInComInteropSupport> <AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault> </PropertyGroup> @@ -37,7 +37,7 @@ </ItemGroup> <ItemGroup> - <EmbeddedResource Include="v2rayN.ico"> + <EmbeddedResource Include="Assets\v2rayN.ico"> <CopyToOutputDirectory>Never</CopyToOutputDirectory> </EmbeddedResource> </ItemGroup> diff --git a/v2rayN/v2rayN/v2rayN.ico b/v2rayN/v2rayN/Resources/v2rayN.ico similarity index 100% rename from v2rayN/v2rayN/v2rayN.ico rename to v2rayN/v2rayN/Resources/v2rayN.ico diff --git a/v2rayN/v2rayN/v2rayN.csproj b/v2rayN/v2rayN/v2rayN.csproj index 274ea8b8..a0bc58a9 100644 --- a/v2rayN/v2rayN/v2rayN.csproj +++ b/v2rayN/v2rayN/v2rayN.csproj @@ -8,7 +8,7 @@ <UseWPF>true</UseWPF> <ApplicationManifest>app.manifest</ApplicationManifest> <ImplicitUsings>enable</ImplicitUsings> - <ApplicationIcon>v2rayN.ico</ApplicationIcon> + <ApplicationIcon>Resources\v2rayN.ico</ApplicationIcon> <Copyright>Copyright © 2017-2024 (GPLv3)</Copyright> <SupportedOSPlatformVersion>7.0</SupportedOSPlatformVersion> </PropertyGroup> @@ -24,15 +24,13 @@ <ItemGroup> <AdditionalFiles Include="app.manifest" /> - <EmbeddedResource Include="v2rayN.ico"> + <EmbeddedResource Include="Resources\v2rayN.ico"> <CopyToOutputDirectory>Never</CopyToOutputDirectory> </EmbeddedResource> <Resource Include="Resources\NotifyIcon1.ico" /> <Resource Include="Resources\NotifyIcon2.ico" /> <Resource Include="Resources\NotifyIcon3.ico" /> - <Resource Include="v2rayN.ico"> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </Resource> + <Resource Include="Resources\v2rayN.ico" /> </ItemGroup> <ItemGroup>