QuickLook-Next 5.4.0
Plugin manager: a search box
25 plugins are past the point where scrolling is a search interface. The box sits under the title,
the caret is already in it when the panel opens, and typing filters name and description as you
go:
- with matches, the status line reads "3 of 25 shown.";
- with none, "No plugin matches “xxx”.";
- Esc clears the filter first, closes the panel second;
- Tab cycles inside the panel instead of walking into the rest of the app.
Fixed: the top bar blinked while the pointer rested on it
Two mechanisms were fighting: the bar's show animation started a "hide after 1 s" when it
finished, while a 100 ms poll re-showed the bar the moment the pointer was inside the top zone —
so with the pointer parked on the bar it faded out and back in forever. It had always done that; it
only became visible now because the scrim added in 5.3.0 makes the fade obvious.
Visibility is one rule again: the bar is shown while the pointer is in the top zone and hidden
once it leaves (with the ~1 s grace it always had, so brushing past it does not flash). Measured
from the diagnostic log:
| scenario | shows | hides |
|---|---|---|
| pointer parked on the bar for 6 s | 1 | 0 |
| pointer moved away for 3 s | 1 | 1 |
Before the fix it re-showed once per second. The decision lives in Helpers/TopBarVisibility with a
unit test behind it.
Accessibility: keyboard focus, reduced motion, screen-reader names
- Visible keyboard focus. The panel buttons had no focus state at all (the custom templates ate
the system focus rectangle); they now draw an accent outline when focused. - Reduced motion is honoured. The caption bar fade, the first content fade and the window show
transition all check Windows' animation setting (Settings → Accessibility → Visual effects). Turn
it off and they appear instantly; the app's ownShowWindowTransitionoption still applies on top
(both have to allow it). The busy spinner is deliberately untouched — that is information, not
decoration. - Screen-reader names. The preview caption is icon-only, so every button carries an
AutomationNametaken from its tooltip; the panel buttons get one from their label (a custom
template hides the content text from assistive tech), and the plugin manager's uninstall button
names the plugin it removes.
Also: one button template instead of four
The update prompt, the download panel, data & cache and the OCR panel each carried a copy of the
same button template (20 lines × 4) — which is exactly how they ended up with three hover
treatments and no focus state. They now share Helpers/PanelStyles (hover, press, focus ring and
the opacity helper).
Verification
- Unit tests 90/90 (three new: the animation-switch combination, the top-bar visibility rule,
and a wiring check). - Search measured: typing
markleavesMarkdownViewerwith "1 of 25 shown."; Esc restores the
full list. - Focus ring measured: two Tabs land on the close button with an accent outline.
- Packaged build ran image and Markdown previews with an empty log; in-package version 5.4.0.
Upgrading
Version 5.4.0. Functional behaviour is the same as 5.3.0 (low memory mode, OCR and the preview
sizing logic are untouched); this release is plugin search, accessibility, and the top-bar flicker
fix. Automatic update installs straight over the top.