[Development] Adding CPD support to Qt print dialog

Gaurav Guleria gaurav.gen3 at gmail.com
Fri Sep 23 19:21:37 CEST 2022

As far as I know, the CUPS is currently implemented in Qt at two 
different places: src/plugins/printsupport/cups/ and directly within the 
dialog src/printsupport/dialogs/qprintdialog_unix.cpp. By implementing 
CPDB support as a plugin, does it mean that we create a similar 
src/plugins/printsupport/cpdb which uses CPDB to enumerate printers 
instead of CUPS? If so, what about the unix print dialog, don't we need 
to add the CPDB code there too (#if QT_CONFIG(cpdb) ... #endif 
constructs, just like CUPS)?

On 9/19/22 21:59, Tor Arne Vestbø wrote:
>> On 19 Sep 2022, at 18:21, Till Kamppeter <till.kamppeter at gmail.com> wrote:
>> On 19/09/2022 15:43, Tor Arne Vestbø wrote:
>>>> First is to create a new Qt print backend, what, instead of communicating directly with CUPS, communicates with the CPDB backends. It is some kind of "middle end", on one end being a Qt print backend and on the other end being a CPDB frontend.''
>>> This sounds like a good first step. It doesn’t involve any of the GUI bits, just the enumeration and communication with the various CPDB-exposed printers.
>>> Since the QtPrintSupport module doesn’t depend on DBUS today (AFAIK), the CPDB print backend should be a plugin.
>> OK, Gaurav so you should be able to provide the CPDB support as a plugin (Tor, is this a Qt print backend like the one for CUPS for example?).
> Correct. Note that for Qt 6, some of the print engines that were previously plugins were moved into the QtPrintSupport library directly, such as the macOS print engine, but the interface for enumerating these from Qt’s point of view is still as print engine “plugins”. The CUPS engine is a fully standalone plugin, so it’s a good basis for the CPDB work.
> Cheers,
> Tor Arne
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> https://lists.qt-project.org/listinfo/development

More information about the Development mailing list