Vijf dialogen breedte-aanpasbaar waar lange paden afgekapt werden (#1217) #1218

Merged
brenno merged 8 commits from feat/1217-resizable-dialogs into main 2026-08-04 15:16:51 +00:00
Owner

Summary

Voortbouwend op #1211 (de save-dialoog). Vijf dialogen waar lange bestandspaden met TextOverflow.ellipsis afgekapt werden, zijn nu breedte-aanpasbaar via een gedeelde ResizableDialogBox-helper:

  • S3-browser (s3_browser_dialog.dart) — breadcrumb /pad/naar/bucket was afgekapt zonder tooltip. Nu resizable + Tooltip met volledige pad.
  • WebDAV-browser (webdav_browser_dialog.dart) — idem.
  • Presentaties zoeken (scan_library_dialog.dart) — lijst met paden, vaste breedte 760. Nu resizable.
  • Dubbele presentaties opruimen (duplicate_cleanup_dialog.dart) — lijst met paden, vaste breedte 640. Nu resizable.
  • Presentatie openen (open_presentation_dialog.dart) — lijst met paden, vaste breedte 760. Nu resizable.

Ontwerpkeuzes

  • softWrap bewust niet toegepast op deze 5 dialogen. Een breadcrumb die wrapt breekt de navigatie-header; in een lijst maakt softWrap elke regel 2-3× zo hoog en de lijst onbruikbaar lang. Resizable is hier de juiste oplossing.
  • Gedeelde helper (lib/widgets/resizable_dialog_box.dart): ResizableDialogBox met een builder-patroon dat de DialogResizeHandle levert. De aanroeler plaatst de handle waar het past (footer, laatste regel). De save-dialoog uit #1211 wordt in deze PR niet gemigreerd (werkt al); eventueel later.
  • Kerninhoud blijft zonder muis volledig bedienbaar; de handgreep is een extra voor pointer-gebruikers. De S3/WebDAV-breadcrumb kreeg ook een Tooltip als niet-pointer uitweg.
  • Nieuwe tooltip-string "Breedte aanpassen" in alle 31 talen via make add-l10n (zelfde string als #1211; bij merge lossen we het l10n-ankerpunt op met merge=union).

Let op: pre-existing falen (niet door deze PR)

make check staat rood op één pre-existing test: test/privacy_false_positive_corpus_test.dart vindt contact.phone in docs/USER_GUIDE.nl.md (sinds #1181). Getrackt in #1215. Alle overige 8373 tests zijn groen, inclusief de 5 nieuwe tests voor de helper.

Test plan

  • flutter test test/resizable_dialog_box_test.dart — 5 tests groen (startbreedte, verbreden/vernauwen, clamp op minWidth, clamp op maxWidth, gelokaliseerde tooltip).
  • Bestaande tests voor duplicate_cleanup_dialog en scan_library groen (geen regressie).
  • make l10n-check groen.
  • flutter analyze schoon (--fatal-infos).
  • dart format schoon.
  • source_map_coverage_test groen (nieuwe file toegevoegd aan docs/SOURCE_MAP.md).
  • Visuele beeldkeuring: S3/WebDAV-browser en de drie lijst-dialogen openen met lange paden — handle verbreedt, breadcrumb-tooltip toont volledige pad. (Aanbevolen handmatig te keuren.)

Generated with Devin

## Summary Voortbouwend op #1211 (de save-dialoog). Vijf dialogen waar lange bestandspaden met `TextOverflow.ellipsis` afgekapt werden, zijn nu breedte-aanpasbaar via een gedeelde `ResizableDialogBox`-helper: - **S3-browser** (`s3_browser_dialog.dart`) — breadcrumb `/pad/naar/bucket` was afgekapt zonder tooltip. Nu resizable + `Tooltip` met volledige pad. - **WebDAV-browser** (`webdav_browser_dialog.dart`) — idem. - **Presentaties zoeken** (`scan_library_dialog.dart`) — lijst met paden, vaste breedte 760. Nu resizable. - **Dubbele presentaties opruimen** (`duplicate_cleanup_dialog.dart`) — lijst met paden, vaste breedte 640. Nu resizable. - **Presentatie openen** (`open_presentation_dialog.dart`) — lijst met paden, vaste breedte 760. Nu resizable. ## Ontwerpkeuzes - **softWrap bewust niet toegepast** op deze 5 dialogen. Een breadcrumb die wrapt breekt de navigatie-header; in een lijst maakt softWrap elke regel 2-3× zo hoog en de lijst onbruikbaar lang. Resizable is hier de juiste oplossing. - **Gedeelde helper** (`lib/widgets/resizable_dialog_box.dart`): `ResizableDialogBox` met een builder-patroon dat de `DialogResizeHandle` levert. De aanroeler plaatst de handle waar het past (footer, laatste regel). De save-dialoog uit #1211 wordt in deze PR niet gemigreerd (werkt al); eventueel later. - **Kerninhoud blijft zonder muis volledig bedienbaar**; de handgreep is een extra voor pointer-gebruikers. De S3/WebDAV-breadcrumb kreeg ook een `Tooltip` als niet-pointer uitweg. - Nieuwe tooltip-string "Breedte aanpassen" in alle 31 talen via `make add-l10n` (zelfde string als #1211; bij merge lossen we het l10n-ankerpunt op met `merge=union`). ## Let op: pre-existing falen (niet door deze PR) `make check` staat rood op één pre-existing test: `test/privacy_false_positive_corpus_test.dart` vindt `contact.phone` in `docs/USER_GUIDE.nl.md` (sinds #1181). Getrackt in #1215. Alle overige 8373 tests zijn groen, inclusief de 5 nieuwe tests voor de helper. ## Test plan - [x] `flutter test test/resizable_dialog_box_test.dart` — 5 tests groen (startbreedte, verbreden/vernauwen, clamp op minWidth, clamp op maxWidth, gelokaliseerde tooltip). - [x] Bestaande tests voor `duplicate_cleanup_dialog` en `scan_library` groen (geen regressie). - [x] `make l10n-check` groen. - [x] `flutter analyze` schoon (`--fatal-infos`). - [x] `dart format` schoon. - [x] `source_map_coverage_test` groen (nieuwe file toegevoegd aan `docs/SOURCE_MAP.md`). - [ ] Visuele beeldkeuring: S3/WebDAV-browser en de drie lijst-dialogen openen met lange paden — handle verbreedt, breadcrumb-tooltip toont volledige pad. (Aanbevolen handmatig te keuren.) Generated with [Devin](https://devin.ai)
Lange bestandspaden in dialogen werden afgekapt met "…" omdat de breedte
vast stond. Deze helper vervangt de vaste SizedBox(width, height) door een
stateful versie met een sleephandgreep, zodat de gebruiker de dialoog
breder kan slepen. De aanroeler plaatst de handle via een builder waar
het past. Tooltip "Breedte aanpassen" in alle 31 talen via make add-l10n.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
De breadcrumb (/pad/naar/bucket) werd afgekapt met "…" en had geen tooltip.
Nu is de dialoog breedte-aanpasbaar via ResizableDialogBox, en de breadcrumb
toont het volledige pad in een Tooltip. softWrap is hier bewust niet
toegepast: een breadcrumb die wrapt breekt de navigatie-header.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Presentaties zoeken, dubbele presentaties opruimen, en presentatie openen
hadden een vaste breedte (760/640/760). Nu kan de gebruiker de dialoog
breder slepen zodat lange paden op één regel passen. softWrap is hier
bewust niet toegepast: in een lijst maakt het elke regel 2-3x zo hoog.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Vijf tests: startbreedte, slepen verbreedt/vernauwt, clamp op minWidth,
clamp op maxWidth, en gelokaliseerde tooltip.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
De lokale functie binnen main() werd niet herkend door de analyzer;
boxOf is nu een top-level functie.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
SOURCE_MAP: resizable_dialog_box.dart toegevoegd (#1217)
All checks were successful
scans / scans (pull_request) Successful in 1m31s
static-gate / static-gate (pull_request) Successful in 3m33s
b648ec7910
Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
brenno force-pushed feat/1217-resizable-dialogs from b648ec7910
All checks were successful
scans / scans (pull_request) Successful in 1m31s
static-gate / static-gate (pull_request) Successful in 3m33s
to 46716bd114
All checks were successful
scans / scans (pull_request) Successful in 1m53s
static-gate / static-gate (pull_request) Successful in 4m11s
2026-08-04 15:16:42 +00:00
Compare
brenno merged commit c071321a02 into main 2026-08-04 15:16:51 +00:00
Sign in to join this conversation.
No description provided.