From c0193ae440a2ec383a21c4f6c79a6ec35d4b3c43 Mon Sep 17 00:00:00 2001 From: Davide Grilli Date: Sun, 21 Jun 2026 22:34:54 +0200 Subject: [PATCH] feat(ui): add Quit to File menu; hide Wallet item when no wallet is open MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - File → Esci (separator + Quit at the bottom) calls IClassicDesktopStyleApplicationLifetime.Shutdown() - Wallet menu item and mobile button now use IsVisible instead of IsEnabled: they disappear entirely on the wizard/setup screen and reappear once a wallet is open, avoiding a confusing greyed-out entry --- src/App/Localization/Loc.cs | 1 + src/App/ViewModels/MainWindowViewModel.Settings.cs | 6 ++++++ src/App/Views/MainView.axaml | 6 ++++-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/App/Localization/Loc.cs b/src/App/Localization/Loc.cs index 3838a83..5274c51 100644 --- a/src/App/Localization/Loc.cs +++ b/src/App/Localization/Loc.cs @@ -47,6 +47,7 @@ public sealed class Loc ["menu.file.new"] = ["Nuovo / ripristina wallet…", "New / restore wallet…", "Nuevo / restaurar wallet…", "Nouveau / restaurer le wallet…", "Novo / restaurar carteira…", "Neu / Wallet wiederherstellen…"], ["menu.file.open"] = ["Apri wallet da file…", "Open wallet from file…", "Abrir wallet desde archivo…", "Ouvrir le wallet depuis un fichier…", "Abrir carteira de arquivo…", "Wallet aus Datei öffnen…"], ["menu.file.close"] = ["Chiudi wallet", "Close wallet", "Cerrar wallet", "Fermer le wallet", "Fechar carteira", "Wallet schließen"], + ["menu.file.quit"] = ["Esci", "Quit", "Salir", "Quitter", "Sair", "Beenden"], ["menu.net"] = ["_Rete", "_Network", "_Red", "_Réseau", "_Rede", "_Netzwerk"], ["menu.net.discover"] = ["Cerca altri server (peer)", "Discover servers (peers)", "Buscar otros servidores (peers)", "Rechercher d'autres serveurs (pairs)", "Procurar outros servidores (peers)", "Weitere Server suchen (Peers)"], ["menu.net.resetcerts"] = ["Reset certificati SSL", "Reset SSL certificates", "Restablecer certificados SSL", "Réinitialiser les certificats SSL", "Redefinir certificados SSL", "SSL-Zertifikate zurücksetzen"], diff --git a/src/App/ViewModels/MainWindowViewModel.Settings.cs b/src/App/ViewModels/MainWindowViewModel.Settings.cs index a147463..33738cf 100644 --- a/src/App/ViewModels/MainWindowViewModel.Settings.cs +++ b/src/App/ViewModels/MainWindowViewModel.Settings.cs @@ -69,6 +69,12 @@ public partial class MainWindowViewModel [RelayCommand] private void OpenHelp() => IsHelpOpen = true; + [RelayCommand] + private static void QuitApp() => + (Avalonia.Application.Current?.ApplicationLifetime + as Avalonia.Controls.ApplicationLifetimes.IClassicDesktopStyleApplicationLifetime) + ?.Shutdown(); + [RelayCommand] private void CloseHelp() { IsHelpOpen = false; ResetDonate(); } } diff --git a/src/App/Views/MainView.axaml b/src/App/Views/MainView.axaml index 4a8b105..2e930f4 100644 --- a/src/App/Views/MainView.axaml +++ b/src/App/Views/MainView.axaml @@ -36,10 +36,12 @@ + + + IsVisible="{Binding IsWalletOpen}"/>