The OCR panel overflowed its container on long recognized text; it now
clips, caps at 40% of the preview height, and scrolls. Ctrl+Shift+C copies
an entry's text content (OCR text or QR payload for images) as plain text,
and the QR/OCR panels get Copy chips.
PreviewPane set bodyText from onResultChanged, reading derived/entry that
are themselves bindings on result. Depending on evaluation order the
handler saw the previous entry, leaving a stale text body visible under
the image column. Derive bodyText declaratively and gate the text body on
the textual types.