+ fixes #0001698: All drawing pages are opened automatically when opening a project file
This commit is contained in:
@@ -66,6 +66,10 @@ ViewProviderDrawingPage::ViewProviderDrawingPage()
|
||||
ADD_PROPERTY(HintScale,(10.0));
|
||||
ADD_PROPERTY(HintOffsetX,(10.0));
|
||||
ADD_PROPERTY(HintOffsetY,(10.0));
|
||||
|
||||
// do not show this in the property editor
|
||||
Visibility.StatusBits.set(3, true);
|
||||
DisplayMode.StatusBits.set(3, true);
|
||||
}
|
||||
|
||||
ViewProviderDrawingPage::~ViewProviderDrawingPage()
|
||||
@@ -91,17 +95,40 @@ std::vector<std::string> ViewProviderDrawingPage::getDisplayModes(void) const
|
||||
return StrList;
|
||||
}
|
||||
|
||||
void ViewProviderDrawingPage::show(void)
|
||||
{
|
||||
// showing the drawing page should not affect its children but opens the MDI view
|
||||
// therefore do not call the method of its direct base class
|
||||
ViewProviderDocumentObject::show();
|
||||
if (!this->view) {
|
||||
showDrawingView();
|
||||
this->view->load(QString::fromUtf8(getPageObject()->PageResult.getValue()));
|
||||
view->viewAll();
|
||||
}
|
||||
}
|
||||
|
||||
void ViewProviderDrawingPage::hide(void)
|
||||
{
|
||||
// hiding the drawing page should not affect its children but closes the MDI view
|
||||
// therefore do not call the method of its direct base class
|
||||
ViewProviderDocumentObject::hide();
|
||||
if (view) {
|
||||
view->parentWidget()->deleteLater();
|
||||
}
|
||||
}
|
||||
|
||||
void ViewProviderDrawingPage::updateData(const App::Property* prop)
|
||||
{
|
||||
Gui::ViewProviderDocumentObjectGroup::updateData(prop);
|
||||
if (prop->getTypeId() == App::PropertyFileIncluded::getClassTypeId()) {
|
||||
if (std::string(getPageObject()->PageResult.getValue()) != "") {
|
||||
DrawingView* view = showDrawingView();
|
||||
view->load(QString::fromUtf8(getPageObject()->PageResult.getValue()));
|
||||
if (view->isHidden())
|
||||
QTimer::singleShot(300, view, SLOT(viewAll()));
|
||||
else
|
||||
view->viewAll();
|
||||
if (view) {
|
||||
view->load(QString::fromUtf8(getPageObject()->PageResult.getValue()));
|
||||
if (view->isHidden())
|
||||
QTimer::singleShot(300, view, SLOT(viewAll()));
|
||||
else
|
||||
view->viewAll();
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (pcObject && prop == &pcObject->Label) {
|
||||
@@ -129,11 +156,7 @@ bool ViewProviderDrawingPage::setEdit(int ModNum)
|
||||
|
||||
bool ViewProviderDrawingPage::doubleClicked(void)
|
||||
{
|
||||
if (!this->view) {
|
||||
showDrawingView();
|
||||
this->view->load(QString::fromUtf8(getPageObject()->PageResult.getValue()));
|
||||
view->viewAll();
|
||||
}
|
||||
show();
|
||||
Gui::getMainWindow()->setActiveWindow(this->view);
|
||||
return true;
|
||||
}
|
||||
@@ -149,6 +172,7 @@ DrawingView* ViewProviderDrawingPage::showDrawingView()
|
||||
const char* objname = pcObject->Label.getValue();
|
||||
view->setObjectName(QString::fromUtf8(objname));
|
||||
view->onRelabel(doc);
|
||||
view->setDocumentObject(pcObject->getNameInDocument());
|
||||
Gui::getMainWindow()->addWindow(view);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user