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::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::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::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::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::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::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 KCupsOptionsPagesWidget::setupCupsOptions( QStringList &cupsOptions ) { switch ( pagesPerSheet() ) { case OnePagePerSheet : break; //default case TwoPagesPerSheet : setCupsOption( cupsOptions, "number-up", "2"); break; case FourPagesPerSheet : setCupsOption( cupsOptions, "number-up", "4"); break; case SixPagesPerSheet : setCupsOption( cupsOptions, "number-up", "6"); break; case NinePagesPerSheet : setCupsOption( cupsOptions, "number-up", "9"); break; case SixteenPagesPerSheet : setCupsOption( cupsOptions, "number-up", "16"); break; } switch ( pagesPerSheetLayout() ) { case LeftToRightTopToBottom : break; //default case LeftToRightBottomToTop : setCupsOption( cupsOptions, "number-up-layout", "lrbt" ); break; case RightToLeftTopToBottom : setCupsOption( cupsOptions, "number-up-layout", "rltb" ); break; case RightToLeftBottomToTop : setCupsOption( cupsOptions, "number-up-layout", "rlbt" ); break; case BottomToTopLeftToRight : setCupsOption( cupsOptions, "number-up-layout", "btlr" ); break; case BottomToTopRightToLeft : setCupsOption( cupsOptions, "number-up-layout", "btrl" ); break; case TopToBottomLeftToRight : setCupsOption( cupsOptions, "number-up-layout", "tblr" ); break; case TopToBottomRightToLeft : setCupsOption( cupsOptions, "number-up-layout", "tbrl" ); break; } switch ( pageBorder() ) { case NoBorder : break; //default case SingleLine : setCupsOption( cupsOptions, "page-border", "single" ); break; case SingleThickLine : setCupsOption( cupsOptions, "page-border", "single-thick" ); break; case DoubleLine : setCupsOption( cupsOptions, "page-border", "double" ); break; case DoubleThickLine : setCupsOption( cupsOptions, "page-border", "double-thick" ); break; } if ( startBannerPage() != NoBanner || endBannerPage() != NoBanner ) { QString startBanner, endBanner; switch ( startBannerPage() ) { case NoBanner : startBanner = "none"; break; case Standard : startBanner = "standard"; break; case Unclassified : startBanner = "unclassified"; break; case Confidential : startBanner = "confidential"; break; case Classified : startBanner = "classified"; break; case Secret : startBanner = "secret"; break; case TopSecret : startBanner = "topsecret"; break; } switch ( endBannerPage() ) { case NoBanner : endBanner = "none"; break; case Standard : endBanner = "standard"; break; case Unclassified : endBanner = "unclassified"; break; case Confidential : endBanner = "confidential"; break; case Classified : endBanner = "classified"; break; case Secret : endBanner = "secret"; break; case TopSecret : endBanner = "topsecret"; break; } setCupsOption( cupsOptions, "job-sheets", startBanner + ',' + endBanner ); } if ( !pageLabel().isEmpty() ) { setCupsOption( cupsOptions, "page-label", pageLabel() ); } if ( mirrorPages() ) { setCupsOption( cupsOptions, "mirror", "" ); } }
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); }