summaryrefslogtreecommitdiffstats
path: root/src/plugins/printsupport/cups/qcupsprintersupport_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/printsupport/cups/qcupsprintersupport_p.h')
-rw-r--r--src/plugins/printsupport/cups/qcupsprintersupport_p.h24
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