diff --git a/src/printsupport/dialogs/qprintdialog_unix.cpp b/src/printsupport/dialogs/qprintdialog_unix.cpp index aab5e2c7f05..8846fc3643e 100644 --- a/src/printsupport/dialogs/qprintdialog_unix.cpp +++ b/src/printsupport/dialogs/qprintdialog_unix.cpp @@ -991,13 +991,16 @@ void QPrintDialog::accept() { Q_D(QPrintDialog); #if QT_CONFIG(cups) && QT_CONFIG(messagebox) - if (d->options.pagesRadioButton->isChecked() && printer()->pageRanges().isEmpty()) { - QMessageBox::critical(this, tr("Invalid Pages Definition"), - tr("%1 does not follow the correct syntax. Please use ',' to separate " - "ranges and pages, '-' to define ranges and make sure ranges do " - "not intersect with each other.").arg(d->options.pagesLineEdit->text()), - QMessageBox::Ok, QMessageBox::Ok); - return; + if (d->options.pagesRadioButton->isChecked()) { + const QString rangesText = d->options.pagesLineEdit->text(); + if (rangesText.isEmpty() || QPageRanges::fromString(rangesText).isEmpty()) { + QMessageBox::critical(this, tr("Invalid Pages Definition"), + tr("%1 does not follow the correct syntax. Please use ',' to separate " + "ranges and pages, '-' to define ranges and make sure ranges do " + "not intersect with each other.").arg(rangesText), + QMessageBox::Ok, QMessageBox::Ok); + return; + } } if (d->top->d->m_duplexPpdOption && d->top->d->m_duplexPpdOption->conflicted) { const QMessageBox::StandardButton answer = QMessageBox::warning(this, tr("Duplex Settings Conflicts"),