summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsr55 <[email protected]>2019-08-03 20:58:06 +0100
committersr55 <[email protected]>2019-08-12 18:41:57 +0100
commit8b09ede89942b630a0fbdee77d914059d590c379 (patch)
treef23beb0e0a77cceaac7c3e97977d78e5600f9581
parent482edae69956ca854a9fa72f5c31aef9492a61f5 (diff)
WinGui: Improvements to dropdown visibility behaviour on the Audio Defaults. #2135
-rw-r--r--win/CS/HandBrakeWPF/Converters/Audio/AudioControlVisibilityConverter.cs22
-rw-r--r--win/CS/HandBrakeWPF/Views/AudioDefaultsView.xaml42
2 files changed, 59 insertions, 5 deletions
diff --git a/win/CS/HandBrakeWPF/Converters/Audio/AudioControlVisibilityConverter.cs b/win/CS/HandBrakeWPF/Converters/Audio/AudioControlVisibilityConverter.cs
index 808fc9a2c..31e40dd6b 100644
--- a/win/CS/HandBrakeWPF/Converters/Audio/AudioControlVisibilityConverter.cs
+++ b/win/CS/HandBrakeWPF/Converters/Audio/AudioControlVisibilityConverter.cs
@@ -20,14 +20,34 @@ namespace HandBrakeWPF.Converters.Audio
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
- if (values.Length == 1)
+ if (values.Length == 3)
{
bool isVisibile = (bool)values[0];
+ bool isPassthru = (bool)values[1];
+ AudioEncoder fallbackEncoder = (AudioEncoder)values[2];
if (!isVisibile)
{
return Visibility.Collapsed;
}
+
+ // When the Fallback Encoder is "None" and we have a passthru encoder selected on the track, we don't have any encoder options to override so don't show them.
+ if (isPassthru && fallbackEncoder == AudioEncoder.None)
+ {
+ return Visibility.Collapsed;
+ }
+ }
+
+ if (values.Length == 2)
+ {
+ bool isPassthru = (bool)values[0];
+ AudioEncoder fallbackEncoder = (AudioEncoder)values[1];
+
+ // When the Fallback Encoder is "None" and we have a passthru encoder selected on the track, we don't have any encoder options to override so don't show them.
+ if (isPassthru && fallbackEncoder == AudioEncoder.None)
+ {
+ return Visibility.Collapsed;
+ }
}
return Visibility.Visible;
diff --git a/win/CS/HandBrakeWPF/Views/AudioDefaultsView.xaml b/win/CS/HandBrakeWPF/Views/AudioDefaultsView.xaml
index 17343f85b..146049549 100644
--- a/win/CS/HandBrakeWPF/Views/AudioDefaultsView.xaml
+++ b/win/CS/HandBrakeWPF/Views/AudioDefaultsView.xaml
@@ -277,6 +277,8 @@
<ComboBox.Visibility>
<MultiBinding Converter="{StaticResource audioControlVisibilityConverter}">
<Binding Path="IsRateTypeVisible" />
+ <Binding Path="IsPassthru" />
+ <Binding Path="DataContext.AudioEncoderFallback" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type Window}}" />
</MultiBinding>
</ComboBox.Visibility>
</ComboBox>
@@ -286,6 +288,8 @@
<ComboBox.Visibility>
<MultiBinding Converter="{StaticResource audioControlVisibilityConverter}">
<Binding Path="IsQualityVisible" />
+ <Binding Path="IsPassthru" />
+ <Binding Path="DataContext.AudioEncoderFallback" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type Window}}" />
</MultiBinding>
</ComboBox.Visibility>
</ComboBox>
@@ -295,26 +299,56 @@
<ComboBox.Visibility>
<MultiBinding Converter="{StaticResource audioControlVisibilityConverter}">
<Binding Path="IsBitrateVisible" />
+ <Binding Path="IsPassthru" />
+ <Binding Path="DataContext.AudioEncoderFallback" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type Window}}" />
</MultiBinding>
</ComboBox.Visibility>
</ComboBox>
<ComboBox Grid.Row="0" Grid.Column="7" Height="22" Width="120" Margin="5,0,5,0" HorizontalAlignment="Stretch"
ItemsSource="{Binding Mixdowns}" SelectedItem="{Binding MixDown}"
- DisplayMemberPath="DisplayName" />
+ DisplayMemberPath="DisplayName" >
+ <ComboBox.Visibility>
+ <MultiBinding Converter="{StaticResource audioControlVisibilityConverter}">
+ <Binding Path="IsPassthru" />
+ <Binding Path="DataContext.AudioEncoderFallback" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type Window}}" />
+ </MultiBinding>
+ </ComboBox.Visibility>
+ </ComboBox>
<ComboBox Width="70" Height="22" Margin="5,0,5,0" Grid.Column="9"
ItemsSource="{Binding DataContext.SampleRates, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}"
- SelectedItem="{Binding SampleRateDisplayValue}" />
+ SelectedItem="{Binding SampleRateDisplayValue}" >
+ <ComboBox.Visibility>
+ <MultiBinding Converter="{StaticResource audioControlVisibilityConverter}">
+ <Binding Path="IsPassthru" />
+ <Binding Path="DataContext.AudioEncoderFallback" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type Window}}" />
+ </MultiBinding>
+ </ComboBox.Visibility>
+ </ComboBox>
<controls:NumberBox Name="drcNumericCtl" Width="45" Margin="5,0,5,0" HorizontalAlignment="Left" Grid.Column="11" VerticalAlignment="Center" Height="22"
Minimum="0" Modulus="0.1" Maximum="4" Number="{Binding DRC, Mode=TwoWay}" UpdateBindingOnTextChange="True"
- ShowIncrementButtons="True" AllowEmpty="False" />
+ ShowIncrementButtons="True" AllowEmpty="False">
+ <controls:NumberBox.Visibility>
+ <MultiBinding Converter="{StaticResource audioControlVisibilityConverter}">
+ <Binding Path="IsPassthru" />
+ <Binding Path="DataContext.AudioEncoderFallback" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type Window}}" />
+ </MultiBinding>
+ </controls:NumberBox.Visibility>
+ </controls:NumberBox>
<controls:NumberBox Name="gainNumericCtl" Width="45" Margin="5,0,5,0" HorizontalAlignment="Left" Grid.Column="13" VerticalAlignment="Center" Height="22"
Minimum="-20" Modulus="1" Maximum="20" Number="{Binding Gain, Mode=TwoWay}" UpdateBindingOnTextChange="True"
- ShowIncrementButtons="True" AllowEmpty="False" />
+ ShowIncrementButtons="True" AllowEmpty="False" >
+ <controls:NumberBox.Visibility>
+ <MultiBinding Converter="{StaticResource audioControlVisibilityConverter}">
+ <Binding Path="IsPassthru" />
+ <Binding Path="DataContext.AudioEncoderFallback" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type Window}}" />
+ </MultiBinding>
+ </controls:NumberBox.Visibility>
+ </controls:NumberBox>
</Grid>
<!-- Delete -->