diff --git a/src/Mod/TechDraw/Gui/MDIViewPage.cpp b/src/Mod/TechDraw/Gui/MDIViewPage.cpp index 9594ad1fd9..39971d28c3 100644 --- a/src/Mod/TechDraw/Gui/MDIViewPage.cpp +++ b/src/Mod/TechDraw/Gui/MDIViewPage.cpp @@ -178,12 +178,8 @@ MDIViewPage::MDIViewPage(ViewProviderPage *pageVp, Gui::Document* doc, QWidget* App::DocumentObject *obj = m_vpPage->getDrawPage()->Template.getValue(); auto pageTemplate( dynamic_cast(obj) ); if( pageTemplate ) { - //make sceneRect 1 pagesize bigger in every direction - double width = Rez::guiX(pageTemplate->Width.getValue()); - double height = Rez::guiX(pageTemplate->Height.getValue()); - m_view->scene()->setSceneRect(QRectF(-width,-2.0 * height,3.0*width,3.0*height)); attachTemplate(pageTemplate); - viewAll(); + matchSceneRectToTemplate(); } } @@ -193,6 +189,18 @@ MDIViewPage::~MDIViewPage() connectDeletedObject.disconnect(); } +void MDIViewPage::matchSceneRectToTemplate(void) +{ + App::DocumentObject *obj = m_vpPage->getDrawPage()->Template.getValue(); + auto pageTemplate( dynamic_cast(obj) ); + if( pageTemplate ) { + //make sceneRect 1 pagesize bigger in every direction + double width = Rez::guiX(pageTemplate->Width.getValue()); + double height = Rez::guiX(pageTemplate->Height.getValue()); + m_view->scene()->setSceneRect(QRectF(-width,-2.0 * height,3.0*width,3.0*height)); + viewAll(); + } +} void MDIViewPage::setDimensionGroups(void) { diff --git a/src/Mod/TechDraw/Gui/MDIViewPage.h b/src/Mod/TechDraw/Gui/MDIViewPage.h index 59b5d19a0b..512161538d 100644 --- a/src/Mod/TechDraw/Gui/MDIViewPage.h +++ b/src/Mod/TechDraw/Gui/MDIViewPage.h @@ -65,6 +65,7 @@ public: void attachTemplate(TechDraw::DrawTemplate *obj); void updateTemplate(bool force = false); void updateDrawing(bool force = false); + void matchSceneRectToTemplate(void); bool onMsg(const char* pMsg,const char** ppReturn); bool onHasMsg(const char* pMsg) const; diff --git a/src/Mod/TechDraw/Gui/ViewProviderPage.cpp b/src/Mod/TechDraw/Gui/ViewProviderPage.cpp index f71127a41f..23089a1c4e 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderPage.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderPage.cpp @@ -153,6 +153,7 @@ void ViewProviderPage::updateData(const App::Property* prop) } else if (prop == &(getDrawPage()->Template)) { if(m_mdiView && !getDrawPage()->isUnsetting()) { + m_mdiView->matchSceneRectToTemplate(); m_mdiView->updateTemplate(); } }