Correct sceneRect when Template size changes

This commit is contained in:
WandererFan
2017-11-15 17:39:54 -05:00
parent dc0f651521
commit 9a3a98c303
3 changed files with 15 additions and 5 deletions

View File

@@ -178,12 +178,8 @@ MDIViewPage::MDIViewPage(ViewProviderPage *pageVp, Gui::Document* doc, QWidget*
App::DocumentObject *obj = m_vpPage->getDrawPage()->Template.getValue();
auto pageTemplate( dynamic_cast<TechDraw::DrawTemplate *>(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<TechDraw::DrawTemplate *>(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)
{

View File

@@ -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;

View File

@@ -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();
}
}