Crunchy-Downloader/CRD/Views/Utils/ContentDialogEncodingPresetView.axaml
Elwador ff3e28093e - Added notification service for webhooks
- Added retry delay for rate limit handling
- Added toggle to control whether auto refresh also adds missing episodes to the queue
- Added configurable delay after each dub download
- Changed encoding preset dialog to show a preview of the FFmpeg command
- Changed play sound on queue empty and execute file on completion to be handled by the notification service
- Changed shutdown PC option to disable once triggered
- Fixed crash with queue persistence
- Fixed crash with audio player
- Fixed subscription countdown on the account page
2026-05-14 21:49:57 +02:00

148 lines
7.4 KiB
XML

<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
xmlns:utils="clr-namespace:CRD.ViewModels.Utils"
x:DataType="utils:ContentDialogEncodingPresetViewModel"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="CRD.Views.Utils.ContentDialogEncodingPresetView">
<StackPanel Spacing="10" Margin="10">
<StackPanel IsVisible="{Binding EditMode}">
<TextBlock Text="Edit Preset" Margin="0,0,0,5" />
<ComboBox HorizontalContentAlignment="Center" MinWidth="210" MaxDropDownHeight="400"
ItemsSource="{Binding CustomPresetsList}"
SelectedItem="{Binding SelectedCustomPreset}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding PresetName}"></TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</StackPanel>
<!-- Preset Name -->
<StackPanel>
<TextBlock Text="Enter Preset Name" Margin="0,0,0,5" />
<TextBox Watermark="H.265 1080p" Text="{Binding PresetName}" />
<TextBlock Text="Preset name already used" FontSize="12" Foreground="{DynamicResource SystemFillColorCaution}"
IsVisible="{Binding FileExists}" />
</StackPanel>
<!-- Codec -->
<StackPanel>
<TextBlock Text="Enter Codec" Margin="0,10,0,5" />
<TextBox Watermark="libx265" Text="{Binding Codec}" />
<TextBlock Text="Leave empty to provide the encoding options through Additional Parameters only."
Opacity="0.7"
FontSize="12"
TextWrapping="Wrap"
IsVisible="{Binding !HasCodec}" />
</StackPanel>
<!-- Resolution ComboBox -->
<StackPanel IsVisible="{Binding HasCodec}">
<TextBlock Text="Select Resolution" Margin="0,10,0,5" />
<ComboBox HorizontalContentAlignment="Center" MinWidth="210" MaxDropDownHeight="400"
ItemsSource="{Binding ResolutionList}"
SelectedItem="{Binding SelectedResolution}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding DisplayName}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<TextBlock Text="Use exact sizes for fixed output dimensions, or keep AR to preserve the source aspect ratio."
Opacity="0.7"
FontSize="12"
TextWrapping="Wrap" />
</StackPanel>
<!-- Frame Rate NumberBox -->
<StackPanel IsVisible="{Binding HasCodec}">
<TextBlock Text="Enter Frame Rate" Margin="0,10,0,5" />
<!-- <controls:NumberBox Minimum="1" Maximum="999" -->
<!-- Value="{Binding FrameRate}" -->
<!-- SpinButtonPlacementMode="Inline" -->
<!-- HorizontalAlignment="Stretch" /> -->
<TextBox Watermark="24000/1001" Text="{Binding FrameRate}" />
</StackPanel>
<!-- CRF NumberBox -->
<StackPanel IsVisible="{Binding HasCodec}">
<TextBlock Text="Enter CRF (0-51) - (cq,global_quality,qp)" Margin="0,10,0,5" />
<controls:NumberBox Minimum="0" Maximum="51"
Value="{Binding Crf}"
SpinButtonPlacementMode="Inline"
HorizontalAlignment="Stretch" />
</StackPanel>
<!-- Additional Parameters -->
<StackPanel Margin="0,20,0,0">
<TextBlock Text="Additional Parameters" Margin="0,0,0,5" />
<StackPanel Orientation="Horizontal" Spacing="5">
<TextBox HorizontalAlignment="Left" MinWidth="250"
Text="{Binding AdditionalParametersString}" />
<Button HorizontalAlignment="Center" Command="{Binding AddAdditionalParam}">
<StackPanel Orientation="Horizontal">
<controls:SymbolIcon Symbol="Add" FontSize="18" />
</StackPanel>
</Button>
</StackPanel>
<ItemsControl ItemsSource="{Binding AdditionalParameters}" Margin="0,10,0,0" MaxWidth="350" HorizontalAlignment="Left">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border BorderBrush="#4a4a4a" Background="{DynamicResource ControlAltFillColorQuarternary}" BorderThickness="1"
CornerRadius="10" Margin="2">
<StackPanel Orientation="Horizontal" Margin="5">
<TextBlock Text="{Binding stringValue}" Margin="5,0" TextTrimming="CharacterEllipsis" MaxWidth="300" TextWrapping="NoWrap">
<ToolTip.Tip>
<TextBlock Text="{Binding stringValue}" FontSize="15" />
</ToolTip.Tip>
</TextBlock>
<Button Content="X" FontSize="8" VerticalAlignment="Center" HorizontalAlignment="Center"
HorizontalContentAlignment="Center" VerticalContentAlignment="Center"
Width="15" Height="15" Padding="0"
Command="{Binding $parent[ItemsControl].((utils:ContentDialogEncodingPresetViewModel)DataContext).RemoveAdditionalParam}"
CommandParameter="{Binding .}" />
</StackPanel>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
<StackPanel Margin="0,20,0,0">
<TextBlock Text="Generated FFmpeg Command" Margin="0,0,0,5" />
<Border BorderBrush="#4a4a4a"
Background="{DynamicResource ControlAltFillColorQuarternary}"
BorderThickness="1"
CornerRadius="8"
Padding="10"
MaxWidth="700"
HorizontalAlignment="Left">
<SelectableTextBlock Text="{Binding CommandPreview}"
FontFamily="Cascadia Mono, Consolas, Courier New"
TextWrapping="Wrap" />
</Border>
<TextBlock Text="This preview uses sample input and output file names, but the generated options match the preset."
Opacity="0.7"
FontSize="12"
TextWrapping="Wrap" />
</StackPanel>
</StackPanel>
</UserControl>