diff --git a/sources/print/projectprintwindow.cpp b/sources/print/projectprintwindow.cpp index ed139002f..45c7b3f1c 100644 --- a/sources/print/projectprintwindow.cpp +++ b/sources/print/projectprintwindow.cpp @@ -46,13 +46,13 @@ void ProjectPrintWindow::launchDialog(QETProject *project, QPrinter::OutputForma { auto printer_ = new QPrinter(); printer_->setDocName(ProjectPrintWindow::docName(project)); -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 1) // ### Qt 6: remove printer_->setOrientation(QPrinter::Landscape); #else #if TODO_LIST #pragma message("@TODO remove code for QT 6 or later") -#endif - qDebug()<<"Help code for QT 6 or later"; +# endif + printer_->setPageOrientation(QPageLayout::Landscape); #endif if (format == QPrinter::NativeFormat) //To physical printer @@ -254,8 +254,8 @@ void ProjectPrintWindow::printDiagram(Diagram *diagram, bool fit_page, QPainter if (fit_page) { diagram->render(painter, QRectF(), diagram_rect, Qt::KeepAspectRatio); } else { - //Print on one or several pages -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove + // Print on one or several pages +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 1) // ### Qt 6: remove auto printed_rect = full_page ? printer->paperRect() : printer->pageRect(); #else #if TODO_LIST @@ -280,7 +280,7 @@ void ProjectPrintWindow::printDiagram(Diagram *diagram, bool fit_page, QPainter auto x_offset = 0; for (auto j=0 ; j paperRect() : m_printer-> pageRect(); +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 1) // ### Qt 6: remove + printable_area = full_page ? m_printer->paperRect() : m_printer->pageRect(); #else #if TODO_LIST #pragma message("@TODO remove code for QT 6 or later") -#endif - qDebug()<<"Help code for QT 6 or later"; +# endif + printable_area = + full_page ? + m_printer->pageLayout().fullRectPixels(m_printer->resolution()) : + m_printer->pageLayout().paintRectPixels(m_printer->resolution()); #endif QRect diagram_rect = diagramRect(diagram, option); @@ -499,7 +502,6 @@ void ProjectPrintWindow::loadPageSetupForCurrentPrinter() void ProjectPrintWindow::savePageSetupForCurrentPrinter() { -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove QSettings settings; QString printer_section = settingsSectionName(m_printer); @@ -507,6 +509,7 @@ void ProjectPrintWindow::savePageSetupForCurrentPrinter() settings.beginGroup("printers"); settings.beginGroup(printer_section); +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 1) // ### Qt 6: remove settings.setValue("orientation", m_printer -> orientation() == QPrinter::Portrait ? "portrait" : "landscape"); settings.setValue("papersize", int(m_printer -> paperSize())); if (m_printer -> paperSize() == QPrinter::Custom) { @@ -518,7 +521,8 @@ void ProjectPrintWindow::savePageSetupForCurrentPrinter() settings.remove("customheightmm"); } qreal left, top, right, bottom; - m_printer->getPageMargins(&left, &top, &right, &bottom, QPrinter::Millimeter); + m_printer + ->getPageMargins(&left, &top, &right, &bottom, QPrinter::Millimeter); settings.setValue("marginleft", left); settings.setValue("margintop", top); settings.setValue("marginright", right); @@ -527,11 +531,43 @@ void ProjectPrintWindow::savePageSetupForCurrentPrinter() settings.endGroup(); settings.endGroup(); settings.sync(); + #else -#if TODO_LIST -#pragma message("@TODO remove code for QT 6 or later") -#endif - qDebug()<<"Help code for QT 6 or later"; +# if TODO_LIST +# pragma message("@TODO remove code for QT 6 or later") +# endif + qDebug() << "Help code for QT 6 or later"; + + settings.setValue( + "orientation", + m_printer->pageLayout().orientation() == QPageLayout::Portrait ? + "portrait" : + "landscape"); + settings.setValue( + "papersize", + int(m_printer->pageLayout().pageSize().id())); + if (m_printer->pageLayout().pageSize().id() == QPageSize::Custom) + { + QSizeF size = + m_printer->pageLayout().pageSize().size(QPageSize::Millimeter); + settings.setValue("customwidthmm", size.width()); + settings.setValue("customheightmm", size.height()); + } + else + { + settings.remove("customwidthmm"); + settings.remove("customheightmm"); + } + settings.setValue("marginleft", m_printer->pageLayout().margins().left()); + settings.setValue("margintop", m_printer->pageLayout().margins().top()); + settings.setValue("marginright", m_printer->pageLayout().margins().right()); + settings.setValue( + "marginbottom", + m_printer->pageLayout().margins().bottom()); + settings.setValue("fullpage", m_printer->fullPage() ? "true" : "false"); + settings.endGroup(); + settings.endGroup(); + settings.sync(); #endif }