La page de test est un template de banniere cups-filters (#PDF-BANNER), pas du PostScript: envoi en application/octet-stream pour laisser CUPS detecter le format. Le sanitiseur supprime crochets/parentheses et compacte les underscores (series [32C998] -> series_32C998). Les actions des details passent en flex_row pour eviter le debordement des boutons; bouton de confirmation du dialogue raccourci.
Nouvelle page Imprimantes: liste et etat des files CUPS, ajout (decouverte lpinfo, pilote driverless IPP Everywhere par defaut), suppression, imprimante par defaut, suspension/reprise, page de test et file des travaux avec annulation. Lectures via cups_rs (FFI libcups serialisee), mutations via lpadmin/cupsenable. i18n en/fr, sous-commande 'cosmic-settings printers'.
Reprend le contenu de 52ce463 (22 avril), present sur local/yoda-main
mais jamais reporte sur local/yoda-main-1.3.0. La branche 1.3.0 a ete
coupee sans ce commit, si bien que le paquet construit le 31 juillet ne
contenait plus l'option : `strings /usr/bin/cosmic-settings` ne trouvait
aucune occurrence de position-start.
Retablit dans Bureau > Gestion des fenetres > Controles des fenetres le
bouton « Placer les boutons a gauche (style macOS) », le variant de
message WindowControlsPositionStart qui ecrit Start ou End dans le
CosmicTk (com.system76.CosmicTk), et la cle fluent
window-controls.position-start en en et fr.
Le Cargo.toml de 52ce463 n'est volontairement pas repris : son override
[patch] vers libcosmic est obsolete depuis a44a022, qui resout la
dependance via libcosmic-yoda sous le nom externe `cosmic`. L'API cote
libcosmic est intacte (WindowControlsPosition exporte par widget,
config::window_controls_position()), cargo check passe.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
So openvpn import called to_file_path().unwrap(), which panics when the
file picker hands back a non-file:// url (sandboxed portal, etc). the
wireguard branch right above already handles this gracefully, so do the
same: return a Message::Error with a new OpenVpnConfigPath kind instead
of crashing.
Fixes#1896
- [x] I have disclosed use of any AI generated code in my commit
messages.
- If you are using an LLM, and do not fully understand the changes it is
making to the code base, do not create a PR.
- In our experience, AI generated code often results in overly complex
code that lacks enough context for a proper fix or feature inclusion.
This results in considerably longer code reviews. Due to this, AI
authored or partially authored PRs may be closed without comment.
- [x] I understand these changes in full and will be able to respond to
review comments.
- [x] My change is accurately described in the commit message.
- [x] My contribution is tested and working as described.
- [x] I have read the [Developer Certificate of
Origin](https://developercertificate.org/) and certify my contribution
under its conditions.
Signed-off-by: James A DellaMorte <dellamorte.james@comcast.net>
Co-authored-by: James A DellaMorte <dellamorte.james@comcast.net>
Bluetooth keyboards require the host to display a passkey for the user
to type. Previously this was not supported because the agent capability
was set to DisplayYesNo and the DisplayPasskey/DisplayPinCode events
were not handled.
- Change agent capability to KeyboardDisplay
- Add DisplayPasskey dialog with typed-key progress indicator
- Add DisplayPinCode dialog for older keyboards
- Auto-dismiss display dialogs when device reports Paired=true
The previous title was redundant since the search bar already says the same. And searching isn't the only action in the drawer, so the title didn't really fit.
This makes it clearer that applets can be placed in those segments before a drag is started, and prevents things moving around when the drag is started.