/
githubmirror
/
Files
Обзор
Документация
Войти
/
githubmirror
/
Files
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Files.App/Dialogs/FilesystemOperationDialog.xaml
240 строк
9 KB
yair100
Fix: Fixed issue where the permanently delete checkbox was not shown in the delete dialog (#18792)
04 авг 2026, 01:51
Не верифицирован
04 авг 2026, 01:51
8bfed61
Код
Авторство
О чём код?
<!-- Copyright (c) Files Community. Licensed under the MIT License. --> <ContentDialog x:Class="Files.App.Dialogs.FilesystemOperationDialog" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:converters="using:Files.App.Converters" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:helpers="using:Files.App.Helpers" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:templateselectors="using:Files.App.Data.TemplateSelectors" xmlns:tvc="using:CommunityToolkit.WinUI.Converters" xmlns:vm="using:Files.App.ViewModels.Dialogs.FileSystemDialog" x:Name="RootDialog" Title="{x:Bind ViewModel.Title, Mode=OneWay}" CloseButtonText="{x:Bind ViewModel.CloseButtonText, Mode=OneWay}" Closing="RootDialog_Closing" CornerRadius="{StaticResource OverlayCornerRadius}" DefaultButton="Primary" HighContrastAdjustment="None" IsPrimaryButtonEnabled="{x:Bind ViewModel.PrimaryButtonEnabled, Mode=OneWay}" Opened="FilesystemOperationDialog_Opened" PrimaryButtonText="{x:Bind ViewModel.PrimaryButtonText, Mode=OneWay}" RequestedTheme="{x:Bind RootAppElement.RequestedTheme, Mode=OneWay}" SecondaryButtonCommand="{x:Bind ViewModel.SecondaryButtonClickCommand, Mode=OneWay}" SecondaryButtonText="{x:Bind ViewModel.SecondaryButtonText, Mode=OneWay}" Style="{StaticResource DefaultContentDialogStyle}" mc:Ignorable="d"> <ContentDialog.Resources> <x:Double x:Key="ContentDialogMaxWidth">800</x:Double> <converters:ImageModelToImageConverter x:Key="ImageModelToImageConverter" /> <converters:GenericEnumConverter x:Key="GenericEnumConverter" /> <converters:ConflictResolveOptionToIndexConverter x:Key="ConflictResolveOptionToIndexConverter" /> <converters:VisibilityInvertConverter x:Key="VisibilityInvertConverter" /> <tvc:BoolNegationConverter x:Key="BoolNegationConverter" /> <DataTemplate x:Key="ConflictItemDataTemplate" x:DataType="vm:FileSystemDialogConflictItemViewModel"> <Grid ColumnSpacing="12"> <Grid.ColumnDefinitions> <!-- Icon --> <ColumnDefinition Width="48" /> <!-- Content --> <ColumnDefinition Width="*" /> <!-- Options --> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <!-- Icon --> <Image Grid.Column="0" Width="48" Height="48" VerticalAlignment="Center" Source="{x:Bind ItemIcon, Mode=OneWay, Converter={StaticResource ImageModelToImageConverter}}" /> <!-- Content --> <Grid Grid.Column="1"> <!-- Names --> <StackPanel VerticalAlignment="Center" Background="Transparent" Spacing="4" Tapped="NameStackPanel_Tapped" Visibility="{x:Bind IsTextBoxVisible, Mode=OneWay, Converter={StaticResource VisibilityInvertConverter}}"> <StackPanel Orientation="Horizontal" Spacing="8"> <TextBlock FontSize="14" Text="{x:Bind DisplayName, Mode=OneWay}" ToolTipService.ToolTip="{x:Bind DisplayName, Mode=OneWay}" /> <FontIcon FontSize="10" Glyph="" /> <TextBlock FontSize="14" Text="{x:Bind DestinationDisplayName, Mode=OneWay}" TextTrimming="CharacterEllipsis" ToolTipService.ToolTip="{x:Bind DestinationDisplayName, Mode=OneWay}" /> </StackPanel> <StackPanel Orientation="Horizontal" Spacing="8"> <TextBlock FontSize="13" Foreground="{ThemeResource SystemAccentColor}" Text="{x:Bind SourceDirectoryDisplayName}" ToolTipService.ToolTip="{x:Bind SourcePath}" /> <FontIcon FontSize="10" Foreground="{ThemeResource SystemAccentColor}" Glyph="" /> <TextBlock FontSize="13" Foreground="{ThemeResource SystemAccentColor}" Text="{x:Bind DestinationDirectoryDisplayName}" ToolTipService.ToolTip="{x:Bind DestinationPath, Mode=OneWay}" /> </StackPanel> </StackPanel> <!-- Name edit box --> <TextBox x:Name="NameEdit" HorizontalAlignment="Stretch" VerticalAlignment="Center" x:Load="{x:Bind IsTextBoxVisible, Mode=OneWay}" Loaded="NameEdit_Loaded" LostFocus="NameEdit_LostFocus" PreviewKeyDown="NameEdit_PreviewKeyDown" Text="{x:Bind CustomName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" /> </Grid> <!-- Options --> <!-- x:Load cannot be used (#14000) --> <ComboBox x:Name="ConflictOptions" Grid.Column="2" Width="200" HorizontalAlignment="Right" VerticalAlignment="Center" SelectedIndex="{x:Bind ConflictResolveOption, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, Converter={StaticResource ConflictResolveOptionToIndexConverter}}" Visibility="{x:Bind IsConflict, Mode=OneWay}"> <ComboBox.Items> <ComboBoxItem Content="{helpers:ResourceString Name=GenerateNewName}" /> <ComboBoxItem Content="{helpers:ResourceString Name=ReplaceExisting}" /> <ComboBoxItem Content="{helpers:ResourceString Name=Skip}" /> </ComboBox.Items> </ComboBox> </Grid> </DataTemplate> <DataTemplate x:Key="DefaultItemDataTemplate" x:DataType="vm:FileSystemDialogDefaultItemViewModel"> <Grid ColumnSpacing="12"> <Grid.ColumnDefinitions> <!-- Icon --> <ColumnDefinition Width="Auto" /> <!-- Content --> <ColumnDefinition /> </Grid.ColumnDefinitions> <!-- Icon --> <Image Grid.Column="0" Width="48" Height="48" HorizontalAlignment="Left" VerticalAlignment="Center" Source="{x:Bind ItemIcon, Mode=OneWay, Converter={StaticResource ImageModelToImageConverter}}" /> <!-- Content --> <StackPanel Grid.Column="1" VerticalAlignment="Center" Spacing="4"> <TextBlock Text="{x:Bind DisplayName}" /> <TextBlock Opacity="0.8" Text="{x:Bind SourcePath}" ToolTipService.ToolTip="{x:Bind SourcePath}" /> </StackPanel> </Grid> </DataTemplate> </ContentDialog.Resources> <Grid x:Name="ContainerGrid"> <StackPanel Spacing="16"> <Grid x:Name="ApplyToAll" Visibility="{x:Bind ViewModel.FileSystemDialogMode.ConflictsExist}"> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="0" HorizontalAlignment="Left" VerticalAlignment="Center" Text="{helpers:ResourceString Name=ApplyToAllConflictingItems}" TextWrapping="Wrap" /> <ComboBox Grid.Column="1" Width="200" HorizontalAlignment="Right" VerticalAlignment="Center" SelectedIndex="{x:Bind ViewModel.AggregatedResolveOption, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, Converter={StaticResource GenericEnumConverter}, ConverterParameter='4-0,0-1,1-2,2-3'}"> <ComboBox.Items> <ComboBoxItem Content="{helpers:ResourceString Name=Custom}" /> <ComboBoxItem Content="{helpers:ResourceString Name=GenerateNewName}" /> <ComboBoxItem Content="{helpers:ResourceString Name=ReplaceExisting}" /> <ComboBoxItem Content="{helpers:ResourceString Name=Skip}" /> </ComboBox.Items> </ComboBox> </Grid> <TextBlock x:Name="DescriptionText" Foreground="{ThemeResource SystemFillColorCautionBrush}" Text="{x:Bind ViewModel.Description, Mode=OneWay}" TextWrapping="WrapWholeWords" /> <Border x:Name="SeparatorLine" Height="1" HorizontalAlignment="Stretch" Background="{ThemeResource SystemBaseLowColor}" Opacity="0.8" Visibility="{x:Bind ViewModel.FileSystemDialogMode.ConflictsExist}" /> <CheckBox x:Name="chkPermanentlyDelete" Content="{helpers:ResourceString Name=DeleteItemsDialogPermanentlyDeleteCheckBox/Content}" IsChecked="{x:Bind ViewModel.DeletePermanently, Mode=TwoWay}" IsEnabled="{x:Bind ViewModel.IsDeletePermanentlyEnabled, Mode=OneWay}" Visibility="{x:Bind ViewModel.FileSystemDialogMode.IsInDeleteMode, Mode=OneWay}" /> <ListView x:Name="DetailsGrid" MaxHeight="200" IsItemClickEnabled="False" ItemsSource="{x:Bind ViewModel.Items}" SelectionMode="None"> <ListView.ItemTemplateSelector> <templateselectors:FileSystemDialogItemSelector ConflictItemDataTemplate="{StaticResource ConflictItemDataTemplate}" DefaultItemDataTemplate="{StaticResource DefaultItemDataTemplate}" /> </ListView.ItemTemplateSelector> <ListView.ItemsPanel> <ItemsPanelTemplate> <ItemsStackPanel HorizontalAlignment="Stretch" Orientation="Vertical" /> </ItemsPanelTemplate> </ListView.ItemsPanel> <ListView.ItemContainerStyle> <Style BasedOn="{StaticResource DefaultListViewItemStyle}" TargetType="ListViewItem"> <Setter Property="HorizontalContentAlignment" Value="Stretch" /> <Setter Property="Padding" Value="0,12" /> <Setter Property="IsTabStop" Value="False" /> </Style> </ListView.ItemContainerStyle> </ListView> </StackPanel> </Grid> </ContentDialog>