Twee gelijkwaardige startknoppen, en 'Leeg deck' is echt leeg #1572

Merged
brenno merged 2 commits from feat/startknoppen-en-leeg-sjabloon into main 2026-08-19 09:40:31 +00:00
Owner

Opvolger van de gesloten #1548, tegen een verse main en met de poort er deze keer wél overheen.

#1548 was van 18 augustus. Zijn checks waren groen tegen een basis die inmiddels ver weg lag (0.4.6, de voetnoten, #1554, #1563), en niemand had hem sindsdien nagerekend — dus is hij gesloten in plaats van gerepareerd. De tak startknoppen-en-leeg-sjabloon staat er nog op b521286d; dit is dezelfde inhoud, opnieuw aangebracht.

Wat erin zit

1. Twee gelijkwaardige startknoppen. Onder de kop Nieuwe presentatie stond een gele knop Kiezen met daaronder een witte Nieuw document. Dat leest als één weg met een aanhangsel: de kop noemde de soort, de knop zei alleen "kiezen", en de omlijnde knop ernaast las als de mindere van de twee. Nu: kop Nieuw, daaronder Nieuwe presentatie en Nieuw document, allebei in de accentkleur van het stijlprofiel, allebei met een label dat zelf zegt wat het maakt. De sjabloonregel is meeverhuisd naar direct onder de presentatieknop — hij gold nooit voor een document.

2. "Leeg deck" is echt leeg. Het sjabloon leverde een titelpagina met de ingetypte titel er al op. Nu is het één lege dia. De titel blijft de deck-titel (front matter, tabblad, bestandsnaam) en spreekt zich nergens op een dia uit. Daarmee is het lege deck het enige sjabloon zonder document in assets/templates/: leeg is de afwezigheid van een document, geen document dat toevallig één dia telt. De 31 empty.*.md zijn weg en de sjabloonpoorten slaan het lege deck expliciet over via documentTemplates.

3. En daardoor: de lege-dia-melding zwijgt op een onaangeraakt deck. Punt 2 levert per definitie een lege dia op, en die geeft de kwaliteitsmelding "Deze dia is leeg" — dus begroette een vers deck de gebruiker met een verwijt over precies wat hij net zelf vroeg. Die ene melding zwijgt zolang het deck onaangeraakt is (geen ongedaan-maken-stap, geen bestandspad, geen download op web). Eén toetsaanslag zet hem weer aan; dan is een lege dia wél iets om te weten vóór de export. De andere meldingen blijven vanaf de eerste seconde staan.

Punt 3 is bewust meegekomen en niet apart gehouden: het is 23 regels in deck_quality_provider.dart plus zijn tests, en het bestáát alleen omdat punt 2 er is. Zonder punt 3 landt punt 2 met een zichtbare regressie.

Wat er anders is dan in #1548

Niets aan de inhoud — beide commits zijn onveranderd overgezet (git cherry-pick) en landden zonder één conflict, ook niet in de 31 taaltabellen. Het verschil zit in de toetsing: dit is nagerekend tegen de main van vandaag.

Getoetst

  • make check volledig groen op deze tak: opmaak, analyse, conventies, projectiegrens, methodelengte, dode code, harde tekst, commentaartaal, de volledige testsuite, de dekkingsvloer (87,0%) en de per-bestand-vloer (0 bestanden eronder).
  • make check-secrets en make sast gedraaid.
  • De regressietests uit #1548 zijn mee: template_content_service_test (leeg levert één lege bullets-dia, leest niets uit de bundel, zet de titel niet op de dia), deck_template_test (het lege deck draagt in geen enkele taal nog een document) en empty_deck_quality_silence_test (vier gevallen: vers deck zwijgt, ook in de ruwe analyse; na een bewerking telt de melding weer; een geopend deck met lege dia waarschuwt gewoon; andere meldingen blijven).

Wat ik niet opnieuw heb gedaan is de visuele keuring met eigen ogen — die staat in #1548 beschreven en de knoppen zijn sindsdien niet veranderd. Zeg het als je hem toch nog een ronde wilt geven voor dit landt.

Opvolger van de gesloten #1548, tegen een verse `main` en met de poort er deze keer wél overheen. #1548 was van 18 augustus. Zijn checks waren groen tegen een basis die inmiddels ver weg lag (0.4.6, de voetnoten, #1554, #1563), en niemand had hem sindsdien nagerekend — dus is hij gesloten in plaats van gerepareerd. De tak `startknoppen-en-leeg-sjabloon` staat er nog op `b521286d`; dit is dezelfde inhoud, opnieuw aangebracht. ## Wat erin zit **1. Twee gelijkwaardige startknoppen.** Onder de kop *Nieuwe presentatie* stond een gele knop **Kiezen** met daaronder een witte **Nieuw document**. Dat leest als één weg met een aanhangsel: de kop noemde de soort, de knop zei alleen "kiezen", en de omlijnde knop ernaast las als de mindere van de twee. Nu: kop **Nieuw**, daaronder **Nieuwe presentatie** en **Nieuw document**, allebei in de accentkleur van het stijlprofiel, allebei met een label dat zelf zegt wat het maakt. De sjabloonregel is meeverhuisd naar direct onder de presentatieknop — hij gold nooit voor een document. **2. "Leeg deck" is echt leeg.** Het sjabloon leverde een titelpagina met de ingetypte titel er al op. Nu is het één lege dia. De titel blijft de deck-titel (front matter, tabblad, bestandsnaam) en spreekt zich nergens op een dia uit. Daarmee is het lege deck het enige sjabloon **zonder** document in `assets/templates/`: leeg is de afwezigheid van een document, geen document dat toevallig één dia telt. De 31 `empty.*.md` zijn weg en de sjabloonpoorten slaan het lege deck expliciet over via `documentTemplates`. **3. En daardoor: de lege-dia-melding zwijgt op een onaangeraakt deck.** Punt 2 levert per definitie een lege dia op, en die geeft de kwaliteitsmelding *"Deze dia is leeg"* — dus begroette een vers deck de gebruiker met een verwijt over precies wat hij net zelf vroeg. Die ene melding zwijgt zolang het deck onaangeraakt is (geen ongedaan-maken-stap, geen bestandspad, geen download op web). Eén toetsaanslag zet hem weer aan; dan is een lege dia wél iets om te weten vóór de export. De andere meldingen blijven vanaf de eerste seconde staan. Punt 3 is bewust meegekomen en niet apart gehouden: het is 23 regels in `deck_quality_provider.dart` plus zijn tests, en het bestáát alleen omdat punt 2 er is. Zonder punt 3 landt punt 2 met een zichtbare regressie. ## Wat er anders is dan in #1548 Niets aan de inhoud — beide commits zijn onveranderd overgezet (`git cherry-pick`) en landden zonder één conflict, ook niet in de 31 taaltabellen. Het verschil zit in de toetsing: dit is nagerekend tegen de `main` van vandaag. ## Getoetst - `make check` volledig groen op deze tak: opmaak, analyse, conventies, projectiegrens, methodelengte, dode code, harde tekst, commentaartaal, de volledige testsuite, de dekkingsvloer (87,0%) en de per-bestand-vloer (0 bestanden eronder). - `make check-secrets` en `make sast` gedraaid. - De regressietests uit #1548 zijn mee: `template_content_service_test` (leeg levert één lege bullets-dia, leest niets uit de bundel, zet de titel niet op de dia), `deck_template_test` (het lege deck draagt in geen enkele taal nog een document) en `empty_deck_quality_silence_test` (vier gevallen: vers deck zwijgt, ook in de ruwe analyse; na een bewerking telt de melding weer; een geopend deck met lege dia waarschuwt gewoon; andere meldingen blijven). Wat ik **niet** opnieuw heb gedaan is de visuele keuring met eigen ogen — die staat in #1548 beschreven en de knoppen zijn sindsdien niet veranderd. Zeg het als je hem toch nog een ronde wilt geven voor dit landt.
Het startscherm zette een gele knop 'Kiezen' onder de kop 'Nieuwe
presentatie', met daaronder een witte 'Nieuw document'. Dat las als één weg
met een aanhangsel: de kop noemde de soort, de knop zei alleen "kiezen", en
de witte knop ernaast leek de mindere van de twee. Het zijn twee
gelijkwaardige manieren om te beginnen, dus staan ze er nu ook zo bij — kop
'Nieuw', daaronder 'Nieuwe presentatie' en 'Nieuw document', allebei in de
accentkleur, allebei met een label dat zelf zegt wat het maakt. De
sjabloonregel is meeverhuisd naar onder de presentatieknop; hij gold nooit
voor een document.

Tegelijk het lege sjabloon: dat leverde een titelpagina met de ingetypte
titel er al op, en dat is geen leeg vel. 'Leeg deck' geeft nu één lege dia;
de titel blijft de deck-titel (front matter, tabblad, bestandsnaam) en
spreekt zich nergens op een dia uit. Daarmee is het lege deck het enige
sjabloon zonder document in assets/templates/ — leeg is de afwezigheid van
een document, geen document dat toevallig één dia telt.

De knopvormen zijn afgesplitst naar welcome_screen_chrome.dart, want
welcome_screen.dart liep tegen het regelplafond.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
fix(kwaliteit): zwijg over een lege dia zolang het deck onaangeraakt is
All checks were successful
scans / scans (pull_request) Successful in 1m55s
static-gate / static-gate (pull_request) Successful in 4m30s
44802e7809
Een lege dia levert de melding "Deze dia is leeg: hij toont niets op het
scherm en in de export." Sinds 'Leeg deck' echt één lege dia geeft, begroette
een vers deck de gebruiker daar meteen mee — een verwijt over precies wat hij
net zelf had gevraagd, met een badge op de miniatuur erbij.

Die ene melding zwijgt nu zolang het deck nog niet is aangeraakt: geen
ongedaan-maken-stap, geen bestandspad, en op web geen download. Eén
toetsaanslag zet hem weer aan, en dat is precies het moment waarop een lege
dia wél iets is om te weten vóór de export. De filter zit in de rúwe provider,
anders zet de miniatuur alsnog een badge op een dia waar niemand iets mee
heeft gedaan. Andere meldingen blijven vanaf de eerste seconde staan: die gaan
over wat er wél is.

Vier regressietests, alle vier eerst rood gezien tegen de onherstelde code.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
brenno merged commit 79ef7815dc into main 2026-08-19 09:40:31 +00:00
Sign in to join this conversation.
No description provided.