[TD]enforce center mark print rule on print preview
This commit is contained in:
committed by
Chris Hennes
parent
54b71d0265
commit
1960a4a8a4
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user