diff options
Diffstat (limited to 'src/plugins/printsupport/cups/qcupsprintersupport_p.h')
-rw-r--r-- | src/plugins/printsupport/cups/qcupsprintersupport_p.h | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/src/plugins/printsupport/cups/qcupsprintersupport_p.h b/src/plugins/printsupport/cups/qcupsprintersupport_p.h index 13b65a5cb5..847047226a 100644 --- a/src/plugins/printsupport/cups/qcupsprintersupport_p.h +++ b/src/plugins/printsupport/cups/qcupsprintersupport_p.h @@ -44,9 +44,18 @@ #include <qpa/qplatformprintersupport.h> +#include <QtCore/qlibrary.h> +#include <QtCore/qlist.h> + +#include <cups/cups.h> + QT_BEGIN_HEADER QT_BEGIN_NAMESPACE +typedef int (*CupsGetDests)(cups_dest_t **dests); +typedef void (*CupsFreeDests)(int num_dests, cups_dest_t *dests); +typedef const char* (*CupsGetOption)(const char *name, int num_options, cups_option_t *options); + class QCupsPrinterSupport : public QPlatformPrinterSupport { public: @@ -56,10 +65,21 @@ public: virtual QPrintEngine *createNativePrintEngine(QPrinter::PrinterMode printerMode); virtual QPaintEngine *createPaintEngine(QPrintEngine *printEngine, QPrinter::PrinterMode); virtual QList<QPrinter::PaperSize> supportedPaperSizes(const QPrinterInfo &) const; - - virtual QList<QPrinterInfo> availablePrinters(); + virtual QString printerOption(const QPrinterInfo &printer, const QString &key) const; + virtual PrinterOptions printerOptions(const QPrinterInfo &printer) const; private: + void loadCups(); + void loadCupsPrinters(); + QString cupsOption(int i, const QString &key) const; + + QLibrary m_cups; + cups_dest_t *m_cupsPrinters; + int m_cupsPrintersCount; + + CupsGetDests cupsGetDests; + CupsFreeDests cupsFreeDests; + CupsGetOption cupsGetOption; }; QT_END_NAMESPACE |