rely on CUPS for multiple page ranges in unix version of QPrintDialog
Since the introduction of QPageRanges with Qt6, multiple/arbitrary page ranges are broken in the unix implementation of QPrintDialog due to a possible double application of the page ranges: on the application side and on the server side with CUPS. Reason for this is that the QPrinter::PrintRange is set to PageRange instead of AllPages. The latter is needed when relying on the CUPS server-side page range. However, the server-side page range is always applied later on. Restore the behavior of Qt5 and set the PrintRange to AllPages for multiple/arbitrary page ranges and rely on the server-side filtering with CUPS. Pick-to: 6.8 Change-Id: I1b85552a8cf2509b11a81db028f957584043f3ee Reviewed-by: Albert Astals Cid <aacid@kde.org> Reviewed-by: David Faure <david.faure@kdab.com> (cherry picked from commit 2428cbf44e3e2aa4eaf00c9548ac5a74685101c4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
93e78b87bf
commit
b630ed4ef8
@ -785,10 +785,8 @@ void QPrintDialogPrivate::setupPrinter()
|
||||
#if QT_CONFIG(cups)
|
||||
if (options.pagesRadioButton->isChecked()) {
|
||||
const QPageRanges ranges = QPageRanges::fromString(options.pagesLineEdit->text());
|
||||
if (!ranges.isEmpty()) {
|
||||
p->setPrintRange(QPrinter::PageRange);
|
||||
p->setPageRanges(ranges);
|
||||
}
|
||||
p->setPrintRange(QPrinter::AllPages);
|
||||
p->setPageRanges(QPageRanges());
|
||||
|
||||
// server-side page filtering
|
||||
QCUPSSupport::setPageRange(p, ranges.toString());
|
||||
|
Loading…
x
Reference in New Issue
Block a user