summaryrefslogtreecommitdiffstats
path: root/src/printsupport/doc/snippets/widgetprinting.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/printsupport/doc/snippets/widgetprinting.cpp')
-rw-r--r--src/printsupport/doc/snippets/widgetprinting.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/printsupport/doc/snippets/widgetprinting.cpp b/src/printsupport/doc/snippets/widgetprinting.cpp
index 9f50db2782..cdcc66ea63 100644
--- a/src/printsupport/doc/snippets/widgetprinting.cpp
+++ b/src/printsupport/doc/snippets/widgetprinting.cpp
@@ -39,13 +39,16 @@ private slots:
//! [0]
QPainter painter;
painter.begin(&printer);
- double xscale = printer.pageRect().width() / double(myWidget->width());
- double yscale = printer.pageRect().height() / double(myWidget->height());
+ const auto pageLayout = printer.pageLayout();
+ const auto pageRect = pageLayout.paintRectPixels(printer.resolution());
+ const auto paperRect = pageLayout.fullRectPixels(printer.resolution());
+ double xscale = pageRect.width() / double(myWidget->width());
+ double yscale = pageRect.height() / double(myWidget->height());
double scale = qMin(xscale, yscale);
- painter.translate(printer.paperRect().x() + printer.pageRect().width()/2,
- printer.paperRect().y() + printer.pageRect().height()/2);
+ painter.translate(pageRect.x() + paperRect.width() / 2.,
+ pageRect.y() + paperRect.height() / 2.);
painter.scale(scale, scale);
- painter.translate(-width()/2, -height()/2);
+ painter.translate(-myWidget->width() / 2., -myWidget->height() / 2.);
myWidget->render(&painter);
//! [0]
@@ -62,9 +65,8 @@ private slots:
dialog.setWindowTitle(tr("Print Document"));
if (editor->textCursor().hasSelection())
dialog.addEnabledOption(QAbstractPrintDialog::PrintSelection);
- if (dialog.exec() != QDialog::Accepted) {
+ if (dialog.exec() != QDialog::Accepted)
return;
- }
//! [1]
editor->print(&printer);
#endif