feat(gui): GUI V6 G4 — alignement visuel sur la maquette v6 (option A)
Refonte de la couche présentation pour reprendre docs/ui_mockup_v6.html, sans changer de techno UI ni la logique G1-G3. - theme.py : 4 thèmes aux tokens EXACTS de la maquette (sombre #1a1a2e/#16213e/ #e94560, clair, médical, neutre), palette complète + status_color. - ui_kit.py (nouveau) : composants stylés (Card titrée, boutons primary/secondary/ success/pilule, StatCard, ToggleRow) appliquant la palette. - app.py : shell étroit, header identité + version + statut licence + liseré accent, barre d'onglets custom (plus de CTkTabview brut), navigation par recréation, changement de thème à chaud. - tab_usage : carte Apparence (sélecteur de thème), dropzone stylée, grille formats, barre d'actions, progression à étapes + journal, résultats en cartes statistiques. - tab_config : sous-navigation Réglages/Masquage/Partage/Règles ; Réglages câblé au ConfigState (profil, moteurs NER, dossier sortie). - tab_about : grille d'informations + bloc licence (logique inchangée). Logique inchangée : engine_bridge, config_state, license_client/store, runner. Tests : +9 (theme). self-test exit 0, 55 tests gui_v6, 202 tests/unit (0 régression). Smoke construction headless (Xvfb) : 3 onglets × 4 thèmes rendus sans erreur. Pas de pywebview, aucun .exe. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -25,6 +25,7 @@ def _self_test() -> int:
|
||||
machine_id,
|
||||
processing_runner,
|
||||
theme,
|
||||
ui_kit,
|
||||
)
|
||||
from gui_v6.tabs import tab_about, tab_config, tab_usage # noqa: F401
|
||||
|
||||
@@ -37,6 +38,8 @@ def _self_test() -> int:
|
||||
assert hasattr(engine_bridge, "make_process_fn")
|
||||
assert hasattr(config_state, "ConfigState")
|
||||
assert hasattr(machine_id, "default_machine_id")
|
||||
assert hasattr(ui_kit, "Card")
|
||||
assert hasattr(theme, "PALETTES") and set(theme.PALETTES) >= {"sombre", "clair", "medical", "neutre"}
|
||||
assert hasattr(tab_about, "AboutTab")
|
||||
assert hasattr(tab_config, "ConfigTab")
|
||||
assert hasattr(tab_usage, "UsageTab")
|
||||
|
||||
Reference in New Issue
Block a user