Update for Avalonia 12

This commit is contained in:
tyrrrz 2026-05-01 16:30:11 +03:00
parent 07a02773be
commit 5838c0546e
10 changed files with 13 additions and 16 deletions

View file

@ -9,7 +9,6 @@
<PackageVersion Include="AsyncKeyedLock" Version="8.0.2" /> <PackageVersion Include="AsyncKeyedLock" Version="8.0.2" />
<PackageVersion Include="Avalonia" Version="12.0.2" /> <PackageVersion Include="Avalonia" Version="12.0.2" />
<PackageVersion Include="Avalonia.Desktop" Version="12.0.2" /> <PackageVersion Include="Avalonia.Desktop" Version="12.0.2" />
<PackageVersion Include="Avalonia.Diagnostics" Version="11.3.14" />
<PackageVersion Include="CliFx" Version="3.0.0" /> <PackageVersion Include="CliFx" Version="3.0.0" />
<PackageVersion Include="Cogwheel" Version="2.1.1" /> <PackageVersion Include="Cogwheel" Version="2.1.1" />
<PackageVersion Include="CommunityToolkit.Mvvm" Version="8.4.2" /> <PackageVersion Include="CommunityToolkit.Mvvm" Version="8.4.2" />
@ -22,8 +21,8 @@
<PackageVersion Include="Gress" Version="2.2.0" /> <PackageVersion Include="Gress" Version="2.2.0" />
<PackageVersion Include="JsonExtensions" Version="1.2.0" /> <PackageVersion Include="JsonExtensions" Version="1.2.0" />
<PackageVersion Include="Markdig" Version="1.1.3" /> <PackageVersion Include="Markdig" Version="1.1.3" />
<PackageVersion Include="Material.Avalonia" Version="3.9.2" /> <PackageVersion Include="Material.Avalonia" Version="3.16.1" />
<PackageVersion Include="Material.Icons.Avalonia" Version="2.2.0" /> <PackageVersion Include="Material.Icons.Avalonia" Version="3.0.2" />
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="10.0.7" /> <PackageVersion Include="Microsoft.Extensions.Configuration" Version="10.0.7" />
<PackageVersion <PackageVersion
Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Include="Microsoft.Extensions.Configuration.EnvironmentVariables"

View file

@ -5,7 +5,6 @@
<ApplicationIcon>../favicon.ico</ApplicationIcon> <ApplicationIcon>../favicon.ico</ApplicationIcon>
<PublishTrimmed>true</PublishTrimmed> <PublishTrimmed>true</PublishTrimmed>
<CopyOutputSymbolsToPublishDirectory>false</CopyOutputSymbolsToPublishDirectory> <CopyOutputSymbolsToPublishDirectory>false</CopyOutputSymbolsToPublishDirectory>
<AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
@ -29,7 +28,6 @@
<PackageReference Include="AsyncImageLoader.Avalonia" /> <PackageReference Include="AsyncImageLoader.Avalonia" />
<PackageReference Include="Avalonia" /> <PackageReference Include="Avalonia" />
<PackageReference Include="Avalonia.Desktop" /> <PackageReference Include="Avalonia.Desktop" />
<PackageReference Include="Avalonia.Diagnostics" Condition="'$(Configuration)' == 'Debug'" />
<PackageReference Include="Cogwheel" /> <PackageReference Include="Cogwheel" />
<PackageReference Include="CommunityToolkit.Mvvm" /> <PackageReference Include="CommunityToolkit.Mvvm" />
<PackageReference Include="CSharpier.MsBuild" PrivateAssets="all" /> <PackageReference Include="CSharpier.MsBuild" PrivateAssets="all" />

View file

@ -11,7 +11,7 @@ public partial class LocalizationManager
[nameof(PullGuildsTooltip)] = "Pull available servers and channels (Enter)", [nameof(PullGuildsTooltip)] = "Pull available servers and channels (Enter)",
[nameof(SettingsTooltip)] = "Settings", [nameof(SettingsTooltip)] = "Settings",
[nameof(LastMessageSentTooltip)] = "Last message sent:", [nameof(LastMessageSentTooltip)] = "Last message sent:",
[nameof(TokenWatermark)] = "Token", [nameof(TokenPlaceholderText)] = "Token",
// Token instructions (personal account) // Token instructions (personal account)
[nameof(TokenPersonalHeader)] = "To get the token for your personal account:", [nameof(TokenPersonalHeader)] = "To get the token for your personal account:",
[nameof(TokenPersonalTosWarning)] = [nameof(TokenPersonalTosWarning)] =

View file

@ -13,7 +13,7 @@ public partial class LocalizationManager
[nameof(PullGuildsTooltip)] = "Charger les serveurs et canaux disponibles (Entrée)", [nameof(PullGuildsTooltip)] = "Charger les serveurs et canaux disponibles (Entrée)",
[nameof(SettingsTooltip)] = "Paramètres", [nameof(SettingsTooltip)] = "Paramètres",
[nameof(LastMessageSentTooltip)] = "Dernier message envoyé :", [nameof(LastMessageSentTooltip)] = "Dernier message envoyé :",
[nameof(TokenWatermark)] = "Token", [nameof(TokenPlaceholderText)] = "Token",
// Token instructions (personal account) // Token instructions (personal account)
[nameof(TokenPersonalHeader)] = "Obtenir le token pour votre compte personnel :", [nameof(TokenPersonalHeader)] = "Obtenir le token pour votre compte personnel :",
[nameof(TokenPersonalTosWarning)] = [nameof(TokenPersonalTosWarning)] =

View file

@ -13,7 +13,7 @@ public partial class LocalizationManager
[nameof(PullGuildsTooltip)] = "Verfügbare Server und Kanäle laden (Enter)", [nameof(PullGuildsTooltip)] = "Verfügbare Server und Kanäle laden (Enter)",
[nameof(SettingsTooltip)] = "Einstellungen", [nameof(SettingsTooltip)] = "Einstellungen",
[nameof(LastMessageSentTooltip)] = "Letzte Nachricht gesendet:", [nameof(LastMessageSentTooltip)] = "Letzte Nachricht gesendet:",
[nameof(TokenWatermark)] = "Token", [nameof(TokenPlaceholderText)] = "Token",
// Token instructions (personal account) // Token instructions (personal account)
[nameof(TokenPersonalHeader)] = "Token für Ihr persönliches Konto abrufen:", [nameof(TokenPersonalHeader)] = "Token für Ihr persönliches Konto abrufen:",
[nameof(TokenPersonalTosWarning)] = [nameof(TokenPersonalTosWarning)] =

View file

@ -11,7 +11,7 @@ public partial class LocalizationManager
[nameof(PullGuildsTooltip)] = "Cargar servidores y canales disponibles (Enter)", [nameof(PullGuildsTooltip)] = "Cargar servidores y canales disponibles (Enter)",
[nameof(SettingsTooltip)] = "Ajustes", [nameof(SettingsTooltip)] = "Ajustes",
[nameof(LastMessageSentTooltip)] = "Último mensaje enviado:", [nameof(LastMessageSentTooltip)] = "Último mensaje enviado:",
[nameof(TokenWatermark)] = "Token", [nameof(TokenPlaceholderText)] = "Token",
// Token instructions (personal account) // Token instructions (personal account)
[nameof(TokenPersonalHeader)] = "Cómo obtener el token para tu cuenta personal:", [nameof(TokenPersonalHeader)] = "Cómo obtener el token para tu cuenta personal:",
[nameof(TokenPersonalTosWarning)] = [nameof(TokenPersonalTosWarning)] =

View file

@ -11,7 +11,7 @@ public partial class LocalizationManager
[nameof(PullGuildsTooltip)] = "Завантажити доступні сервери та канали (Enter)", [nameof(PullGuildsTooltip)] = "Завантажити доступні сервери та канали (Enter)",
[nameof(SettingsTooltip)] = "Налаштування", [nameof(SettingsTooltip)] = "Налаштування",
[nameof(LastMessageSentTooltip)] = "Останнє повідомлення:", [nameof(LastMessageSentTooltip)] = "Останнє повідомлення:",
[nameof(TokenWatermark)] = "Токен", [nameof(TokenPlaceholderText)] = "Токен",
// Token instructions (personal account) // Token instructions (personal account)
[nameof(TokenPersonalHeader)] = "Як отримати токен для персонального акаунту:", [nameof(TokenPersonalHeader)] = "Як отримати токен для персонального акаунту:",
[nameof(TokenPersonalTosWarning)] = [nameof(TokenPersonalTosWarning)] =

View file

@ -75,7 +75,7 @@ public partial class LocalizationManager
public string PullGuildsTooltip => Get(); public string PullGuildsTooltip => Get();
public string SettingsTooltip => Get(); public string SettingsTooltip => Get();
public string LastMessageSentTooltip => Get(); public string LastMessageSentTooltip => Get();
public string TokenWatermark => Get(); public string TokenPlaceholderText => Get();
// Token instructions (personal account) // Token instructions (personal account)
public string TokenPersonalHeader => Get(); public string TokenPersonalHeader => Get();

View file

@ -1,6 +1,6 @@
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.VisualTree; using PowerKit.Extensions;
namespace DiscordChatExporter.Gui.Utils.Extensions; namespace DiscordChatExporter.Gui.Utils.Extensions;
@ -15,7 +15,7 @@ internal static class AvaloniaExtensions
public TopLevel? TryGetTopLevel() => public TopLevel? TryGetTopLevel() =>
lifetime.TryGetMainWindow() lifetime.TryGetMainWindow()
?? (lifetime as ISingleViewApplicationLifetime)?.MainView?.GetVisualRoot() as TopLevel; ?? (lifetime as ISingleViewApplicationLifetime)?.MainView?.Pipe(TopLevel.GetTopLevel);
public bool TryShutdown(int exitCode = 0) public bool TryShutdown(int exitCode = 0)
{ {

View file

@ -23,10 +23,10 @@
x:Name="TokenValueTextBox" x:Name="TokenValueTextBox"
FontSize="16" FontSize="16"
PasswordChar="*" PasswordChar="*"
PlaceholderText="{Binding LocalizationManager.TokenPlaceholderText}"
RevealPassword="{Binding $self.IsFocused}" RevealPassword="{Binding $self.IsFocused}"
Text="{Binding Token}" Text="{Binding Token}"
Theme="{DynamicResource SoloTextBox}" Theme="{DynamicResource SoloTextBox}">
Watermark="{Binding LocalizationManager.TokenWatermark}">
<TextBox.InnerLeftContent> <TextBox.InnerLeftContent>
<materialIcons:MaterialIcon <materialIcons:MaterialIcon
Grid.Column="0" Grid.Column="0"