fix(ui): rendre la saisie du code d'accès atteignable à tout moment (v0.8.2)

La fenêtre de saisie ne s'ouvrait qu'une fois, juste après une connexion
manuelle réussie. Un refus, une fenêtre fermée, une reconnexion automatique
— qui n'ouvre volontairement aucune modale — ou l'expiration de
l'autorisation au bout de 12 h laissaient un tunnel monté, un réseau muet
et aucun élément d'interface pour ressaisir un code.

Un bouton sous l'action de connexion et une entrée de systray apparaissent
désormais dès qu'une saisie a un sens : identifiant VPN configuré, tunnel
monté, accès non ouvert.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-06 13:44:06 +02:00
co-authored by Claude Opus 5
parent cc9f521a95
commit 996bbe240d
7 changed files with 89 additions and 7 deletions
+8
View File
@@ -6,6 +6,14 @@ Ce projet suit le [Versionnage Sémantique](https://semver.org/lang/fr/).
---
## [0.8.2] — 2026-09-06
### Corrigé
- **Aucun moyen de saisir son code une fois en quarantaine.** La fenêtre de saisie ne s'ouvrait qu'une fois, dans la seconde suivant une connexion manuelle réussie. Un code refusé, une fenêtre fermée, une reconnexion automatique — qui n'ouvre volontairement aucune fenêtre modale, personne n'étant devant l'écran — ou l'expiration de l'autorisation au bout de 12 h laissaient l'utilisateur avec un tunnel monté, un réseau muet et pour seule issue une déconnexion/reconnexion. Un bouton **« Saisir le code d'accès »** apparaît désormais sous le bouton de connexion, et une entrée équivalente dans le menu du systray, dès qu'une saisie a un sens : identifiant VPN configuré, tunnel monté, accès non ouvert. Ils disparaissent le reste du temps, sans rien changer aux installations sans authentification serveur.
- Le bouton apparaissait et disparaissait correctement, mais son calcul de hauteur se relançait à chaque cycle de rafraîchissement lorsque la fenêtre était repliée dans le systray : `isVisible()` y est faux pour tout enfant d'une fenêtre masquée, quel que soit l'état demandé. C'est `isHidden()` qui porte cette intention.
---
## [0.8.1] — 2026-09-06
### Sécurité