fix(export): een deck zonder afbeeldingen liet de PDF-export omvallen (#714) #781
No reviewers
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck!781
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/pdf-export-clamp-714"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Repareert #714 — en de melding was letterlijker dan hij leek.
De oorzaak
Dart's
clampweigert een bovengrens onder de ondergrens en gooit danArgumentError(lowerLimit). Bijtotal == 0is dat dusArgumentError(1), ende tekst daarvan is
Invalid argument(s): 1. Wat de gebruiker zag was denaam van de ondergrens.
totalis nul wanneer het deck geen enkele afbeelding heeft: de rasteraarmeldt de precache-stap met het aantal te laden afbeeldingen.
numberwerdberekend vóór de
switch, dus ook voor precache — juist de tak dietotal == 0netjes afvangt.
Waarom de melding zo raadselachtig was
ExportServicerechtstreeks aan en de rasteraar zonderonStage-callback. Dan draait deze functie nooit.Die laatste rij is de eigenlijke bevinding: de fout zat in een laag waar geen
toets langskwam, en niet in de code die iedereen wél toetste.
De reparatie
Eén regel: bij
total < 1vervalt de bovengrens. De ondergrens 1 blijft — eendia heet "1" en niet "0".
De borging, in twee lagen
export_dialog_pdf_end_to_end_test),op het deck uit de melding, onbewerkt én gecomprimeerd. Die toets stond eerst
rood met exact de gemelde tekst. Hij dekt meteen de zeven argumenten die de
dialoog meegeeft en die in elke bestaande exporttoets hun standaardwaarde
hadden:
audience,themeProfile,tlp,enforcementPolicy,metadata,de doelmap en de voortgangs-callbacks.
export_progress_text_test, elf toetsen). Daarvooris
_stageTextuit het venster getrokken naarexportProgressText— puretekstkeuze, net als
export_failure_text.dartal was. Dat is hier geensmaakkwestie: dát de functie privé op de dialoogstate zat, ís waarom #714 er
ongezien in kon zitten.
Rood gezien: de clamp terugzetten laat beide lagen omvallen, met
ArgumentError: Invalid argument(s): 1.Foutklasse afgelopen
grepop.clamp(inlib/: twee andere variabele-bovengrenzen zijnaantoonbaar veilig (
editor_providerguardtcount <= 0,tabs_provider_tab_infoklemt de bovengrens zelf af). Eén plek —
slide_layout_metrics.dart:319,clamp(1.0, availW)— heeft hetzelfde patroon maar geen aantoonbaar bereikbaarpad; apart uitgezet in plaats van hier stilzwijgend meegenomen.
Nog iets rechtgezet
Het klasseplafond viel (1002 van 1000) door het commentaar bij de reparatie.
Niet de uitleg ingekort en niet de basislijn opgehoogd: de methode hoorde daar
sowieso niet. Klasse nu 936.
Poort
make checkgroen,check-secretsensastschoon, gerebased op main endaarna opnieuw getoetst. CHANGELOG en SOURCE_MAP bij; geen nieuwe
l10n.d('…')-string, geen afhankelijkheidswijziging.Closes #714.