From 4c0edde4f7f2febf0f91792eb3f996fe13664142 Mon Sep 17 00:00:00 2001 From: Davide Grilli Date: Sun, 14 Jun 2026 21:40:15 +0200 Subject: [PATCH] =?UTF-8?q?feat(ui):=20mobile=20polish=20=E2=80=94=20tab?= =?UTF-8?q?=20bar=20icons,=20server=20overlay,=20status=20text?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tab bar: replace plain Header strings with icon+label StackPanels (≡ ↑ ↓ ⊙ ⊕); style TabStrip with UniformGrid so all five tabs share the full width equally; center content and add touch padding. Icons are visible only on mobile (IsMobile binding); desktop keeps text only. Server settings overlay: dual layout for host/port/TLS input (vertical on mobile: host full-width, port+TLS side by side) and for action buttons (stacked full-width on mobile). Known-server list item shows host on one line and tcp/ssl ports on the line below on mobile. Connection status bar: simplify to "connesso" / "non connesso" — remove the "a host:port" suffix from the connected state and consolidate all disconnected/error/cert-changed states to conn.none. --- src/App/Localization/Loc.cs | 4 +- .../ViewModels/MainWindowViewModel.Sync.cs | 8 +- src/App/Views/MainView.axaml | 147 +++++++++++++++--- 3 files changed, 134 insertions(+), 25 deletions(-) diff --git a/src/App/Localization/Loc.cs b/src/App/Localization/Loc.cs index 316abe8..1a50867 100644 --- a/src/App/Localization/Loc.cs +++ b/src/App/Localization/Loc.cs @@ -52,7 +52,7 @@ public sealed class Loc ["menu.net.resetcerts"] = ["Reset certificati SSL", "Reset SSL certificates", "Restablecer certificados SSL", "Réinitialiser les certificats SSL", "Redefinir certificados SSL", "SSL-Zertifikate zurücksetzen"], ["menu.settings"] = ["_Impostazioni", "_Settings", "_Configuración", "_Paramètres", "_Configurações", "_Einstellungen"], ["menu.help"] = ["_Help", "_Help", "_Ayuda", "_Aide", "_Ajuda", "_Hilfe"], - ["help.title"] = ["Informazioni sul software", "About this software", "Información del software", "À propos du logiciel", "Sobre o software", "Über die Software"], + ["help.title"] = ["Informazioni", "About", "Información", "À propos", "Sobre", "Über"], ["help.info"] = [ "Wallet SPV per la criptovaluta Palladium (PLM).", "SPV wallet for the Palladium (PLM) cryptocurrency.", @@ -191,7 +191,7 @@ public sealed class Loc ["conn.reconnecting"] = ["riconnessione…", "reconnecting…", "reconectando…", "reconnexion…", "reconectando…", "Verbindung wird wiederhergestellt…"], ["conn.error"] = ["errore di connessione", "connection error", "error de conexión", "erreur de connexion", "erro de conexão", "Verbindungsfehler"], ["conn.certchanged"] = ["certificato cambiato", "certificate changed", "certificado cambiado", "certificat modifié", "certificado alterado", "Zertifikat geändert"], - ["conn.connectedto"] = ["connesso a", "connected to", "conectado a", "connecté à", "conectado a", "verbunden mit"], + ["conn.connectedto"] = ["connesso", "connected", "conectado", "connecté", "conectado", "verbunden"], ["conn.connectingto"] = ["connessione a", "connecting to", "conectando a", "connexion à", "conectando a", "Verbindung zu"], // Messaggi di stato principali diff --git a/src/App/ViewModels/MainWindowViewModel.Sync.cs b/src/App/ViewModels/MainWindowViewModel.Sync.cs index 9d85df2..5d8c6e0 100644 --- a/src/App/ViewModels/MainWindowViewModel.Sync.cs +++ b/src/App/ViewModels/MainWindowViewModel.Sync.cs @@ -144,11 +144,11 @@ public partial class MainWindowViewModel _client.Disconnected += _ => Dispatcher.UIThread.Post(() => { IsConnected = false; - ConnectionStatus = Loc.Tr("conn.disconnected"); + ConnectionStatus = Loc.Tr("conn.none"); }); IsConnected = true; _autoReconnect = true; - ConnectionStatus = $"{Loc.Tr("conn.connectedto")} {host}:{port}{(UseSsl ? " (TLS)" : "")}"; + ConnectionStatus = Loc.Tr("conn.connectedto"); } if (_account is null || _doc is null) @@ -186,13 +186,13 @@ public partial class MainWindowViewModel catch (CertificatePinMismatchException ex) { IsConnected = false; - ConnectionStatus = Loc.Tr("conn.certchanged"); + ConnectionStatus = Loc.Tr("conn.none"); StatusMessage = ex.Message; } catch (Exception ex) { IsConnected = _client?.IsConnected == true; - ConnectionStatus = IsConnected ? ConnectionStatus : Loc.Tr("conn.error"); + ConnectionStatus = IsConnected ? ConnectionStatus : Loc.Tr("conn.none"); StatusMessage = $"Errore: {ex.Message}"; } finally diff --git a/src/App/Views/MainView.axaml b/src/App/Views/MainView.axaml index 01daacf..680381a 100644 --- a/src/App/Views/MainView.axaml +++ b/src/App/Views/MainView.axaml @@ -199,8 +199,33 @@ + + + + + + - + + + + + + + - + + + + + + + @@ -298,7 +331,15 @@ - + + + + + + + @@ -332,7 +373,15 @@ - + + + + + + + - + + + + + + + - - + + + + + + + + + + + + + + + + + + + - - + +