Skip to content

Commit f216d2b

Browse files
authored
Feature: Add Skip and Skip All buttons to File In Use dialog (#18540)
1 parent 2d3fed1 commit f216d2b

4 files changed

Lines changed: 16 additions & 6 deletions

File tree

src/Files.App/Dialogs/FilesystemOperationDialog.xaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
xmlns:vm="using:Files.App.ViewModels.Dialogs.FileSystemDialog"
1313
x:Name="RootDialog"
1414
Title="{x:Bind ViewModel.Title, Mode=OneWay}"
15+
CloseButtonText="{x:Bind ViewModel.CloseButtonText, Mode=OneWay}"
1516
Closing="RootDialog_Closing"
1617
CornerRadius="{StaticResource OverlayCornerRadius}"
1718
DefaultButton="Primary"

src/Files.App/Helpers/Dialog/DynamicDialogFactory.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,9 @@ public static DynamicDialog GetFor_FileInUseDialog(List<Win32Process> lockingPro
146146
TitleText = Strings.FileInUseDialog_Title.GetLocalizedResource(),
147147
SubtitleText = lockingProcess.IsEmpty() ? Strings.FileInUseDialog_Text.GetLocalizedResource() :
148148
string.Format(Strings.FileInUseByDialog_Text.GetLocalizedResource(), string.Join(", ", lockingProcess.Select(x => $"{x.AppName ?? x.Name} (PID: {x.Pid})"))),
149-
PrimaryButtonText = "OK",
150-
DynamicButtons = DynamicDialogButtons.Primary
149+
PrimaryButtonText = Strings.Retry.GetLocalizedResource(),
150+
SecondaryButtonText = Strings.Skip.GetLocalizedResource(),
151+
DynamicButtons = DynamicDialogButtons.Primary | DynamicDialogButtons.Secondary | DynamicDialogButtons.Cancel
151152
});
152153
return dialog;
153154
}

src/Files.App/Utils/Storage/Operations/ShellFilesystemOperations.cs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -857,10 +857,17 @@ private Task<DialogResult> GetFileInUseDialog(IEnumerable<string> source, IEnume
857857
? Strings.FileInUseDialog_Text.GetLocalizedResource()
858858
: string.Format(Strings.FileInUseByDialog_Text.GetLocalizedResource(), string.Join(", ", lockingProcess.Select(x => $"{x.AppName ?? x.Name} (PID: {x.Pid})")));
859859

860-
return GetFileListDialog(source, titleText, subtitleText, Strings.Retry.GetLocalizedResource(), Strings.Cancel.GetLocalizedResource());
860+
var sourceCount = source.Count();
861+
862+
return GetFileListDialog(
863+
source,
864+
titleText,
865+
subtitleText,
866+
Strings.Retry.GetLocalizedResource(),
867+
sourceCount > 1 ? Strings.Skip.GetLocalizedResource() : Strings.Cancel.GetLocalizedResource());
861868
}
862869

863-
private async Task<DialogResult> GetFileListDialog(IEnumerable<string> source, string titleText, string descriptionText = null, string primaryButtonText = null, string secondaryButtonText = null)
870+
private async Task<DialogResult> GetFileListDialog(IEnumerable<string> source, string titleText, string descriptionText = null, string primaryButtonText = null, string secondaryButtonText = null, string closeButtonText = null)
864871
{
865872
var incomingItems = new List<BaseFileSystemDialogItemViewModel>();
866873
List<ShellFileItem> binItems = null;
@@ -886,7 +893,7 @@ private async Task<DialogResult> GetFileListDialog(IEnumerable<string> source, s
886893
}
887894

888895
var dialogViewModel = FileSystemDialogViewModel.GetDialogViewModel(
889-
incomingItems, titleText, descriptionText, primaryButtonText, secondaryButtonText);
896+
incomingItems, titleText, descriptionText, primaryButtonText, secondaryButtonText, closeButtonText);
890897

891898
var dialogService = Ioc.Default.GetRequiredService<IDialogService>();
892899

src/Files.App/ViewModels/Dialogs/FileSystemDialog/FileSystemDialogViewModel.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ public static FileSystemDialogViewModel GetDialogViewModel(FileSystemDialogMode
216216
return viewModel;
217217
}
218218

219-
public static FileSystemDialogViewModel GetDialogViewModel(List<BaseFileSystemDialogItemViewModel> nonConflictingItems, string titleText, string descriptionText, string primaryButtonText, string secondaryButtonText)
219+
public static FileSystemDialogViewModel GetDialogViewModel(List<BaseFileSystemDialogItemViewModel> nonConflictingItems, string titleText, string descriptionText, string primaryButtonText, string secondaryButtonText, string closeButtonText = null)
220220
{
221221
var viewModel = new FileSystemDialogViewModel(
222222
new()
@@ -230,6 +230,7 @@ public static FileSystemDialogViewModel GetDialogViewModel(List<BaseFileSystemDi
230230
Description = descriptionText,
231231
PrimaryButtonText = primaryButtonText,
232232
SecondaryButtonText = secondaryButtonText,
233+
CloseButtonText = closeButtonText,
233234
DeletePermanently = false,
234235
IsDeletePermanentlyEnabled = false
235236
};

0 commit comments

Comments
 (0)