From 917dc1803cf9d63cbe0ee05c80274314a8667e92 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Mon, 30 Jan 2023 13:16:48 +0800 Subject: [PATCH] Optimize custom configuration --- v2rayN/v2rayN/ViewModels/AddServer2ViewModel.cs | 7 ++++++- v2rayN/v2rayN/ViewModels/MainWindowViewModel.cs | 1 + v2rayN/v2rayN/Views/AddServer2Window.xaml.cs | 9 ++++++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/v2rayN/v2rayN/ViewModels/AddServer2ViewModel.cs b/v2rayN/v2rayN/ViewModels/AddServer2ViewModel.cs index f6b80b35..78f78b6f 100644 --- a/v2rayN/v2rayN/ViewModels/AddServer2ViewModel.cs +++ b/v2rayN/v2rayN/ViewModels/AddServer2ViewModel.cs @@ -26,6 +26,7 @@ namespace v2rayN.ViewModels public ReactiveCommand BrowseServerCmd { get; } public ReactiveCommand EditServerCmd { get; } public ReactiveCommand SaveServerCmd { get; } + public bool IsModified { get; set; } public AddServer2ViewModel(ProfileItem profileItem, Window view) { @@ -128,7 +129,11 @@ namespace v2rayN.ViewModels if (ConfigHandler.AddCustomServer(ref _config, item, false) == 0) { _noticeHandler?.Enqueue(ResUI.SuccessfullyImportedCustomServer); - _view.DialogResult = true; + if (!Utils.IsNullOrEmpty(item.indexId)) + { + SelectedSource = Utils.DeepCopy(item); + } + IsModified = true; } else { diff --git a/v2rayN/v2rayN/ViewModels/MainWindowViewModel.cs b/v2rayN/v2rayN/ViewModels/MainWindowViewModel.cs index 38400250..c484e0d8 100644 --- a/v2rayN/v2rayN/ViewModels/MainWindowViewModel.cs +++ b/v2rayN/v2rayN/ViewModels/MainWindowViewModel.cs @@ -800,6 +800,7 @@ namespace v2rayN.ViewModels { subid = _subId, configType = eConfigType, + displayLog = false }; } else diff --git a/v2rayN/v2rayN/Views/AddServer2Window.xaml.cs b/v2rayN/v2rayN/Views/AddServer2Window.xaml.cs index e9293a6d..2a4f89a8 100644 --- a/v2rayN/v2rayN/Views/AddServer2Window.xaml.cs +++ b/v2rayN/v2rayN/Views/AddServer2Window.xaml.cs @@ -44,7 +44,14 @@ namespace v2rayN.Views } private void btnCancel_Click(object sender, System.Windows.RoutedEventArgs e) { - this.Close(); + if (ViewModel?.IsModified == true) + { + this.DialogResult = true; + } + else + { + this.Close(); + } } }