diff options
author | Martin Klapetek <mklapetek@kde.org> | 2013-09-12 15:19:00 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-17 14:24:48 +0200 |
commit | 75ffb131ed13183ef65a04e12d7506dedc0f1aaa (patch) | |
tree | c0605c021e416ce2a3fc25716aca33a5cfcaa7c1 /src/printsupport/kernel | |
parent | f098148ebc04ac3297c72e2564853e80d43425b1 (diff) |
Add CUPS Page Set options to print support
Adds combobox to select CUPS Page Set option (even/odd pages) into the
Unix print dialog
[ChangeLog][QtPrintSupport][QPrintDialog] Added support for setting CUPS
Page Set (even/odd pages only) in the print dialog.
Change-Id: I27dd846f58c164039fe2759064aafdf726a1287e
Reviewed-by: John Layt <jlayt@kde.org>
Diffstat (limited to 'src/printsupport/kernel')
-rw-r--r-- | src/printsupport/kernel/qcups.cpp | 21 | ||||
-rw-r--r-- | src/printsupport/kernel/qcups_p.h | 9 |
2 files changed, 30 insertions, 0 deletions
diff --git a/src/printsupport/kernel/qcups.cpp b/src/printsupport/kernel/qcups.cpp index cf71e92e95..a10baaa7fb 100644 --- a/src/printsupport/kernel/qcups.cpp +++ b/src/printsupport/kernel/qcups.cpp @@ -490,6 +490,27 @@ void QCUPSSupport::setBannerPages(QPrinter *printer, const BannerPage startBanne setCupsOptions(printer, cupsOptions); } +void QCUPSSupport::setPageSet(QPrinter *printer, const PageSet pageSet) +{ + QStringList cupsOptions = cupsOptionsList(printer); + QString pageSetString; + + switch (pageSet) { + case OddPages: + pageSetString = QStringLiteral("odd"); + break; + case EvenPages: + pageSetString = QStringLiteral("even"); + break; + case AllPages: + pageSetString = QStringLiteral("all"); + break; + } + + setCupsOption(cupsOptions, QStringLiteral("page-set"), pageSetString); + 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 8e82b35e12..412c50cfac 100644 --- a/src/printsupport/kernel/qcups_p.h +++ b/src/printsupport/kernel/qcups_p.h @@ -114,6 +114,13 @@ public: TopSecret }; + // Enum for valid page set + enum PageSet { + AllPages = 0, //CUPS Default + OddPages, + EvenPages + }; + static bool isAvailable(); static int cupsVersion() { return isAvailable() ? CUPS_VERSION_MAJOR*10000+CUPS_VERSION_MINOR*100+CUPS_VERSION_PATCH : 0; } int availablePrintersCount() const; @@ -143,6 +150,7 @@ public: 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 void setPageSet(QPrinter *printer, const PageSet pageSet); static bool printerHasPPD(const char *printerName); @@ -174,6 +182,7 @@ QT_END_NAMESPACE Q_DECLARE_METATYPE(QCUPSSupport::JobHoldUntil) Q_DECLARE_METATYPE(QCUPSSupport::BannerPage) +Q_DECLARE_METATYPE(QCUPSSupport::PageSet) #endif // QT_NO_CUPS |