Files
VDownload/VDownload.Core/VDownload.Core.Views/Settings/SettingsView.xaml

313 lines
20 KiB
Plaintext
Raw Normal View History

2024-02-13 02:59:40 +01:00
<?xml version="1.0" encoding="utf-8"?>
<Page
x:Class="VDownload.Core.Views.Settings.SettingsView"
2021-12-19 14:58:47 +01:00
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:VDownload.Core.Views.Settings"
2021-12-19 14:58:47 +01:00
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ctuc="using:CommunityToolkit.WinUI.UI.Controls"
xmlns:ctc="using:CommunityToolkit.WinUI.Controls"
xmlns:ct="using:CommunityToolkit.WinUI"
xmlns:i="using:Microsoft.Xaml.Interactivity"
xmlns:ic="using:Microsoft.Xaml.Interactions.Core"
2024-03-05 01:45:06 +01:00
xmlns:m="using:VDownload.Models"
2021-12-19 14:58:47 +01:00
mc:Ignorable="d"
2024-03-04 02:00:50 +01:00
Background="{ThemeResource ViewBackgroundColor}">
2024-03-04 02:00:50 +01:00
<Grid Padding="20"
RowSpacing="20">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
2026-02-17 22:49:36 +01:00
<TextBlock x:Uid="/SettingsViewResources/Header"
2024-03-04 02:00:50 +01:00
Grid.Row="0"
FontSize="28"
FontWeight="SemiBold"/>
<ScrollViewer Grid.Row="1">
<StackPanel Spacing="20">
2024-03-05 02:23:31 +01:00
<!-- Searching -->
<StackPanel Spacing="5">
2026-02-17 22:49:36 +01:00
<TextBlock x:Uid="/SettingsViewResources/SearchingHeader"
FontWeight="Bold"
FontSize="15"/>
2026-02-17 22:49:36 +01:00
<ctc:SettingsCard x:Uid="/SettingsViewResources/SearchingPlaylistCount">
<ctc:SettingsCard.HeaderIcon>
<BitmapIcon ShowAsMonochrome="False"
UriSource="{ThemeResource ImageSettingsViewSearchingPlaylistCount}"/>
</ctc:SettingsCard.HeaderIcon>
<NumberBox Value="{Binding SearchingPlaylistCount, Mode=TwoWay}"
Minimum="0"
SmallChange="1"
LargeChange="10"
SpinButtonPlacementMode="Compact"/>
</ctc:SettingsCard>
</StackPanel>
2024-03-05 02:23:31 +01:00
<!-- Tasks -->
2024-03-05 01:45:06 +01:00
<StackPanel Spacing="5">
2026-02-17 22:49:36 +01:00
<TextBlock x:Uid="/SettingsViewResources/TasksHeader"
2024-03-05 01:45:06 +01:00
FontWeight="Bold"
FontSize="15"/>
2026-02-17 22:49:36 +01:00
<ctc:SettingsCard x:Uid="/SettingsViewResources/TasksRunningTasks">
2024-03-05 01:45:06 +01:00
<ctc:SettingsCard.HeaderIcon>
<BitmapIcon ShowAsMonochrome="False"
UriSource="{ThemeResource ImageSettingsViewTasksRunningTasks}"/>
</ctc:SettingsCard.HeaderIcon>
<NumberBox Value="{Binding TasksRunningTasks, Mode=TwoWay}"
Minimum="1"
SmallChange="1"
LargeChange="10"
SpinButtonPlacementMode="Compact"/>
</ctc:SettingsCard>
2026-02-17 22:49:36 +01:00
<ctc:SettingsExpander x:Uid="/SettingsViewResources/TasksDefaultMediaOptions">
2024-03-05 01:45:06 +01:00
<ctc:SettingsExpander.HeaderIcon>
<BitmapIcon ShowAsMonochrome="False"
UriSource="{ThemeResource ImageSettingsViewTasksDefaultMediaOptions}"/>
</ctc:SettingsExpander.HeaderIcon>
<ctc:SettingsExpander.Items>
2026-02-17 22:49:36 +01:00
<ctc:SettingsCard x:Uid="/SettingsViewResources/TasksMediaType">
2024-03-05 01:45:06 +01:00
<ComboBox ItemsSource="{ct:EnumValues Type=m:MediaType}"
SelectedItem="{Binding TasksMediaType, Mode=TwoWay}">
<ComboBox.ItemTemplate>
<DataTemplate>
<ctuc:SwitchPresenter Value="{Binding Converter={StaticResource ObjectToStringConverter}}">
<ctuc:Case Value="Original">
2026-02-17 22:49:36 +01:00
<TextBlock x:Uid="/CommonResources/MediaTypeOriginal"/>
2024-03-05 01:45:06 +01:00
</ctuc:Case>
<ctuc:Case Value="OnlyVideo">
2026-02-17 22:49:36 +01:00
<TextBlock x:Uid="/CommonResources/MediaTypeOnlyVideo"/>
2024-03-05 01:45:06 +01:00
</ctuc:Case>
<ctuc:Case Value="OnlyAudio">
2026-02-17 22:49:36 +01:00
<TextBlock x:Uid="/CommonResources/MediaTypeOnlyAudio"/>
2024-03-05 01:45:06 +01:00
</ctuc:Case>
</ctuc:SwitchPresenter>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</ctc:SettingsCard>
2026-02-17 22:49:36 +01:00
<ctc:SettingsCard x:Uid="/SettingsViewResources/TasksVideoExtension">
2024-03-05 01:45:06 +01:00
<ComboBox ItemsSource="{ct:EnumValues Type=m:VideoExtension}"
SelectedItem="{Binding TasksVideoExtension, Mode=TwoWay}"/>
</ctc:SettingsCard>
2026-02-17 22:49:36 +01:00
<ctc:SettingsCard x:Uid="/SettingsViewResources/TasksAudioExtension">
2024-03-05 01:45:06 +01:00
<ComboBox ItemsSource="{ct:EnumValues Type=m:AudioExtension}"
SelectedItem="{Binding TasksAudioExtension, Mode=TwoWay}"/>
</ctc:SettingsCard>
</ctc:SettingsExpander.Items>
</ctc:SettingsExpander>
2026-02-17 22:49:36 +01:00
<ctc:SettingsCard x:Uid="/SettingsViewResources/TasksFilenameTemplate">
2024-03-05 01:45:06 +01:00
<ctc:SettingsCard.HeaderIcon>
<BitmapIcon ShowAsMonochrome="False"
UriSource="{ThemeResource ImageSettingsViewTasksFilenameTemplate}"/>
</ctc:SettingsCard.HeaderIcon>
<TextBox Text="{Binding TasksFilenameTemplate, Mode=TwoWay}"
ToolTipService.ToolTip="{Binding TasksFilenameTemplateTooltip}"/>
</ctc:SettingsCard>
2026-02-17 22:49:36 +01:00
<ctc:SettingsCard x:Uid="/SettingsViewResources/TasksMeteredConnectionWarning">
2024-03-10 13:42:41 +01:00
<ctc:SettingsCard.HeaderIcon>
<BitmapIcon ShowAsMonochrome="False"
UriSource="{ThemeResource ImageSettingsViewTasksMeteredConnectionWarning}"/>
</ctc:SettingsCard.HeaderIcon>
<ToggleSwitch IsOn="{Binding TasksMeteredConnectionWarning, Mode=TwoWay}"/>
</ctc:SettingsCard>
2026-02-17 22:49:36 +01:00
<ctc:SettingsExpander x:Uid="/SettingsViewResources/TasksSaveLastOutputDirectory">
2024-03-05 01:45:06 +01:00
<ctc:SettingsExpander.HeaderIcon>
<BitmapIcon ShowAsMonochrome="False"
UriSource="{ThemeResource ImageSettingsViewTasksOutputDirectory}"/>
</ctc:SettingsExpander.HeaderIcon>
<ToggleSwitch IsOn="{Binding TasksSaveLastOutputDirectory, Mode=TwoWay}"/>
<ctc:SettingsExpander.Items>
2026-02-17 22:49:36 +01:00
<ctc:SettingsCard x:Uid="/SettingsViewResources/TasksDefaultOutputDirectory"
2024-03-05 01:45:06 +01:00
IsEnabled="{Binding TasksSaveLastOutputDirectory, Converter={StaticResource BoolNegationConverter}}"
Description="{Binding TasksDefaultOutputDirectory}">
2026-02-17 22:49:36 +01:00
<Button x:Uid="/SettingsViewResources/TasksDefaultOutputDirectoryButton"
2024-03-05 01:45:06 +01:00
Command="{Binding BrowseTasksDefaultOutputDirectoryCommand}"/>
</ctc:SettingsCard>
</ctc:SettingsExpander.Items>
</ctc:SettingsExpander>
2026-02-17 22:49:36 +01:00
<ctc:SettingsCard x:Uid="/SettingsViewResources/TasksReplaceOutputFile">
2024-03-10 13:42:41 +01:00
<ctc:SettingsCard.HeaderIcon>
<BitmapIcon ShowAsMonochrome="False"
UriSource="{ThemeResource ImageSettingsViewTasksReplaceOutputFile}"/>
</ctc:SettingsCard.HeaderIcon>
<ToggleSwitch IsOn="{Binding TasksReplaceOutputFile, Mode=TwoWay}"/>
</ctc:SettingsCard>
2024-03-05 01:45:06 +01:00
</StackPanel>
2024-03-05 02:23:31 +01:00
<!-- Processing -->
<StackPanel Spacing="5">
2026-02-17 22:49:36 +01:00
<TextBlock x:Uid="/SettingsViewResources/ProcessingHeader"
FontWeight="Bold"
FontSize="15"/>
2026-02-17 22:49:36 +01:00
<ctc:SettingsCard x:Uid="/SettingsViewResources/ProcessingFFmpegLocation"
Description="{Binding ProcessingFFmpegLocation}">
<ctc:SettingsCard.HeaderIcon>
<BitmapIcon ShowAsMonochrome="False"
UriSource="{ThemeResource ImageSettingsViewProcessingFFmpegLocation}"/>
</ctc:SettingsCard.HeaderIcon>
2026-02-17 22:49:36 +01:00
<Button x:Uid="/SettingsViewResources/ProcessingFFmpegLocationButton"
Command="{Binding BrowseProcessingFFmpegLocationCommand}"/>
</ctc:SettingsCard>
2026-02-17 22:49:36 +01:00
<ctc:SettingsCard x:Uid="/SettingsViewResources/ProcessingUseMultithreading">
<ctc:SettingsCard.HeaderIcon>
<BitmapIcon ShowAsMonochrome="False"
UriSource="{ThemeResource ImageSettingsViewProcessingUseMultithreading}"/>
</ctc:SettingsCard.HeaderIcon>
<ToggleSwitch IsOn="{Binding ProcessingUseMultithreading, Mode=TwoWay}"/>
</ctc:SettingsCard>
2026-02-17 22:49:36 +01:00
<ctc:SettingsCard x:Uid="/SettingsViewResources/ProcessingUseHardwareAcceleration">
<ctc:SettingsCard.HeaderIcon>
<BitmapIcon ShowAsMonochrome="False"
UriSource="{ThemeResource ImageSettingsViewProcessingUseHardwareAcceleration}"/>
</ctc:SettingsCard.HeaderIcon>
<ToggleSwitch IsOn="{Binding ProcessingUseHardwareAcceleration, Mode=TwoWay}"/>
</ctc:SettingsCard>
2026-02-17 22:49:36 +01:00
<ctc:SettingsCard x:Uid="/SettingsViewResources/ProcessingSpeed">
<ctc:SettingsCard.HeaderIcon>
<BitmapIcon ShowAsMonochrome="False"
UriSource="{ThemeResource ImageSettingsViewProcessingSpeed}"/>
</ctc:SettingsCard.HeaderIcon>
<ComboBox ItemsSource="{ct:EnumValues Type=m:ProcessingSpeed}"
SelectedItem="{Binding ProcessingSpeed, Mode=TwoWay}">
<ComboBox.ItemTemplate>
<DataTemplate>
<ctuc:SwitchPresenter Value="{Binding Converter={StaticResource ObjectToStringConverter}}">
<ctuc:Case Value="VerySlow">
2026-02-17 22:49:36 +01:00
<TextBlock x:Uid="/CommonResources/ProcessingSpeedVerySlow"/>
</ctuc:Case>
<ctuc:Case Value="Slower">
2026-02-17 22:49:36 +01:00
<TextBlock x:Uid="/CommonResources/ProcessingSpeedSlower"/>
</ctuc:Case>
<ctuc:Case Value="Slow">
2026-02-17 22:49:36 +01:00
<TextBlock x:Uid="/CommonResources/ProcessingSpeedSlow"/>
</ctuc:Case>
<ctuc:Case Value="Medium">
2026-02-17 22:49:36 +01:00
<TextBlock x:Uid="/CommonResources/ProcessingSpeedMedium"/>
</ctuc:Case>
<ctuc:Case Value="Fast">
2026-02-17 22:49:36 +01:00
<TextBlock x:Uid="/CommonResources/ProcessingSpeedFast"/>
</ctuc:Case>
<ctuc:Case Value="Faster">
2026-02-17 22:49:36 +01:00
<TextBlock x:Uid="/CommonResources/ProcessingSpeedFaster"/>
</ctuc:Case>
<ctuc:Case Value="VeryFast">
2026-02-17 22:49:36 +01:00
<TextBlock x:Uid="/CommonResources/ProcessingSpeedVeryFast"/>
</ctuc:Case>
<ctuc:Case Value="SuperFast">
2026-02-17 22:49:36 +01:00
<TextBlock x:Uid="/CommonResources/ProcessingSpeedSuperFast"/>
</ctuc:Case>
<ctuc:Case Value="UltraFast">
2026-02-17 22:49:36 +01:00
<TextBlock x:Uid="/CommonResources/ProcessingSpeedUltraFast"/>
</ctuc:Case>
</ctuc:SwitchPresenter>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</ctc:SettingsCard>
</StackPanel>
2024-03-05 14:20:45 +01:00
<!-- Notifications -->
<StackPanel Spacing="5">
2026-02-17 22:49:36 +01:00
<TextBlock x:Uid="/SettingsViewResources/NotificationsHeader"
2024-03-05 14:20:45 +01:00
FontWeight="Bold"
FontSize="15"/>
2026-02-17 22:49:36 +01:00
<ctc:SettingsCard x:Uid="/SettingsViewResources/NotificationsOnSuccessful">
2024-03-05 14:20:45 +01:00
<ctc:SettingsCard.HeaderIcon>
<BitmapIcon ShowAsMonochrome="False"
UriSource="{ThemeResource ImageSettingsViewNotificationOnSuccessful}"/>
</ctc:SettingsCard.HeaderIcon>
<ToggleSwitch IsOn="{Binding NotificationsOnSuccessful, Mode=TwoWay}"/>
2024-03-05 14:20:45 +01:00
</ctc:SettingsCard>
2026-02-17 22:49:36 +01:00
<ctc:SettingsCard x:Uid="/SettingsViewResources/NotificationsOnUnsuccessful">
2024-03-05 14:20:45 +01:00
<ctc:SettingsCard.HeaderIcon>
<BitmapIcon ShowAsMonochrome="False"
UriSource="{ThemeResource ImageSettingsViewNotificationOnUnsuccessful}"/>
</ctc:SettingsCard.HeaderIcon>
<ToggleSwitch IsOn="{Binding NotificationsOnUnsuccessful, Mode=TwoWay}"/>
2024-03-05 14:20:45 +01:00
</ctc:SettingsCard>
</StackPanel>
2024-03-05 02:23:31 +01:00
<!-- Temporary files -->
<StackPanel Spacing="5">
2026-02-17 22:49:36 +01:00
<TextBlock x:Uid="/SettingsViewResources/TempHeader"
2024-03-05 02:23:31 +01:00
FontWeight="Bold"
FontSize="15"/>
2026-02-17 22:49:36 +01:00
<ctc:SettingsCard x:Uid="/SettingsViewResources/TempDirectory"
2024-03-05 02:23:31 +01:00
Description="{Binding TempDirectory}">
<ctc:SettingsCard.HeaderIcon>
<BitmapIcon ShowAsMonochrome="False"
UriSource="{ThemeResource ImageSettingsViewTempDirectory}"/>
</ctc:SettingsCard.HeaderIcon>
2026-02-17 22:49:36 +01:00
<Button x:Uid="/SettingsViewResources/TempDirectoryButton"
2024-03-05 02:23:31 +01:00
Command="{Binding BrowseTempDirectoryCommand}"/>
</ctc:SettingsCard>
2026-02-17 22:49:36 +01:00
<ctc:SettingsCard x:Uid="/SettingsViewResources/TempDeleteOnFail">
2024-03-05 02:23:31 +01:00
<ctc:SettingsCard.HeaderIcon>
<BitmapIcon ShowAsMonochrome="False"
UriSource="{ThemeResource ImageSettingsViewTempDeleteOnFail}"/>
</ctc:SettingsCard.HeaderIcon>
<ToggleSwitch IsOn="{Binding TempDeleteOnFail, Mode=TwoWay}"/>
</ctc:SettingsCard>
</StackPanel>
<!-- Twitch -->
<StackPanel Spacing="5">
2026-02-17 22:49:36 +01:00
<TextBlock x:Uid="/SettingsViewResources/TwitchHeader"
FontWeight="Bold"
FontSize="15"/>
2026-02-17 22:49:36 +01:00
<ctc:SettingsCard x:Uid="/SettingsViewResources/TwitchVodPassiveTrimming">
<ctc:SettingsCard.HeaderIcon>
<BitmapIcon ShowAsMonochrome="False"
UriSource="{StaticResource ImageSourcesTwitch}"/>
</ctc:SettingsCard.HeaderIcon>
<ToggleSwitch IsOn="{Binding TwitchVodPassiveTrimming, Mode=TwoWay}"/>
</ctc:SettingsCard>
2026-02-17 22:49:36 +01:00
<ctc:SettingsCard x:Uid="/SettingsViewResources/TwitchVodParallelDownloads">
<ctc:SettingsCard.HeaderIcon>
<BitmapIcon ShowAsMonochrome="False"
UriSource="{StaticResource ImageSourcesTwitch}"/>
</ctc:SettingsCard.HeaderIcon>
<NumberBox Value="{Binding TwitchVodParallelDownloads, Mode=TwoWay}"
Minimum="1"
SmallChange="1"
LargeChange="10"
SpinButtonPlacementMode="Compact"/>
</ctc:SettingsCard>
2026-02-17 22:49:36 +01:00
<ctc:SettingsExpander x:Uid="/SettingsViewResources/TwitchVodChunkDownloadingErrorRetry">
<ctc:SettingsExpander.HeaderIcon>
<BitmapIcon ShowAsMonochrome="False"
UriSource="{StaticResource ImageSourcesTwitch}"/>
</ctc:SettingsExpander.HeaderIcon>
<ToggleSwitch IsOn="{Binding TwitchVodChunkDownloadingErrorRetry, Mode=TwoWay}"/>
<ctc:SettingsExpander.Items>
2026-02-17 22:49:36 +01:00
<ctc:SettingsCard x:Uid="/SettingsViewResources/TwitchVodChunkDownloadingErrorRetryCount"
IsEnabled="{Binding TwitchVodChunkDownloadingErrorRetry}">
<NumberBox Value="{Binding TwitchVodChunkDownloadingErrorRetryCount, Mode=TwoWay}"
Minimum="1"
SmallChange="1"
LargeChange="10"
SpinButtonPlacementMode="Compact"/>
</ctc:SettingsCard>
2026-02-17 22:49:36 +01:00
<ctc:SettingsCard x:Uid="/SettingsViewResources/TwitchVodChunkDownloadingErrorRetryDelay"
IsEnabled="{Binding TwitchVodChunkDownloadingErrorRetry}">
<NumberBox Value="{Binding TwitchVodChunkDownloadingErrorRetryDelay, Mode=TwoWay}"
Minimum="0"
SmallChange="1"
LargeChange="10"
SpinButtonPlacementMode="Compact"/>
</ctc:SettingsCard>
</ctc:SettingsExpander.Items>
</ctc:SettingsExpander>
</StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
2026-02-17 22:49:36 +01:00
<Button x:Uid="/SettingsViewResources/RestoreToDefaultButton"
Command="{Binding RestoreToDefaultCommand}"/>
</StackPanel>
</StackPanel>
</ScrollViewer>
2024-02-13 02:59:40 +01:00
</Grid>
</Page>