Negen toetsen op de bijsnijddialoog draaien in een stand die de app niet kan maken (enableZoom: false) #1831
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#1831
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?
Wat er misgaat
Negen van de veertien toetsen op de bijsnijddialoog draaien in een stand die de
app niet kan maken.
showImageCropDialogheeft een parameterenableZoom, enalle vijf de aanroepers in
lib/geventruemee — de volledige-dia-afbeelding,de titel- en sectieachtergrond, het bulletspaneel en de twee-afbeeldingenslots.
De hulpfunctie
open()intest/image_crop_dialog_test.dart:56heeftfalseals standaard, en negen toetsen laten die standaard staan.
Dat is geen cosmetisch verschil.
_cover(regel 149) leestwidget.enableZoom ? _size == 0 : true, en die vlag bepaalt drie dingen:welke stage er gerenderd wordt (
_stageContent, regel 383 en 426), of dezoomschuif er staat (regel 528), en hoe
_dragde overloop uitrekent. In defalse-stand is het altijd de cover-stage. In productie metimageZoom: 200is het dat niet.
De negen
Klaar geeft het ongewijzigde kader terug als er niets sleept,Annuleren geeft niets terug,Herstel zet het brandpunt terug naar het midden,zonder zoom blijft de opgegeven maat ongemoeid,een pad buiten de projectmap wordt niet getoond,Escape sluit het venster zonder iets terug te geven,Rechtsom draait de afbeelding 90° en schrijft terug,Herstel zet de rotatie terug naar het origineel,twee keer rechtsom draait 180°, niet twee keer 90°.Eén ervan spreekt de code inmiddels tegen
zonder zoom blijft de opgegeven maat ongemoeid(regel 205) verantwoordtzichzelf met:
Dat is precies het verhaal dat #1813 uit de dartdoc van
showImageCropDialogheeft weggehaald, omdat het niet klopte: het kolomslot geeft
enableZoom: truemee en
imageSizeis daarimageZoom. De doc is gecorrigeerd, de toets diehetzelfde beweerde niet.
Waarom dit telt
Een groene toets op een stand die niemand kan bereiken geeft dekking zonder
zekerheid. Draaien, Escape en Annuleren zijn waarschijnlijk onverschillig voor
enableZoom, maar dat is een aanname die nu nergens wordt getoetst — en detoetsen die het wél zou raken staan er niet.
Twee routes, en de keuze is een ontwerpkeuze
open()optruezodat detoetsen de productiestand spiegelen, en houd één bewuste
enableZoom: false-toets over die zegt wat die stand betekent. Goedkoop, en de vlag blijft
beschikbaar voor een toekomstige aanroeper die alleen wil herpositioneren.
_cover-tak, de voorwaarde op regel 528 ende vijf
enableZoom: truebij de aanroepers. Dan kan_covergewoon_size == 0worden. Kleiner oppervlak, maar het verwijdert een mogelijkheiddie niemand nu nodig heeft en die later terug moet als dat verandert.
Route 1 is het minst ingrijpend; route 2 is eerlijker over wat het venster
werkelijk kan. De vraag is of "alleen herpositioneren zonder zoom" een stand is
die we willen blijven aanbieden.
Waarom nu
Gevonden bij het nalopen van #1813. Die reparatie corrigeerde de dartdoc en
haalde het onjuiste verhaal daar weg; de toetsen bleven staan waar ze stonden.