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.
154 lines
8.6 KiB
154 lines
8.6 KiB
<controls:UserControlBase |
|
x:Class="StabilityMatrix.Avalonia.Views.Settings.UpdateSettingsPage" |
|
xmlns="https://github.com/avaloniaui" |
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
|
xmlns:controls="clr-namespace:StabilityMatrix.Avalonia.Controls" |
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" |
|
xmlns:fluentIcons="clr-namespace:FluentIcons.Avalonia.Fluent;assembly=FluentIcons.Avalonia.Fluent" |
|
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:sm="clr-namespace:StabilityMatrix.Avalonia" |
|
xmlns:system="clr-namespace:System;assembly=System.Runtime" |
|
xmlns:ui="using:FluentAvalonia.UI.Controls" |
|
xmlns:vm="clr-namespace:StabilityMatrix.Avalonia.ViewModels" |
|
xmlns:vmSettings="clr-namespace:StabilityMatrix.Avalonia.ViewModels.Settings" |
|
xmlns:converters="clr-namespace:StabilityMatrix.Avalonia.Converters" |
|
d:DataContext="{x:Static mocks:DesignData.UpdateSettingsViewModel}" |
|
d:DesignHeight="550" |
|
d:DesignWidth="800" |
|
x:DataType="vmSettings:UpdateSettingsViewModel" |
|
mc:Ignorable="d"> |
|
|
|
<controls:UserControlBase.Resources> |
|
<converters:BooleanChoiceMultiConverter x:Key="BoolChoiceMultiConverter" /> |
|
</controls:UserControlBase.Resources> |
|
|
|
<ScrollViewer VerticalScrollBarVisibility="Auto"> |
|
<StackPanel Margin="16,16,24,16" Spacing="2"> |
|
|
|
<sg:SpacedGrid Margin="0,4,0,16" ColumnDefinitions="*,Auto"> |
|
<StackPanel Orientation="Horizontal" Spacing="16"> |
|
<fluentIcons:SymbolIcon |
|
Width="64" |
|
Height="64" |
|
FontSize="64" |
|
IsFilled="True" |
|
Symbol="ArrowSync" /> |
|
|
|
<StackPanel VerticalAlignment="Center"> |
|
<TextBlock |
|
Margin="-1,0,0,0" |
|
HorizontalAlignment="Left" |
|
Text="{Binding HeaderText}" |
|
Theme="{DynamicResource SubtitleTextBlockStyle}" /> |
|
<TextBlock |
|
HorizontalAlignment="Left" |
|
Foreground="{DynamicResource TextFillColorTertiaryBrush}" |
|
Text="{Binding SubtitleText}" /> |
|
</StackPanel> |
|
</StackPanel> |
|
|
|
<Button |
|
Grid.Column="1" |
|
Classes="accent" |
|
Content="{x:Static lang:Resources.Action_CheckForUpdates}" |
|
Command="{Binding CheckForUpdatesCommand}" |
|
HorizontalAlignment="Right"> |
|
</Button> |
|
</sg:SpacedGrid> |
|
|
|
<!-- Auto updates toggle --> |
|
<ui:SettingsExpander |
|
Description="Periodically checks for updates" |
|
Header="Notify when updates are ready to install"> |
|
<ui:SettingsExpander.IconSource> |
|
<fluentIcons:SymbolIconSource Symbol="Megaphone" /> |
|
</ui:SettingsExpander.IconSource> |
|
<ui:SettingsExpander.Footer> |
|
<ToggleSwitch IsChecked="{Binding IsAutoCheckUpdatesEnabled}" /> |
|
</ui:SettingsExpander.Footer> |
|
</ui:SettingsExpander> |
|
|
|
<!-- Channel radio buttons --> |
|
<ui:SettingsExpander Header="Preferred Update Channel" IsExpanded="True"> |
|
<ui:SettingsExpander.IconSource> |
|
<fluentIcons:SymbolIconSource Symbol="Branch" /> |
|
</ui:SettingsExpander.IconSource> |
|
|
|
<ui:SettingsExpanderItem> |
|
<ListBox |
|
SelectionChanged="ChannelListBox_OnSelectionChanged" |
|
IsEnabled="{Binding IsAutoCheckUpdatesEnabled}" |
|
ItemContainerTheme="{DynamicResource ListBoxItemBorderlessTheme}" |
|
ItemsSource="{Binding AvailableUpdateChannelCards}" |
|
SelectedItem="{Binding SelectedUpdateChannelCard}"> |
|
<ListBox.ItemTemplate> |
|
<DataTemplate DataType="{x:Type models:UpdateChannelCard}"> |
|
<RadioButton |
|
GroupName="UpdateChannel" |
|
IsChecked="{Binding $parent[ListBoxItem].IsSelected}" > |
|
<StackPanel VerticalAlignment="Top" HorizontalAlignment="Left"> |
|
<StackPanel Orientation="Horizontal" Spacing="5"> |
|
<TextBlock |
|
VerticalAlignment="Center" |
|
Text="{Binding DisplayName}"> |
|
<TextBlock.Foreground> |
|
<MultiBinding Converter="{StaticResource BoolChoiceMultiConverter}"> |
|
<Binding Path="IsSelectable" /> |
|
<DynamicResource ResourceKey="TextFillColorPrimaryBrush"/> |
|
<DynamicResource ResourceKey="TextFillColorTertiaryBrush"/> |
|
</MultiBinding> |
|
</TextBlock.Foreground> |
|
</TextBlock> |
|
<Ellipse |
|
HorizontalAlignment="Left" |
|
VerticalAlignment="Center" |
|
IsVisible="{Binding LatestVersionString, Converter={x:Static StringConverters.IsNotNullOrEmpty}}" |
|
Width="4" |
|
Height="4" |
|
Fill="{DynamicResource TextFillColorTertiaryBrush}" /> |
|
<TextBlock |
|
VerticalAlignment="Center" |
|
FontSize="13" |
|
Foreground="{DynamicResource TextFillColorTertiaryBrush}" |
|
IsVisible="{Binding LatestVersionString, Converter={x:Static StringConverters.IsNotNullOrEmpty}}" |
|
Text="{Binding LatestVersionString}" /> |
|
|
|
<!-- Update available icon --> |
|
<fluentIcons:SymbolIcon |
|
ToolTip.Tip="{x:Static lang:Resources.Label_UpdateAvailable}" |
|
IsVisible="{Binding IsLatestVersionUpdateable}" |
|
VerticalAlignment="Center" |
|
FontSize="16" |
|
Foreground="#3592c4" |
|
Symbol="ArrowCircleUpRight" /> |
|
</StackPanel> |
|
|
|
<TextBlock |
|
FontSize="13" |
|
TextAlignment="Start" |
|
Margin="0,0,0,0" |
|
Foreground="{DynamicResource TextFillColorSecondaryBrush}" |
|
Text="{Binding Description}" |
|
Theme="{DynamicResource CaptionTextBlockStyle}" /> |
|
</StackPanel> |
|
</RadioButton> |
|
</DataTemplate> |
|
</ListBox.ItemTemplate> |
|
<ListBox.ItemsPanel> |
|
<ItemsPanelTemplate> |
|
<StackPanel Spacing="8" /> |
|
</ItemsPanelTemplate> |
|
</ListBox.ItemsPanel> |
|
</ListBox> |
|
</ui:SettingsExpanderItem> |
|
|
|
|
|
</ui:SettingsExpander> |
|
|
|
</StackPanel> |
|
</ScrollViewer> |
|
</controls:UserControlBase>
|
|
|