summaryrefslogtreecommitdiffstats
path: root/src/printsupport/widgets/qcupsjobwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/printsupport/widgets/qcupsjobwidget.cpp')
-rw-r--r--src/printsupport/widgets/qcupsjobwidget.cpp53
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)