feat(ui): trois sous-onglets de plus dans « À propos »
Mode d'emploi, Prérequis et Sécurité rejoignent Fonctions, Garanties, Technique, Journal et Auteur. Le contenu vit dans app_info.py, séparé de sa présentation : le relire ou le corriger ne demande pas de traverser le code de l'interface. Deux aides — _about_group_label et _about_grouped — découpent en groupes titrés les listes d'une vingtaine de cartes, sans quoi Prérequis et Sécurité se lisaient comme un seul bloc indifférencié. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
a989f50151
commit
205258cbf1
+59
-6
@@ -958,7 +958,7 @@ class AdminWindow(QDialog):
|
||||
# Onglet À propos
|
||||
# ------------------------------------------------------------------ #
|
||||
def _tab_about(self) -> QWidget:
|
||||
"""Page « À propos », en cinq sous-onglets (modèle QuiOulé/TuxMarket).
|
||||
"""Page « À propos », en huit sous-onglets (modèle QuiOulé/TuxMarket).
|
||||
|
||||
Le contenu (fonctions, garanties, pile technique, auteur) vit dans
|
||||
`app/app_info.py`, séparé de sa présentation ici — le rendre
|
||||
@@ -974,11 +974,14 @@ class AdminWindow(QDialog):
|
||||
|
||||
sub = QTabWidget()
|
||||
sub.setStyleSheet(theme.TABBAR_CSS)
|
||||
sub.addTab(self._subtab_about_features(app_info), "⭐ Fonctions")
|
||||
sub.addTab(self._subtab_about_guarantees(app_info), "🛡️ Garanties")
|
||||
sub.addTab(self._subtab_about_tech(app_info), "🧱 Technique")
|
||||
sub.addTab(self._subtab_about_changelog(app_info), "🕓 Journal")
|
||||
sub.addTab(self._subtab_about_author(app_info), "👤 Auteur")
|
||||
sub.addTab(self._subtab_about_features(app_info), "⭐ Fonctions")
|
||||
sub.addTab(self._subtab_about_howto(app_info), "📖 Mode d'emploi")
|
||||
sub.addTab(self._subtab_about_requirements(app_info), "📦 Prérequis")
|
||||
sub.addTab(self._subtab_about_security(app_info), "🔐 Sécurité")
|
||||
sub.addTab(self._subtab_about_guarantees(app_info), "🛡️ Garanties")
|
||||
sub.addTab(self._subtab_about_tech(app_info), "🧱 Technique")
|
||||
sub.addTab(self._subtab_about_changelog(app_info), "🕓 Journal")
|
||||
sub.addTab(self._subtab_about_author(app_info), "👤 Auteur")
|
||||
lay.addWidget(sub)
|
||||
return w
|
||||
|
||||
@@ -1105,6 +1108,29 @@ class AdminWindow(QDialog):
|
||||
area.setWidget(inner)
|
||||
return area
|
||||
|
||||
def _about_group_label(self, text: str) -> QLabel:
|
||||
"""Intitulé séparant deux groupes de cartes dans une même liste.
|
||||
|
||||
Prérequis et Sécurité alignent une vingtaine de cartes chacun : sans
|
||||
rien pour marquer où finit « Linux » et où commence « Windows », la
|
||||
liste se lit comme un seul bloc indifférencié.
|
||||
"""
|
||||
lbl = QLabel(text)
|
||||
lbl.setWordWrap(True)
|
||||
lbl.setStyleSheet(
|
||||
f"color: {theme.ACCENT_LIGHT}; font-size: 13px; font-weight: bold;"
|
||||
" background: transparent; margin-top: 6px;"
|
||||
)
|
||||
return lbl
|
||||
|
||||
def _about_grouped(self, groups: list[tuple[str, list[tuple[str, str]]]]) -> QWidget:
|
||||
"""Liste de cartes découpée en groupes titrés."""
|
||||
items: list[QWidget] = []
|
||||
for title, entries in groups:
|
||||
items.append(self._about_group_label(title))
|
||||
items += [self._about_card(body, title=head) for head, body in entries]
|
||||
return self._about_card_list(items)
|
||||
|
||||
# ── Sous-onglet : fonctions ───────────────────────────────────────────
|
||||
def _subtab_about_features(self, info) -> QWidget:
|
||||
page, v = self._test_page()
|
||||
@@ -1112,6 +1138,33 @@ class AdminWindow(QDialog):
|
||||
v.addWidget(self._about_card_list(cards))
|
||||
return page
|
||||
|
||||
# ── Sous-onglet : mode d'emploi ───────────────────────────────────────
|
||||
def _subtab_about_howto(self, info) -> QWidget:
|
||||
page, v = self._test_page()
|
||||
v.addWidget(self._hint(info.HOWTO_FIRST_INTRO))
|
||||
items: list[QWidget] = [
|
||||
self._about_card(step, icon=f"{i}\u20e3")
|
||||
for i, step in enumerate(info.HOWTO_FIRST, 1)
|
||||
]
|
||||
items.append(self._about_group_label("Au quotidien"))
|
||||
items += [self._about_card(body, title=head) for head, body in info.HOWTO_DAILY]
|
||||
items.append(self._about_group_label("Quand la connexion échoue"))
|
||||
items += [self._about_card(body, title=head) for head, body in info.HOWTO_TROUBLE]
|
||||
v.addWidget(self._about_card_list(items))
|
||||
return page
|
||||
|
||||
# ── Sous-onglet : prérequis ───────────────────────────────────────────
|
||||
def _subtab_about_requirements(self, info) -> QWidget:
|
||||
page, v = self._test_page()
|
||||
v.addWidget(self._about_grouped(info.REQUIREMENTS))
|
||||
return page
|
||||
|
||||
# ── Sous-onglet : sécurité ────────────────────────────────────────────
|
||||
def _subtab_about_security(self, info) -> QWidget:
|
||||
page, v = self._test_page()
|
||||
v.addWidget(self._about_grouped(info.SECURITY))
|
||||
return page
|
||||
|
||||
# ── Sous-onglet : garanties ───────────────────────────────────────────
|
||||
def _subtab_about_guarantees(self, info) -> QWidget:
|
||||
page, v = self._test_page()
|
||||
|
||||
Reference in New Issue
Block a user