fix(display): Fusszeile des Bildsatzes passt aufs Panel, auch die Fehlt-Warnung

Am Geraet kam die Zeile gekuerzt an ('... (ohne WLA...'), und mit dem Zusatz
' - SATZ FEHLT' war die Warnung in beiden Richtungen ausserhalb der Panelbreite -
also genau die Zeile, die sagt, dass die Station nichts ausliefern kann.

Unbemerkt blieb das, weil _load_font() auf dem Pi DejaVu nimmt und auf dem Mac bis
Arial durchfaellt: dieselbe Zeile misst dort 246,0 von 246 px, auf dem Pi 283,5 px.
Der neue Test misst deshalb mit 25 % Reserve gegen eine breitere Schrift.

Die Fehlt-Warnung ersetzt die Zeile jetzt, statt sie zu verlaengern.
This commit is contained in:
Michael Sauer
2026-09-15 10:37:30 +02:00
parent c482194503
commit f4dd1386ef
2 changed files with 63 additions and 4 deletions
+17 -4
View File
@@ -194,11 +194,24 @@ ARMED_DETAIL_PREFIX = "Freigabe: "
# "Lampe: sofort ins WLAN" sagt ihm genau das, was er wissen muss, bevor er einschaltet.
# Der gefaehrliche Zustand steht in Grossbuchstaben - er ist der, den man uebersehen soll
# und darf.
# Die Zeile muss UNGEKUERZT passen, und zwar auch mit einer breiteren Schrift als der
# hier gerade installierten: am Geraet (DejaVu) kam die alte, laengere Fassung als
# "Lampe -> Onboarding-AP (ohne WLA..." an - der Zusatz in der Klammer, also gerade die
# Aussage, fiel weg. Auf dem Mac des Entwicklers (Arial, schmaler) passte dieselbe Zeile
# mit 246,0 von 246 px haarscharf; deshalb hat es niemand bemerkt. Breitenbudget siehe
# test_imageset_footer_fits_the_panel_with_room_for_a_wider_font.
IMAGESET_LABELS = {
"ohne-wlan": "Lampe -> Onboarding-AP (ohne WLAN-Daten)",
"mit-wlan": "Lampe -> SOFORT INS EIGENE WLAN",
"ohne-wlan": "ohne WLAN-Daten (Onboarding-AP)",
"mit-wlan": "MIT WLAN-Daten (eigenes Netz)",
}
# Fehlt das Verzeichnis des gewaehlten Satzes, ERSETZT die Warnung die Zeile, statt sie
# zu verlaengern. Als angehaengtes Suffix (" - SATZ FEHLT", bis 2026-09-15) war sie in
# BEIDEN Richtungen und in beiden Schriften ausserhalb der Panelbreite - die einzige
# Zeile, die sagt, dass die Station gar nichts ausliefern kann, war damit nie zu sehen.
IMAGESET_MISSING_LABELS = {
"ohne-wlan": "SATZ FEHLT: ohne WLAN-Daten",
"mit-wlan": "SATZ FEHLT: MIT WLAN-Daten",
}
IMAGESET_MISSING_SUFFIX = " - SATZ FEHLT"
# Der Abschlussbildschirm: was auf dem Panel stehen bleibt, wenn der Pi heruntergefaehrt
# oder neu gestartet wird. E-Paper ist bistabil - das zuletzt gezeichnete Bild bleibt fuer
@@ -420,7 +433,7 @@ def _imageset_blocks(state: dict) -> list[tuple[str, str]]:
if not label:
return []
if state.get("imageset_ok") is False:
label += IMAGESET_MISSING_SUFFIX
label = IMAGESET_MISSING_LABELS[name]
return [(label, ROLE_FOOTER)]