fix(export): laat een niet-resolveerbaar thema-logo stil wegvallen (#1174) #1185

Merged
brenno merged 1 commit from quality/1174-theme-logo-silent-fallback into main 2026-08-03 22:04:06 +00:00
Owner

Sluit #1174.

Probleem

Een niet-resolveerbaar thema-logo (merk-overlay, trustedAsset) stempelde een 'Bestand niet gevonden'-plaatshouder linksonder op élke dia — in editor, presentatie én de PDF/PPTX-export. Dat gebeurt zodra het logobestand er niet is, typisch bij een geïmporteerd stijlprofiel waarvan het mem:- of style_logos/-bestand op deze machine ontbreekt.

Fix

Alle faal-takken van _resolvedImage lopen nu via de nieuwe top-level helper _failedImage, die voor een trustedAsset (uitsluitend het logo) een lege widget teruggeeft in plaats van de plaatshouder. Een merk-overlay die stil wegvalt is correcter dan een gebroken-afbeelding-icoon op elke geëxporteerde pagina.

Een ontbrekende inhoudsafbeelding blijft wél haar plaatshouder tonen — die hoort de auteur te zien.

Editor, presentatie en export renderen allemaal via SlidePreviewWidget_LogoOverlay_resolvedImage, dus één fix dekt de drie oppervlakken.

Test

Regressietest in test/image_slides_preview_test.dart dekt beide kanten: het weggevallen logo (geen plaatshouder/icoon) én het behouden inhoudsbeeld (plaatshouder blijft). Eerst-rood geverifieerd. make check groen.

Sluit #1174. ## Probleem Een niet-resolveerbaar **thema-logo** (merk-overlay, `trustedAsset`) stempelde een 'Bestand niet gevonden'-plaatshouder linksonder op élke dia — in editor, presentatie én de PDF/PPTX-export. Dat gebeurt zodra het logobestand er niet is, typisch bij een geïmporteerd stijlprofiel waarvan het `mem:`- of `style_logos/`-bestand op deze machine ontbreekt. ## Fix Alle faal-takken van `_resolvedImage` lopen nu via de nieuwe top-level helper `_failedImage`, die voor een `trustedAsset` (uitsluitend het logo) een lege widget teruggeeft in plaats van de plaatshouder. Een merk-overlay die stil wegvalt is correcter dan een gebroken-afbeelding-icoon op elke geëxporteerde pagina. Een ontbrekende **inhouds**afbeelding blijft wél haar plaatshouder tonen — die hoort de auteur te zien. Editor, presentatie en export renderen allemaal via `SlidePreviewWidget` → `_LogoOverlay` → `_resolvedImage`, dus één fix dekt de drie oppervlakken. ## Test Regressietest in `test/image_slides_preview_test.dart` dekt beide kanten: het weggevallen logo (geen plaatshouder/icoon) én het behouden inhoudsbeeld (plaatshouder blijft). Eerst-rood geverifieerd. `make check` groen.
fix(export): laat een niet-resolveerbaar thema-logo stil wegvallen (#1174)
All checks were successful
scans / scans (pull_request) Successful in 1m30s
static-gate / static-gate (pull_request) Successful in 3m30s
ba9aae417e
Een thema-logo is een merk-overlay die op élke dia van élk deck ligt. Kon het
logobestand niet worden geresolveerd — typisch een geïmporteerd stijlprofiel
waarvan het `mem:`- of `style_logos/`-bestand op deze machine ontbreekt — dan
stempelde `_resolvedImage` een 'Bestand niet gevonden'-plaatshouder linksonder
op iedere pagina, in editor, presentatie én de PDF/PPTX-export.

Een merk-overlay die stil wegvalt is correcter dan een gebroken-afbeelding-
icoon op elke geëxporteerde pagina. Alle faal-takken van `_resolvedImage`
(bundled/mem errorBuilder, memoryGone, url errorBuilder, resolved==null,
file errorBuilder) lopen nu via `_failedImage`, die voor een `trustedAsset`
(alleen het logo) een lege widget teruggeeft in plaats van de plaatshouder. Een
ontbrekende *inhouds*afbeelding blijft wél zichtbaar — die hoort de auteur te
zien.

De helper is top-level gemaakt zodat `_resolvedImage` onder de methodelengte-
ratchet blijft. Regressietest dekt beide kanten: logo valt weg, inhoudsbeeld
houdt zijn plaatshouder.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
brenno merged commit 9f48a81e0f into main 2026-08-03 22:04:06 +00:00
Sign in to join this conversation.
No description provided.