From c3a2fe6436df01376bd7c3446ed2a0d6865ea1f7 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Mon, 24 Mar 2014 01:08:09 +0100 Subject: QCUPSSupport: Extract Method bannerPageToString() from setBannerPages() The new function just converts the job-sheets cups option argument, reducing the number of almost-identical switch statements to one. Effects on a stripped Linux AMD64 GCC 4.7 -std=c++11 -O2 build: text: -1008B data: +-0B relocs: +-0 Change-Id: I56843fa963e098e5c8ae203584f34bf5798667e6 Reviewed-by: Martin Klapetek Reviewed-by: John Layt --- src/printsupport/kernel/qcups.cpp | 66 ++++++++++----------------------------- 1 file changed, 17 insertions(+), 49 deletions(-) (limited to 'src/printsupport/kernel') diff --git a/src/printsupport/kernel/qcups.cpp b/src/printsupport/kernel/qcups.cpp index 5f4043141c..288ad16da0 100644 --- a/src/printsupport/kernel/qcups.cpp +++ b/src/printsupport/kernel/qcups.cpp @@ -126,58 +126,26 @@ void QCUPSSupport::setJobPriority(QPrinter *printer, int priority) setCupsOptions(printer, cupsOptions); } -void QCUPSSupport::setBannerPages(QPrinter *printer, const BannerPage startBannerPage, const BannerPage endBannerPage) +static inline QString bannerPageToString(const QCUPSSupport::BannerPage bannerPage) { - 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 (bannerPage) { + case QCUPSSupport::NoBanner: return QStringLiteral("none"); + case QCUPSSupport::Standard: return QStringLiteral("standard"); + case QCUPSSupport::Unclassified: return QStringLiteral("unclassified"); + case QCUPSSupport::Confidential: return QStringLiteral("confidential"); + case QCUPSSupport::Classified: return QStringLiteral("classified"); + case QCUPSSupport::Secret: return QStringLiteral("secret"); + case QCUPSSupport::TopSecret: return QStringLiteral("topsecret"); } + Q_UNREACHABLE(); + return QString(); +}; - 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; - } +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); -- cgit v1.2.3