Skip to content

Commit 0077751

Browse files
committed
Add subscription delete functionality to ProfilesView
1 parent fa2b4b3 commit 0077751

3 files changed

Lines changed: 34 additions & 0 deletions

File tree

v2rayN/ServiceLib/ViewModels/ProfilesViewModel.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ public class ProfilesViewModel : MyReactiveObject
7777

7878
public ReactiveCommand<Unit, Unit> AddSubCmd { get; }
7979
public ReactiveCommand<Unit, Unit> EditSubCmd { get; }
80+
public ReactiveCommand<Unit, Unit> DeleteSubCmd { get; }
8081

8182
#endregion Menu
8283

@@ -235,6 +236,10 @@ public ProfilesViewModel(Func<EViewAction, object?, Task<bool>>? updateView)
235236
{
236237
await EditSubAsync(false);
237238
});
239+
DeleteSubCmd = ReactiveCommand.CreateFromTask(async () =>
240+
{
241+
await DeleteSubAsync();
242+
});
238243

239244
#endregion WhenAnyValue && ReactiveCommand
240245

@@ -884,5 +889,23 @@ private async Task EditSubAsync(bool blNew)
884889
}
885890
}
886891

892+
private async Task DeleteSubAsync()
893+
{
894+
var item = await AppManager.Instance.GetSubItem(_config.SubIndexId);
895+
if (item is null)
896+
{
897+
return;
898+
}
899+
900+
if (await _updateView?.Invoke(EViewAction.ShowYesNo, null) == false)
901+
{
902+
return;
903+
}
904+
await ConfigHandler.DeleteSubItem(_config, item.Id);
905+
906+
await RefreshSubscriptions();
907+
await SubSelectedChangedAsync(true);
908+
}
909+
887910
#endregion Subscription
888911
}

v2rayN/v2rayN.Desktop/Views/ProfilesView.axaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,14 @@
2828
<WrapPanel />
2929
</ItemsPanelTemplate>
3030
</ListBox.ItemsPanel>
31+
32+
<ListBox.ContextMenu>
33+
<ContextMenu>
34+
<MenuItem x:Name="menuSubEdit" Header="{x:Static resx:ResUI.menuSubEdit}" />
35+
<MenuItem x:Name="menuSubAdd" Header="{x:Static resx:ResUI.menuSubAdd}" />
36+
<MenuItem x:Name="menuSubDelete" Header="{x:Static resx:ResUI.menuSubDelete}" />
37+
</ContextMenu>
38+
</ListBox.ContextMenu>
3139
</ListBox>
3240

3341
<Button

v2rayN/v2rayN.Desktop/Views/ProfilesView.axaml.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ public ProfilesView(Window window)
4949
this.Bind(ViewModel, vm => vm.ServerFilter, v => v.txtServerFilter.Text).DisposeWith(disposables);
5050
this.BindCommand(ViewModel, vm => vm.AddSubCmd, v => v.btnAddSub).DisposeWith(disposables);
5151
this.BindCommand(ViewModel, vm => vm.EditSubCmd, v => v.btnEditSub).DisposeWith(disposables);
52+
this.BindCommand(ViewModel, vm => vm.EditSubCmd, v => v.menuSubEdit).DisposeWith(disposables);
53+
this.BindCommand(ViewModel, vm => vm.AddSubCmd, v => v.menuSubAdd).DisposeWith(disposables);
54+
this.BindCommand(ViewModel, vm => vm.DeleteSubCmd, v => v.menuSubDelete).DisposeWith(disposables);
5255

5356
//servers delete
5457
this.BindCommand(ViewModel, vm => vm.EditServerCmd, v => v.menuEditServer).DisposeWith(disposables);

0 commit comments

Comments
 (0)