You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
680 lines
34 KiB
680 lines
34 KiB
<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.Avalonia.Fluent;assembly=FluentIcons.Avalonia.Fluent" |
|
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"> |
|
<!-- 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> |
|
<!-- Link to Notifications Sub-Settings --> |
|
<ui:SettingsExpander |
|
Grid.Row="2" |
|
Margin="8,0" |
|
ActionIconSource="ChevronRight" |
|
Command="{Binding NavigateToSubPageCommand}" |
|
CommandParameter="{x:Type vmSettings:NotificationSettingsViewModel}" |
|
Header="{x:Static lang:Resources.Label_Notifications}" |
|
IsClickEnabled="True"> |
|
<ui:SettingsExpander.IconSource> |
|
<fluentIcons:SymbolIconSource |
|
FontSize="10" |
|
Symbol="Alert" /> |
|
</ui:SettingsExpander.IconSource> |
|
</ui:SettingsExpander> |
|
</sg:SpacedGrid> |
|
|
|
<!-- 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> |
|
|
|
<!-- 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> |
|
|
|
<!-- 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> |
|
|
|
<sg:SpacedGrid RowDefinitions="Auto, Auto"> |
|
<TextBlock |
|
Margin="0,0,0,8" |
|
FontWeight="Medium" |
|
Text="{x:Static lang:Resources.Label_WorkflowBrowser}" /> |
|
<ui:SettingsExpander |
|
Grid.Row="1" |
|
Margin="8,0,8,4" |
|
Header="{x:Static lang:Resources.Label_InfiniteScrolling}"> |
|
<ui:SettingsExpander.IconSource> |
|
<controls:FASymbolIconSource Symbol="fa-solid fa-list" /> |
|
</ui:SettingsExpander.IconSource> |
|
<ui:SettingsExpander.Footer> |
|
<ToggleSwitch IsChecked="{Binding InfinitelyScrollWorkflowBrowser}" /> |
|
</ui:SettingsExpander.Footer> |
|
</ui:SettingsExpander> |
|
</sg:SpacedGrid> |
|
|
|
<!-- 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" |
|
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> |
|
|
|
<ui:SettingsExpander |
|
Grid.Row="4" |
|
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> |
|
|
|
<!-- 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>
|
|
|