[GUI] Redesign and reorganize About dialog.

This commit is contained in:
2025-10-27 16:28:35 +00:00
parent 861034d7d8
commit 37d6eb0e38
2 changed files with 112 additions and 129 deletions

View File

@@ -40,7 +40,6 @@ using System.Threading.Tasks;
using System.Windows.Input; using System.Windows.Input;
using Aaru.Gui.Models; using Aaru.Gui.Models;
using Aaru.Gui.Views.Dialogs; using Aaru.Gui.Views.Dialogs;
using Aaru.Localization;
using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input; using CommunityToolkit.Mvvm.Input;
using JetBrains.Annotations; using JetBrains.Annotations;
@@ -100,21 +99,6 @@ public sealed partial class AboutViewModel : ViewModelBase
[NotNull] [NotNull]
public string Website => "https://aaru.app"; public string Website => "https://aaru.app";
[NotNull]
public string License => UI.Label_License;
[NotNull]
public string CloseLabel => UI.ButtonLabel_Close;
[NotNull]
public string AssembliesLibraryText => UI.Title_Library;
[NotNull]
public string AssembliesVersionText => UI.Title_Version;
[NotNull]
public string Authors => UI.Text_Authors;
public ICommand WebsiteCommand { get; } public ICommand WebsiteCommand { get; }
public ICommand LicenseCommand { get; } public ICommand LicenseCommand { get; }
public ICommand CloseCommand { get; } public ICommand CloseCommand { get; }

View File

@@ -36,6 +36,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:dialogs="clr-namespace:Aaru.Gui.ViewModels.Dialogs" xmlns:dialogs="clr-namespace:Aaru.Gui.ViewModels.Dialogs"
xmlns:controls="clr-namespace:Aaru.Gui.Controls"
xmlns:localization="clr-namespace:Aaru.Localization;assembly=Aaru.Localization" xmlns:localization="clr-namespace:Aaru.Localization;assembly=Aaru.Localization"
mc:Ignorable="d" mc:Ignorable="d"
d:DesignWidth="800" d:DesignWidth="800"
@@ -49,119 +50,117 @@
<Design.DataContext> <Design.DataContext>
<dialogs:AboutViewModel /> <dialogs:AboutViewModel />
</Design.DataContext> </Design.DataContext>
<Border Padding="15"> <Grid Margin="12"
<Grid> RowSpacing="8"
<Grid.RowDefinitions> RowDefinitions="Auto,*,Auto">
<RowDefinition Height="Auto" /> <RowDefinition Height="*" /> <RowDefinition Height="Auto" /> <Grid Grid.Row="0"
</Grid.RowDefinitions> ColumnDefinitions="Auto,*"
<Grid Grid.Row="0"> ColumnSpacing="8">
<Grid.ColumnDefinitions> <Border Grid.Column="0"
<ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> BorderThickness="5">
</Grid.ColumnDefinitions> <Image Source="/Assets/aaru-logo.png"
<Border Grid.Column="0" Width="48"
BorderThickness="5"> Height="48" />
<Image Source="/Assets/aaru-logo.png" </Border>
Width="48" <Grid Grid.Column="1"
Height="48" /> HorizontalAlignment="Left"
</Border> VerticalAlignment="Center"
<Grid Grid.Column="1" RowDefinitions="Auto,Auto">
HorizontalAlignment="Left" <TextBlock Grid.Row="0"
VerticalAlignment="Center"> Text="{Binding SoftwareName, Mode=OneWay}"
<Grid.RowDefinitions> HorizontalAlignment="Left"
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> VerticalAlignment="Center"
</Grid.RowDefinitions> FontSize="16"
<TextBlock Grid.Row="0" FontWeight="Bold" />
Text="{Binding SoftwareName}" <TextBlock Grid.Row="1"
HorizontalAlignment="Left" Text="{Binding VersionText, Mode=OneWay}"
VerticalAlignment="Center" HorizontalAlignment="Left"
FontSize="16" VerticalAlignment="Center" />
FontWeight="Bold" />
<TextBlock Grid.Row="1"
Text="{Binding VersionText}"
HorizontalAlignment="Left"
VerticalAlignment="Center" />
</Grid>
</Grid> </Grid>
<TabControl Grid.Row="1"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<TabItem>
<TabItem.Header>
<TextBlock Text="{x:Static localization:UI.Label_About}" />
</TabItem.Header>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" /> <RowDefinition Height="12" />
<RowDefinition Height="Auto" /> <RowDefinition Height="12" />
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0"
Text="{Binding SuiteName}" />
<TextBlock Grid.Row="2"
Text="{Binding Copyright}" />
<Button Grid.Row="4"
BorderThickness="0"
Background="Transparent"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Padding="0"
Command="{Binding WebsiteCommand}">
<!-- TODO: TextDecorations="Underline" in next Avalonia UI version -->
<TextBlock Text="{Binding Website}"
Foreground="Blue" />
</Button>
<Button Grid.Row="5"
BorderThickness="0"
Background="Transparent"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Padding="0"
Command="{Binding LicenseCommand}">
<!-- TODO: TextDecorations="Underline" in next Avalonia UI version -->
<TextBlock Text="{Binding License}"
Foreground="Blue" />
</Button>
</Grid>
</TabItem>
<TabItem>
<TabItem.Header>
<TextBlock Text="{x:Static localization:UI.Label_Libraries}" />
</TabItem.Header>
<DataGrid ItemsSource="{Binding Assemblies}"
HorizontalScrollBarVisibility="Visible">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Name}"
Width="Auto"
IsReadOnly="True">
<DataGridTextColumn.Header>
<TextBlock Text="{Binding AssembliesLibraryText}" />
</DataGridTextColumn.Header>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Version}"
Width="Auto"
IsReadOnly="True">
<DataGridTextColumn.Header>
<TextBlock Text="{Binding AssembliesVersionText}" />
</DataGridTextColumn.Header>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
</TabItem>
<TabItem>
<TabItem.Header>
<TextBlock Text="{x:Static localization:UI.Label_Authors}" />
</TabItem.Header>
<TextBox IsReadOnly="True"
Text="{Binding Authors}" />
</TabItem>
</TabControl>
<Button Grid.Row="2"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Command="{Binding CloseCommand}">
<TextBlock Text="{Binding CloseLabel}" />
</Button>
</Grid> </Grid>
</Border> <TabControl Grid.Row="1"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<TabItem>
<TabItem.Header>
<TextBlock Text="{x:Static localization:UI.Label_About}" />
</TabItem.Header>
<Grid RowDefinitions="Auto,12,Auto,12,Auto,Auto,*"
RowSpacing="8"
Margin="8">
<TextBlock Grid.Row="0"
Text="{Binding SuiteName, Mode=OneWay}" />
<TextBlock Grid.Row="2"
Text="{Binding Copyright, Mode=OneWay}" />
<Button Grid.Row="4"
BorderThickness="0"
Background="Transparent"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Padding="0"
Command="{Binding WebsiteCommand, Mode=OneWay}">
<TextBlock Text="{Binding Website, Mode=OneWay}"
TextDecorations="Underline"
Foreground="Blue" />
</Button>
<Button Grid.Row="5"
BorderThickness="0"
Background="Transparent"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Padding="0"
Command="{Binding LicenseCommand, Mode=OneWay}">
<TextBlock Text="{x:Static localization:UI.Label_License}"
TextDecorations="Underline"
Foreground="Blue" />
</Button>
</Grid>
</TabItem>
<TabItem>
<TabItem.Header>
<TextBlock Text="{x:Static localization:UI.Label_Libraries}" />
</TabItem.Header>
<DataGrid ItemsSource="{Binding Assemblies, Mode=OneWay}"
Margin="8"
HorizontalScrollBarVisibility="Visible">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Name, Mode=OneWay}"
Width="Auto"
IsReadOnly="True">
<DataGridTextColumn.Header>
<controls:SpectreTextBlock Text="{x:Static localization:UI.Title_Library}" />
</DataGridTextColumn.Header>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Version, Mode=OneWay}"
Width="Auto"
IsReadOnly="True">
<DataGridTextColumn.Header>
<controls:SpectreTextBlock Text="{x:Static localization:UI.Title_Version}" />
</DataGridTextColumn.Header>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
</TabItem>
<TabItem>
<TabItem.Header>
<TextBlock Text="{x:Static localization:UI.Label_Authors}" />
</TabItem.Header>
<Border Margin="8"
BorderThickness="1"
BorderBrush="LightGray"
CornerRadius="8">
<ScrollViewer Padding="8">
<controls:SpectreTextBlock TextWrapping="Wrap"
Text="{x:Static localization:UI.Text_Authors}" />
</ScrollViewer>
</Border>
</TabItem>
</TabControl>
<Button Grid.Row="2"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Command="{Binding CloseCommand, Mode=OneWay}">
<TextBlock Text="{x:Static localization:UI.ButtonLabel_Close}" />
</Button>
</Grid>
</Window> </Window>