[#1801] Het scherm Afbeeldingsverwijzingen is niet op het werk ingedeeld #1859
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#1859
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?
Context
Het scherm is
CalloutEditorDialog(lib/widgets/editors/callout_editor.dart), te openen met de knop Afbeeldingsverwijzingen onder de afbeelding in de editor van een Bullets + Afbeelding-dia. Het is het auteursscherm uit #1801 /docs/design/IMAGE_CALLOUTS.md§6.De melding: de opmaak is niet op gebruik samengesteld — in het bijzonder de plaatsing van Pins / Gebieden / Pijlen en van Alles tonen / Stap-voor-stap.
Beoordeeld op
origin/main87e9edc4, uit de code. Niet met een draaiende app: #1847 en #1848 hebben de app-toets in handen en die draait serieel.Wat er nu staat
Bevindingen — indeling
showEmbedEditorDialogklemt wél opmin(760, breedte − 96). Op 1366 × 768, in een klein venster of bij tekstvergroting loopt dit venster over._buildImageWithMarkers). Je ziet de andere spelden niet terwijl je plaatst, dus overlap merk je pas op de dia.Focus,ShortcutsofSemantics; plaatsen en verslepen gaan alleen viaGestureDetector. Toetsen tegen wat #1844 heeft afgedekt voordat hier iets aan verandert.Bevindingen — bewoording
Los van de opmaak: twee gedragsfouten in hetzelfde scherm
build()een nieuweTextEditingControllermet de selectie aan het eind. Elke toetsaanslag gaat viasetState→ nieuwe controller → cursor achteraan. Midden in een zin een woord verbeteren kan dus niet; de controller wordt ook nooitdisposed.(A)in de regel, zonder waarschuwing. §6 vraagt: "Delete removes the selected target and Undo restores it."Voorstel
showEmbedEditorDialogdat doet.Acceptatie
Verwant
#1801 (de functie zelf), #1848 (nieuwkomer-test — een deel van deze bevindingen hoort daar ook thuis), #1854 (uitsnede in de plaatsingsstage), #1853, #1856. Geen overlap met #1855 en #1857 (export).
Ontwerpvoorstel — het venster verdwijnt
Besluit van de beheerder: niet het venster herordenen maar de mooiste oplossing nemen. Die is: aanwijzen op de dia zelf, in het voorbeeldpaneel, zonder dialoogvenster. Hieronder het ontwerp. Er is nog geen regel code aan veranderd.
Dit wijkt af van
IMAGE_CALLOUTS.md§6, dat een aparte stage voorschrijft ("opening a stage that shows the real layout and crop"). Wordt dit gebouwd, dan gaat §6 mee — het ontwerpdocument is de bron, dus het mag niet stilzwijgend achterblijven.Waarom die knoppen in de weg staan (diagnose)
onPanStartkeert terug), in Gebieden doet klikken niets (onTapUpkeert terug). Daardoor moet hij wel in het werkvlak staan. Maar §3.1 zegt dat een dia punten en gebieden in élke stand mag mengen — de vorm is een tekenstijl, geen belofte over de geometrie. Die koppeling is zelfgemaakt.Stappen van "ik wil deze regel aanwijzen" tot klaar. Nu: venster openen → regel zoeken → Toevoegen → er verschijnt een speld in het midden die je niet hebt geplaatst → op de goede plek klikken → beschrijving typen. Vijf, met een tussenstand die niet klopt. In dit ontwerp: aanwijs-stand aan → regel kiezen → klikken → beschrijving typen. Vier, en niets staat er verkeerd tussenin.
De reis
Buiten de aanwijs-stand draagt elke regel in de editor zijn letter als klein rondje vooraan:
(A). Zo zie je zonder iets te openen welke regels iets aanwijzen — en welke niet.Aanzetten. De knop onder de afbeelding heet
Aanwijzen op de afbeeldingen is een schakelaar, geen venster. Ook bereikbaar via het commandopalet.In de aanwijs-stand wordt de dia in het voorbeeldpaneel het werkvlak — de dia zoals hij is, met alle markeringen erop, de gekozen opgelicht en de rest gedimd. De slidestrook klapt in tot smalle duimnagels zodat de dia zo groot mogelijk wordt; het editorpaneel blijft staan, want daar staan de regels. Boven de dia één smalle balk:
Aanwijzen. Klikken plaatst een punt, slepen tekent een gebied. Het gebaar zegt het al, dus de vormknop bepaalt niet langer wat je gebaar doet — hij bepaalt alleen hoe de dia het tekent, en dat zie je meteen omdat je op de dia werkt. Bij het plaatsen krijgt de regel zijn letter, in de lijst én in de tekst van de bullet. Geen aparte Toevoegen-knop, dus ook geen verwijzing die al bestaat voordat je hem hebt geplaatst.
Tweerichtingsverkeer. Klik op een markering op de dia en de bijbehorende regel wordt gekozen. Dat kan vandaag helemaal niet, en het is de eigenlijke winst van op de dia werken.
Beschrijven. Het veld staat ónder de gekozen regel in het editorpaneel, waar de verwijzing bij hoort:
De teller verschijnt pas vanaf 150 van de 200 tekens;
0/200bij een leeg veld is ruis.Nog een plek. Knop bij de gekozen regel:
Nog een plek aanwijzen. Die plaatst niets, hij scherpt de volgende klik: de aanwijzer wordt een kruis en de balk leestKlik waar (A) óók naar wijst — Esc stopt. Nooit geometrie neerzetten die de auteur niet heeft aangewezen; dat is §2.4 doorgetrokken naar de editor.Weghalen. Markering aanwijzen en
Delete, of het kruisje erop. Gaat de laatste plek weg, dan verdwijnt de verwijzing en de(A)uit de regel — met een melding onderin, niet met een dialoog:Verwijzing (B) verwijderd. [Ongedaan maken]. De dekprovider heeft een undo-stapel, dus dit valt onder "rem alleen op het onomkeerbare". Een bevestigingsvenster leert mensen hier alleen wegklikken.Klaar of
Escverlaat de stand. Er valt niets te annuleren: elke handeling stond al op de dia.Wat er verdwijnt
Alles tonen / Stap-voor-stapgaat naar de regels. Dat is geen aanwijs-instelling maar een presenteer-instelling over de regels (§7: elke klik onthult één regel plús zijn markeringen). Hij hoort bij de schakelaars die er al staan —Doornummeren vanaf vorige slide,Voortgangsgrafiek tonen— alsRegels één voor één tonen tijdens presenteren, en verschijnt pas zodra de dia verwijzingen heeft:PresentationStepPlandoet er tot dan niets mee (callouts.isNotEmpty).Toevoegen,Target toevoegen,Target verwijderen, de teller1 target(s)en de zinSelecteer een bullet om een reference te plaatsen— allemaal vervangen door direct aanwijzen en één hintregel.Woorden
Drie namen voor twee dingen worden er twee: verwijzing (de letter bij een regel), plek (waar hij naar wijst, punt of gebied), regel (de bullet). "Reference", "target" en "bullet" blijven de woorden van het ontwerpdocument en van de code; ze horen niet op het scherm. Vormen enkelvoud en Nederlands: Speld · Gebied · Pijl. Standaarden ongewijzigd — speld en alles tegelijk — want dat is de stand die het minst belooft.
Toetsenbord
§6 eist een toetsenbordpad voor elke functie; in
callout_editor.dartstaat geen enkeleFocusofSemantics. In dit ontwerp:Tabloopt door de regels;Enterscherpt de plaatsing, een tweedeEnterzet de plek in het midden van de dia,Escstopt.Shift5 %. Bij een gebied verplaatstAlt+pijl de rand in plaats van het geheel.Deletehaalt de aangewezen plek weg.Verwijzing A, plek 1 van 2, punt op 62 procent van links, 28 procent van boven.De randen die nu stil zijn
Hele afbeelding tonenlaat de volledige foto zien met het dia-kader erin getekend. Wat erbuiten valt is gedimd zichtbaar plus een zin:(C) valt buiten de uitsnede en is op de dia niet te zien.Dat raakt #1853 en #1854 in het ontwerp in plaats van in de reparatie — #1854 kan zelfs helemaal vervallen, want er is geen tweede uitsnede meer.Nog 2 van 26.Op 26 zegt de balk waaróm er niets meer bij kan, in plaats van een knop die grijs wordt.Wat het kost
De aanwijs-stand raakt het voorbeeldpaneel en het editorpaneel, plus een standvlag die de presentatie-oppervlakken moeten negeren.
callout_overlay.dartblijft een tekenaar; de bediening komt als een laag erbóven, en alleen in de editor. Geen nieuwe velden opSlide, dus geen nieuwe collab-op en geen formaatwijziging — alles wat dit ontwerp bewaart, bestaat al. Wel: ~12 nieuwel10n.d('…')× 31 vertalingen, en §6 vanIMAGE_CALLOUTS.mdmoet herschreven worden.Wat dit níet oplost
De cursorsprong in het beschrijvingsveld (bevinding 11) en "verwijder altijd de laatste" (bevinding 12) zijn gedragsfouten, geen indelingsfouten. Ze blijven ook in dit ontwerp bestaan tot ze apart gerepareerd worden — het beschrijvingsveld verhuist immers alleen van plek.
Klikbare mockup
De aanwijs-stand als werkende tekening: https://claude.ai/code/artifact/0956aa21-ad46-4c71-a304-5bab44ac1215
(De pagina staat op de account van de beheerder en is privé tot hij via het deelmenu gedeeld wordt.)
Wat er te doen is, en waar het ontwerp op te toetsen valt:
Tabnaar een markering, pijltjes verplaatsen (metShiftgrover),Deleteverwijdert,Escverlaat de stand. Elke markering heeft een naam voor de schermlezer: Verwijzing A, plek 1 van 2, punt op 66 procent van links, 24 procent van boven.Rechts in het paneel staat ook waar
Regels één voor één tonen tijdens presenterennaartoe verhuist, en de knop die de stand aan- en uitzet.Wat de mockup niet is: de markeringen zijn met SVG nagebouwd, niet met
callout_overlay.dart. De twee-tonige rand en de matrix van §3.1 zijn nagemaakt om het ontwerp te kunnen beoordelen; het echte tekenwerk blijft van de overlay. De maten van het venster, de kolommen en de dia zijn indicatief.Bevinding 11 en 12 zijn losgetrokken: het zijn gedragsfouten, geen indelingsfouten, en ze blijven ook in het nieuwe ontwerp staan.
build())Dit issue houdt daarmee alleen nog de indeling en de bewoording van het scherm.
Kruisverwijzing: #1860 beschrijft hetzelfde scherm vanuit een nieuwkomer die het draaiend probeerde. Twee dingen die jouw code-lezing bevestigen, met wat het in de praktijk oplevert:
Daarbij één ding dat je uit de code niet kon zien: "Toevoegen" plaatst de markering zelf al, op 0.500/0.500, zonder te zeggen dat je hem kunt verplaatsen. Twee niet-verplaatste markeringen stapelen exact op elkaar.
Los daarvan: de fout waardoor de letter van een eerdere verwijzing verdween — de dialoog rekende bij elke bewerking vanaf de dia zoals die was bij het openen — is gerepareerd. Dat raakte je bevinding over de koppeling regel-verwijzing indirect; het scherm is nu tenminste consistent met zichzelf.