Fix print size issue from pan/zoom mods
This commit is contained in:
committed by
Yorik van Havre
parent
aa3ef9d8bc
commit
e810ba81bb
@@ -701,12 +701,12 @@ void MDIViewPage::print(QPrinter* printer)
|
||||
return;
|
||||
}
|
||||
|
||||
QRect rect = printer->paperRect();
|
||||
QRect targetRect = printer->paperRect();
|
||||
#ifdef Q_OS_WIN32
|
||||
// On Windows the preview looks broken when using paperRect as render area.
|
||||
// Although the picture is scaled when using pageRect, it looks just fine.
|
||||
if (paintType == QPaintEngine::Picture)
|
||||
rect = printer->pageRect();
|
||||
targetRect = printer->pageRect();
|
||||
#endif
|
||||
|
||||
//bool block =
|
||||
@@ -718,7 +718,17 @@ void MDIViewPage::print(QPrinter* printer)
|
||||
|
||||
Gui::Selection().clearSelection();
|
||||
|
||||
m_view->scene()->render(&p, rect);
|
||||
App::DocumentObject *obj = m_vpPage->getDrawPage()->Template.getValue();
|
||||
auto pageTemplate( dynamic_cast<TechDraw::DrawTemplate *>(obj) );
|
||||
double width = 0.0;
|
||||
double height = 0.0;
|
||||
if( pageTemplate ) {
|
||||
width = pageTemplate->Width.getValue();
|
||||
height = pageTemplate->Height.getValue();
|
||||
}
|
||||
QRectF sourceRect(0.0,-height,width,height);
|
||||
|
||||
m_view->scene()->render(&p, targetRect,sourceRect);
|
||||
|
||||
// Reset
|
||||
m_view->toggleMarkers(true);
|
||||
|
||||
@@ -519,11 +519,16 @@ void QGVPage::saveSvg(QString filename)
|
||||
scene()->update();
|
||||
viewport()->repaint();
|
||||
|
||||
double width = page->getPageWidth();
|
||||
double height = page->getPageHeight();
|
||||
QRectF sourceRect(0.0,-height,width,height);
|
||||
QRectF targetRect;
|
||||
|
||||
Gui::Selection().clearSelection();
|
||||
QPainter p;
|
||||
|
||||
p.begin(&svgGen);
|
||||
scene()->render(&p);
|
||||
scene()->render(&p, targetRect,sourceRect);
|
||||
p.end();
|
||||
|
||||
toggleMarkers(true);
|
||||
@@ -532,7 +537,6 @@ void QGVPage::saveSvg(QString filename)
|
||||
viewport()->repaint();
|
||||
}
|
||||
|
||||
|
||||
void QGVPage::paintEvent(QPaintEvent *event)
|
||||
{
|
||||
if (m_renderer == Image) {
|
||||
|
||||
Reference in New Issue
Block a user