fix(gui): retours Dom GUI V6 — thème, Administration, Règles, aide

Cinq retours utilisateur sur l'exécutable Windows GUI V6.

- Thème : `_render()` vidait les widgets mais conservait le cache
  `_tab_frames`/`_visible_tab` → l'onglet Utilisation se vidait (TclError
  sur widget détruit) au changement de thème. Reset du cache dans
  `_render()` → onglet actif recréé proprement.
- Onglet principal « Configuration » → « Administration » (clé interne
  inchangée).
- Sous-onglet « Règles  2 » → « Règles » (le « 2 » était un badge non
  câblé).
- Actions de maquette non câblées (Partage Export/Import, Règles Nouvelle
  règle/Recharger/Tester/Fermer) désactivées + suffixe « (à venir) » via
  `_mockup_button` : plus aucune action morte qui semble fonctionner.
- Aide « ? » restaurée (façon V5) : `ui_kit.HelpButton`/`help_button`
  réutilisable ouvrant une fenêtre d'aide en français simple, posée sur
  Utilisation, Administration (Réglages/Masquage/Partage/Règles) et
  À propos. Partage : phrase visible + aide expliquant qu'on partage les
  réglages, jamais les documents patients.

`tests/unit/test_gui_v6_app_shell.py` : régression thème, libellés,
présence d'aide, navigation. 228 tests unit OK (0 régression), self-test
GUI V6 OK. V5/moteur/app_aivanov non touchés, aucune dépendance ajoutée.
Verdict Qwen requis avant push/build/diffusion.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-15 16:39:53 +02:00
parent 13b79db417
commit 6a0a5811a5
6 changed files with 328 additions and 9 deletions

View File

@@ -25,7 +25,7 @@ from gui_v6.tabs.tab_usage import UsageTab
_TABS = [
("use", "📄 Utilisation"),
("cfg", "⚙️ Configuration"),
("cfg", "⚙️ Administration"),
("about", " À propos"),
]
@@ -65,6 +65,11 @@ class AnonymisationApp(ctk.CTk):
pass
for child in self.winfo_children():
child.destroy()
# Les frames d'onglets mis en cache étaient des enfants détruits ci-dessus :
# on vide le cache pour que ``_show`` recrée proprement l'onglet actif
# (sinon on re-packe un widget mort → onglet vide / TclError au changement de thème).
self._tab_frames = {}
self._visible_tab = None
self._build_header(p)
self._build_tabsbar(p)
self._content = ctk.CTkScrollableFrame(self, fg_color=p["bg"])