diff options
author | Albert Astals Cid <albert.astals.cid@kdab.com> | 2017-12-27 11:12:19 +0100 |
---|---|---|
committer | Albert Astals Cid <albert.astals.cid@kdab.com> | 2018-01-12 12:04:35 +0000 |
commit | d94ccf310a9ca01593750a34f743ec652f6a344e (patch) | |
tree | 433bb5afded8f1ab5c9070f0062a98fd879e318a /src/printsupport/widgets/qcupsjobwidget.cpp | |
parent | 114f7952217c9cbe7d0054bdcbef775a5923e4a0 (diff) |
Unix: Fix usability of the print properties dialog
Previous behavior:
* Open, change setting, cancel, open again, setting was as originally (i.e. unchanged)
* Open, change setting, accept, open, change setting, cancel, open again, the setting would be as before pressing cancel
* Open, change setting, accept, open, press cancel without changing anything, print, the initially changed setting is not applied
New behavior:
* Pressing cancel just cancels the changes since you opened the dialog, everything you accepted previously stays correctly selected
Change-Id: I483647504682f26d3d21c5229cc6530bf14fe519
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Diffstat (limited to 'src/printsupport/widgets/qcupsjobwidget.cpp')
-rw-r--r-- | src/printsupport/widgets/qcupsjobwidget.cpp | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/src/printsupport/widgets/qcupsjobwidget.cpp b/src/printsupport/widgets/qcupsjobwidget.cpp index 7525d7f1e1..dcdb933f73 100644 --- a/src/printsupport/widgets/qcupsjobwidget.cpp +++ b/src/printsupport/widgets/qcupsjobwidget.cpp @@ -77,6 +77,8 @@ QCupsJobWidget::QCupsJobWidget(QPrinter *printer, QPrintDevice *printDevice, QWi initJobBilling(); initJobPriority(); initBannerPages(); + + updateSavedValues(); } QCupsJobWidget::~QCupsJobWidget() @@ -91,6 +93,27 @@ void QCupsJobWidget::setupPrinter() QCUPSSupport::setBannerPages(m_printer, startBannerPage(), endBannerPage()); } +void QCupsJobWidget::updateSavedValues() +{ + m_savedJobHoldWithTime = { jobHold(), jobHoldTime() }; + m_savedJobBilling = jobBilling(); + m_savedPriority = jobPriority(); + m_savedJobSheets = { startBannerPage(), endBannerPage() }; +} + +void QCupsJobWidget::revertToSavedValues() +{ + setJobHold(m_savedJobHoldWithTime.jobHold, m_savedJobHoldWithTime.time); + toggleJobHoldTime(); + + setJobBilling(m_savedJobBilling); + + setJobPriority(m_savedPriority); + + setStartBannerPage(m_savedJobSheets.startBannerPage); + setEndBannerPage(m_savedJobSheets.endBannerPage); +} + void QCupsJobWidget::initJobHold() { m_ui.jobHoldComboBox->addItem(tr("Print Immediately"), QVariant::fromValue(QCUPSSupport::NoHold)); @@ -154,7 +177,7 @@ void QCupsJobWidget::initJobBilling() void QCupsJobWidget::setJobBilling(const QString &jobBilling) { - m_ui.jobBillingLineEdit->insert(jobBilling); + m_ui.jobBillingLineEdit->setText(jobBilling); } QString QCupsJobWidget::jobBilling() const |