mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Refactor layout in MediaDump.xaml by replacing TabControl with ScrollViewer for improved usability
This commit is contained in:
@@ -53,173 +53,177 @@
|
||||
<Grid Margin="12"
|
||||
RowSpacing="8"
|
||||
RowDefinitions="Auto, *, Auto">
|
||||
<TabControl Grid.Row="0"
|
||||
IsVisible="{Binding OptionsVisible, Mode=OneWay}">
|
||||
<TabItem>
|
||||
<TabItem.Header>
|
||||
<controls:SpectreTextBlock Text="{x:Static localization:UI.Title_General}" />
|
||||
</TabItem.Header>
|
||||
<StackPanel Orientation="Vertical"
|
||||
Margin="8"
|
||||
Spacing="8">
|
||||
<Grid ColumnDefinitions="Auto, *"
|
||||
ColumnSpacing="8">
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="{x:Static localization:UI.Output_format}"
|
||||
VerticalAlignment="Center" />
|
||||
<ComboBox Grid.Column="1"
|
||||
ItemsSource="{Binding PluginsList, Mode=OneWay}"
|
||||
SelectedItem="{Binding SelectedPlugin, Mode=TwoWay}"
|
||||
HorizontalAlignment="Stretch"
|
||||
IsEnabled="{Binding FormatReadOnly, Mode=OneWay}">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Name, Mode=OneWay}" />
|
||||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
</Grid>
|
||||
<Grid ColumnDefinitions="Auto, *"
|
||||
ColumnSpacing="8">
|
||||
<Button Grid.Column="0"
|
||||
Command="{Binding DestinationCommand, Mode=OneWay}"
|
||||
IsEnabled="{Binding DestinationEnabled, Mode=OneWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.ButtonLabel_Choose}" />
|
||||
</Button>
|
||||
<TextBox Grid.Column="1"
|
||||
Text="{Binding Destination, Mode=OneWay}"
|
||||
IsReadOnly="True" />
|
||||
</Grid>
|
||||
<CheckBox IsChecked="{Binding Resume, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Create_or_use_resume_mapfile}" />
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding Track1Pregap, Mode=TwoWay}"
|
||||
IsVisible="{Binding Track1PregapVisible, Mode=OneWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Try_to_read_track_1_pregap}" />
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding CreateSidecar, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Create_Aaru_Metadata_sidecar}" />
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding ExistingMetadata, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Take_metadata_from_existing_CICM_XML_sidecar}" />
|
||||
</CheckBox>
|
||||
<Grid ColumnDefinitions="Auto, *"
|
||||
IsVisible="{Binding EncodingVisible, Mode=OneWay}"
|
||||
ColumnSpacing="8">
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="{x:Static localization:UI.Encoding_to_use_on_metadata_sidecar_creation}"
|
||||
VerticalAlignment="Center" />
|
||||
<ComboBox Grid.Column="1"
|
||||
ItemsSource="{Binding Encodings, Mode=OneWay}"
|
||||
SelectedItem="{Binding SelectedEncoding, Mode=TwoWay}"
|
||||
IsEnabled="{Binding EncodingEnabled, Mode=OneWay}">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Name, Mode=OneWay}" />
|
||||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</TabItem>
|
||||
<TabItem>
|
||||
<TabItem.Header>
|
||||
<controls:SpectreTextBlock Text="{x:Static localization:UI.Errors}" />
|
||||
</TabItem.Header>
|
||||
<StackPanel Orientation="Vertical"
|
||||
Margin="8"
|
||||
Spacing="8">
|
||||
<CheckBox IsChecked="{Binding StopOnError, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Stop_media_dump_on_first_error}" />
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding Force, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Continue_dumping_whatever_happens}" />
|
||||
</CheckBox>
|
||||
<Grid ColumnDefinitions="Auto, *"
|
||||
ColumnSpacing="8">
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="{x:Static localization:UI.Retry_passes}"
|
||||
VerticalAlignment="Center" />
|
||||
<NumericUpDown Grid.Column="1"
|
||||
HorizontalAlignment="Stretch"
|
||||
Value="{Binding Retries, Mode=TwoWay}"
|
||||
Increment="1"
|
||||
Minimum="0" />
|
||||
</Grid>
|
||||
<CheckBox IsChecked="{Binding Persistent, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Try_to_recover_partial_or_incorrect_data}" />
|
||||
</CheckBox>
|
||||
<Grid ColumnDefinitions="Auto, *"
|
||||
ColumnSpacing="8">
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="{x:Static localization:UI.Skipped_sectors_on_error}"
|
||||
VerticalAlignment="Center" />
|
||||
<NumericUpDown Grid.Column="1"
|
||||
Increment="1"
|
||||
Minimum="1"
|
||||
HorizontalAlignment="Stretch"
|
||||
Value="{Binding Skipped, Mode=TwoWay}" />
|
||||
</Grid>
|
||||
<CheckBox IsChecked="{Binding Trim, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Trim_errors_from_skipped_sectors}" />
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding Paranoia, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Paranoia_help}" />
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding CureParanoia, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Cure_paranoia_help}" />
|
||||
</CheckBox>
|
||||
</StackPanel>
|
||||
</TabItem>
|
||||
<TabItem IsVisible="{Binding HasSubchannel, Mode=OneWay}">
|
||||
<TabItem.Header>
|
||||
<controls:SpectreTextBlock Text="{x:Static localization:UI.Subchannels}" />
|
||||
</TabItem.Header>
|
||||
<StackPanel Orientation="Vertical"
|
||||
Margin="8"
|
||||
Spacing="8">
|
||||
<CheckBox IsChecked="{Binding FixSubchannelPosition, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Fix_subchannel_position_help}"
|
||||
TextWrapping="Wrap" />
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding RetrySubchannel, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Retry_subchannel_help}"
|
||||
TextWrapping="Wrap" />
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding FixSubchannel, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Fix_subchannel_help}"
|
||||
TextWrapping="Wrap" />
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding FixSubchannelCrc, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Fix_subchannel_crc_help}"
|
||||
TextWrapping="Wrap" />
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding GenerateSubchannels, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Generate_subchannels_dump_help}"
|
||||
TextWrapping="Wrap" />
|
||||
</CheckBox>
|
||||
</StackPanel>
|
||||
</TabItem>
|
||||
<TabItem>
|
||||
<TabItem.Header>
|
||||
<controls:SpectreTextBlock Text="{x:Static localization:UI.Encryption}" />
|
||||
</TabItem.Header>
|
||||
<StackPanel Orientation="Vertical"
|
||||
Margin="8"
|
||||
Spacing="8">
|
||||
<CheckBox IsChecked="{Binding StoreEncryptedAsIs, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Store_encrypted_data_as_is}"
|
||||
TextWrapping="Wrap" />
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding ReadTitleKeys, Mode=TwoWay}"
|
||||
IsVisible="{Binding IsDvd, Mode=OneWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Try_to_read_the_title_keys_from_CSS_DVDs}"
|
||||
TextWrapping="Wrap" />
|
||||
</CheckBox>
|
||||
</StackPanel>
|
||||
</TabItem>
|
||||
<!-- TODO: Image options -->
|
||||
</TabControl>
|
||||
<ScrollViewer Grid.Row="0"
|
||||
HorizontalScrollBarVisibility="Disabled"
|
||||
VerticalScrollBarVisibility="Auto"
|
||||
IsVisible="{Binding OptionsVisible, Mode=OneWay}">
|
||||
<TabControl>
|
||||
<TabItem>
|
||||
<TabItem.Header>
|
||||
<controls:SpectreTextBlock Text="{x:Static localization:UI.Title_General}" />
|
||||
</TabItem.Header>
|
||||
<StackPanel Orientation="Vertical"
|
||||
Margin="8"
|
||||
Spacing="8">
|
||||
<Grid ColumnDefinitions="Auto, *"
|
||||
ColumnSpacing="8">
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="{x:Static localization:UI.Output_format}"
|
||||
VerticalAlignment="Center" />
|
||||
<ComboBox Grid.Column="1"
|
||||
ItemsSource="{Binding PluginsList, Mode=OneWay}"
|
||||
SelectedItem="{Binding SelectedPlugin, Mode=TwoWay}"
|
||||
HorizontalAlignment="Stretch"
|
||||
IsEnabled="{Binding FormatReadOnly, Mode=OneWay}">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Name, Mode=OneWay}" />
|
||||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
</Grid>
|
||||
<Grid ColumnDefinitions="Auto, *"
|
||||
ColumnSpacing="8">
|
||||
<Button Grid.Column="0"
|
||||
Command="{Binding DestinationCommand, Mode=OneWay}"
|
||||
IsEnabled="{Binding DestinationEnabled, Mode=OneWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.ButtonLabel_Choose}" />
|
||||
</Button>
|
||||
<TextBox Grid.Column="1"
|
||||
Text="{Binding Destination, Mode=OneWay}"
|
||||
IsReadOnly="True" />
|
||||
</Grid>
|
||||
<CheckBox IsChecked="{Binding Resume, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Create_or_use_resume_mapfile}" />
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding Track1Pregap, Mode=TwoWay}"
|
||||
IsVisible="{Binding Track1PregapVisible, Mode=OneWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Try_to_read_track_1_pregap}" />
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding CreateSidecar, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Create_Aaru_Metadata_sidecar}" />
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding ExistingMetadata, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Take_metadata_from_existing_CICM_XML_sidecar}" />
|
||||
</CheckBox>
|
||||
<Grid ColumnDefinitions="Auto, *"
|
||||
IsVisible="{Binding EncodingVisible, Mode=OneWay}"
|
||||
ColumnSpacing="8">
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="{x:Static localization:UI.Encoding_to_use_on_metadata_sidecar_creation}"
|
||||
VerticalAlignment="Center" />
|
||||
<ComboBox Grid.Column="1"
|
||||
ItemsSource="{Binding Encodings, Mode=OneWay}"
|
||||
SelectedItem="{Binding SelectedEncoding, Mode=TwoWay}"
|
||||
IsEnabled="{Binding EncodingEnabled, Mode=OneWay}">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Name, Mode=OneWay}" />
|
||||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</TabItem>
|
||||
<TabItem>
|
||||
<TabItem.Header>
|
||||
<controls:SpectreTextBlock Text="{x:Static localization:UI.Errors}" />
|
||||
</TabItem.Header>
|
||||
<StackPanel Orientation="Vertical"
|
||||
Margin="8"
|
||||
Spacing="8">
|
||||
<CheckBox IsChecked="{Binding StopOnError, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Stop_media_dump_on_first_error}" />
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding Force, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Continue_dumping_whatever_happens}" />
|
||||
</CheckBox>
|
||||
<Grid ColumnDefinitions="Auto, *"
|
||||
ColumnSpacing="8">
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="{x:Static localization:UI.Retry_passes}"
|
||||
VerticalAlignment="Center" />
|
||||
<NumericUpDown Grid.Column="1"
|
||||
HorizontalAlignment="Stretch"
|
||||
Value="{Binding Retries, Mode=TwoWay}"
|
||||
Increment="1"
|
||||
Minimum="0" />
|
||||
</Grid>
|
||||
<CheckBox IsChecked="{Binding Persistent, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Try_to_recover_partial_or_incorrect_data}" />
|
||||
</CheckBox>
|
||||
<Grid ColumnDefinitions="Auto, *"
|
||||
ColumnSpacing="8">
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="{x:Static localization:UI.Skipped_sectors_on_error}"
|
||||
VerticalAlignment="Center" />
|
||||
<NumericUpDown Grid.Column="1"
|
||||
Increment="1"
|
||||
Minimum="1"
|
||||
HorizontalAlignment="Stretch"
|
||||
Value="{Binding Skipped, Mode=TwoWay}" />
|
||||
</Grid>
|
||||
<CheckBox IsChecked="{Binding Trim, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Trim_errors_from_skipped_sectors}" />
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding Paranoia, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Paranoia_help}" />
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding CureParanoia, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Cure_paranoia_help}" />
|
||||
</CheckBox>
|
||||
</StackPanel>
|
||||
</TabItem>
|
||||
<TabItem IsVisible="{Binding HasSubchannel, Mode=OneWay}">
|
||||
<TabItem.Header>
|
||||
<controls:SpectreTextBlock Text="{x:Static localization:UI.Subchannels}" />
|
||||
</TabItem.Header>
|
||||
<StackPanel Orientation="Vertical"
|
||||
Margin="8"
|
||||
Spacing="8">
|
||||
<CheckBox IsChecked="{Binding FixSubchannelPosition, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Fix_subchannel_position_help}"
|
||||
TextWrapping="Wrap" />
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding RetrySubchannel, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Retry_subchannel_help}"
|
||||
TextWrapping="Wrap" />
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding FixSubchannel, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Fix_subchannel_help}"
|
||||
TextWrapping="Wrap" />
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding FixSubchannelCrc, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Fix_subchannel_crc_help}"
|
||||
TextWrapping="Wrap" />
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding GenerateSubchannels, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Generate_subchannels_dump_help}"
|
||||
TextWrapping="Wrap" />
|
||||
</CheckBox>
|
||||
</StackPanel>
|
||||
</TabItem>
|
||||
<TabItem>
|
||||
<TabItem.Header>
|
||||
<controls:SpectreTextBlock Text="{x:Static localization:UI.Encryption}" />
|
||||
</TabItem.Header>
|
||||
<StackPanel Orientation="Vertical"
|
||||
Margin="8"
|
||||
Spacing="8">
|
||||
<CheckBox IsChecked="{Binding StoreEncryptedAsIs, Mode=TwoWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Store_encrypted_data_as_is}"
|
||||
TextWrapping="Wrap" />
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding ReadTitleKeys, Mode=TwoWay}"
|
||||
IsVisible="{Binding IsDvd, Mode=OneWay}">
|
||||
<TextBlock Text="{x:Static localization:UI.Try_to_read_the_title_keys_from_CSS_DVDs}"
|
||||
TextWrapping="Wrap" />
|
||||
</CheckBox>
|
||||
</StackPanel>
|
||||
</TabItem>
|
||||
<!-- TODO: Image options -->
|
||||
</TabControl>
|
||||
</ScrollViewer>
|
||||
<Grid Grid.Row="1"
|
||||
RowDefinitions="Auto,Auto,*,Auto,Auto"
|
||||
VerticalAlignment="Stretch"
|
||||
|
||||
Reference in New Issue
Block a user