Informatiebalk onderaan het document dekt de laatste regels af #2397

Closed
opened 2026-10-12 11:52:57 +00:00 by brenno · 2 comments
Owner

Wat je wilt

Onderaan een document schuift een balk met de tellingen — woorden, hoofdstukken, paragrafen, tabellen en afbeeldingen — over de laatste regels. Die balk moet onder de tekst, in de ruimte waar bij een TLP al een band staat. Die ruimte hoort er altijd te zijn, ook zonder TLP, met die algemene informatie erin.

Wat de code nu doet

Een vaste tellerbalk met die vijf aantallen staat niet in de bron. docs/design/DOCUMENT_MODE.md noemt in fase 4 een “reading-time status bar”; die is niet als zo’n telling gebouwd.

Wat wél over de tekst heen ligt, in de visuele schrijfstand, is de paginamatenknop. _documentPageIndicator staat in een Stack op right: 8, bottom: 8, binnen het tekstvlak (lib/widgets/parts/document_editor_toolbar.dart). De tekst scrolt eronderdoor. Het commentaar ernaast zegt dat hij binnen het tekstvlak hoort te blijven “niet over de vaste voetband” (lib/widgets/parts/document_editor_layouts.dart).

Die voetband is DocumentChromeBand en zit buiten de editor, onder de Expanded, in _styledDocumentSurface (lib/widgets/document_editor_screen.dart). Hij verschijnt alleen als _hasDocumentChrome waar is: een logo, kop- of voettekst, paginanummers, of een TLP anders dan geen. Zonder TLP en zonder stijlband is er geen strook onder de tekst, en de knop (en elke telling die je daar zou leggen) dekt de laatste regels.

De presentatie heeft wel een echte statusbalk onder het werkvlak (_DeckStatusBar). Een documenttab heeft die niet.

Oplossingsrichting

Eén vaste strook onder het schrijfvlak, in dezelfde kolom als de TLP-band, nooit in de Stack van de tekst.

  • De strook is er altijd, ook zonder classificatie. Met een TLP blijft de classificatieband de band van het papier; de tellingen horen in de applicatiestrook eronder, niet op het vel.
  • Inhoud: woorden, hoofdstukken (H1), alinea’s, tabellen en afbeeldingen, afgeleid uit de bron die de editor al heeft. Plus de paginamaat die de zwevende knop nu toont, zodat die knop uit het tekstvlak verdwijnt. Geen leesduur verzinnen als die niet gevraagd is.
  • De tekstkolom houdt onderin ruimte over ter hoogte van die strook, zodat de laatste regel vrij blijft als de cursor daar staat. Dat geldt in Visueel; Bron en Pagina’s horen dezelfde strook te hebben zodat de plek niet per stand verspringt.
  • Tellen is afgeleid, niet opgeslagen. Geen schrijfactie bij het openen.

Bestandsformaat

Geen. De strook is scherm, geen sleutel in het bestand.

Test

  • Een document zonder TLP en zonder stijlband toont de strook, en de laatste regel is aanklikbaar zonder dat de strook erop ligt.
  • Met een TLP blijven het label op de papierband en de tellingen in de strook eronder allebei leesbaar.
  • De paginamatenknop staat niet meer op de tekst. Een widgettest kan de strook op zijn sleutel vinden en controleren dat hij geen kind van de schrijf-Stack is.

Kosten

Nieuwe labels (31 talen) als de tellingen geen bestaande woorden hergebruiken. Een zin in de handleiding. Geen formaat, geen afhankelijkheid.

## Wat je wilt Onderaan een document schuift een balk met de tellingen — woorden, hoofdstukken, paragrafen, tabellen en afbeeldingen — over de laatste regels. Die balk moet onder de tekst, in de ruimte waar bij een TLP al een band staat. Die ruimte hoort er altijd te zijn, ook zonder TLP, met die algemene informatie erin. ## Wat de code nu doet Een vaste tellerbalk met die vijf aantallen staat niet in de bron. `docs/design/DOCUMENT_MODE.md` noemt in fase 4 een “reading-time status bar”; die is niet als zo’n telling gebouwd. Wat wél over de tekst heen ligt, in de visuele schrijfstand, is de paginamatenknop. `_documentPageIndicator` staat in een `Stack` op `right: 8, bottom: 8`, binnen het tekstvlak (`lib/widgets/parts/document_editor_toolbar.dart`). De tekst scrolt eronderdoor. Het commentaar ernaast zegt dat hij binnen het tekstvlak hoort te blijven “niet over de vaste voetband” (`lib/widgets/parts/document_editor_layouts.dart`). Die voetband is `DocumentChromeBand` en zit buiten de editor, onder de `Expanded`, in `_styledDocumentSurface` (`lib/widgets/document_editor_screen.dart`). Hij verschijnt alleen als `_hasDocumentChrome` waar is: een logo, kop- of voettekst, paginanummers, of een TLP anders dan geen. Zonder TLP en zonder stijlband is er geen strook onder de tekst, en de knop (en elke telling die je daar zou leggen) dekt de laatste regels. De presentatie heeft wel een echte statusbalk onder het werkvlak (`_DeckStatusBar`). Een documenttab heeft die niet. ## Oplossingsrichting Eén vaste strook onder het schrijfvlak, in dezelfde kolom als de TLP-band, nooit in de `Stack` van de tekst. - De strook is er altijd, ook zonder classificatie. Met een TLP blijft de classificatieband de band van het papier; de tellingen horen in de applicatiestrook eronder, niet op het vel. - Inhoud: woorden, hoofdstukken (H1), alinea’s, tabellen en afbeeldingen, afgeleid uit de bron die de editor al heeft. Plus de paginamaat die de zwevende knop nu toont, zodat die knop uit het tekstvlak verdwijnt. Geen leesduur verzinnen als die niet gevraagd is. - De tekstkolom houdt onderin ruimte over ter hoogte van die strook, zodat de laatste regel vrij blijft als de cursor daar staat. Dat geldt in Visueel; Bron en Pagina’s horen dezelfde strook te hebben zodat de plek niet per stand verspringt. - Tellen is afgeleid, niet opgeslagen. Geen schrijfactie bij het openen. ## Bestandsformaat Geen. De strook is scherm, geen sleutel in het bestand. ## Test - Een document zonder TLP en zonder stijlband toont de strook, en de laatste regel is aanklikbaar zonder dat de strook erop ligt. - Met een TLP blijven het label op de papierband en de tellingen in de strook eronder allebei leesbaar. - De paginamatenknop staat niet meer op de tekst. Een widgettest kan de strook op zijn sleutel vinden en controleren dat hij geen kind van de schrijf-`Stack` is. ## Kosten Nieuwe labels (31 talen) als de tellingen geen bestaande woorden hergebruiken. Een zin in de handleiding. Geen formaat, geen afhankelijkheid.
Author
Owner

Opgepakt. Tak: fix/document-werkvloer. Verwachte reikwijdte: lib/widgets/document_editor_screen.dart, lib/widgets/parts/document_editor_layouts.dart, lib/widgets/parts/document_editor_toolbar.dart.

Opgepakt. Tak: fix/document-werkvloer. Verwachte reikwijdte: lib/widgets/document_editor_screen.dart, lib/widgets/parts/document_editor_layouts.dart, lib/widgets/parts/document_editor_toolbar.dart.
Author
Owner

Geland op main in 597353b59, via PR #2401.

ZAP/DAST is niet gedraaid: ZAP is niet geïnstalleerd. Geheimen-scan en SAST zijn lokaal wel gedraaid, vóór de merge.

Geland op main in 597353b59, via PR #2401. ZAP/DAST is niet gedraaid: ZAP is niet geïnstalleerd. Geheimen-scan en SAST zijn lokaal wel gedraaid, vóór de merge.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#2397
No description provided.