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