fix(ux): het polijstwerk uit #646 — vinkje, exportpad en de naam van de uitgever #700

Merged
brenno merged 1 commit from fix/646-polijst into main 2026-07-22 22:01:37 +00:00
Owner

De polijstronde uit #646: drie kleine dingen die elk op zichzelf geen issue waard waren, en samen wel.

Het toestemmingsscherm

"Akkoord gaan" stond grijs, en het vakje dat die knop vrijgeeft stond ónder de hele privacyverklaring — vijf schermen naar beneden. Je zag een geblokkeerde knop en kon niet zien waarom, laat staan wat eraan te doen.

Het vinkje staat nu buiten de scroll, naast de knop. De verklaring blijft scrollbaar — die hóórt gelezen te worden — maar de handeling hoort waar de knop is. Een uitleg naast de knop had de vraag verzacht; het vinkje ernaast zetten haalt hem weg.

Waarom de suite dit niet liet zien: de bestaande test deed ensureVisible(find.byType(Checkbox)). Dat is precies de handeling die de gebruiker óók moest verrichten. De nieuwe test doet dat bewust niet, en wordt rood tegen de oude code.

Het exportpad

Je zag waar je bestand terechtkwam en kon er niets mee: niet selecteren, niet kopiëren, dus overtypen. Nu selecteerbaar, met een knop die alleen het pad kopieert — wie kopieert wil het in een terminal of een bestandsvenster plakken, niet de zin eromheen. Geen nieuwe vertaling nodig: Kopiëren bestond al.

De naam van de uitgever

Het macOS-menu las "About ocideck" — met kleine letter, omdat PRODUCT_NAME zo in de buildconfiguratie stond. Dat verklaart het item uit de issue over de half-Engelse menubalk voor de helft.

Onderweg bleek er meer: het copyright in het informatievenster schreef de app toe aan een bedrijf in plaats van aan de stichting, en op Windows stond dat als com.dewinter in de bestandseigenschappen. Alle drie rechtgezet naar Stichting LibreKAT — dat sluit aan bij het stichtingswerk uit #644.

De bundle-identifiers blijven staan, en dat is een besluit en geen vergeetpunt. Een bundle identifier is de identiteit van de app voor het besturingssysteem: wijzigen betekent dat macOS dit als een ándere applicatie ziet, met eigen voorkeuren en een eigen keychain — en dan lijkt elk opgeslagen wachtwoord verdwenen. Dat is een migratie, geen opruiming.

Wat ik bewust heb laten staan

De rauwe tijdstempel in de exportnaam. Die is een ontwerpkeuze — chronologisch sorteerbaar, uniek per export — en geen gebrek. Het formaat wijzigen raakt hoe bestaande rapporten in een map op volgorde staan. Dat is een productbesluit, niet iets om in een polijstronde eigenmachtig om te gooien.

"Hide Others" en "Services" in het macOS-menu. Die komen uit MainMenu.xib, die alleen een Base-lokalisatie heeft. Ze vertalen vraagt 32 .strings-bestanden buiten het Dart-l10n-systeem om. Eigen klus; blijft in het issue staan.

De dubbele opslagdialoog. Die zit in de opslagroute zelf en is geen cosmetiek — daar hoort eerst een keuze over wat die tussenstap moet zijn, niet een snelle ingreep.

Getoetst

  • make check groen, make test-golden groen (33 goldens, inclusief de nieuwe uit #617), make check-secrets en make sast schoon, make l10n-check groen.
  • Twee nieuwe tests op het toestemmingsscherm, beide rood tegen de oude code.
  • Rebase op main botste op één import in export_dialog.dart — beide kanten hadden hun eigen import nodig, dus samengevoegd.

Werkt aan #646.

De polijstronde uit #646: drie kleine dingen die elk op zichzelf geen issue waard waren, en samen wel. ## Het toestemmingsscherm "Akkoord gaan" stond grijs, en het vakje dat die knop vrijgeeft stond ónder de hele privacyverklaring — vijf schermen naar beneden. Je zag een geblokkeerde knop en kon niet zien waarom, laat staan wat eraan te doen. Het vinkje staat nu buiten de scroll, naast de knop. De verklaring blijft scrollbaar — die hóórt gelezen te worden — maar de handeling hoort waar de knop is. Een uitleg naast de knop had de vraag verzacht; het vinkje ernaast zetten haalt hem weg. **Waarom de suite dit niet liet zien:** de bestaande test deed `ensureVisible(find.byType(Checkbox))`. Dat is precies de handeling die de gebruiker óók moest verrichten. De nieuwe test doet dat bewust niet, en wordt rood tegen de oude code. ## Het exportpad Je zag waar je bestand terechtkwam en kon er niets mee: niet selecteren, niet kopiëren, dus overtypen. Nu selecteerbaar, met een knop die **alleen het pad** kopieert — wie kopieert wil het in een terminal of een bestandsvenster plakken, niet de zin eromheen. Geen nieuwe vertaling nodig: `Kopiëren` bestond al. ## De naam van de uitgever Het macOS-menu las *"About ocideck"* — met kleine letter, omdat `PRODUCT_NAME` zo in de buildconfiguratie stond. Dat verklaart het item uit de issue over de half-Engelse menubalk voor de helft. Onderweg bleek er meer: het copyright in het informatievenster schreef de app toe aan een **bedrijf** in plaats van aan de stichting, en op Windows stond dat als `com.dewinter` in de bestandseigenschappen. Alle drie rechtgezet naar Stichting LibreKAT — dat sluit aan bij het stichtingswerk uit #644. **De bundle-identifiers blijven staan**, en dat is een besluit en geen vergeetpunt. Een bundle identifier is de identiteit van de app voor het besturingssysteem: wijzigen betekent dat macOS dit als een ándere applicatie ziet, met eigen voorkeuren en een eigen keychain — en dan lijkt elk opgeslagen wachtwoord verdwenen. Dat is een migratie, geen opruiming. ## Wat ik bewust heb laten staan **De rauwe tijdstempel in de exportnaam.** Die is een ontwerpkeuze — chronologisch sorteerbaar, uniek per export — en geen gebrek. Het formaat wijzigen raakt hoe bestaande rapporten in een map op volgorde staan. Dat is een productbesluit, niet iets om in een polijstronde eigenmachtig om te gooien. **"Hide Others" en "Services" in het macOS-menu.** Die komen uit `MainMenu.xib`, die alleen een Base-lokalisatie heeft. Ze vertalen vraagt 32 `.strings`-bestanden buiten het Dart-l10n-systeem om. Eigen klus; blijft in het issue staan. **De dubbele opslagdialoog.** Die zit in de opslagroute zelf en is geen cosmetiek — daar hoort eerst een keuze over wat die tussenstap moet zijn, niet een snelle ingreep. ## Getoetst - `make check` groen, `make test-golden` groen (33 goldens, inclusief de nieuwe uit #617), `make check-secrets` en `make sast` schoon, `make l10n-check` groen. - Twee nieuwe tests op het toestemmingsscherm, beide rood tegen de oude code. - Rebase op main botste op één import in `export_dialog.dart` — beide kanten hadden hun eigen import nodig, dus samengevoegd. Werkt aan #646.
fix(ux): het polijstwerk uit #646 — vinkje, exportpad en de naam van de uitgever
Some checks failed
CI / Gate (Linux) · Format · Analyze · Coverage (push) Failing after 26s
CI / Web hardening (push) Failing after 23s
CI / Docs links (push) Failing after 26s
CI / Supply-chain (Trivy · advisory) (push) Failing after 24s
CI / Web hardening (pull_request) Failing after 24s
CI / Gate (Linux) · Format · Analyze · Coverage (pull_request) Failing after 26s
CI / Docs links (pull_request) Failing after 20s
CI / Supply-chain (Trivy · advisory) (pull_request) Failing after 30s
CI / Test (macos-latest) (push) Has been cancelled
CI / Test (windows-latest) (push) Has been cancelled
CI / Test (macos-latest) (pull_request) Has been cancelled
CI / Test (windows-latest) (pull_request) Has been cancelled
ee63f7a792
Drie kleine dingen die elk op zichzelf niet de moeite van een issue waard waren,
en samen wel.

**Het toestemmingsscherm.** "Akkoord gaan" stond grijs en het vakje dat die knop
vrijgeeft stond ónder de hele privacyverklaring — vijf schermen naar beneden.
Het vinkje staat nu buiten de scroll, naast de knop. De verklaring blijft
scrollbaar (die hoort gelezen te worden); de hándeling hoort waar de knop is.
Een uitleg naast de knop had de vraag verzacht; het vinkje ernaast zetten haalt
hem weg.

De bestaande test deed `ensureVisible(find.byType(Checkbox))` — precies de
handeling die de gebruiker óók moest verrichten, en dus de reden dat de suite dit
gebrek niet liet zien. De nieuwe test doet dat bewust niet.

**Het exportpad.** Je zag waar je bestand terechtkwam en kon er niets mee: geen
selectie, geen kopie, dus overtypen. Nu selecteerbaar, met een knop die álleen
het pad kopieert — wie kopieert wil het in een terminal of een bestandsvenster
plakken, niet de zin eromheen. Geen nieuwe vertaling nodig: 'Kopiëren' bestond al.

**De naam van de uitgever.** Het macOS-menu las "About ocideck" omdat
`PRODUCT_NAME` met kleine letter in de buildconfiguratie stond, en het copyright
noemde een bedrijf in plaats van de stichting. Op Windows stond dat als
"com.dewinter" in de bestandseigenschappen. Alle drie naar Stichting LibreKAT.

De bundle-identifiers blijven staan, met de reden erbij: dat is de identiteit van
de app voor het besturingssysteem. Wijzigen betekent dat macOS dit als een ándere
applicatie ziet — eigen voorkeuren, eigen keychain — en dan lijkt elk opgeslagen
wachtwoord verdwenen. Een migratie, geen opruiming.

**Wat ik bewust heb laten staan:** de rauwe tijdstempel in de exportnaam. Die is
een ontwerpkeuze (chronologisch sorteerbaar, uniek per export) en geen gebrek;
het formaat wijzigen raakt hoe bestaande rapporten in een map op volgorde staan.
Dat is een productbesluit, niet iets om in een polijstronde eigenmachtig om te
gooien.

De half-Engelse macOS-menubalk is hiermee half opgelost: de naam klopt nu, maar
"Hide Others" en "Services" blijven Engels. Die komen uit `MainMenu.xib`, die
alleen een Base-lokalisatie heeft; ze vertalen vraagt 32 `.strings`-bestanden
buiten het Dart-l10n-systeem om. Dat is een eigen klus en staat als zodanig in
het issue.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
brenno merged commit 39d9bd7813 into main 2026-07-22 22:01:37 +00:00
Sign in to join this conversation.
No description provided.