Session-data na presentatie als losse .md bewaren en deck schoon houden #1235
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
release-blocker
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#1235
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Situatie
Tijdens het presenteren kan de spreker checklists invullen en tabelcellen
bewerken (live-edits). Die wijzigingen worden nu direct in het deck
teruggeschreven via
onSlideChanged(shell_actions_present.dart), en blijvenna afloop in het deck staan.
Voor een presentatie is dat vaak niet wat je wilt: de ingevulde checklist is
sessiedata (de uitkomst van deze presentatie/sessie), geen deck-bewerking.
De spreker wil die data elders veiligstellen en het deck schoon houden.
Doel
Aan het eind van de presentatie — ná het oefenoverzicht, vóór terugkeer naar de
editor — de spreker de keuze geven:
.md-bestandnaar de download-map, en de wijzigingen in het deck ongedaan maken.
(huidig gedrag).
De vraag verschijnt alleen als er daadwerkelijk session-data-edits zijn
geweest. Geen edits → geen vraag (voorkomen gaat vóór melden).
Belangrijk: session-data los van deck-bewerkingen
Dit is de kern van het issue. Tijdens het presenteren lopen twee soorten
wijzigingen door dezelfde
onSlideChanged-callback:(
presenter_table.dart, checklist-content). Dit is wat de vraag moetaanbieden.
planLiveFixinpresenter_content.dart) knipt een te volle dia in-place op of splitst hem,en roept óók
onSlideChanged(in-place) /onSlideSplit(split).De live-fix is een deck-verbetering, geen session-data, en mag nooit
worden aangeboden voor export+terugdraaien. Besloten: live-fix blijft altijd in
het deck staan. De implementatie moet dus weten wélke
onSlideChanged-callssession-data zijn en wélke deck-bewerkingen — de callback is nu niet
onderscheidbaar. Dat is het technische hart van dit issue.
Besluiten (afgetoetst)
session-data blijft in het deck en is met één ongedaan terug te draaien. De
download-optie staat ernaast.
<index> - <slugged titel>.md, bv.03 - Scope-checklist.md.Vast volgorde, herkenbaar, geen naamconflicten door de index.
playOnly(vergrendeld deck): geen vraag — er zijn toch geen edits.MarkdownService.generateSlide(bestaat al)per gewijzigde dia; schrijf via de bestaande download-route
(
downloadTextFile/FilePicker.saveFile). Geen nieuw formaat.UX-richtlijnen
titels) — de spreker moet weten wat hij gaat downloaden/terugdraaien zonder
ernaar te moeten zoeken.
Beschrijf wat de spreker krijgt: "Tijdens het presenteren heb je checklists
ingevuld en tabellen bijgewerkt op N dia's."
"In deck behouden".
l10n.d('…')→ taalbouwer.bewaart de data, terugdraaien is één undo-stap). Geen zware bevestiging nodig.
Technische aanzet
LiveEditKindoponSlideChanged, of een aparteonSessionEdit-callback voorchecklist/tabel-edits.
planLiveFixblijft de bestaandeonSlideChangedgebruiken (deck-bewerking).
presentDeckhoudt per gewijzigde bron-dia de oorspronkelijke versie bij(vóór de session-data-edit), zodat "ja" kan terugdraaien zonder de live-fix
te raken.
generateSlide→ download, daarna de diain het deck terugzetten op de oorspronkelijke versie (één undo-stap,
ge coalesceerd als nu).
Niet in dit issue
downloadDeckAsFile).