Web 0.7: eigen logo niet te kiezen in Stijlprofielen #2640

Closed
opened 2026-10-28 22:36:25 +00:00 by brenno · 2 comments
Owner

Probleem

Een gebruiker meldt dat in OciDeck web 0.7 onder Stijlprofielen / Logo een eigen logo niet kan worden aangepast. De huidige code bevestigt dat dit pad op web is uitgeschakeld: de logokiezer en positie-/groottebediening van het presentatielogo worden verborgen via supportsLocalProjectFolders (lib/widgets/dialogs/parts/settings_dialog_colors.dart, _slideLogoChildren). Ook _pickLogo en _pickLogoDark in settings_dialog.dart stoppen op web. De aparte documentlogokiezer en _pickDocumentLogo hebben dezelfde beperking (settings_dialog_style_builder.dart). Dit is een codebevinding; de gemelde browser/build is nog niet interactief gereproduceerd.

Gewenst gedrag

Op web kan de gebruiker een eigen presentatielogo kiezen, bekijken, vervangen en verwijderen en de positie en grootte instellen. De aparte donkere variant en het documentlogo volgen dezelfde bedienbare route. Het resultaat verschijnt in preview/presentatie en reist mee in een gedeeld stijlprofiel of een .ocideck-pakket. De interface legt uit dat een nieuw gekozen logo in de browsersessie leeft totdat de gebruiker een geschikt bestand exporteert; een kale .md bewaart de afbeeldingsbytes niet.

Voorgestelde oplossing

  1. Gebruik de bytes van de bestaande webbestandskiezer in plaats van het browser-blob:-pad, valideer bestandstype en de bestaande maximale logogrootte, en sla geldige bytes op via WebAssetStore.put als mem:-pad. Laat de desktoproute met lokale paden intact. Hergebruik waar mogelijk de bestaande materialisatie bij .ocideckstyle-import (file_service_style_profile.dart) en de bestaande logorenderer.
  2. Maak de relevante logo-instellingen op web zichtbaar en bruikbaar voor presentatie, donkere variant en document. Behoud de bestaande koppeling waarbij een bewust vervangen presentatielogo de oude merkstrook loslaat.
  3. Controleer de hele levensduur van alle profielafbeeldingen: actief profiel, bewerkt/nog niet opgeslagen profiel, overige profielen, alle tabs, undo/redo en export. asset_origin.dart telt nu alleen themeProfile.logoPath voor de melding over tijdelijke assets en de web-asset-sweep; neem donkere variant, documentlogo en merkstrook mee waar relevant, zodat geen afbeelding voortijdig wordt opgeruimd of stil verloren gaat.
  4. Gebruik bestaande .ocideckstyle- en .ocideck-exportpaden om de bytes mee te nemen. Een kale Markdown-download moet vóór verlies waarschuwen en een pakket als uitweg bieden; na herladen moet een geïmporteerd pakket/stijlbestand het logo terugbrengen. Browserinstellingen alleen mogen geen duurzaamheid suggereren.

Acceptatiecriteria

  • In een webbuild kan ik een geldig afbeeldingsbestand kiezen als presentatie-, donker en afzonderlijk documentlogo; preview en relevante dia/documentweergave tonen de nieuwe afbeelding meteen. Vervangen en verwijderen werken zonder oude merkstrook.
  • Ongeldige of te grote bestanden geven een duidelijke fout en wijzigen het bestaande logo niet. Annuleren laat het profiel ongemoeid.
  • Een geëxporteerd en opnieuw geïmporteerd .ocideckstyle-bestand en een .ocideck-pakket behouden de gekozen logo's. De kale .md-route waarschuwt vóór download voor tijdelijk beeld.
  • De web-asset-sweep behoudt gebruikte logo's in profielen/tabs en tijdens undo/redo; ongebruikte afbeeldingen kunnen wel worden opgeruimd.
  • Gerichte widget- en regressietests dekken de webkiezer, de opslagwaarschuwing, pakket/stijlexport en de assetlevensduur. Test daarnaast de echte webroute in de browser; Flutter-widgettests alleen bewijzen de browserbestandskiezer niet.

Afbakening en verificatie

Geen browserpersistente opslag of serverupload toevoegen. Dit ticket betreft OciDeck 0.7.x; exacte browser, OS, buildnummer en eventuele foutmelding van de melder ontbreken nog. Verifieer die bij uitvoering, maar de verborgen webroute is zelfstandig aantoonbaar. Gerelateerde reeds gesloten issues over logo's (#1931, #1932, #2047, #2091) lossen deze webinstelling niet zichtbaar op.

## Probleem Een gebruiker meldt dat in OciDeck web 0.7 onder **Stijlprofielen / Logo** een eigen logo niet kan worden aangepast. De huidige code bevestigt dat dit pad op web is uitgeschakeld: de logokiezer en positie-/groottebediening van het presentatielogo worden verborgen via `supportsLocalProjectFolders` (`lib/widgets/dialogs/parts/settings_dialog_colors.dart`, `_slideLogoChildren`). Ook `_pickLogo` en `_pickLogoDark` in `settings_dialog.dart` stoppen op web. De aparte documentlogokiezer en `_pickDocumentLogo` hebben dezelfde beperking (`settings_dialog_style_builder.dart`). Dit is een codebevinding; de gemelde browser/build is nog niet interactief gereproduceerd. ## Gewenst gedrag Op web kan de gebruiker een eigen presentatielogo kiezen, bekijken, vervangen en verwijderen en de positie en grootte instellen. De aparte donkere variant en het documentlogo volgen dezelfde bedienbare route. Het resultaat verschijnt in preview/presentatie en reist mee in een gedeeld stijlprofiel of een `.ocideck`-pakket. De interface legt uit dat een nieuw gekozen logo in de browsersessie leeft totdat de gebruiker een geschikt bestand exporteert; een kale `.md` bewaart de afbeeldingsbytes niet. ## Voorgestelde oplossing 1. Gebruik de bytes van de bestaande webbestandskiezer in plaats van het browser-`blob:`-pad, valideer bestandstype en de bestaande maximale logogrootte, en sla geldige bytes op via `WebAssetStore.put` als `mem:`-pad. Laat de desktoproute met lokale paden intact. Hergebruik waar mogelijk de bestaande materialisatie bij `.ocideckstyle`-import (`file_service_style_profile.dart`) en de bestaande logorenderer. 2. Maak de relevante logo-instellingen op web zichtbaar en bruikbaar voor presentatie, donkere variant en document. Behoud de bestaande koppeling waarbij een bewust vervangen presentatielogo de oude merkstrook loslaat. 3. Controleer de hele levensduur van alle profielafbeeldingen: actief profiel, bewerkt/nog niet opgeslagen profiel, overige profielen, alle tabs, undo/redo en export. `asset_origin.dart` telt nu alleen `themeProfile.logoPath` voor de melding over tijdelijke assets en de web-asset-sweep; neem donkere variant, documentlogo en merkstrook mee waar relevant, zodat geen afbeelding voortijdig wordt opgeruimd of stil verloren gaat. 4. Gebruik bestaande `.ocideckstyle`- en `.ocideck`-exportpaden om de bytes mee te nemen. Een kale Markdown-download moet vóór verlies waarschuwen en een pakket als uitweg bieden; na herladen moet een geïmporteerd pakket/stijlbestand het logo terugbrengen. Browserinstellingen alleen mogen geen duurzaamheid suggereren. ## Acceptatiecriteria - In een webbuild kan ik een geldig afbeeldingsbestand kiezen als presentatie-, donker en afzonderlijk documentlogo; preview en relevante dia/documentweergave tonen de nieuwe afbeelding meteen. Vervangen en verwijderen werken zonder oude merkstrook. - Ongeldige of te grote bestanden geven een duidelijke fout en wijzigen het bestaande logo niet. Annuleren laat het profiel ongemoeid. - Een geëxporteerd en opnieuw geïmporteerd `.ocideckstyle`-bestand en een `.ocideck`-pakket behouden de gekozen logo's. De kale `.md`-route waarschuwt vóór download voor tijdelijk beeld. - De web-asset-sweep behoudt gebruikte logo's in profielen/tabs en tijdens undo/redo; ongebruikte afbeeldingen kunnen wel worden opgeruimd. - Gerichte widget- en regressietests dekken de webkiezer, de opslagwaarschuwing, pakket/stijlexport en de assetlevensduur. Test daarnaast de echte webroute in de browser; Flutter-widgettests alleen bewijzen de browserbestandskiezer niet. ## Afbakening en verificatie Geen browserpersistente opslag of serverupload toevoegen. Dit ticket betreft OciDeck 0.7.x; exacte browser, OS, buildnummer en eventuele foutmelding van de melder ontbreken nog. Verifieer die bij uitvoering, maar de verborgen webroute is zelfstandig aantoonbaar. Gerelateerde reeds gesloten issues over logo's (#1931, #1932, #2047, #2091) lossen deze webinstelling niet zichtbaar op.
Author
Owner

Opgepakt. Tak: fix/logo-stijl-2640. Verwachte reikwijdte: logokiezer op web (presentatie, donker, document) via mem:-bytes, asset-sweep en exportwaarschuwing.

Opgepakt. Tak: fix/logo-stijl-2640. Verwachte reikwijdte: logokiezer op web (presentatie, donker, document) via mem:-bytes, asset-sweep en exportwaarschuwing.
Author
Owner

Geland op main in 978b199646. De kiezer, het voorbeeld, vervangen en weghalen, en positie en grootte staan ook op web; de bytes blijven in deze sessie en gaan mee in een project, een .ocideckstyle of een pakket. Niet in deze ronde: de echte browserdialoog (onder flutter test is kIsWeb altijd onwaar) en blijvende opslag in de browser.

Geland op main in 978b199646c1c834b2bf348c30214ecce370898a. De kiezer, het voorbeeld, vervangen en weghalen, en positie en grootte staan ook op web; de bytes blijven in deze sessie en gaan mee in een project, een .ocideckstyle of een pakket. Niet in deze ronde: de echte browserdialoog (onder flutter test is kIsWeb altijd onwaar) en blijvende opslag in de browser.
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#2640
No description provided.