void QCUPSSupport::setBannerPages(QPrinter *printer, const BannerPage startBannerPage, const BannerPage endBannerPage) { QStringList cupsOptions = cupsOptionsList(printer); const QString startBanner = bannerPageToString(startBannerPage); const QString endBanner = bannerPageToString(endBannerPage); setCupsOption(cupsOptions, QStringLiteral("job-sheets"), startBanner + QLatin1Char(',') + endBanner); setCupsOptions(printer, cupsOptions); }
void QCUPSSupport::setJobHold(QPrinter *printer, const JobHoldUntil jobHold, const QTime &holdUntilTime) { QStringList cupsOptions = cupsOptionsList(printer); switch (jobHold) { case NoHold: //default break; case Indefinite: setCupsOption(cupsOptions, QStringLiteral("job-hold-until"), QStringLiteral("indefinite")); break; case DayTime: setCupsOption(cupsOptions, QStringLiteral("job-hold-until"), QStringLiteral("day-time")); break; case Night: setCupsOption(cupsOptions, QStringLiteral("job-hold-until"), QStringLiteral("night")); break; case SecondShift: setCupsOption(cupsOptions, QStringLiteral("job-hold-until"), QStringLiteral("second-shift")); break; case ThirdShift: setCupsOption(cupsOptions, QStringLiteral("job-hold-until"), QStringLiteral("third-shift")); break; case Weekend: setCupsOption(cupsOptions, QStringLiteral("job-hold-until"), QStringLiteral("weekend")); break; case SpecificTime: if (holdUntilTime.isNull()) { setJobHold(printer, NoHold); return; } // CUPS expects the time in UTC, user has entered in local time, so get the UTS equivalent QDateTime localDateTime = QDateTime::currentDateTime(); // Check if time is for tomorrow in case of DST change overnight if (holdUntilTime < localDateTime.time()) localDateTime = localDateTime.addDays(1); localDateTime.setTime(holdUntilTime); setCupsOption(cupsOptions, QStringLiteral("job-hold-until"), localDateTime.toUTC().time().toString(QStringLiteral("HH:mm"))); break; } 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); }
void QCUPSSupport::setPagesPerSheetLayout(QPrinter *printer, const PagesPerSheet pagesPerSheet, const PagesPerSheetLayout pagesPerSheetLayout) { QStringList cupsOptions = cupsOptionsList(printer); static const char *pagesPerSheetData[] = { "1", "2", "4", "6", "9", "16", 0 }; static const char *pageLayoutData[] = {"lrtb", "lrbt", "rlbt", "rltb", "btlr", "btrl", "tblr", "tbrl", 0}; setCupsOption(cupsOptions, QStringLiteral("number-up"), QLatin1String(pagesPerSheetData[pagesPerSheet])); setCupsOption(cupsOptions, QStringLiteral("number-up-layout"), QLatin1String(pageLayoutData[pagesPerSheetLayout])); setCupsOptions(printer, cupsOptions); }
void QCUPSSupport::setJobHold(QPrinter *printer, const JobHoldUntil jobHold, const QTime &holdUntilTime) { const QString jobHoldUntilArgument = jobHoldToString(jobHold, holdUntilTime); if (!jobHoldUntilArgument.isEmpty()) { QStringList cupsOptions = cupsOptionsList(printer); setCupsOption(cupsOptions, QStringLiteral("job-hold-until"), jobHoldUntilArgument); setCupsOptions(printer, cupsOptions); } }
void QCUPSSupport::setPagesPerSheetLayout(QPrinter *printer, const PagesPerSheet pagesPerSheet, const PagesPerSheetLayout pagesPerSheetLayout) { QStringList cupsOptions = cupsOptionsList(printer); // WARNING: the following trick (with a [2]-extent) only works as // WARNING: long as there's only one two-digit number in the list // WARNING: and it is the last one (before the "\0")! static const char pagesPerSheetData[][2] = { "1", "2", "4", "6", "9", {'1', '6'}, "\0" }; static const char pageLayoutData[][5] = {"lrtb", "lrbt", "rlbt", "rltb", "btlr", "btrl", "tblr", "tbrl"}; setCupsOption(cupsOptions, QStringLiteral("number-up"), QLatin1String(pagesPerSheetData[pagesPerSheet])); setCupsOption(cupsOptions, QStringLiteral("number-up-layout"), QLatin1String(pageLayoutData[pagesPerSheetLayout])); 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); }
void QCUPSSupport::setPageRange(QPrinter *printer, int pageFrom, int pageTo) { QStringList cupsOptions = cupsOptionsList(printer); setCupsOption(cupsOptions, QStringLiteral("page-ranges"), QStringLiteral("%1-%2").arg(pageFrom).arg(pageTo)); setCupsOptions(printer, cupsOptions); }
void QCUPSSupport::setJobPriority(QPrinter *printer, int priority) { QStringList cupsOptions = cupsOptionsList(printer); setCupsOption(cupsOptions, QStringLiteral("job-priority"), QString::number(priority)); setCupsOptions(printer, cupsOptions); }
void QCUPSSupport::setJobBilling(QPrinter *printer, const QString &jobBilling) { QStringList cupsOptions = cupsOptionsList(printer); setCupsOption(cupsOptions, QStringLiteral("job-billing"), jobBilling); setCupsOptions(printer, cupsOptions); }