diff options
author | Martin Klapetek <mklapetek@kde.org> | 2013-09-11 21:02:42 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-11 21:52:50 +0200 |
commit | ea3f8ff6d0d1551a44b0c1a892470d9d48ebb858 (patch) | |
tree | 48dbfb80ee5477884d5a2b536b91d91e6f780af1 /src/printsupport/kernel | |
parent | 8a425026820cab9ea4b4e8bb05afde9f1092edd3 (diff) |
Add CUPS Banner Pages options to print support
Adds a way to set standard CUPS Banner Pages. This widget is part of the
Job Options widget/tab in Properties dialog.
[ChangeLog][QtPrintSupport][QPrintDialog] Added support for setting CUPS
Banner pages in the print dialog.
Change-Id: Ia7a22b7a0f51c12d170986caee61af7109e781e9
Reviewed-by: John Layt <jlayt@kde.org>
Diffstat (limited to 'src/printsupport/kernel')
-rw-r--r-- | src/printsupport/kernel/qcups.cpp | 57 | ||||
-rw-r--r-- | src/printsupport/kernel/qcups_p.h | 13 |
2 files changed, 70 insertions, 0 deletions
diff --git a/src/printsupport/kernel/qcups.cpp b/src/printsupport/kernel/qcups.cpp index 332245cc21..cf71e92e95 100644 --- a/src/printsupport/kernel/qcups.cpp +++ b/src/printsupport/kernel/qcups.cpp @@ -433,6 +433,63 @@ void QCUPSSupport::setJobPriority(QPrinter *printer, int priority) setCupsOptions(printer, cupsOptions); } +void QCUPSSupport::setBannerPages(QPrinter *printer, const BannerPage startBannerPage, const BannerPage endBannerPage) +{ + QStringList cupsOptions = cupsOptionsList(printer); + QString startBanner, endBanner; + + switch (startBannerPage) { + case NoBanner: + startBanner = QStringLiteral("none"); + break; + case Standard: + startBanner = QStringLiteral("standard"); + break; + case Unclassified: + startBanner = QStringLiteral("unclassified"); + break; + case Confidential: + startBanner = QStringLiteral("confidential"); + break; + case Classified: + startBanner = QStringLiteral("classified"); + break; + case Secret: + startBanner = QStringLiteral("secret"); + break; + case TopSecret: + startBanner = QStringLiteral("topsecret"); + break; + } + + switch (endBannerPage) { + case NoBanner: + endBanner = QStringLiteral("none"); + break; + case Standard: + endBanner = QStringLiteral("standard"); + break; + case Unclassified: + endBanner = QStringLiteral("unclassified"); + break; + case Confidential: + endBanner = QStringLiteral("confidential"); + break; + case Classified: + endBanner = QStringLiteral("classified"); + break; + case Secret: + endBanner = QStringLiteral("secret"); + break; + case TopSecret: + endBanner = QStringLiteral("topsecret"); + break; + } + + setCupsOption(cupsOptions, QStringLiteral("job-sheets"), startBanner + QLatin1Char(',') + endBanner); + setCupsOptions(printer, cupsOptions); +} + bool QCUPSSupport::printerHasPPD(const char *printerName) { if (!isAvailable()) diff --git a/src/printsupport/kernel/qcups_p.h b/src/printsupport/kernel/qcups_p.h index 58608ea1f1..8e82b35e12 100644 --- a/src/printsupport/kernel/qcups_p.h +++ b/src/printsupport/kernel/qcups_p.h @@ -103,6 +103,17 @@ public: SpecificTime }; + // Enum for valid banner pages + enum BannerPage { + NoBanner = 0, //CUPS Default 'none' + Standard, + Unclassified, + Confidential, + Classified, + Secret, + TopSecret + }; + static bool isAvailable(); static int cupsVersion() { return isAvailable() ? CUPS_VERSION_MAJOR*10000+CUPS_VERSION_MINOR*100+CUPS_VERSION_PATCH : 0; } int availablePrintersCount() const; @@ -131,6 +142,7 @@ public: static void setJobHold(QPrinter *printer, const JobHoldUntil jobHold = NoHold, const QTime &holdUntilTime = QTime()); static void setJobBilling(QPrinter *printer, const QString &jobBilling = QString()); static void setJobPriority(QPrinter *printer, int priority = 50); + static void setBannerPages(QPrinter *printer, const BannerPage startBannerPage, const BannerPage endBannerPage); static bool printerHasPPD(const char *printerName); @@ -161,6 +173,7 @@ private: QT_END_NAMESPACE Q_DECLARE_METATYPE(QCUPSSupport::JobHoldUntil) +Q_DECLARE_METATYPE(QCUPSSupport::BannerPage) #endif // QT_NO_CUPS |