|
|
|
<controls:UserControlBase
|
|
|
|
x:Class="StabilityMatrix.Avalonia.Views.Settings.MainSettingsPage"
|
|
|
|
xmlns="https://github.com/avaloniaui"
|
|
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
|
|
xmlns:avalonia="https://github.com/projektanker/icons.avalonia"
|
|
|
|
xmlns:controls="clr-namespace:StabilityMatrix.Avalonia.Controls"
|
|
|
|
xmlns:converters="clr-namespace:StabilityMatrix.Avalonia.Converters"
|
|
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
|
|
xmlns:fluentIcons="clr-namespace:FluentIcons.FluentAvalonia;assembly=FluentIcons.FluentAvalonia"
|
|
|
|
xmlns:hardwareInfo="clr-namespace:StabilityMatrix.Core.Helper.HardwareInfo;assembly=StabilityMatrix.Core"
|
|
|
|
xmlns:helper="clr-namespace:StabilityMatrix.Core.Helper;assembly=StabilityMatrix.Core"
|
|
|
|
xmlns:inference="clr-namespace:StabilityMatrix.Avalonia.Models.Inference"
|
|
|
|
xmlns:lang="clr-namespace:StabilityMatrix.Avalonia.Languages"
|
|
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
|
|
xmlns:mocks="clr-namespace:StabilityMatrix.Avalonia.DesignData"
|
|
|
|
xmlns:models="clr-namespace:StabilityMatrix.Avalonia.Models"
|
|
|
|
xmlns:sg="clr-namespace:SpacedGridControl.Avalonia;assembly=SpacedGridControl.Avalonia"
|
|
|
|
xmlns:system="clr-namespace:System;assembly=System.Runtime"
|
|
|
|
xmlns:ui="using:FluentAvalonia.UI.Controls"
|
|
|
|
xmlns:update="clr-namespace:StabilityMatrix.Core.Models.Update;assembly=StabilityMatrix.Core"
|
|
|
|
xmlns:vm="clr-namespace:StabilityMatrix.Avalonia.ViewModels"
|
|
|
|
xmlns:vmSettings="clr-namespace:StabilityMatrix.Avalonia.ViewModels.Settings"
|
|
|
|
xmlns:input="clr-namespace:System.Windows.Input;assembly=System.ObjectModel"
|
|
|
|
xmlns:ct="clr-namespace:CommunityToolkit.Mvvm.Input;assembly=CommunityToolkit.Mvvm"
|
|
|
|
d:DataContext="{x:Static mocks:DesignData.MainSettingsViewModel}"
|
|
|
|
d:DesignHeight="700"
|
|
|
|
d:DesignWidth="800"
|
|
|
|
x:CompileBindings="True"
|
|
|
|
x:DataType="vmSettings:MainSettingsViewModel"
|
|
|
|
Focusable="True"
|
|
|
|
mc:Ignorable="d">
|
|
|
|
|
|
|
|
<controls:UserControlBase.Resources>
|
|
|
|
<converters:CultureInfoDisplayConverter x:Key="CultureInfoDisplayConverter" />
|
|
|
|
<converters:IndexPlusOneConverter x:Key="IndexPlusOneConverter" />
|
|
|
|
<converters:EnumStringConverter x:Key="EnumStringConverter" />
|
|
|
|
<converters:EnumToBooleanConverter x:Key="EnumBoolConverter" />
|
|
|
|
</controls:UserControlBase.Resources>
|
|
|
|
|
|
|
|
<controls:UserControlBase.Styles>
|
|
|
|
<Style Selector="sg|SpacedGrid > ui|SettingsExpander">
|
|
|
|
<Setter Property="Margin" Value="8,0" />
|
|
|
|
</Style>
|
|
|
|
</controls:UserControlBase.Styles>
|
|
|
|
|
|
|
|
<ScrollViewer VerticalScrollBarVisibility="Auto">
|
|
|
|
<StackPanel Margin="8,16" Spacing="8">
|
|
|
|
<!-- Theme -->
|
|
|
|
<Grid RowDefinitions="Auto,*,*,*">
|
|
|
|
<TextBlock
|
|
|
|
Margin="0,0,0,8"
|
|
|
|
FontWeight="Medium"
|
|
|
|
Text="{x:Static lang:Resources.Label_Appearance}" />
|
|
|
|
<ui:SettingsExpander
|
|
|
|
Grid.Row="1"
|
|
|
|
Margin="8,0,8,4"
|
|
|
|
Header="{x:Static lang:Resources.Label_Theme}"
|
|
|
|
IconSource="WeatherMoon">
|
|
|
|
<ui:SettingsExpander.Footer>
|
|
|
|
<ComboBox
|
|
|
|
MinWidth="100"
|
|
|
|
ItemsSource="{Binding AvailableThemes}"
|
|
|
|
SelectedItem="{Binding SelectedTheme}" />
|
|
|
|
</ui:SettingsExpander.Footer>
|
|
|
|
</ui:SettingsExpander>
|
|
|
|
<ui:SettingsExpander
|
|
|
|
Grid.Row="2"
|
|
|
|
Margin="8,0,8,4"
|
|
|
|
Header="{x:Static lang:Resources.Label_Language}"
|
|
|
|
IconSource="Character">
|
|
|
|
<ui:SettingsExpander.Footer>
|
|
|
|
<ComboBox
|
|
|
|
MinWidth="100"
|
|
|
|
DisplayMemberBinding="{Binding Converter={StaticResource CultureInfoDisplayConverter}}"
|
|
|
|
ItemsSource="{Binding AvailableLanguages}"
|
|
|
|
SelectedItem="{Binding SelectedLanguage}" />
|
|
|
|
</ui:SettingsExpander.Footer>
|
|
|
|
</ui:SettingsExpander>
|
|
|
|
<ui:SettingsExpander
|
|
|
|
Grid.Row="3"
|
|
|
|
Margin="8,0,8,4"
|
|
|
|
ActionIconSource="ChevronRight"
|
|
|
|
Command="{Binding NavigateToSubPageCommand}"
|
|
|
|
CommandParameter="{x:Type vmSettings:InferenceSettingsViewModel}"
|
|
|
|
Header="Inference (Test)"
|
|
|
|
IconSource="Code"
|
|
|
|
IsClickEnabled="True"
|
|
|
|
IsVisible="{Binding SharedState.IsDebugMode}" />
|
|
|
|
</Grid>
|
|
|
|
|
|
|
|
<!-- Checkpoints Manager Options -->
|
|
|
|
<Grid RowDefinitions="auto,*,Auto">
|
|
|
|
<TextBlock
|
|
|
|
Margin="0,0,0,8"
|
|
|
|
FontWeight="Medium"
|
|
|
|
Text="{x:Static lang:Resources.Label_CheckpointManager}" />
|
|
|
|
<ui:SettingsExpander
|
|
|
|
Grid.Row="1"
|
|
|
|
Margin="8,0"
|
|
|
|
Description="{x:Static lang:Resources.Label_RemoveSymlinksOnShutdown_Details}"
|
|
|
|
Header="{x:Static lang:Resources.Label_RemoveSymlinksOnShutdown}"
|
|
|
|
IconSource="Folder">
|
|
|
|
<ui:SettingsExpander.Footer>
|
|
|
|
<CheckBox IsChecked="{Binding RemoveSymlinksOnShutdown}" />
|
|
|
|
</ui:SettingsExpander.Footer>
|
|
|
|
</ui:SettingsExpander>
|
|
|
|
<ui:SettingsExpander
|
|
|
|
Grid.Row="2"
|
|
|
|
Margin="8,4"
|
|
|
|
Description="{x:Static lang:Resources.Label_ResetCheckpointsCache_Details}"
|
|
|
|
Header="{x:Static lang:Resources.Label_ResetCheckpointsCache}"
|
|
|
|
IconSource="Refresh">
|
|
|
|
<ui:SettingsExpander.Footer>
|
|
|
|
<Button Command="{Binding ResetCheckpointCache}" Content="{x:Static lang:Resources.Label_ResetCheckpointsCache}" />
|
|
|
|
</ui:SettingsExpander.Footer>
|
|
|
|
</ui:SettingsExpander>
|
|
|
|
</Grid>
|
|
|
|
|
|
|
|
<!-- General -->
|
|
|
|
<sg:SpacedGrid RowDefinitions="Auto,*,*" RowSpacing="4">
|
|
|
|
<TextBlock
|
|
|
|
Margin="0,0,0,4"
|
|
|
|
FontWeight="Medium"
|
|
|
|
Text="{x:Static lang:Resources.Label_General}" />
|
|
|
|
<!-- Link to Inference Sub-Settings -->
|
|
|
|
<ui:SettingsExpander
|
|
|
|
Grid.Row="1"
|
|
|
|
Margin="8,0"
|
|
|
|
ActionIconSource="ChevronRight"
|
|
|
|
Command="{Binding NavigateToSubPageCommand}"
|
|
|
|
CommandParameter="{x:Type vmSettings:InferenceSettingsViewModel}"
|
|
|
|
Header="{x:Static lang:Resources.Label_Inference}"
|
|
|
|
IsClickEnabled="True">
|
|
|
|
<ui:SettingsExpander.IconSource>
|
|
|
|
<fluentIcons:SymbolIconSource
|
|
|
|
FontSize="10"
|
|
|
|
IsFilled="True"
|
|
|
|
Symbol="AppGeneric" />
|
|
|
|
</ui:SettingsExpander.IconSource>
|
|
|
|
</ui:SettingsExpander>
|
|
|
|
<ui:SettingsExpander Grid.Row="2"
|
|
|
|
Header="{x:Static lang:Resources.Label_HolidayMode}">
|
|
|
|
<ui:SettingsExpander.IconSource>
|
|
|
|
<fluentIcons:SymbolIconSource
|
|
|
|
FontSize="10"
|
|
|
|
IsFilled="True"
|
|
|
|
Symbol="WeatherSnowflake" />
|
|
|
|
</ui:SettingsExpander.IconSource>
|
|
|
|
<ui:SettingsExpander.Footer>
|
|
|
|
<ui:FAComboBox SelectedItem="{Binding HolidayModeSetting}"
|
|
|
|
ItemsSource="{Binding HolidayModes}"/>
|
|
|
|
</ui:SettingsExpander.Footer>
|
|
|
|
</ui:SettingsExpander>
|
|
|
|
</sg:SpacedGrid>
|
|
|
|
|
|
|
|
<!-- Environment Options -->
|
|
|
|
<Grid RowDefinitions="Auto, Auto, Auto">
|
|
|
|
<TextBlock
|
|
|
|
Margin="0,0,0,8"
|
|
|
|
FontWeight="Medium"
|
|
|
|
Text="{x:Static lang:Resources.Label_PackageEnvironment}" />
|
|
|
|
|
|
|
|
<ui:SettingsExpander
|
|
|
|
Grid.Row="1"
|
|
|
|
Margin="8,0"
|
|
|
|
Header="{x:Static lang:Resources.Label_EnvironmentVariables}"
|
|
|
|
IconSource="OtherUser">
|
|
|
|
<ui:SettingsExpander.Footer>
|
|
|
|
<Button Command="{Binding OpenEnvVarsDialogCommand}" Content="{x:Static lang:Resources.Action_Edit}" />
|
|
|
|
</ui:SettingsExpander.Footer>
|
|
|
|
</ui:SettingsExpander>
|
|
|
|
|
|
|
|
<ui:SettingsExpander
|
|
|
|
Grid.Row="2"
|
|
|
|
Margin="8,4"
|
|
|
|
Header="{x:Static lang:Resources.Label_EmbeddedPython}">
|
|
|
|
<ui:SettingsExpander.IconSource>
|
|
|
|
<controls:FASymbolIconSource Symbol="fa-brands fa-python" />
|
|
|
|
</ui:SettingsExpander.IconSource>
|
|
|
|
<ui:SettingsExpander.Footer>
|
|
|
|
<StackPanel Orientation="Horizontal" Spacing="16">
|
|
|
|
<controls:ProgressRing
|
|
|
|
BorderThickness="3"
|
|
|
|
IsEnabled="{Binding CheckPythonVersionCommand.IsRunning}"
|
|
|
|
IsIndeterminate="True"
|
|
|
|
IsVisible="{Binding CheckPythonVersionCommand.IsRunning}" />
|
|
|
|
<Button Command="{Binding CheckPythonVersionCommand}" Content="{x:Static lang:Resources.Action_CheckVersion}" />
|
|
|
|
</StackPanel>
|
|
|
|
</ui:SettingsExpander.Footer>
|
|
|
|
</ui:SettingsExpander>
|
|
|
|
</Grid>
|
|
|
|
|
|
|
|
<!-- Integrations -->
|
|
|
|
<sg:SpacedGrid RowDefinitions="Auto,*,*" RowSpacing="4">
|
|
|
|
<TextBlock
|
|
|
|
Margin="0,0,0,4"
|
|
|
|
FontWeight="Medium"
|
|
|
|
Text="{x:Static lang:Resources.Label_Integrations}" />
|
|
|
|
<ui:SettingsExpander
|
|
|
|
Grid.Row="1"
|
|
|
|
Margin="8,0"
|
|
|
|
ActionIconSource="ChevronRight"
|
|
|
|
Command="{Binding NavigateToSubPageCommand}"
|
|
|
|
CommandParameter="{x:Type vmSettings:AccountSettingsViewModel}"
|
|
|
|
Header="{x:Static lang:Resources.Label_Accounts}"
|
|
|
|
IsClickEnabled="True">
|
|
|
|
<ui:SettingsExpander.IconSource>
|
|
|
|
<fluentIcons:SymbolIconSource
|
|
|
|
FontSize="10"
|
|
|
|
IsFilled="True"
|
|
|
|
Symbol="Person" />
|
|
|
|
</ui:SettingsExpander.IconSource>
|
|
|
|
</ui:SettingsExpander>
|
|
|
|
<ui:SettingsExpander
|
|
|
|
Grid.Row="2"
|
|
|
|
Margin="8,0,8,4"
|
|
|
|
Header="{x:Static lang:Resources.Label_DiscordRichPresence}">
|
|
|
|
<ui:SettingsExpander.IconSource>
|
|
|
|
<controls:FASymbolIconSource Symbol="fa-brands fa-discord" />
|
|
|
|
</ui:SettingsExpander.IconSource>
|
|
|
|
<ui:SettingsExpander.Footer>
|
|
|
|
<ToggleSwitch IsChecked="{Binding IsDiscordRichPresenceEnabled}" />
|
|
|
|
</ui:SettingsExpander.Footer>
|
|
|
|
</ui:SettingsExpander>
|
|
|
|
</sg:SpacedGrid>
|
|
|
|
|
|
|
|
<!-- System Options -->
|
|
|
|
<sg:SpacedGrid RowDefinitions="Auto,Auto,Auto,Auto,Auto" RowSpacing="4">
|
|
|
|
<TextBlock
|
|
|
|
Margin="0,0,0,4"
|
|
|
|
FontWeight="Medium"
|
|
|
|
Text="{x:Static lang:Resources.Label_System}" />
|
|
|
|
|
|
|
|
<!-- Updates page -->
|
|
|
|
<ui:SettingsExpander
|
|
|
|
Grid.Row="1"
|
|
|
|
ActionIconSource="ChevronRight"
|
|
|
|
Command="{Binding NavigateToSubPageCommand}"
|
|
|
|
CommandParameter="{x:Type vmSettings:UpdateSettingsViewModel}"
|
|
|
|
Header="{x:Static lang:Resources.Label_Updates}"
|
|
|
|
IsClickEnabled="True">
|
|
|
|
<ui:SettingsExpander.IconSource>
|
|
|
|
<fluentIcons:SymbolIconSource
|
|
|
|
FontSize="10"
|
|
|
|
IsFilled="True"
|
|
|
|
Symbol="ArrowSync" />
|
|
|
|
</ui:SettingsExpander.IconSource>
|
|
|
|
</ui:SettingsExpander>
|
|
|
|
|
|
|
|
<ui:SettingsExpander
|
|
|
|
Grid.Row="2"
|
|
|
|
Description="{x:Static lang:Resources.Label_AddToStartMenu_Details}"
|
|
|
|
Header="{x:Static lang:Resources.Label_AddToStartMenu}"
|
|
|
|
IconSource="StarAdd"
|
|
|
|
ToolTip.Tip="{OnPlatform Default={x:Static lang:Resources.Label_OnlyAvailableOnWindows},
|
|
|
|
Windows={x:Null}}">
|
|
|
|
<ui:SettingsExpander.Footer>
|
|
|
|
<StackPanel Orientation="Horizontal" Spacing="8">
|
|
|
|
<controls:ProgressRing
|
|
|
|
BorderThickness="3"
|
|
|
|
IsEnabled="{Binding IsVisible, RelativeSource={RelativeSource Self}}"
|
|
|
|
IsIndeterminate="True">
|
|
|
|
<controls:ProgressRing.IsVisible>
|
|
|
|
<MultiBinding Converter="{x:Static BoolConverters.Or}">
|
|
|
|
<Binding Path="AddToStartMenuCommand.IsRunning" />
|
|
|
|
<Binding Path="AddToGlobalStartMenuCommand.IsRunning" />
|
|
|
|
</MultiBinding>
|
|
|
|
</controls:ProgressRing.IsVisible>
|
|
|
|
</controls:ProgressRing>
|
|
|
|
|
|
|
|
<SplitButton
|
|
|
|
Command="{Binding AddToStartMenuCommand}"
|
|
|
|
Content="{x:Static lang:Resources.Action_AddForCurrentUser}"
|
|
|
|
IsEnabled="{OnPlatform Default=False,
|
|
|
|
Windows=True}">
|
|
|
|
<SplitButton.Flyout>
|
|
|
|
<ui:FAMenuFlyout Placement="Bottom">
|
|
|
|
<ui:MenuFlyoutItem
|
|
|
|
Command="{Binding AddToGlobalStartMenuCommand}"
|
|
|
|
IconSource="Admin"
|
|
|
|
Text="{x:Static lang:Resources.Action_AddForAllUsers}" />
|
|
|
|
</ui:FAMenuFlyout>
|
|
|
|
</SplitButton.Flyout>
|
|
|
|
</SplitButton>
|
|
|
|
</StackPanel>
|
|
|
|
</ui:SettingsExpander.Footer>
|
|
|
|
</ui:SettingsExpander>
|
|
|
|
|
|
|
|
<ui:SettingsExpander
|
|
|
|
Grid.Row="3"
|
|
|
|
Description="{x:Static lang:Resources.Label_SelectNewDataDirectory_Details}"
|
|
|
|
IconSource="MoveToFolder">
|
|
|
|
<ui:SettingsExpander.Header>
|
|
|
|
<StackPanel Orientation="Vertical">
|
|
|
|
<TextBlock Text="{x:Static lang:Resources.Label_SelectNewDataDirectory}" />
|
|
|
|
<TextBlock FontSize="12" Foreground="{DynamicResource TextFillColorSecondaryBrush}">
|
|
|
|
<Run Text="{x:Static lang:Resources.Label_CurrentDirectory}" />
|
|
|
|
<Run Text="{Binding DataDirectory}" />
|
|
|
|
</TextBlock>
|
|
|
|
</StackPanel>
|
|
|
|
</ui:SettingsExpander.Header>
|
|
|
|
<ui:SettingsExpander.Footer>
|
|
|
|
<Button Command="{Binding PickNewDataDirectory}">
|
|
|
|
<Grid ColumnDefinitions="Auto, Auto">
|
|
|
|
<avalonia:Icon
|
|
|
|
Grid.Row="0"
|
|
|
|
Margin="0,0,8,0"
|
|
|
|
VerticalAlignment="Center"
|
|
|
|
Value="fa-solid fa-folder-open" />
|
|
|
|
<TextBlock
|
|
|
|
Grid.Column="1"
|
|
|
|
VerticalAlignment="Center"
|
|
|
|
Text="{x:Static lang:Resources.Action_SelectDirectory}" />
|
|
|
|
</Grid>
|
|
|
|
</Button>
|
|
|
|
</ui:SettingsExpander.Footer>
|
|
|
|
</ui:SettingsExpander>
|
|
|
|
|
|
|
|
<ui:SettingsExpander Grid.Row="4" Header="{x:Static lang:Resources.Label_SystemInformation}">
|
|
|
|
<ui:SettingsExpander.IconSource>
|
|
|
|
<fluentIcons:SymbolIconSource
|
|
|
|
FontSize="10"
|
|
|
|
IsFilled="True"
|
|
|
|
Symbol="Info" />
|
|
|
|
</ui:SettingsExpander.IconSource>
|
|
|
|
|
|
|
|
<!-- Cpu -->
|
|
|
|
<ui:SettingsExpanderItem>
|
|
|
|
<ui:SettingsExpanderItem.IconSource>
|
|
|
|
<controls:FASymbolIconSource
|
|
|
|
FontSize="10"
|
|
|
|
Foreground="{DynamicResource TextFillColorTertiaryBrush}"
|
|
|
|
Symbol="fa-solid fa-microchip" />
|
|
|
|
</ui:SettingsExpanderItem.IconSource>
|
|
|
|
|
|
|
|
<sg:SpacedGrid
|
|
|
|
DataContext="{Binding CpuInfoAsync^}"
|
|
|
|
ColumnDefinitions="Auto,Auto"
|
|
|
|
ColumnSpacing="16"
|
|
|
|
RowDefinitions="Auto,Auto">
|
|
|
|
<TextBlock Grid.Column="0" Text="CPU" />
|
|
|
|
<SelectableTextBlock
|
|
|
|
Grid.Row="0"
|
|
|
|
Grid.Column="1"
|
|
|
|
Foreground="{DynamicResource TextControlPlaceholderForeground}"
|
|
|
|
Text="{Binding ProcessorCaption}"
|
|
|
|
TextWrapping="WrapWithOverflow" />
|
|
|
|
</sg:SpacedGrid>
|
|
|
|
|
|
|
|
</ui:SettingsExpanderItem>
|
|
|
|
|
|
|
|
<!-- Memory -->
|
|
|
|
<ui:SettingsExpanderItem>
|
|
|
|
<ui:SettingsExpanderItem.IconSource>
|
|
|
|
<controls:FASymbolIconSource
|
|
|
|
FontSize="10"
|
|
|
|
Foreground="{DynamicResource TextFillColorTertiaryBrush}"
|
|
|
|
Symbol="fa-solid fa-memory" />
|
|
|
|
</ui:SettingsExpanderItem.IconSource>
|
|
|
|
|
|
|
|
<sg:SpacedGrid
|
|
|
|
DataContext="{Binding MemoryInfo}"
|
|
|
|
ColumnDefinitions="Auto,Auto"
|
|
|
|
ColumnSpacing="16"
|
|
|
|
RowDefinitions="Auto,Auto">
|
|
|
|
<TextBlock Grid.Column="0" Text="Total Memory" />
|
|
|
|
<SelectableTextBlock
|
|
|
|
Grid.Row="0"
|
|
|
|
Grid.Column="1"
|
|
|
|
Foreground="{DynamicResource TextControlPlaceholderForeground}"
|
|
|
|
TextWrapping="WrapWithOverflow">
|
|
|
|
<SelectableTextBlock.Text>
|
|
|
|
<MultiBinding StringFormat="{}{0} ({1} usable)">
|
|
|
|
<Binding Path="TotalInstalledBytes" Converter="{x:Static converters:StringFormatConverters.MemoryBytes}"/>
|
|
|
|
<Binding Path="TotalPhysicalBytes" Converter="{x:Static converters:StringFormatConverters.MemoryBytes}"/>
|
|
|
|
</MultiBinding>
|
|
|
|
</SelectableTextBlock.Text>
|
|
|
|
</SelectableTextBlock>
|
|
|
|
|
|
|
|
<TextBlock
|
|
|
|
Grid.Row="1"
|
|
|
|
Grid.Column="0"
|
|
|
|
IsVisible="{x:Static hardwareInfo:HardwareHelper.IsLiveMemoryUsageInfoAvailable}"
|
|
|
|
Text="Available Memory" />
|
|
|
|
<SelectableTextBlock
|
|
|
|
Grid.Row="1"
|
|
|
|
Grid.Column="1"
|
|
|
|
IsVisible="{x:Static hardwareInfo:HardwareHelper.IsLiveMemoryUsageInfoAvailable}"
|
|
|
|
Foreground="{DynamicResource TextControlPlaceholderForeground}"
|
|
|
|
Text="{Binding AvailablePhysicalBytes, Converter={x:Static converters:StringFormatConverters.MemoryBytes}}"
|
|
|
|
TextWrapping="WrapWithOverflow" />
|
|
|
|
</sg:SpacedGrid>
|
|
|
|
|
|
|
|
</ui:SettingsExpanderItem>
|
|
|
|
|
|
|
|
<!-- GPUs -->
|
|
|
|
<ui:SettingsExpanderItem>
|
|
|
|
<ui:SettingsExpanderItem.IconSource>
|
|
|
|
<controls:FASymbolIconSource
|
|
|
|
FontSize="10"
|
|
|
|
Foreground="{DynamicResource TextFillColorTertiaryBrush}"
|
|
|
|
Symbol="fa-solid fa-tachograph-digital" />
|
|
|
|
</ui:SettingsExpanderItem.IconSource>
|
|
|
|
<ItemsControl ItemsSource="{Binding GpuInfos}">
|
|
|
|
<ItemsControl.ItemTemplate>
|
|
|
|
<DataTemplate DataType="hardwareInfo:GpuInfo">
|
|
|
|
<sg:SpacedGrid ColumnDefinitions="Auto,Auto,Auto" RowDefinitions="Auto,Auto">
|
|
|
|
<TextBlock Text="{Binding Index, StringFormat={}{0}, Converter={StaticResource IndexPlusOneConverter}}" Theme="{DynamicResource BodyStrongTextBlockStyle}" />
|
|
|
|
<SelectableTextBlock
|
|
|
|
Grid.Row="0"
|
|
|
|
Grid.Column="1"
|
|
|
|
Text="{Binding Name}" />
|
|
|
|
<SelectableTextBlock
|
|
|
|
Grid.Row="1"
|
|
|
|
Grid.Column="1"
|
|
|
|
Grid.ColumnSpan="2"
|
|
|
|
Foreground="{DynamicResource TextControlPlaceholderForeground}"
|
|
|
|
IsVisible="{Binding !!MemoryBytes}"
|
|
|
|
Text="{Binding MemoryBytes, Converter={x:Static converters:StringFormatConverters.MemoryBytes}}"
|
|
|
|
TextWrapping="WrapWithOverflow" />
|
|
|
|
</sg:SpacedGrid>
|
|
|
|
</DataTemplate>
|
|
|
|
</ItemsControl.ItemTemplate>
|
|
|
|
|
|
|
|
<ItemsControl.ItemsPanel>
|
|
|
|
<ItemsPanelTemplate>
|
|
|
|
<StackPanel Spacing="8" />
|
|
|
|
</ItemsPanelTemplate>
|
|
|
|
</ItemsControl.ItemsPanel>
|
|
|
|
|
|
|
|
</ItemsControl>
|
|
|
|
|
|
|
|
</ui:SettingsExpanderItem>
|
|
|
|
</ui:SettingsExpander>
|
|
|
|
</sg:SpacedGrid>
|
|
|
|
|
|
|
|
<!-- Debug Options -->
|
|
|
|
<Grid IsVisible="{Binding SharedState.IsDebugMode}" RowDefinitions="auto,*">
|
|
|
|
<TextBlock
|
|
|
|
Margin="0,0,0,8"
|
|
|
|
FontWeight="Medium"
|
|
|
|
Text="Debug Options" />
|
|
|
|
<ui:SettingsExpander
|
|
|
|
Grid.Row="1"
|
|
|
|
Margin="8,0,8,0"
|
|
|
|
Command="{Binding LoadDebugInfo}"
|
|
|
|
Header="Debug Options"
|
|
|
|
IconSource="Code">
|
|
|
|
|
|
|
|
<ui:SettingsExpanderItem
|
|
|
|
Margin="4,0"
|
|
|
|
Description="Paths"
|
|
|
|
IconSource="Folder">
|
|
|
|
<SelectableTextBlock
|
|
|
|
Foreground="{DynamicResource TextControlPlaceholderForeground}"
|
|
|
|
Text="{Binding DebugPaths}"
|
|
|
|
TextWrapping="WrapWithOverflow" />
|
|
|
|
</ui:SettingsExpanderItem>
|
|
|
|
|
|
|
|
<ui:SettingsExpanderItem
|
|
|
|
Margin="4,0"
|
|
|
|
Description="Compat Info"
|
|
|
|
IconSource="StarFilled">
|
|
|
|
<SelectableTextBlock
|
|
|
|
Foreground="{DynamicResource TextControlPlaceholderForeground}"
|
|
|
|
Text="{Binding DebugCompatInfo}"
|
|
|
|
TextWrapping="WrapWithOverflow" />
|
|
|
|
</ui:SettingsExpanderItem>
|
|
|
|
|
|
|
|
<ui:SettingsExpanderItem
|
|
|
|
Margin="4,0"
|
|
|
|
Description="GPU Info"
|
|
|
|
IconSource="FullScreenMaximize">
|
|
|
|
<SelectableTextBlock
|
|
|
|
Foreground="{DynamicResource TextControlPlaceholderForeground}"
|
|
|
|
Text="{Binding DebugGpuInfo}"
|
|
|
|
TextWrapping="WrapWithOverflow" />
|
|
|
|
</ui:SettingsExpanderItem>
|
|
|
|
|
|
|
|
<ui:SettingsExpanderItem
|
|
|
|
Margin="4,0"
|
|
|
|
Content="Animation Scale"
|
|
|
|
Description="Lower values = faster animations. 0x means animations are instant."
|
|
|
|
IconSource="Clock">
|
|
|
|
<ui:SettingsExpanderItem.Footer>
|
|
|
|
<ComboBox ItemsSource="{Binding AnimationScaleOptions}" SelectedItem="{Binding SelectedAnimationScale}">
|
|
|
|
<ComboBox.ItemTemplate>
|
|
|
|
<DataTemplate>
|
|
|
|
<TextBlock>
|
|
|
|
<Run Text="{Binding}" /><Run Text="x" />
|
|
|
|
</TextBlock>
|
|
|
|
</DataTemplate>
|
|
|
|
</ComboBox.ItemTemplate>
|
|
|
|
</ComboBox>
|
|
|
|
</ui:SettingsExpanderItem.Footer>
|
|
|
|
</ui:SettingsExpanderItem>
|
|
|
|
|
|
|
|
<ui:SettingsExpanderItem
|
|
|
|
Margin="4,0"
|
|
|
|
Content="Notification"
|
|
|
|
IconSource="CommentAdd">
|
|
|
|
<ui:SettingsExpanderItem.Footer>
|
|
|
|
<Button Command="{Binding DebugNotificationCommand}" Content="New Notification" />
|
|
|
|
</ui:SettingsExpanderItem.Footer>
|
|
|
|
</ui:SettingsExpanderItem>
|
|
|
|
|
|
|
|
<ui:SettingsExpanderItem
|
|
|
|
Margin="4,0"
|
|
|
|
Content="Content Dialog"
|
|
|
|
IconSource="NewWindow">
|
|
|
|
<ui:SettingsExpanderItem.Footer>
|
|
|
|
<Button Command="{Binding DebugContentDialogCommand}" Content="Show Dialog" />
|
|
|
|
</ui:SettingsExpanderItem.Footer>
|
|
|
|
</ui:SettingsExpanderItem>
|
|
|
|
|
|
|
|
<ui:SettingsExpanderItem
|
|
|
|
Margin="4,0"
|
|
|
|
Content="Exceptions"
|
|
|
|
IconSource="Flag">
|
|
|
|
<ui:SettingsExpanderItem.Footer>
|
|
|
|
<Button Command="{Binding DebugThrowExceptionCommand}" Content="Unhandled Exception" />
|
|
|
|
</ui:SettingsExpanderItem.Footer>
|
|
|
|
</ui:SettingsExpanderItem>
|
|
|
|
|
|
|
|
<ui:SettingsExpanderItem
|
|
|
|
Margin="4,0,4,4"
|
|
|
|
Content="Download Manager tests"
|
|
|
|
IconSource="Flag">
|
|
|
|
<ui:SettingsExpanderItem.Footer>
|
|
|
|
<Button
|
|
|
|
Margin="0,8"
|
|
|
|
Command="{Binding DebugTrackedDownloadCommand}"
|
|
|
|
Content="Add Tracked Download" />
|
|
|
|
</ui:SettingsExpanderItem.Footer>
|
|
|
|
</ui:SettingsExpanderItem>
|
|
|
|
|
|
|
|
<ui:SettingsExpanderItem
|
|
|
|
Margin="4,0,4,4"
|
|
|
|
Content="Refresh Models Index"
|
|
|
|
IconSource="SyncFolder">
|
|
|
|
<ui:SettingsExpanderItem.Footer>
|
|
|
|
<Button
|
|
|
|
Margin="0,8"
|
|
|
|
Command="{Binding DebugRefreshModelsIndexCommand}"
|
|
|
|
Content="Refresh Index" />
|
|
|
|
</ui:SettingsExpanderItem.Footer>
|
|
|
|
</ui:SettingsExpanderItem>
|
|
|
|
|
|
|
|
<ui:SettingsExpanderItem
|
|
|
|
Margin="4,0,4,4"
|
|
|
|
Content="Make image grid"
|
|
|
|
IconSource="Image">
|
|
|
|
<ui:SettingsExpanderItem.Footer>
|
|
|
|
<Button
|
|
|
|
Margin="0,8"
|
|
|
|
Command="{Binding DebugMakeImageGridCommand}"
|
|
|
|
Content="Select images" />
|
|
|
|
</ui:SettingsExpanderItem.Footer>
|
|
|
|
</ui:SettingsExpanderItem>
|
|
|
|
|
|
|
|
<ui:SettingsExpanderItem
|
|
|
|
Margin="4,0,4,4"
|
|
|
|
Content="Image metadata parser"
|
|
|
|
IconSource="Flag">
|
|
|
|
<ui:SettingsExpanderItem.Footer>
|
|
|
|
<Button
|
|
|
|
Margin="0,8"
|
|
|
|
Command="{Binding DebugImageMetadataCommand}"
|
|
|
|
Content="Choose image" />
|
|
|
|
</ui:SettingsExpanderItem.Footer>
|
|
|
|
</ui:SettingsExpanderItem>
|
|
|
|
|
|
|
|
<ItemsRepeater
|
|
|
|
Margin="4,0,4,4"
|
|
|
|
ItemsSource="{Binding DebugCommands}">
|
|
|
|
<ItemsRepeater.Layout>
|
|
|
|
<UniformGridLayout />
|
|
|
|
</ItemsRepeater.Layout>
|
|
|
|
<ItemsRepeater.ItemTemplate>
|
|
|
|
<DataTemplate DataType="models:CommandItem">
|
|
|
|
<Button
|
|
|
|
Margin="4,8"
|
|
|
|
Command="{Binding Command}"
|
|
|
|
Content="{Binding DisplayName}" />
|
|
|
|
</DataTemplate>
|
|
|
|
</ItemsRepeater.ItemTemplate>
|
|
|
|
</ItemsRepeater>
|
|
|
|
|
|
|
|
</ui:SettingsExpander>
|
|
|
|
</Grid>
|
|
|
|
|
|
|
|
<!-- TODO: Directories card -->
|
|
|
|
|
|
|
|
<Grid RowDefinitions="auto,*">
|
|
|
|
<StackPanel
|
|
|
|
Grid.Row="1"
|
|
|
|
HorizontalAlignment="Left"
|
|
|
|
Orientation="Vertical">
|
|
|
|
<TextBlock
|
|
|
|
Margin="0,8"
|
|
|
|
FontSize="15"
|
|
|
|
FontWeight="Bold"
|
|
|
|
Text="{x:Static lang:Resources.Label_About}" />
|
|
|
|
<Image
|
|
|
|
Width="112"
|
|
|
|
Height="112"
|
|
|
|
Margin="8"
|
|
|
|
HorizontalAlignment="Left"
|
|
|
|
Source="/Assets/Icon.png" />
|
|
|
|
<TextBlock
|
|
|
|
Margin="8"
|
|
|
|
FontWeight="Medium"
|
|
|
|
Text="{x:Static lang:Resources.Label_StabilityMatrix}" />
|
|
|
|
<Panel>
|
|
|
|
<Button
|
|
|
|
Name="VersionButton"
|
|
|
|
Margin="8,0,8,8"
|
|
|
|
Padding="2,0,2,0"
|
|
|
|
BorderThickness="0"
|
|
|
|
Classes="transparent"
|
|
|
|
Command="{Binding OnVersionClick}"
|
|
|
|
Content="{Binding AppVersion}" />
|
|
|
|
<ui:TeachingTip
|
|
|
|
Title="{Binding VersionFlyoutText}"
|
|
|
|
IsOpen="{Binding IsVersionTapTeachingTipOpen}"
|
|
|
|
PreferredPlacement="RightTop"
|
|
|
|
Target="{Binding #VersionButton}" />
|
|
|
|
</Panel>
|
|
|
|
|
|
|
|
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal">
|
|
|
|
<Button
|
|
|
|
Margin="8"
|
|
|
|
HorizontalAlignment="Left"
|
|
|
|
Command="{Binding ShowLicensesDialogCommand}"
|
|
|
|
Content="{x:Static lang:Resources.Label_LicenseAndOpenSourceNotices}" />
|
|
|
|
</StackPanel>
|
|
|
|
</StackPanel>
|
|
|
|
</Grid>
|
|
|
|
|
|
|
|
<!-- Extra space at the bottom -->
|
|
|
|
<Panel Margin="0,0,0,16" />
|
|
|
|
</StackPanel>
|
|
|
|
</ScrollViewer>
|
|
|
|
</controls:UserControlBase>
|