[TD]refactor scene/view/mdi

- move scene related functions out of mdiViewPage
  and QGVPage.
- route requests for scene/view/mdi through
  ViewProviderPage
This commit is contained in:
Wanderer Fan
2022-07-17 18:43:57 -04:00
committed by WandererFan
parent 6c6daa1939
commit b467cd32f2
27 changed files with 938 additions and 922 deletions

View File

@@ -72,11 +72,11 @@ void ViewProviderTemplate::updateData(const App::Property* prop)
if (getTemplate()->isDerivedFrom(TechDraw::DrawSVGTemplate::getClassTypeId())) {
auto t = static_cast<TechDraw::DrawSVGTemplate*>(getTemplate());
if (prop == &(t->Template)) {
MDIViewPage* mdi = getMDIViewPage();
if (mdi) {
mdi->attachTemplate(t);
mdi->viewAll();
mdi->getViewProviderPage()->setGrid();
auto page = t->getParentPage();
Gui::ViewProvider* vp = Gui::Application::Instance->getDocument(t->getDocument())->getViewProvider(page);
TechDrawGui::ViewProviderPage* vpp = dynamic_cast<TechDrawGui::ViewProviderPage*>(vp);
if (vpp) {
vpp->getGraphicsScene()->attachTemplate(t);
}
}
}
@@ -131,9 +131,11 @@ QGITemplate* ViewProviderTemplate::getQTemplate()
{
TechDraw::DrawTemplate* dt = getTemplate();
if (dt) {
MDIViewPage* mdi = getMDIViewPage();
if (mdi) {
return mdi->getQGSPage()->getTemplate();
auto page = dt->getParentPage();
Gui::ViewProvider* vp = Gui::Application::Instance->getDocument(dt->getDocument())->getViewProvider(page);
TechDrawGui::ViewProviderPage* vpp = dynamic_cast<TechDrawGui::ViewProviderPage*>(vp);
if (vpp != nullptr) {
return vpp->getGraphicsScene()->getTemplate();
}
}
return nullptr;