diff --git a/src/Mod/TechDraw/App/DrawPage.cpp b/src/Mod/TechDraw/App/DrawPage.cpp index a3261900f0..2874617f6c 100644 --- a/src/Mod/TechDraw/App/DrawPage.cpp +++ b/src/Mod/TechDraw/App/DrawPage.cpp @@ -133,7 +133,7 @@ void DrawPage::onChanged(const App::Property* prop) } else if (prop == &Template) { if (!isRestoring() && !isDeleting()) { - Template.getValue()->touch(); + //nothing to page to do?? } } else if(prop == &Scale) { // touch all views in the Page as they may be dependent on this scale @@ -248,8 +248,6 @@ int DrawPage::addView(App::DocumentObject *docObj) if(!docObj->isDerivedFrom(TechDraw::DrawView::getClassTypeId())) return -1; DrawView* view = static_cast(docObj); -//TODO: replace list of views with PropertyLink to Page in subordinate DrawView -// view->Page.setValue(this); //position all new views in center of Page (exceptDVDimension) if (!docObj->isDerivedFrom(TechDraw::DrawViewDimension::getClassTypeId())) { diff --git a/src/Mod/TechDraw/Gui/ViewProviderTemplate.cpp b/src/Mod/TechDraw/Gui/ViewProviderTemplate.cpp index 3d95a05fbe..302d53c90c 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderTemplate.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderTemplate.cpp @@ -43,6 +43,7 @@ #include #include +#include #include "QGITemplate.h" #include "QGVPage.h" #include "MDIViewPage.h" @@ -86,6 +87,19 @@ std::vector ViewProviderTemplate::getDisplayModes(void) const void ViewProviderTemplate::updateData(const App::Property* prop) { + if (getTemplate()->isDerivedFrom(TechDraw::DrawSVGTemplate::getClassTypeId())) { + auto t = static_cast(getTemplate()); + if (prop == &(t->Template)) { + Gui::MDIView* gmdi = getActiveView(); + if (gmdi != nullptr) { + MDIViewPage* mdi = dynamic_cast(gmdi); + if (mdi != nullptr) { + mdi->attachTemplate(t); + mdi->viewAll(); + } + } + } + } Gui::ViewProviderDocumentObject::updateData(prop); }