Avec CUPS, tous les paramètres plus avancés sont décrits dans des fichiers PPD, hérités de PostScript. Heureusement, ces options sont déjà groupées, ce qui facilite l’implémentation d’une interface générique par-dessus les fichiers PPD. De plus, ils peuvent encoder certaines contraintes sur le choix des options : impossible de choisir une qualité photo sur un papier qui n’est pas prévu pour ce mode, par exemple.
Ainsi, l’implémentation spécifique à la plateforme Linux de l’impression dispose maintenant d’une classe pour gérer ces fichiers PPD, QPpdPrintDevice. Elle est utilisée pour afficher le nouveau panneau Avancé, avec un simple parcours du fichier PPD et un modèle arborescent. Les options les plus importantes sont déjà positionnées dans d’autres onglets : elles sont éliminées par un système de liste noire.
D’autres correctifs font leur arrivée, comme la mémorisation des paramètres d’une impression à la suivante ou encore la gestion des tailles de page. Les plages de pages à imprimer deviennent complètement arbitraires : on peut donner des listes de pages pas forcément consécutives (page 1, pages 5 à 7, page 42, par exemple). Ce dernier item a été implémenté au niveau de Qt et sera donc disponible sur toutes les plateformes.
Source : Better support for CUPS features in Qt 5.11.