From 1e02e70d3821c36fc612ae4e61e0b1a272cea77e Mon Sep 17 00:00:00 2001 From: wmayer Date: Thu, 22 Dec 2022 16:17:29 +0100 Subject: [PATCH] Gui: default implementation of MDIView::print(), MDIView::printPdf() and MDIView::printPreview() --- src/Gui/MDIView.cpp | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/Gui/MDIView.cpp b/src/Gui/MDIView.cpp index 27f312237f..6684ee5c6d 100644 --- a/src/Gui/MDIView.cpp +++ b/src/Gui/MDIView.cpp @@ -28,6 +28,8 @@ # include # include # include +# include +# include # include # include # include @@ -41,6 +43,7 @@ #include "MDIViewPy.h" #include "Application.h" #include "Document.h" +#include "FileDialog.h" #include "MainWindow.h" #include "ViewProviderDocumentObject.h" @@ -236,17 +239,33 @@ void MDIView::print(QPrinter* printer) void MDIView::print() { - std::cerr << "Printing not implemented for " << this->metaObject()->className() << std::endl; + QPrinter printer(QPrinter::ScreenResolution); + printer.setFullPage(true); + QPrintDialog dlg(&printer, this); + if (dlg.exec() == QDialog::Accepted) { + print(&printer); + } } void MDIView::printPdf() { - std::cerr << "Printing PDF not implemented for " << this->metaObject()->className() << std::endl; + QString filename = FileDialog::getSaveFileName(this, tr("Export PDF"), QString(), + QString::fromLatin1("%1 (*.pdf)").arg(tr("PDF file"))); + if (!filename.isEmpty()) { + QPrinter printer(QPrinter::ScreenResolution); + printer.setOutputFormat(QPrinter::PdfFormat); + printer.setOutputFileName(filename); + print(&printer); + } } void MDIView::printPreview() { - std::cerr << "Printing preview not implemented for " << this->metaObject()->className() << std::endl; + QPrinter printer(QPrinter::ScreenResolution); + QPrintPreviewDialog dlg(&printer, this); + connect(&dlg, SIGNAL(paintRequested (QPrinter *)), + this, SLOT(print(QPrinter *))); + dlg.exec(); } void MDIView::savePrinterSettings(QPrinter* printer)