From 12f34008942112c21d228ecf1094eb3ed1f10107 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Tue, 4 Apr 2023 10:20:19 +0800 Subject: [PATCH] Subscription multi-select delete --- v2rayN/v2rayN/ViewModels/SubSettingViewModel.cs | 9 ++++++--- v2rayN/v2rayN/Views/SubSettingWindow.xaml.cs | 6 ++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/v2rayN/v2rayN/ViewModels/SubSettingViewModel.cs b/v2rayN/v2rayN/ViewModels/SubSettingViewModel.cs index 0df1c2f9..86542638 100644 --- a/v2rayN/v2rayN/ViewModels/SubSettingViewModel.cs +++ b/v2rayN/v2rayN/ViewModels/SubSettingViewModel.cs @@ -6,7 +6,6 @@ using ReactiveUI.Fody.Helpers; using Splat; using System.Reactive; using System.Windows; -using System.Windows.Forms; using v2rayN.Base; using v2rayN.Handler; using v2rayN.Mode; @@ -24,6 +23,7 @@ namespace v2rayN.ViewModels public IObservableCollection SubItems => _subItems; [Reactive] public SubItem SelectedSource { get; set; } + public IList SelectedSources { get; set; } public ReactiveCommand SubAddCmd { get; } public ReactiveCommand SubDeleteCmd { get; } @@ -96,12 +96,15 @@ namespace v2rayN.ViewModels private void DeleteSub() { - if (UI.ShowYesNo(ResUI.RemoveServer) == DialogResult.No) + if (UI.ShowYesNo(ResUI.RemoveServer) == MessageBoxResult.No) { return; } - ConfigHandler.DeleteSubItem(ref _config, SelectedSource?.id); + foreach (var it in SelectedSources) + { + ConfigHandler.DeleteSubItem(ref _config, it?.id); + } RefreshSubItems(); _noticeHandler?.Enqueue(ResUI.OperationSuccess); IsModified = true; diff --git a/v2rayN/v2rayN/Views/SubSettingWindow.xaml.cs b/v2rayN/v2rayN/Views/SubSettingWindow.xaml.cs index 7648102f..07e6467d 100644 --- a/v2rayN/v2rayN/Views/SubSettingWindow.xaml.cs +++ b/v2rayN/v2rayN/Views/SubSettingWindow.xaml.cs @@ -3,6 +3,7 @@ using System.ComponentModel; using System.Reactive.Disposables; using System.Windows; using System.Windows.Input; +using v2rayN.Mode; using v2rayN.ViewModels; namespace v2rayN.Views @@ -17,6 +18,7 @@ namespace v2rayN.Views ViewModel = new SubSettingViewModel(this); this.Closing += SubSettingWindow_Closing; lstSubscription.MouseDoubleClick += LstSubscription_MouseDoubleClick; + lstSubscription.SelectionChanged += LstSubscription_SelectionChanged; this.WhenActivated(disposables => { @@ -43,6 +45,10 @@ namespace v2rayN.Views { ViewModel?.EditSub(false); } + private void LstSubscription_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) + { + ViewModel.SelectedSources = lstSubscription.SelectedItems.Cast().ToList(); + } private void menuClose_Click(object sender, System.Windows.RoutedEventArgs e) {