Deck-opslag keert gelukt terug en sluiten wist daarna nieuwer werk #2721
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#2721
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?
Wat er mis is
Wie tijdens een lopende lokale deck-opslag doorwerkt en daarna Opslaan en sluiten of afsluiten-met-opslaan kiest, verliest precies die tussentijdse bewerking. De eerste schrijfactie keert
trueterug. Het nieuwere deck blijft alleen in het geheugen. Sluiten wist de herstelkopie.Bewijs
lib/state/deck_provider.dart_saveToPath: als de undo-stapel tijdens het schrijven groeide, keert de methodetrueterug en laatisDirtystaan. Het commentaar zegt dat schoon melden het werk zou wissen; de terugkeerwaardetruedoet dat alsnog via de aanroeper.save()zélf nog een keer is aangeroepen (_saveQueued), niet door het typen.lib/widgets/shell/shell_actions.dartsluit bijtrue.lib/widgets/app_shell.dartdoet hetzelfde bij afsluiten en wist daarna de herstelkopieën.test/save_hardening_test.dartbewijst de herhaling alleen zolang de test blijft pompen. Er is geen test die sluiten koppelt aan dietrue.Voorstel
save()pastruelaten teruggeven als het deck na afloop schoon op schijf staat. Opslaan en sluiten en afsluiten wachten totisDirtyfalse is, en wissen de herstelkopie pas daarna.Regressietest: schrijfactie blokkeren, tussendoor een dia toevoegen,
save()laten terugkeren, en asserten dat een aanroeper die bijtruede herstelkopie wist het nieuwe deck nog niet kwijt is.Het bestandsformaat verandert niet.