-
Notifications
You must be signed in to change notification settings - Fork 111
/
Copy pathPlayerBehaviorSettingControl.xaml
135 lines (134 loc) · 7.91 KB
/
PlayerBehaviorSettingControl.xaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<?xml version="1.0" encoding="utf-8" ?>
<local:SettingsPageControlBase
x:Class="BiliCopilot.UI.Controls.Settings.PlayerBehaviorSettingControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:base="using:Richasy.WinUI.Share.Base"
xmlns:constants="using:BiliCopilot.UI.Models.Constants"
xmlns:converters="using:BiliCopilot.UI.Converters"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:ext="using:BiliCopilot.UI.Extensions"
xmlns:ic="using:FluentIcons.WinUI"
xmlns:local="using:BiliCopilot.UI.Controls.Settings"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<UserControl.Resources>
<converters:PreferQualityTypeConverter x:Key="PreferQualityConverter" />
<converters:PlayerTypeConverter x:Key="PlayerTypeConverter" />
<converters:ExternalPlayerTypeConverter x:Key="ExternalPlayerTypeConverter" />
<converters:DisplayModeConverter x:Key="DisplayModeConverter" />
<converters:PreferDecodeTypeConverter x:Key="PreferDecodeConverter" />
</UserControl.Resources>
<base:SettingsExpander Description="{ext:Locale Name=PlayerBehaviorDescription}" Header="{ext:Locale Name=PlayerBehavior}">
<base:SettingsExpander.HeaderIcon>
<ic:SymbolIcon Symbol="Replay" />
</base:SettingsExpander.HeaderIcon>
<base:SettingsExpander.Items>
<base:SettingsCard Description="{ext:Locale Name=PlayerTypeDescription}" Header="{ext:Locale Name=PlayerType}">
<ComboBox
MinWidth="120"
ItemsSource="{x:Bind ViewModel.PlayerTypeCollection, Mode=OneWay}"
SelectedItem="{x:Bind ViewModel.PlayerType, Mode=TwoWay}">
<ComboBox.ItemTemplate>
<DataTemplate x:DataType="constants:PlayerType">
<TextBlock Text="{x:Bind Converter={StaticResource PlayerTypeConverter}}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</base:SettingsCard>
<base:SettingsCard
Description="{ext:Locale Name=PreferDecodeDescription}"
Header="{ext:Locale Name=PreferDecode}"
Visibility="{x:Bind ViewModel.IsIslandPlayerType, Mode=OneWay}">
<ComboBox
MinWidth="120"
ItemsSource="{x:Bind ViewModel.PreferDecodeCollection, Mode=OneWay}"
SelectedItem="{x:Bind ViewModel.PreferDecode, Mode=TwoWay}">
<ComboBox.ItemTemplate>
<DataTemplate x:DataType="constants:PreferDecodeType">
<TextBlock Text="{x:Bind Converter={StaticResource PreferDecodeConverter}}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</base:SettingsCard>
<base:SettingsCard
Description="{ext:Locale Name=CustomMpvConfigDescription}"
Header="{ext:Locale Name=CustomMpvConfig}"
Visibility="{x:Bind ViewModel.IsMpvCustomOptionVisible, Mode=OneWay}">
<Button
MinWidth="120"
Command="{x:Bind ViewModel.OpenMpvConfigCommand, Mode=OneWay}"
Content="{ext:Locale Name=OpenConfig}" />
</base:SettingsCard>
<base:SettingsCard
Description="{ext:Locale Name=ExternalPlayerTypeDescription}"
Header="{ext:Locale Name=ExternalPlayerType}"
Visibility="{x:Bind ViewModel.IsExternalPlayerType, Mode=OneWay}">
<ComboBox
MinWidth="120"
ItemsSource="{x:Bind ViewModel.ExternalPlayerTypeCollection, Mode=OneWay}"
SelectedItem="{x:Bind ViewModel.ExternalPlayerType, Mode=TwoWay}">
<ComboBox.ItemTemplate>
<DataTemplate x:DataType="constants:ExternalPlayerType">
<TextBlock Text="{x:Bind Converter={StaticResource ExternalPlayerTypeConverter}}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</base:SettingsCard>
<base:SettingsCard Header="{ext:Locale Name=PreferQuality}">
<ComboBox
MinWidth="120"
ItemsSource="{x:Bind ViewModel.PreferQualityCollection, Mode=OneWay}"
SelectedItem="{x:Bind ViewModel.PreferQuality, Mode=TwoWay}">
<ComboBox.ItemTemplate>
<DataTemplate x:DataType="constants:PreferQualityType">
<TextBlock Text="{x:Bind Converter={StaticResource PreferQualityConverter}}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</base:SettingsCard>
<base:SettingsCard Header="{ext:Locale Name=DefaultPlayerDisplayMode}">
<ComboBox
MinWidth="120"
ItemsSource="{x:Bind ViewModel.PlayerDisplayModeCollection, Mode=OneWay}"
SelectedItem="{x:Bind ViewModel.DefaultPlayerDisplayMode, Mode=TwoWay}">
<ComboBox.ItemTemplate>
<DataTemplate x:DataType="constants:PlayerDisplayMode">
<TextBlock Text="{x:Bind Converter={StaticResource DisplayModeConverter}}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</base:SettingsCard>
<base:SettingsCard Description="{ext:Locale Name=UseWebPlayerWhenLiveDescription}" Header="{ext:Locale Name=UseWebPlayerWhenLive}">
<ToggleSwitch IsOn="{x:Bind ViewModel.UseWebPlayerWhenLive, Mode=TwoWay}" />
</base:SettingsCard>
<base:SettingsCard Header="{ext:Locale Name=AutoPlayWhenLoaded}">
<ToggleSwitch IsOn="{x:Bind ViewModel.IsAutoPlayWhenLoaded, Mode=TwoWay}" />
</base:SettingsCard>
<base:SettingsCard Header="{ext:Locale Name=AutoLoadHistoryWhenLoaded}">
<ToggleSwitch IsOn="{x:Bind ViewModel.AutoLoadHistory, Mode=TwoWay}" />
</base:SettingsCard>
<base:SettingsCard Description="{ext:Locale Name=AutoNextRelatedVideoDescription}" Header="{ext:Locale Name=AutoNextRelatedVideo}">
<ToggleSwitch IsOn="{x:Bind ViewModel.IsAutoPlayNextRecommendVideo, Mode=TwoWay}" />
</base:SettingsCard>
<base:SettingsCard Description="{ext:Locale Name=ContinuousPlayDescription}" Header="{ext:Locale Name=ContinuousPlay}">
<ToggleSwitch IsOn="{x:Bind ViewModel.AutoPlayNext, Mode=TwoWay}" />
</base:SettingsCard>
<base:SettingsCard
Description="{ext:Locale Name=PlayNextWithoutTipDescription}"
Header="{ext:Locale Name=PlayNextWithoutTip}"
Visibility="{x:Bind ViewModel.AutoPlayNext, Mode=OneWay}">
<ToggleSwitch IsOn="{x:Bind ViewModel.PlayNextWithoutTip, Mode=TwoWay}" />
</base:SettingsCard>
<base:SettingsCard
Description="{ext:Locale Name=StopWhenEndOfPlaylistDescription}"
Header="{ext:Locale Name=StopWhenEndOfPlaylist}"
Visibility="{x:Bind ViewModel.AutoPlayNext, Mode=OneWay}">
<ToggleSwitch IsOn="{x:Bind ViewModel.EndWithPlaylist, Mode=TwoWay}" />
</base:SettingsCard>
<base:SettingsCard Description="{ext:Locale Name=NoP2PDescription}" Header="{ext:Locale Name=NoP2P}">
<ToggleSwitch IsOn="{x:Bind ViewModel.NoP2P, Mode=TwoWay}" />
</base:SettingsCard>
</base:SettingsExpander.Items>
</base:SettingsExpander>
</local:SettingsPageControlBase>