diff options
Diffstat (limited to 'src/printsupport/widgets/qcupsjobwidget.cpp')
-rw-r--r-- | src/printsupport/widgets/qcupsjobwidget.cpp | 53 |
1 files changed, 40 insertions, 13 deletions
diff --git a/src/printsupport/widgets/qcupsjobwidget.cpp b/src/printsupport/widgets/qcupsjobwidget.cpp index 39acac020c..7525d7f1e1 100644 --- a/src/printsupport/widgets/qcupsjobwidget.cpp +++ b/src/printsupport/widgets/qcupsjobwidget.cpp @@ -52,6 +52,8 @@ #include <QPrinter> #include <QPrintEngine> +#include <kernel/qprintdevice_p.h> + QT_BEGIN_NAMESPACE /*! @@ -64,12 +66,13 @@ QT_BEGIN_NAMESPACE \inmodule QtPrintSupport */ -QCupsJobWidget::QCupsJobWidget(QWidget *parent) - : QWidget(parent) +QCupsJobWidget::QCupsJobWidget(QPrinter *printer, QPrintDevice *printDevice, QWidget *parent) + : QWidget(parent), + m_printer(printer), + m_printDevice(printDevice) { m_ui.setupUi(this); //set all the default values - //TODO restore last used values initJobHold(); initJobBilling(); initJobPriority(); @@ -80,11 +83,6 @@ QCupsJobWidget::~QCupsJobWidget() { } -void QCupsJobWidget::setPrinter(QPrinter *printer) -{ - m_printer = printer; -} - void QCupsJobWidget::setupPrinter() { QCUPSSupport::setJobHold(m_printer, jobHold(), jobHoldTime()); @@ -106,7 +104,14 @@ void QCupsJobWidget::initJobHold() connect(m_ui.jobHoldComboBox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &QCupsJobWidget::toggleJobHoldTime); - setJobHold(QCUPSSupport::NoHold, QTime()); + QCUPSSupport::JobHoldUntilWithTime jobHoldWithTime; + + if (m_printDevice) { + const QString jobHoldUntilString = m_printDevice->property(PDPK_CupsJobHoldUntil).toString(); + jobHoldWithTime = QCUPSSupport::parseJobHoldUntil(jobHoldUntilString); + } + + setJobHold(jobHoldWithTime.jobHold, jobHoldWithTime.time); toggleJobHoldTime(); } @@ -140,7 +145,11 @@ QTime QCupsJobWidget::jobHoldTime() const void QCupsJobWidget::initJobBilling() { - setJobBilling(QString()); + QString jobBilling; + if (m_printDevice) + jobBilling = m_printDevice->property(PDPK_CupsJobBilling).toString(); + + setJobBilling(jobBilling); } void QCupsJobWidget::setJobBilling(const QString &jobBilling) @@ -155,7 +164,18 @@ QString QCupsJobWidget::jobBilling() const void QCupsJobWidget::initJobPriority() { - setJobPriority(50); + int priority = -1; + if (m_printDevice) { + bool ok; + priority = m_printDevice->property(PDPK_CupsJobPriority).toInt(&ok); + if (!ok) + priority = -1; + } + + if (priority < 0 || priority > 100) + priority = 50; + + setJobPriority(priority); } void QCupsJobWidget::setJobPriority(int jobPriority) @@ -186,8 +206,15 @@ void QCupsJobWidget::initBannerPages() m_ui.endBannerPageCombo->addItem(tr("Secret", "CUPS Banner page"), QVariant::fromValue(QCUPSSupport::Secret)); m_ui.endBannerPageCombo->addItem(tr("Top Secret", "CUPS Banner page"), QVariant::fromValue(QCUPSSupport::TopSecret)); - setStartBannerPage(QCUPSSupport::NoBanner); - setEndBannerPage(QCUPSSupport::NoBanner); + QCUPSSupport::JobSheets jobSheets; + + if (m_printDevice) { + const QString jobSheetsString = m_printDevice->property(PDPK_CupsJobSheets).toString(); + jobSheets = QCUPSSupport::parseJobSheets(jobSheetsString); + } + + setStartBannerPage(jobSheets.startBannerPage); + setEndBannerPage(jobSheets.endBannerPage); } void QCupsJobWidget::setStartBannerPage(const QCUPSSupport::BannerPage bannerPage) |