fix(open): leid een via "Openen" gekozen presentatie naar de import (#1175) #1178

Merged
brenno merged 4 commits from claude/open-presentation-rescue-1175 into main 2026-08-03 18:25:45 +00:00
Owner

Sluit een deel van #1175: wie via Openen… een presentatie kiest, liep dood op "dit bestand is geen leesbare tekst, OciDeck opent Markdown" — zonder enige aanwijzing dat er een importfunctie bestaat. Precies wat de indiener (kwoot) overkwam met een .odp.

Wat er verandert

"Openen…" is voor Markdown/.ocideck. Koos je daar een .pptx/.odp/.key, dan herkent de open-foutmelding dat nu en biedt een uitweg in plaats van een doodlopende straat met tekst:

  • Module Importeren aan → de melding draagt een knop Importeren die de conversie meteen op het net gekozen bestand start. Geen menu zoeken, geen bestand opnieuw kiezen (web: de bytes zijn er al; desktop: gelezen uit het pad).
  • Module uit → de melding benoemt dat het een presentatie is en wijst naar Instellingen om de module aan te zetten — hij zet hem niet stil aan.

Import blijft bewust een aparte, standaard-uitgeschakelde module en een gemarkeerd verliesgevend proces (#772); deze wijziging maakt hem alleen vindbaar op het moment dat je hem duidelijk nodig hebt.

Bewust buiten scope (volgt als tweede PR onder #1175)

Slepen-en-laten-vallen van een presentatie op het venster — de enige overgebleven ingang die nog doodloopt. Opgepakt in een aparte PR.

Aanpak

  • Eén gedeelde extensielijst (presentationImportExtensions) voor de bestandskiezer én de herkenning (isImportablePresentationName).
  • presentationOpenRescue (pure, getest) beslist tekst + actie; presentationOpenRescueSnackBar bouwt de melding. Beide in de import-library, zodat de tests ze afdekken.
  • _reportOpenFailure in shell_actions.dart krijgt de uitweg; shell_actions.dart bleef daarbij onder het 1000-regelplafond door de SnackBar-bouw naar de import-library te verhuizen.

Waarborgen

  • Regressietest test/import/presentation_open_rescue_test.dart (7 tests): herkenning, de twee meldingsvarianten, en de SnackBar-actie.
  • Twee nieuwe l10n.d(...)-strings vertaald naar alle 31 talen.
  • CHANGELOG, USER_GUIDE en SOURCE_MAP bijgewerkt.
  • Volledige make check groen in een geïsoleerde worktree (formatting, analyse, conventies, privacy-projectie, methodelengte, dode code, hardcoded tekst, taalcheck, volledige testsuite, dekkingsvloeren — 87,5%).

🤖 Generated with Claude Code

Sluit een deel van #1175: wie via **Openen…** een presentatie kiest, liep dood op "dit bestand is geen leesbare tekst, OciDeck opent Markdown" — zonder enige aanwijzing dat er een importfunctie bestaat. Precies wat de indiener (kwoot) overkwam met een `.odp`. ## Wat er verandert "Openen…" is voor Markdown/`.ocideck`. Koos je daar een `.pptx`/`.odp`/`.key`, dan herkent de open-foutmelding dat nu en biedt een **uitweg** in plaats van een doodlopende straat met tekst: - **Module Importeren aan** → de melding draagt een knop **Importeren** die de conversie meteen op het net gekozen bestand start. Geen menu zoeken, geen bestand opnieuw kiezen (web: de bytes zijn er al; desktop: gelezen uit het pad). - **Module uit** → de melding benoemt dat het een presentatie is en wijst naar **Instellingen** om de module aan te zetten — hij zet hem niet stil aan. Import blijft bewust een aparte, standaard-uitgeschakelde module en een gemarkeerd verliesgevend proces (#772); deze wijziging maakt hem alleen **vindbaar** op het moment dat je hem duidelijk nodig hebt. ## Bewust buiten scope (volgt als tweede PR onder #1175) Slepen-en-laten-vallen van een presentatie op het venster — de enige overgebleven ingang die nog doodloopt. Opgepakt in een aparte PR. ## Aanpak - Eén gedeelde extensielijst (`presentationImportExtensions`) voor de bestandskiezer én de herkenning (`isImportablePresentationName`). - `presentationOpenRescue` (pure, getest) beslist tekst + actie; `presentationOpenRescueSnackBar` bouwt de melding. Beide in de import-library, zodat de tests ze afdekken. - `_reportOpenFailure` in `shell_actions.dart` krijgt de uitweg; `shell_actions.dart` bleef daarbij onder het 1000-regelplafond door de SnackBar-bouw naar de import-library te verhuizen. ## Waarborgen - Regressietest `test/import/presentation_open_rescue_test.dart` (7 tests): herkenning, de twee meldingsvarianten, en de SnackBar-actie. - Twee nieuwe `l10n.d(...)`-strings vertaald naar alle 31 talen. - CHANGELOG, USER_GUIDE en SOURCE_MAP bijgewerkt. - Volledige `make check` groen in een geïsoleerde worktree (formatting, analyse, conventies, privacy-projectie, methodelengte, dode code, hardcoded tekst, taalcheck, volledige testsuite, dekkingsvloeren — 87,5%). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
"Openen…" is voor Markdown/.ocideck; wie daar een .pptx/.odp/.key koos liep
dood op "dit bestand is geen leesbare tekst, OciDeck opent Markdown" — zonder
enige aanwijzing dat er een importfunctie bestaat.

De open-foutmelding herkent nu de presentatie (isImportablePresentationName)
en biedt een uitweg (presentationOpenRescue): met de module Importeren aan een
knop "Importeren" die de conversie meteen op het gekozen bestand start (op web
met de bytes die er al zijn, op desktop uit het pad — geen tweede keuze), met
de module uit een verwijzing naar Instellingen in plaats van hem stil aan te
zetten. Import blijft bewust een aparte, standaard-uit module en een
verliesgevend proces; dit maakt hem alleen vindbaar op het moment dat het moet.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
CHANGELOG, USER_GUIDE en SOURCE_MAP beschrijven de nieuwe uitweg: wie via
"Openen…" een presentatie kiest, wordt naar de import geleid.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
refactor(open): houd shell_actions onder het 1000-regelplafond (#1175)
All checks were successful
scans / scans (pull_request) Successful in 1m31s
static-gate / static-gate (pull_request) Successful in 4m15s
57cba963e6
De uitweg-snackbar verhuist naar presentationOpenRescueSnackBar in de
import-library (waar hij ook getest wordt); de desktop-import wordt een inline
closure. shell_actions.dart zakt daarmee weer onder de file-size ratchet.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
brenno merged commit 8d528526fc into main 2026-08-03 18:25:45 +00:00
brenno deleted branch claude/open-presentation-rescue-1175 2026-08-03 18:25:46 +00:00
Sign in to join this conversation.
No description provided.