Files
MaaAssistantArknights/src/MaaWpfGui/Views/UserControl/Settings/VersionUpdateSettingsUserControl.xaml

550 lines
29 KiB
XML

<UserControl
x:Class="MaaWpfGui.Views.UserControl.Settings.VersionUpdateSettingsUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:c="clr-namespace:CalcBinding;assembly=CalcBinding"
xmlns:constants="clr-namespace:MaaWpfGui.Constants"
xmlns:controls="clr-namespace:MaaWpfGui.Styles.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:hc="https://handyorg.github.io/handycontrol"
xmlns:helper="clr-namespace:MaaWpfGui.Helper"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:s="https://github.com/canton7/Stylet"
xmlns:settings_vms="clr-namespace:MaaWpfGui.ViewModels.UserControl.Settings"
xmlns:uiBehaviors="clr-namespace:MaaWpfGui.Extensions.UIBehaviors"
d:Background="White"
d:DataContext="{d:DesignInstance {x:Type settings_vms:VersionUpdateSettingsUserControlModel}}"
d:DesignWidth="550"
s:View.ActionTarget="{Binding}"
mc:Ignorable="d">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<controls:TextBlock
Grid.Row="0"
HorizontalAlignment="Center"
FontWeight="Bold"
Text="{DynamicResource GlobalConfigTip}"
TextAlignment="Center"
Visibility="{c:Binding 'ConfigurationList.Count > 1',
Source={x:Static helper:Instances.SettingsViewModel}}" />
<Grid Grid.Row="1">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<StackPanel
Grid.Row="0"
Grid.Column="0"
VerticalAlignment="Top">
<CheckBox
Margin="8"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Content="{DynamicResource StartupUpdateCheck}"
IsChecked="{Binding StartupUpdateCheck}"
IsEnabled="False" />
<StackPanel Margin="8" Orientation="Horizontal">
<CheckBox
HorizontalAlignment="Left"
VerticalAlignment="Center"
Content="{DynamicResource UpdateAutoCheck}"
IsChecked="{Binding UpdateAutoCheck}" />
<controls:TooltipBlock TooltipText="{DynamicResource UpdateAutoCheckTip}" />
</StackPanel>
<StackPanel Margin="8" Orientation="Horizontal">
<CheckBox
HorizontalAlignment="Left"
VerticalAlignment="Center"
Content="{DynamicResource UpdateAutoDownload}"
IsChecked="{Binding AutoDownloadUpdatePackage}" />
<controls:TooltipBlock TooltipText="{DynamicResource UpdateAutoDownloadTip}" />
</StackPanel>
<CheckBox
Margin="8"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Content="{DynamicResource AutoInstallUpdatePackage}"
IsChecked="{Binding AutoInstallUpdatePackage}" />
<CheckBox
MaxWidth="150"
Margin="8"
HorizontalAlignment="Left"
VerticalAlignment="Center"
IsChecked="{Binding ShowUpdaterConsole}">
<TextBlock Text="{DynamicResource ShowUpdaterConsole}" TextWrapping="Wrap" />
</CheckBox>
<StackPanel
Margin="8"
Orientation="Horizontal">
<CheckBox
MaxWidth="150"
HorizontalAlignment="Left"
VerticalAlignment="Center"
IsChecked="{Binding ShowUpdaterProgress}">
<TextBlock Text="{DynamicResource ShowUpdaterProgress}" TextWrapping="Wrap" />
</CheckBox>
<controls:TooltipBlock TooltipText="{DynamicResource ShowUpdaterProgressTip}" />
</StackPanel>
<StackPanel
Margin="8"
Orientation="Horizontal"
Visibility="{c:Binding 'UpdateSource == &quot;Github&quot;'}">
<CheckBox
HorizontalAlignment="Left"
VerticalAlignment="Center"
Content="{DynamicResource ForceGithubGlobalSource}"
IsChecked="{Binding ForceGithubGlobalSource}" />
<controls:TooltipBlock TooltipText="{DynamicResource ForceGithubGlobalSourceTip}" />
</StackPanel>
<StackPanel Margin="8">
<StackPanel Margin="0,0,0,5" Orientation="Horizontal">
<controls:TextBlock
Margin="8,0,0,0"
HorizontalAlignment="Left"
Text="{DynamicResource UpdateCheck}" />
<controls:TooltipBlock TooltipMaxWidth="350" TooltipText="{DynamicResource UpdateCheckTip}" />
</StackPanel>
<hc:ComboBox
Width="150"
HorizontalAlignment="Left"
VerticalAlignment="Center"
DisplayMemberPath="Display"
ItemsSource="{Binding VersionTypeList}"
SelectedValue="{Binding VersionType}"
SelectedValuePath="Value" />
</StackPanel>
<StackPanel>
<StackPanel Margin="8">
<StackPanel Margin="0,0,0,5" Orientation="Horizontal">
<controls:TextBlock
Margin="8,0,0,0"
HorizontalAlignment="Left"
Text="{DynamicResource UpdateSource}" />
<controls:TooltipBlock TooltipMaxWidth="350" TooltipText="{DynamicResource UpdateSourceTip}" />
</StackPanel>
<hc:ComboBox
Width="150"
HorizontalAlignment="Left"
VerticalAlignment="Center"
DisplayMemberPath="Display"
ItemsSource="{Binding UpdateSourceList}"
SelectedValue="{Binding UpdateSource}"
SelectedValuePath="Value" />
</StackPanel>
<StackPanel
Margin="8"
HorizontalAlignment="Left"
Visibility="{c:Binding 'UpdateSource == &quot;MirrorChyan&quot;'}">
<controls:TextBlock Margin="8,0,0,5" HorizontalAlignment="Left">
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} CDK">
<Binding Source="{StaticResource MirrorChyan}" />
</MultiBinding>
</TextBlock.Text>
</controls:TextBlock>
<Grid Width="150">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<hc:PasswordBox
hc:BorderElement.CornerRadius="4,0,0,4"
IsSafeEnabled="False"
ShowEyeButton="True"
UnsafePassword="{Binding MirrorChyanCdk}" />
<Button
Grid.Column="1"
hc:BorderElement.CornerRadius="0,4,4,0"
BorderThickness="0,1,1,1"
Command="{s:Action MirrorChyanCdkCopy}"
Content="{DynamicResource Copy}" />
</Grid>
<controls:TextBlock
MaxWidth="150"
Margin="0,5,0,0"
Foreground="{DynamicResource ErrorLogBrush}"
Text="{DynamicResource MirrorChyanCdkFetchFailed}"
TextWrapping="Wrap"
Visibility="{c:Binding MirrorChyanCdkFetchFailed}" />
<controls:TextBlock
MaxWidth="150"
Margin="0,5,0,0"
d:Foreground="{DynamicResource SuccessLogBrush}"
d:Text="{DynamicResource MirrorChyanCdkRemainingDays}"
uiBehaviors:ResourceReferenceHelper.ForegroundResourceKey="{Binding MirrorChyanCdkRemainingBrush}"
Text="{Binding MirrorChyanCdkRemainingText}"
TextWrapping="Wrap"
ToolTip="{Binding MirrorChyanCdkExpiredLocalTime}"
Visibility="{c:Binding 'MirrorChyanCdkRemainingText != &quot;&quot;'}" />
</StackPanel>
<controls:TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
<Hyperlink
Cursor="Hand"
NavigateUri="{Binding Source={x:Static constants:MaaUrls.MirrorChyanWebsite}}"
TextDecorations="None">
<TextBlock Text="{DynamicResource MirrorChyan}" />
</Hyperlink>
</controls:TextBlock>
</StackPanel>
</StackPanel>
<Grid
Grid.Row="0"
Grid.Column="1"
Margin="3"
VerticalAlignment="Top">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ComboBox
Grid.Row="0"
Width="130"
HorizontalContentAlignment="Center"
Background="Transparent"
BorderThickness="0"
DisplayMemberPath="Display"
ItemsSource="{Binding ProxyTypeList}"
SelectedValue="{Binding ProxyType}"
SelectedValuePath="Value" />
<hc:TextBox
Grid.Row="1"
Width="150"
Margin="0,0,0,5"
VerticalAlignment="Center"
hc:InfoElement.Placeholder="&lt;IP&gt;:&lt;Port&gt;"
InputMethod.IsInputMethodEnabled="False"
Text="{Binding Proxy}" />
<Grid Grid.Row="2">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid Grid.Row="0" HorizontalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Border
Grid.Row="0"
Grid.Column="0"
Margin="0,5,0,5"
Background="#555555"
CornerRadius="3,0,0,3"
Visibility="{c:Binding 'UiVersion == CoreVersion'}">
<TextBlock
Padding="5,3,5,3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
hc:FloatingBlock.Content="{Binding UiVersion}"
Foreground="White"
PreviewMouseDown="MaaVersionClick"
Text="{DynamicResource MaaVersion}"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="0"
Grid.Column="1"
Margin="0,5,0,5"
hc:FloatingBlock.Content="{Binding UiVersion}"
Background="#6969AA"
CornerRadius="0,3,3,0"
PreviewMouseDown="MaaVersionClick"
Visibility="{c:Binding 'UiVersion == CoreVersion'}">
<TextBlock
Padding="5,3,5,3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
d:MinWidth="50"
Foreground="White"
Text="{Binding UiVersionDisplay, Mode=OneWay}"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="1"
Grid.Column="0"
Margin="0,5,0,5"
Background="#555555"
CornerRadius="3,0,0,3"
Visibility="{c:Binding 'UiVersion != CoreVersion'}">
<TextBlock
Padding="5,3,5,3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
hc:FloatingBlock.Content="{Binding UiVersion}"
Foreground="White"
PreviewMouseDown="UiVersionClick"
Text="{DynamicResource UiVersion}"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="1"
Grid.Column="1"
Margin="0,5,0,5"
hc:FloatingBlock.Content="{Binding UiVersion}"
Background="#6969AA"
CornerRadius="0,3,3,0"
PreviewMouseDown="UiVersionClick"
Visibility="{c:Binding 'UiVersion != CoreVersion'}">
<TextBlock
Padding="5,3,5,3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
d:MinWidth="50"
Foreground="White"
Text="{Binding UiVersionDisplay, Mode=OneWay}"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="2"
Grid.Column="0"
Margin="0,5,0,5"
Background="#555555"
CornerRadius="3,0,0,3"
Visibility="{c:Binding 'UiVersion != CoreVersion'}">
<TextBlock
Padding="5,3,5,3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
hc:FloatingBlock.Content="{Binding CoreVersion}"
Foreground="White"
PreviewMouseDown="CoreVersionClick"
Text="{DynamicResource CoreVersion}"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="2"
Grid.Column="1"
Margin="0,5,0,5"
hc:FloatingBlock.Content="{Binding CoreVersion}"
Background="#6969AA"
CornerRadius="0,3,3,0"
PreviewMouseDown="CoreVersionClick"
Visibility="{c:Binding 'UiVersion != CoreVersion'}">
<TextBlock
Padding="5,3,5,3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
d:MinWidth="50"
Foreground="White"
Text="{Binding CoreVersionDisplay, Mode=OneWay}"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="3"
Grid.Column="0"
Margin="0,5,0,5"
Background="#555555"
CornerRadius="3,0,0,3">
<TextBlock
Padding="5,3,5,3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
hc:FloatingBlock.Content="{Binding ResourceVersion}"
Foreground="White"
PreviewMouseDown="ResourceVersionClick"
Text="{DynamicResource ResourceVersion}"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="3"
Grid.Column="1"
Margin="0,5,0,5"
hc:FloatingBlock.Content="{Binding ResourceVersion}"
Background="#6969AA"
CornerRadius="0,3,3,0"
PreviewMouseDown="ResourceVersionClick">
<TextBlock
Padding="5,3,5,3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
d:MinWidth="50"
Foreground="White"
Text="{Binding ResourceVersion, Mode=OneWay}"
TextWrapping="Wrap" />
</Border>
</Grid>
<Grid Grid.Row="1" HorizontalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Border
Grid.Row="0"
Grid.Column="0"
Margin="0,5,0,5"
Background="#555555"
CornerRadius="3,0,0,3">
<TextBlock
Padding="5,3,5,3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
hc:FloatingBlock.Content="{Binding BuildDateTimeCurrentCultureString}"
Foreground="White"
PreviewMouseDown="MaaVersionClick"
Text="{DynamicResource BuildDateTime}"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="0"
Grid.Column="1"
Margin="0,5,0,5"
hc:FloatingBlock.Content="{Binding BuildDateTimeCurrentCultureString}"
Background="#6969AA"
CornerRadius="0,3,3,0"
PreviewMouseDown="MaaVersionClick">
<TextBlock
Padding="5,3,5,3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
d:MinWidth="50"
Foreground="White"
Text="{Binding BuildDateTimeCurrentCultureString, Mode=OneWay}"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="1"
Grid.Column="0"
Margin="0,5,0,5"
Background="#555555"
CornerRadius="3,0,0,3">
<TextBlock
Padding="5,3,5,3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
hc:FloatingBlock.Content="{Binding ResourceDateTimeCurrentCultureString}"
Foreground="White"
PreviewMouseDown="ResourceVersionClick"
Text="{DynamicResource ResourceDateTime}"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="1"
Grid.Column="1"
Margin="0,5,0,5"
hc:FloatingBlock.Content="{Binding ResourceDateTimeCurrentCultureString}"
Background="#6969AA"
CornerRadius="0,3,3,0"
PreviewMouseDown="ResourceVersionClick">
<TextBlock
Padding="5,3,5,3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
d:MinWidth="50"
Foreground="White"
Text="{Binding ResourceDateTimeCurrentCultureString, Mode=OneWay}"
TextWrapping="Wrap" />
</Border>
</Grid>
</Grid>
<StackPanel
Grid.Row="3"
Margin="5"
HorizontalAlignment="Center"
Orientation="Horizontal">
<Button
Margin="5"
Command="{s:Action ManualUpdate}"
Content="{DynamicResource UpdateCheckNow}"
IsEnabled="{c:Binding !IsCheckingForUpdates}" />
<Button
Margin="5"
Command="{s:Action ShowChangelog}"
Content="{DynamicResource ShowChangelog}"
IsEnabled="{c:Binding !IsCheckingForUpdates}" />
</StackPanel>
<StackPanel Grid.Row="4">
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
<controls:TooltipBlock TooltipText="{DynamicResource ResourceUpdateTip}" Visibility="Hidden" />
<Button
Margin="5"
Command="{s:Action ManualUpdateResource}"
Content="{DynamicResource ResourceUpdate}"
IsEnabled="{c:Binding !IsCheckingForUpdates}" />
<controls:TooltipBlock TooltipText="{DynamicResource ResourceUpdateTip}" />
</StackPanel>
<!-- Download / update log (shows recent download progress/messages) -->
<ContentControl
Grid.Row="5"
MaxWidth="175"
HorizontalAlignment="Center"
Content="{Binding Path=DownloadLogItemViewModel, Source={x:Static helper:Instances.TaskQueueViewModel}}"
Visibility="{c:Binding 'DownloadLogItemViewModel.Content.Length > 0',
Source={x:Static helper:Instances.TaskQueueViewModel}}">
<ContentControl.ContentTemplate>
<DataTemplate>
<Grid
Grid.Column="1"
Margin="0,5"
HorizontalAlignment="Left"
VerticalAlignment="Center"
ToolTip="{Binding ToolTip}"
ToolTipService.InitialShowDelay="200">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<controls:TextBlock
Grid.Column="0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
FontWeight="{Binding Weight}"
ForegroundKey="{Binding Color}"
Text="{Binding Content}"
TextWrapping="Wrap" />
<controls:TooltipBlock
Grid.Column="1"
Margin="10,0,0,0"
PathDate="{StaticResource LogToolTip}"
PathStrokeThickness="1.5"
TextBlockText=""
Visibility="{c:Binding ShowToolTip}" />
</Grid>
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
<controls:TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
<Hyperlink
Cursor="Hand"
NavigateUri="{Binding Source={x:Static constants:MaaUrls.ResourceRepository}}"
TextDecorations="None">
<TextBlock Text="{DynamicResource ResourceRepository}" />
</Hyperlink>
</controls:TextBlock>
</StackPanel>
</Grid>
</Grid>
</Grid>
</Grid>
</UserControl>