mirror of
https://github.com/storytold/craft-libs.git
synced 2026-10-31 23:59:16 +00:00
* print, ui: a printer is shown by its name, not its CUPS queue name CUPS queue names can't hold dots or spaces, so macOS adds the printer at 192.0.2.15 as the queue `_192_0_2_15`, and the Print dialog showed that underscored name. The name the user knows is the queue's description (CUPS `printer-info`). craft-print now lists queues with `lpstat -l -p -d` (same lines, plus each queue's indented details) and keeps the first `Description:` as `Printer::description`, capped at 256 characters. Windows names are already human, so they leave it empty. craft-ui's `Printer` gains `label`; the dialog shows it, or the name when it's empty, and `shown_names` adds the queue name in brackets when two printers would show the same text. Selection and jobs still use `name`. Both structs gain a field, so apps that build them by hand add it (`..Default::default()` works for craft-ui's) when they update the pin. * print, ui: an empty first description stays first, and shown names never collide parse_lpstat tracks whether a queue has had its Description line, so an empty first one isn't replaced by a later one. shown_names checks the final texts: printers whose bracketed text another label already reads show their queue names instead.