[TD]enforce center mark print rule on print preview

This commit is contained in:
wandererfan
2025-11-14 15:38:16 -05:00
committed by Chris Hennes
parent cf656ba77e
commit 484c89818c
4 changed files with 11 additions and 5 deletions

View File

@@ -81,7 +81,8 @@ namespace sp = std::placeholders;
TYPESYSTEM_SOURCE_ABSTRACT(TechDrawGui::MDIViewPage, Gui::MDIView)
MDIViewPage::MDIViewPage(ViewProviderPage* pageVp, Gui::Document* doc, QWidget* parent)
: Gui::MDIView(doc, parent), m_vpPage(pageVp)
: Gui::MDIView(doc, parent), m_vpPage(pageVp),
m_previewState(false)
{
setMouseTracking(true);
@@ -362,7 +363,9 @@ void MDIViewPage::printPreview()
QPrintPreviewDialog dlg(&printer, this);
connect(&dlg, &QPrintPreviewDialog::paintRequested, this, qOverload<QPrinter*>(&MDIViewPage::print));
m_previewState = true;
dlg.exec();
m_previewState = false;
}
@@ -411,7 +414,7 @@ void MDIViewPage::print(QPrinter* printer)
}
}
PagePrinter::print(getViewProviderPage(), printer);
PagePrinter::print(getViewProviderPage(), printer, m_previewState);
}
// static routine to print all pages in a document. Used by PrintAll command in Command.cpp

View File

@@ -156,6 +156,8 @@ private:
QList<QGraphicsItem*> m_orderedSceneSelection; //items in selection order
QString defaultFileName();
bool m_previewState{false};
};
class MDIViewPagePy : public Py::PythonExtension<MDIViewPagePy>

View File

@@ -305,7 +305,7 @@ void PagePrinter::renderPage(ViewProviderPage* vpp, QPainter& painter, QRectF& s
/// print the Page associated with the view provider
void PagePrinter::print(ViewProviderPage* vpPage, QPrinter* printer)
void PagePrinter::print(ViewProviderPage* vpPage, QPrinter* printer, bool isPreview)
{
QPageLayout pageLayout = printer->pageLayout();
@@ -318,7 +318,8 @@ void PagePrinter::print(ViewProviderPage* vpPage, QPrinter* printer)
QPainter painter(printer);
auto ourScene = vpPage->getQGSPage();
if (!printer->outputFileName().isEmpty()) {
if (!printer->outputFileName().isEmpty() ||
isPreview) {
ourScene->setExportingPdf(true);
}
auto ourDoc = Gui::Application::Instance->getDocument(dPage->getDocument());

View File

@@ -105,7 +105,7 @@ public:
static PaperAttributes getPaperAttributes(TechDraw::DrawPage* pageObject);
static PaperAttributes getPaperAttributes(ViewProviderPage* vpPage);
static void print(ViewProviderPage* vpPage, QPrinter* printer);
static void print(ViewProviderPage* vpPage, QPrinter* printer, bool isPreview = false);
static void printPdf(ViewProviderPage* vpPage, const std::string& file);
static void printAll(QPrinter* printer, App::Document* doc);
static void printAllPdf(QPrinter* printer, App::Document* doc);