TechDraw: Link related changes

* Support link and group objects

* Support view sync by implementing view provider API getMDIView()

* Use handleChangedPropertyType() for object migration instead of
  reimplementing Restore() because of a lots of changes in
  PropertyContainer::Restore().

* Various other small fixes.
This commit is contained in:
Zheng, Lei
2019-07-12 11:28:07 +08:00
committed by wmayer
parent f028ba42ff
commit e90d09dc40
30 changed files with 204 additions and 412 deletions

View File

@@ -164,6 +164,7 @@ void ViewProviderPage::updateData(const App::Property* prop)
} else {
sPixmap = "TechDraw_Tree_Page_Unsync";
}
signalChangeIcon();
//if the template is changed, rebuild the visual
} else if (prop == &(getDrawPage()->Template)) {
if(m_mdiView &&
@@ -218,8 +219,7 @@ bool ViewProviderPage::setEdit(int ModNum)
bool ViewProviderPage::doubleClicked(void)
{
Visibility.setValue(true);
showMDIViewPage();
show();
Gui::getMainWindow()->setActiveWindow(m_mdiView);
return true;
}
@@ -249,6 +249,8 @@ bool ViewProviderPage::showMDIViewPage()
Gui::getMainWindow()->addWindow(m_mdiView);
m_mdiView->viewAll(); //this is empty function
m_mdiView->showMaximized();
if(!getDrawPage()->KeepUpdated.getValue())
getDrawPage()->KeepUpdated.setValue(true);
} else {
m_mdiView->updateDrawing();
m_mdiView->redrawAllViews();
@@ -429,3 +431,8 @@ TechDraw::DrawPage* ViewProviderPage::getDrawPage() const
}
return dynamic_cast<TechDraw::DrawPage*>(pcObject);
}
Gui::MDIView *ViewProviderPage::getMDIView() {
showMDIViewPage();
return m_mdiView.data();
}