Standaardmappen voor documenten los van presentaties #2394

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

Wat je wilt

De standaardmappen voor documenten moeten los kunnen staan van de mappen voor presentaties. Nu deel je één bibliotheeklijst, en openen en opslaan beginnen daardoor op dezelfde plek, ongeacht of je een document of een presentatie zoekt.

Wat de code nu doet

Er is één lijst lokale mappen. AppSettings.libraries leidt die af uit de LocalConnections, en homeDirectory is simpelweg de eerste daarvan (lib/models/parts/app_settings.dart, lib/models/library_folder.dart). Die ene map is het startpunt voor:

  • het openscherm, dat presentaties én documenten in dezelfde bibliotheken scant en ze alleen achteraf filtert op soort (lib/widgets/dialogs/open_presentation_dialog.dart, OpenKindFilter in lib/widgets/dialogs/open_kind_chrome.dart);
  • opslaan-als van een presentatie, dat settings.homeDirectory meegeeft;
  • de native bestandskiezer (TabsNotifier.openFile).

FileService.saveDocumentAs hééft een initialDirectory, maar de enige aanroeper (saveDocumentWithDestination in lib/widgets/shell/document_save_actions.dart) geeft hem niet mee. Een nieuw document opent de kiezer dus zonder de bibliotheek als start.

De soort van een bestand blijft de afwezigheid van marp: true. Daar hoort deze wens niet aan te komen.

Oplossingsrichting

Houd één verbindingenlijst. Voeg daar twee optionele aanwijzers aan toe: welke bestaande lokale map de start is voor documenten, en welke voor presentaties. Een map mag voor beide dienen. Is een aanwijzer leeg, dan geldt het gedrag van nu (de eerste bibliotheek), zodat een bestaande installatie niets merkt.

Gebruik de aanwijzer van de soort die je opent of opslaat als:

  • de wortels waarmee het openscherm begint (het soortfilter blijft);
  • initialDirectory van de native kiezer;
  • initialDirectory van saveDocumentAs en van presentatie-opslaan-als.

Geen tweede opslagmodel, geen aparte projectmap, geen nieuwe schijfmarkering. De aanwijzers horen in de voorkeuren, naast de verbindingen, en reizen mee met export/import van instellingen als die dat voor bibliotheken al doet.

Bestandsformaat

Geen. Dit is alleen een startmap in de instellingen. Een .md blijft een .md.

Test

  • Twee bibliotheken, documentstart op de tweede: Opslaan-als van een nieuw document opent daar; een nieuwe presentatie opent op de presentatiestart.
  • Beide aanwijzers leeg: gedrag gelijk aan nu.
  • Het openscherm toont bij het filter Documenten niet de presentatiemap als enige wortel wanneer er een documentmap is gezet.

Kosten

Nieuwe interfaceteksten (31 talen), een regel in de gebruikershandleiding bij bibliotheken. Geen afhankelijkheid, geen formaatwijziging.

## Wat je wilt De standaardmappen voor documenten moeten los kunnen staan van de mappen voor presentaties. Nu deel je één bibliotheeklijst, en openen en opslaan beginnen daardoor op dezelfde plek, ongeacht of je een document of een presentatie zoekt. ## Wat de code nu doet Er is één lijst lokale mappen. `AppSettings.libraries` leidt die af uit de `LocalConnection`s, en `homeDirectory` is simpelweg de eerste daarvan (`lib/models/parts/app_settings.dart`, `lib/models/library_folder.dart`). Die ene map is het startpunt voor: - het openscherm, dat presentaties én documenten in dezelfde bibliotheken scant en ze alleen achteraf filtert op soort (`lib/widgets/dialogs/open_presentation_dialog.dart`, `OpenKindFilter` in `lib/widgets/dialogs/open_kind_chrome.dart`); - opslaan-als van een presentatie, dat `settings.homeDirectory` meegeeft; - de native bestandskiezer (`TabsNotifier.openFile`). `FileService.saveDocumentAs` hééft een `initialDirectory`, maar de enige aanroeper (`saveDocumentWithDestination` in `lib/widgets/shell/document_save_actions.dart`) geeft hem niet mee. Een nieuw document opent de kiezer dus zonder de bibliotheek als start. De soort van een bestand blijft de afwezigheid van `marp: true`. Daar hoort deze wens niet aan te komen. ## Oplossingsrichting Houd één verbindingenlijst. Voeg daar twee optionele aanwijzers aan toe: welke bestaande lokale map de start is voor documenten, en welke voor presentaties. Een map mag voor beide dienen. Is een aanwijzer leeg, dan geldt het gedrag van nu (de eerste bibliotheek), zodat een bestaande installatie niets merkt. Gebruik de aanwijzer van de soort die je opent of opslaat als: - de wortels waarmee het openscherm begint (het soortfilter blijft); - `initialDirectory` van de native kiezer; - `initialDirectory` van `saveDocumentAs` en van presentatie-opslaan-als. Geen tweede opslagmodel, geen aparte projectmap, geen nieuwe schijfmarkering. De aanwijzers horen in de voorkeuren, naast de verbindingen, en reizen mee met export/import van instellingen als die dat voor bibliotheken al doet. ## Bestandsformaat Geen. Dit is alleen een startmap in de instellingen. Een `.md` blijft een `.md`. ## Test - Twee bibliotheken, documentstart op de tweede: Opslaan-als van een nieuw document opent daar; een nieuwe presentatie opent op de presentatiestart. - Beide aanwijzers leeg: gedrag gelijk aan nu. - Het openscherm toont bij het filter Documenten niet de presentatiemap als enige wortel wanneer er een documentmap is gezet. ## Kosten Nieuwe interfaceteksten (31 talen), een regel in de gebruikershandleiding bij bibliotheken. Geen afhankelijkheid, geen formaatwijziging.
Author
Owner

Opgepakt. Tak: fix/document-werkvloer. Verwachte reikwijdte: lib/models/parts/app_settings.dart, lib/state/settings_provider.dart, lib/widgets/dialogs/open_presentation_dialog.dart, lib/widgets/shell/document_save_actions.dart, lib/widgets/shell/shell_actions_connections.dart.

Opgepakt. Tak: fix/document-werkvloer. Verwachte reikwijdte: lib/models/parts/app_settings.dart, lib/state/settings_provider.dart, lib/widgets/dialogs/open_presentation_dialog.dart, lib/widgets/shell/document_save_actions.dart, lib/widgets/shell/shell_actions_connections.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#2394
No description provided.