Toetsenbordbediering van de openen- en scan-dialoog (#1934) #1940
No reviewers
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!1940
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/open-dialog-keyboard-navigation-v2"
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?
Samenvatting
De bestandslijsten in de openen-dialoog en de scan-dialoog waren alleen met de muis te bedienen — Tab landde in de knoppen, pijltjes deden niets, en er was geen zichtbare focusrand. Dit voegt toetsenbordnavigatie toe die het
SlideListPanel-patroon volgt:Focusom de hele dialoog-content vangt de toetsen die het zoekveld niet zelf consumeert. Pijltjes in het zoekveld bewegen de cursor (en borrelen niet op); Enter vanuit het zoekveld en pijltjes vanaf een knop bereiken de handler.ScanLibraryDialogkreeg dezelfde behandeling, zodat de twee lijsten hetzelfde aanvoelen.Waarom deze opzet
Eerdere pogingen wikkelden alleen de
ListViewin eenFocus. Dat gaf twee problemen: Tab kwam niet betrouwbaar in de lijst, en deEnd-toets werd onderschept. EenFocusom de hele content lost beide op — toetsen die het gefocuste widget (zoekveld, knop) niet consumeert, borrelen op naar de dialoog-handler.Waarom geen bewaker
Deze wijziging raakt geen van de vijf punten die de bewaker-skil verplicht maken: niet het bestandsformaat, niet de opslag, geen afhankelijkheid, geen uitgaand verkeer of sleutel, en geen publieke belofte in interface of documentatie. Het is puur interactie in een bestaand dialoogvenster.
Testplan
make checkgroen (analyzer, conventions, volledige suite, dekkingsvloer, goldens)make check-secretsschoon (gitleaks + trufflehog)make sastschoon (semgrep, 0 findings)Generated with Devin