From 68368264a1fa33b4d8c8f1022386c80e8d469e3c Mon Sep 17 00:00:00 2001 From: hishitetsu <66369541+hishitetsu@users.noreply.github.com> Date: Tue, 7 Feb 2023 17:10:05 +0900 Subject: [PATCH] Additional fix to show a confirmation dialog --- .../FilesystemOperations/Helpers/FilesystemHelpers.cs | 5 ++--- src/Files.App/Helpers/RecycleBinHelpers.cs | 6 +++++- src/Files.App/Views/ColumnShellPage.xaml.cs | 4 ++-- src/Files.App/Views/ModernShellPage.xaml.cs | 4 ++-- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/Files.App/Filesystem/FilesystemOperations/Helpers/FilesystemHelpers.cs b/src/Files.App/Filesystem/FilesystemOperations/Helpers/FilesystemHelpers.cs index 029ef5dcbd9d..69fa01cc5cb9 100644 --- a/src/Files.App/Filesystem/FilesystemOperations/Helpers/FilesystemHelpers.cs +++ b/src/Files.App/Filesystem/FilesystemOperations/Helpers/FilesystemHelpers.cs @@ -125,7 +125,7 @@ public async Task DeleteItemsAsync(IEnumerable item.Path).Any(path => RecycleBinHelpers.IsPathUnderRecycleBin(path)); var canBeSentToBin = !deleteFromRecycleBin && await RecycleBinHelpers.HasRecycleBin(source.FirstOrDefault()?.Path); - if (showDialog && UserSettingsService.FoldersSettingsService.ShowConfirmDeleteDialog) // Check if the setting to show a confirmation dialog is on + if (showDialog) { var incomingItems = new List(); List? binItems = null; @@ -258,8 +258,7 @@ public async Task PerformOperationTypeAsync(DataPackageOperation o } if (destination.StartsWith(CommonPaths.RecycleBinPath, StringComparison.Ordinal)) { - showDialog |= UserSettingsService.FoldersSettingsService.ShowConfirmDeleteDialog; - return await RecycleItemsFromClipboard(packageView, destination, showDialog, registerHistory); + return await RecycleItemsFromClipboard(packageView, destination, UserSettingsService.FoldersSettingsService.ShowConfirmDeleteDialog, registerHistory); } else if (operation.HasFlag(DataPackageOperation.Copy)) { diff --git a/src/Files.App/Helpers/RecycleBinHelpers.cs b/src/Files.App/Helpers/RecycleBinHelpers.cs index 3ec77ee553a3..3be8b6df100a 100644 --- a/src/Files.App/Helpers/RecycleBinHelpers.cs +++ b/src/Files.App/Helpers/RecycleBinHelpers.cs @@ -1,6 +1,8 @@ +using CommunityToolkit.Mvvm.DependencyInjection; using Files.App.Extensions; using Files.App.Filesystem; using Files.App.Shell; +using Files.Backend.Services.Settings; using Files.Shared; using Files.Shared.Enums; using Microsoft.UI.Xaml.Controls; @@ -20,6 +22,8 @@ public static class RecycleBinHelpers private static readonly Regex recycleBinPathRegex = new(@"^[A-Z]:\\\$Recycle\.Bin\\", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant); + private static readonly IUserSettingsService userSettingsService = Ioc.Default.GetRequiredService(); + #endregion Private Members public static async Task> EnumerateRecycleBin() @@ -169,7 +173,7 @@ public static async Task DeleteItem(IShellPage associatedInstance) var items = associatedInstance.SlimContentPage.SelectedItems.ToList().Select((item) => StorageHelpers.FromPathAndType( item.ItemPath, item.PrimaryItemAttribute == StorageItemTypes.File ? FilesystemItemType.File : FilesystemItemType.Directory)); - await associatedInstance.FilesystemHelpers.DeleteItemsAsync(items, true, false, true); + await associatedInstance.FilesystemHelpers.DeleteItemsAsync(items, userSettingsService.FoldersSettingsService.ShowConfirmDeleteDialog, false, true); } } } \ No newline at end of file diff --git a/src/Files.App/Views/ColumnShellPage.xaml.cs b/src/Files.App/Views/ColumnShellPage.xaml.cs index af2d466150bd..ba27fbcbe553 100644 --- a/src/Files.App/Views/ColumnShellPage.xaml.cs +++ b/src/Files.App/Views/ColumnShellPage.xaml.cs @@ -714,7 +714,7 @@ private async void KeyboardAccelerator_Invoked(KeyboardAccelerator sender, Keybo var items = SlimContentPage.SelectedItems.ToList().Select((item) => StorageHelpers.FromPathAndType( item.ItemPath, item.PrimaryItemAttribute == StorageItemTypes.File ? FilesystemItemType.File : FilesystemItemType.Directory)); - await FilesystemHelpers.DeleteItemsAsync(items, true, true, true); + await FilesystemHelpers.DeleteItemsAsync(items, UserSettingsService.FoldersSettingsService.ShowConfirmDeleteDialog, true, true); } break; @@ -758,7 +758,7 @@ private async void KeyboardAccelerator_Invoked(KeyboardAccelerator sender, Keybo var items = SlimContentPage.SelectedItems.ToList().Select((item) => StorageHelpers.FromPathAndType( item.ItemPath, item.PrimaryItemAttribute == StorageItemTypes.File ? FilesystemItemType.File : FilesystemItemType.Directory)); - await FilesystemHelpers.DeleteItemsAsync(items, true, false, true); + await FilesystemHelpers.DeleteItemsAsync(items, UserSettingsService.FoldersSettingsService.ShowConfirmDeleteDialog, false, true); } break; diff --git a/src/Files.App/Views/ModernShellPage.xaml.cs b/src/Files.App/Views/ModernShellPage.xaml.cs index 18e524b0ed43..43b0479f4fc9 100644 --- a/src/Files.App/Views/ModernShellPage.xaml.cs +++ b/src/Files.App/Views/ModernShellPage.xaml.cs @@ -725,7 +725,7 @@ private async void KeyboardAccelerator_Invoked(KeyboardAccelerator sender, Keybo var items = SlimContentPage.SelectedItems.ToList().Select((item) => StorageHelpers.FromPathAndType( item.ItemPath, item.PrimaryItemAttribute == StorageItemTypes.File ? FilesystemItemType.File : FilesystemItemType.Directory)); - await FilesystemHelpers.DeleteItemsAsync(items, true, true, true); + await FilesystemHelpers.DeleteItemsAsync(items, UserSettingsService.FoldersSettingsService.ShowConfirmDeleteDialog, true, true); } break; @@ -761,7 +761,7 @@ private async void KeyboardAccelerator_Invoked(KeyboardAccelerator sender, Keybo var items = SlimContentPage.SelectedItems.ToList().Select((item) => StorageHelpers.FromPathAndType( item.ItemPath, item.PrimaryItemAttribute == StorageItemTypes.File ? FilesystemItemType.File : FilesystemItemType.Directory)); - await FilesystemHelpers.DeleteItemsAsync(items, true, false, true); + await FilesystemHelpers.DeleteItemsAsync(items, UserSettingsService.FoldersSettingsService.ShowConfirmDeleteDialog, false, true); } break;