Compact settings tab layout

This commit is contained in:
Emby Toolbox 2026-05-16 15:34:09 +05:00
parent 67db535abf
commit 36bbc863f8

View File

@ -596,40 +596,97 @@
<TextBlock Text="Настройки" VerticalAlignment="Center" />
</StackPanel>
</TabItem.Header>
<TabItem.Resources>
<Style x:Key="SettingsGroupBox" TargetType="GroupBox">
<Setter Property="Padding" Value="6,4,6,6" />
<Setter Property="Margin" Value="0" />
<Setter Property="BorderBrush" Value="{DynamicResource Ui.Brush.BorderSubtle}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="FontSize" Value="11" />
</Style>
<Style x:Key="SettingsLabel" TargetType="TextBlock" BasedOn="{StaticResource UiTextCaption}">
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="Margin" Value="0,0,6,0" />
</Style>
<Style x:Key="SettingsTextBox" TargetType="TextBox" BasedOn="{StaticResource UiTextInput}">
<Setter Property="Height" Value="26" />
<Setter Property="MinHeight" Value="26" />
<Setter Property="Padding" Value="6,2" />
<Setter Property="VerticalContentAlignment" Value="Center" />
</Style>
<Style x:Key="SettingsComboBox" TargetType="ComboBox" BasedOn="{StaticResource UiCombo}">
<Setter Property="Height" Value="26" />
<Setter Property="MinHeight" Value="26" />
<Setter Property="Padding" Value="6,1" />
<Setter Property="VerticalContentAlignment" Value="Center" />
</Style>
<Style x:Key="SettingsButton" TargetType="Button" BasedOn="{StaticResource UiButtonSecondary}">
<Setter Property="Height" Value="28" />
<Setter Property="MinHeight" Value="28" />
<Setter Property="Padding" Value="8,1" />
<Setter Property="FontSize" Value="12" />
</Style>
<Style x:Key="SettingsPrimaryButton" TargetType="Button" BasedOn="{StaticResource UiButtonPrimary}">
<Setter Property="Height" Value="28" />
<Setter Property="MinHeight" Value="28" />
<Setter Property="Padding" Value="8,1" />
<Setter Property="FontSize" Value="12" />
</Style>
<Style x:Key="SettingsDangerButton" TargetType="Button" BasedOn="{StaticResource UiButtonDanger}">
<Setter Property="Height" Value="28" />
<Setter Property="MinHeight" Value="28" />
<Setter Property="Padding" Value="8,1" />
<Setter Property="FontSize" Value="12" />
</Style>
<Style x:Key="SettingsDataGridHeader" TargetType="DataGridColumnHeader" BasedOn="{StaticResource UiDataGridColumnHeader}">
<Setter Property="Height" Value="26" />
<Setter Property="MinHeight" Value="26" />
<Setter Property="Padding" Value="4,2" />
<Setter Property="FontSize" Value="11" />
</Style>
<Style x:Key="SettingsDataGridCell" TargetType="DataGridCell" BasedOn="{StaticResource UiDataGridCell}">
<Setter Property="Padding" Value="4,0" />
<Setter Property="FontSize" Value="11" />
<Setter Property="VerticalContentAlignment" Value="Center" />
</Style>
<Style x:Key="SettingsDataGridRow" TargetType="DataGridRow" BasedOn="{StaticResource UiDataGridRow}">
<Setter Property="Height" Value="26" />
<Setter Property="MinHeight" Value="26" />
</Style>
</TabItem.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="6" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ScrollViewer Grid.Row="0"
VerticalAlignment="Stretch"
HorizontalContentAlignment="Stretch"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Disabled"
Padding="0">
<Border Style="{StaticResource UiSectionCard}"
Margin="0,0,0,12"
HorizontalAlignment="Stretch">
<StackPanel HorizontalAlignment="Stretch">
<TextBlock Style="{StaticResource UiTextH2}" Text="Каталоги" />
<TextBlock Style="{StaticResource UiTextCaption}"
Margin="0,12,0,4"
Text="TEMP-каталог" />
<Grid HorizontalAlignment="Stretch">
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2.2*" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="1.35*" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="1.15*" />
</Grid.ColumnDefinitions>
<GroupBox Grid.Column="0" Header="Пути" Style="{StaticResource SettingsGroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="76" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="8" />
<ColumnDefinition Width="4" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<TextBlock Grid.Column="0" Text="TEMP" Style="{StaticResource SettingsLabel}" />
<Grid Grid.Column="1">
<TextBox x:Name="SettingsTempPathBox"
Style="{StaticResource UiTextInput}"
Style="{StaticResource SettingsTextBox}"
HorizontalAlignment="Stretch"
Text="{Binding ProcessingTempDirectory, UpdateSourceTrigger=PropertyChanged}" />
<TextBlock Margin="8,0,0,0"
<TextBlock Margin="6,0,0,0"
VerticalAlignment="Center"
IsHitTestVisible="False"
Text="C:\Users\me\AppData\Local\Temp\EmbyToolbox">
@ -645,107 +702,139 @@
</TextBlock.Style>
</TextBlock>
</Grid>
<Button Grid.Column="2"
MinWidth="100"
Style="{StaticResource UiButtonSecondary}"
<Button Grid.Column="3"
MinWidth="74"
Style="{StaticResource SettingsButton}"
Command="{Binding ChooseTempDirectoryCommand}">
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="&#xE838;" />
<TextBlock Text="Выбрать" VerticalAlignment="Center" />
<TextBlock Text="Обзор" VerticalAlignment="Center" />
</StackPanel>
</Button>
</Grid>
</GroupBox>
<TextBlock Style="{StaticResource UiTextCaption}"
Margin="0,6,0,0"
Text="Временный каталог для промежуточных файлов" />
<TextBlock Style="{StaticResource UiTextCaption}"
Margin="0,12,0,4"
Text="Минимальный уровень сохранения логов" />
<ComboBox Style="{StaticResource UiCombo}"
MinWidth="200"
Margin="0,0,24,0"
HorizontalAlignment="Stretch"
<GroupBox Grid.Column="2" Header="Выполнение" Style="{StaticResource SettingsGroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="74" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="26" />
<RowDefinition Height="4" />
<RowDefinition Height="26" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="Лог" Style="{StaticResource SettingsLabel}" />
<ComboBox Grid.Row="0"
Grid.Column="1"
Style="{StaticResource SettingsComboBox}"
ItemsSource="{Binding LogLevelOptions}"
SelectedItem="{Binding MinimumFileLogLevel, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<TextBlock Style="{StaticResource UiTextCaption}"
Margin="0,12,0,4"
Text="Аппаратное ускорение" />
<ComboBox Style="{StaticResource UiCombo}"
MinWidth="200"
Margin="0,0,24,0"
HorizontalAlignment="Stretch"
<TextBlock Grid.Row="2" Grid.Column="0" Text="GPU" Style="{StaticResource SettingsLabel}" />
<ComboBox Grid.Row="2"
Grid.Column="1"
Style="{StaticResource SettingsComboBox}"
ItemsSource="{Binding HardwareAccelerationOptions}"
SelectedItem="{Binding HardwareAcceleration, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</Grid>
</GroupBox>
<TextBlock Style="{StaticResource UiTextH2}" Margin="0,16,0,8" Text="Уведомления о конвертации" />
<CheckBox Margin="0,8,0,0"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Top"
FocusVisualStyle="{x:Null}"
<GroupBox Grid.Column="4" Header="Уведомления" Style="{StaticResource SettingsGroupBox}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="24" />
<RowDefinition Height="24" />
<RowDefinition Height="4" />
<RowDefinition Height="28" />
</Grid.RowDefinitions>
<CheckBox Grid.Row="0"
Margin="0"
VerticalAlignment="Center"
IsChecked="{Binding NotifyCompletionSoundAfterQueue, Mode=TwoWay}">
<CheckBox.ToolTip>
<ToolTip MaxWidth="360">
<TextBlock TextWrapping="Wrap"
Text="После обработки всей очереди конвертации воспроизводится системный звук успеха или ошибки (Windows)." />
</ToolTip>
</CheckBox.ToolTip>
<TextBlock Text="Звуковое уведомление после завершения"
TextWrapping="Wrap"
VerticalAlignment="Center" />
<TextBlock Text="Звук после очереди" VerticalAlignment="Center" />
</CheckBox>
<CheckBox Margin="0,6,0,0"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Top"
FocusVisualStyle="{x:Null}"
<CheckBox Grid.Row="1"
Margin="0"
VerticalAlignment="Center"
IsChecked="{Binding NotifyWindowsToastAfterQueue, Mode=TwoWay}">
<CheckBox.ToolTip>
<ToolTip MaxWidth="360">
<TextBlock TextWrapping="Wrap"
Text="В центре уведомлений показывается итог обработки всей очереди (или сообщение при остановке пользователем)." />
</ToolTip>
</CheckBox.ToolTip>
<TextBlock Text="Показывать уведомления Windows"
TextWrapping="Wrap"
VerticalAlignment="Center" />
<TextBlock Text="Windows toast" VerticalAlignment="Center" />
</CheckBox>
<Button Margin="0,12,0,0"
MinHeight="34"
MinWidth="240"
HorizontalAlignment="Stretch"
HorizontalContentAlignment="Center"
Style="{StaticResource UiButtonSecondary}"
<Button Grid.Row="3"
MinWidth="118"
HorizontalAlignment="Left"
Style="{StaticResource SettingsButton}"
Command="{Binding TestWindowsNotificationCommand}">
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="&#xEA8F;" />
<TextBlock Margin="8,0,0,0"
VerticalAlignment="Center"
TextWrapping="Wrap"
Text="Проверить уведомление" />
<TextBlock Text="Тест" VerticalAlignment="Center" />
</StackPanel>
</Button>
</Grid>
</GroupBox>
</Grid>
<TextBlock Style="{StaticResource UiTextH2}" Margin="0,16,0,8" Text="Профили конвертации" />
<DataGrid ItemsSource="{Binding ConversionProfiles}"
<Grid Grid.Row="2" Margin="0,0,0,4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0"
Text="Профили конвертации"
Style="{StaticResource UiTextH2}"
VerticalAlignment="Center" />
<StackPanel Grid.Column="2" Orientation="Horizontal">
<Button Style="{StaticResource SettingsButton}" Margin="0,0,6,0" MinWidth="104" Command="{Binding AddConversionProfileCommand}">
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="&#xE710;" />
<TextBlock Text="Добавить" VerticalAlignment="Center" />
</StackPanel>
</Button>
<Button Style="{StaticResource SettingsDangerButton}" MinWidth="96" Command="{Binding RemoveConversionProfileCommand}">
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="&#xE74D;" />
<TextBlock Text="Удалить" VerticalAlignment="Center" />
</StackPanel>
</Button>
</StackPanel>
</Grid>
<DataGrid Grid.Row="3"
ItemsSource="{Binding ConversionProfiles}"
SelectedItem="{Binding SelectedConversionProfile, Mode=TwoWay}"
AutoGenerateColumns="False"
CanUserAddRows="False"
CanUserDeleteRows="False"
IsReadOnly="False"
Style="{StaticResource UiDataGrid}"
RowStyle="{StaticResource UiDataGridRow}"
ColumnHeaderStyle="{StaticResource UiDataGridColumnHeader}"
CellStyle="{StaticResource UiDataGridCell}"
RowStyle="{StaticResource SettingsDataGridRow}"
ColumnHeaderStyle="{StaticResource SettingsDataGridHeader}"
CellStyle="{StaticResource SettingsDataGridCell}"
HeadersVisibility="Column"
GridLinesVisibility="Horizontal"
GridLinesVisibility="All"
RowHeight="26"
ColumnHeaderHeight="26"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.VerticalScrollBarVisibility="Auto"
MinHeight="160">
MinHeight="0">
<DataGrid.Resources>
<Style TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="FontSize" Value="11" />
<Setter Property="TextTrimming" Value="CharacterEllipsis" />
</Style>
<Style TargetType="TextBox" BasedOn="{StaticResource SettingsTextBox}">
<Setter Property="Height" Value="24" />
<Setter Property="MinHeight" Value="24" />
<Setter Property="Padding" Value="4,0" />
</Style>
<Style TargetType="ComboBox" BasedOn="{StaticResource SettingsComboBox}">
<Setter Property="Height" Value="24" />
<Setter Property="MinHeight" Value="24" />
<Setter Property="Padding" Value="4,0" />
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTemplateColumn Header="Профиль" Width="150">
<DataGridTemplateColumn.CellTemplate>
@ -938,33 +1027,26 @@
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
<StackPanel Orientation="Horizontal" Margin="0,8,0,0" HorizontalAlignment="Left">
<Button Style="{StaticResource UiButtonSecondary}" Margin="0,0,8,0" MinWidth="150" Command="{Binding AddConversionProfileCommand}">
<TextBlock Text="Добавить профиль" />
</Button>
<Button Style="{StaticResource UiButtonDanger}" MinWidth="150" Command="{Binding RemoveConversionProfileCommand}">
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="&#xE74D;" />
<TextBlock Text="Удалить профиль" VerticalAlignment="Center" />
</StackPanel>
</Button>
</StackPanel>
</StackPanel>
</Border>
</ScrollViewer>
<StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Right">
<Button Style="{StaticResource UiButtonSecondary}"
MinWidth="168"
Margin="0,0,8,0"
<Grid Grid.Row="4" Margin="0,6,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Button Grid.Column="0"
Style="{StaticResource SettingsButton}"
MinWidth="154"
HorizontalAlignment="Left"
Command="{Binding CheckToolsCommand}">
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="&#xE895;" />
<TextBlock Text="Проверить инструменты" VerticalAlignment="Center" />
</StackPanel>
</Button>
<Button Style="{StaticResource UiButtonSecondary}"
MinWidth="112"
<StackPanel Grid.Column="2" Orientation="Horizontal" HorizontalAlignment="Right">
<Button Style="{StaticResource SettingsButton}"
MinWidth="96"
Margin="0,0,8,0"
Command="{Binding CancelSettingsCommand}">
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
@ -972,8 +1054,8 @@
<TextBlock Text="Отменить" VerticalAlignment="Center" />
</StackPanel>
</Button>
<Button Style="{StaticResource UiButtonPrimary}"
MinWidth="112"
<Button Style="{StaticResource SettingsPrimaryButton}"
MinWidth="98"
Command="{Binding SaveSettingsCommand}">
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
<TextBlock Style="{StaticResource UiMdlGlyphOnPrimary}" Text="&#xE74E;" />
@ -982,6 +1064,7 @@
</Button>
</StackPanel>
</Grid>
</Grid>
</TabItem>
<TabItem>