From 47318b5d7003b4d4dada1f3b655d2b0a56a63497 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Fri, 8 Nov 2024 11:11:06 +0800 Subject: [PATCH] Improve the code for Desktop Exit --- .../ViewModels/MainWindowViewModel.cs | 17 --------------- .../v2rayN.Desktop/Views/MainWindow.axaml.cs | 21 +++++++++++-------- 2 files changed, 12 insertions(+), 26 deletions(-) diff --git a/v2rayN/ServiceLib/ViewModels/MainWindowViewModel.cs b/v2rayN/ServiceLib/ViewModels/MainWindowViewModel.cs index 79f2d29f..90293b54 100644 --- a/v2rayN/ServiceLib/ViewModels/MainWindowViewModel.cs +++ b/v2rayN/ServiceLib/ViewModels/MainWindowViewModel.cs @@ -52,8 +52,6 @@ namespace ServiceLib.ViewModels public ReactiveCommand ReloadCmd { get; } - public ReactiveCommand ExitCmd { get; } - [Reactive] public bool BlReloadEnabled { get; set; } @@ -189,11 +187,6 @@ namespace ServiceLib.ViewModels await Reload(); }); - ExitCmd = ReactiveCommand.CreateFromTask(async () => - { - await Exit(); - }); - RegionalPresetDefaultCmd = ReactiveCommand.CreateFromTask(async () => { await ApplyRegionalPreset(EPresetType.Default); @@ -595,16 +588,6 @@ namespace ServiceLib.ViewModels } } - private async Task Exit() - { - if (await _updateView?.Invoke(EViewAction.ShowYesNo, null) == false) - { - return; - } - - await MyAppExitAsync(false); - } - #endregion core job #region Presets diff --git a/v2rayN/v2rayN.Desktop/Views/MainWindow.axaml.cs b/v2rayN/v2rayN.Desktop/Views/MainWindow.axaml.cs index d8e7867e..0825faff 100644 --- a/v2rayN/v2rayN.Desktop/Views/MainWindow.axaml.cs +++ b/v2rayN/v2rayN.Desktop/Views/MainWindow.axaml.cs @@ -36,6 +36,7 @@ namespace v2rayN.Desktop.Views menuPromotion.Click += menuPromotion_Click; menuCheckUpdate.Click += MenuCheckUpdate_Click; menuBackupAndRestore.Click += MenuBackupAndRestore_Click; + menuClose.Click += MenuClose_Click; MessageBus.Current.Listen(EMsgCommand.SendSnackMsg.ToString()).Subscribe(DelegateSnackMsg); ViewModel = new MainWindowViewModel(UpdateViewHandler); @@ -80,7 +81,6 @@ namespace v2rayN.Desktop.Views this.BindCommand(ViewModel, vm => vm.ReloadCmd, v => v.menuReload).DisposeWith(disposables); this.OneWayBind(ViewModel, vm => vm.BlReloadEnabled, v => v.menuReload.IsEnabled).DisposeWith(disposables); - this.BindCommand(ViewModel, vm => vm.ExitCmd, v => v.menuClose).DisposeWith(disposables); switch (_config.UiItem.MainGirdOrientation) { @@ -243,14 +243,6 @@ namespace v2rayN.Desktop.Views Locator.Current.GetService()?.AutofitColumnWidthAsync(), DispatcherPriority.Default); break; - - case EViewAction.ShowYesNo: - if (await UI.ShowYesNo(this, ResUI.menuExitTips) == ButtonResult.No) - { - return false; - } - StorageUI(); - break; } return await Task.FromResult(true); @@ -360,6 +352,17 @@ namespace v2rayN.Desktop.Views DialogHost.Show(_backupAndRestoreView); } + private async void MenuClose_Click(object? sender, RoutedEventArgs e) + { + if (await UI.ShowYesNo(this, ResUI.menuExitTips) == ButtonResult.No) + { + return; + } + StorageUI(); + + await ViewModel?.MyAppExitAsync(false); + } + #endregion Event #region UI