diff --git a/src/Mod/TechDraw/Gui/ViewProviderPage.cpp b/src/Mod/TechDraw/Gui/ViewProviderPage.cpp index 4a7a261330..1594959986 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderPage.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderPage.cpp @@ -263,20 +263,11 @@ void ViewProviderPage::unsetEdit(int ModNum) bool ViewProviderPage::doubleClicked(void) { - // assure the TechDraw workbench - if (App::GetApplication() - .GetUserParameter() - .GetGroup("BaseApp") - ->GetGroup("Preferences") - ->GetGroup("Mod/TechDraw") - ->GetBool("SwitchToWB", true)) { + if (Preferences::switchOnClick()) { Gui::Command::assureWorkbench("TechDrawWorkbench"); + show(); } - show(); - if (m_mdiView) { - switchToMdiViewPage(); - } return true; } @@ -289,7 +280,7 @@ void ViewProviderPage::show(void) void ViewProviderPage::hide(void) { if (getMDIView()) { - getMDIView()->hide();//this doesn't remove the mdiViewPage from the mainWindow + getMDIView()->hide(); // this doesn't remove the mdiViewPage from the mainWindow removeMDIView(); } ViewProviderDocumentObject::hide(); @@ -339,12 +330,11 @@ void ViewProviderPage::createMDIViewPage() m_mdiView->setWindowTitle(tabTitle + QString::fromLatin1("[*]")); m_mdiView->setWindowIcon(Gui::BitmapFactory().pixmap("TechDraw_TreePage")); Gui::getMainWindow()->addWindow(m_mdiView); - switchToMdiViewPage(); } void ViewProviderPage::switchToMdiViewPage() { - Gui::getMainWindow()->setActiveWindow(m_mdiView); + show(); m_graphicsView->setFocus(); } @@ -407,8 +397,10 @@ std::vector ViewProviderPage::claimChildren(void) const // Collect any child views // for Page, valid children are any View except: DrawViewDimension // DrawViewBalloon - // any FeatuerView in a DrawViewClip + // any FeatureView in a DrawViewClip // DrawHatch + // DrawGeomHatch + // ?? leaders? try { for (auto* obj : getDrawPage()->Views.getValues()) { @@ -422,11 +414,14 @@ std::vector ViewProviderPage::claimChildren(void) const // Don't collect if dimension, balloon, hatch or member of ClipGroup as these should be grouped elsewhere if (obj->isDerivedFrom() || obj->isDerivedFrom() + || obj->isDerivedFrom() || obj->isDerivedFrom() - || (featView && featView->isInClip())) + || (featView && featView->isInClip())) { continue; - else + } + else { temp.push_back(obj); + } } return temp; } @@ -579,3 +574,12 @@ void ViewProviderPage::fixSceneDependencies() } } + +//! convenient way to ask feature to redraw everything +void ViewProviderPage::redrawPage() const +{ + auto feature = getDrawPage(); + if (feature) { + feature->redrawCommand(); + } +} diff --git a/src/Mod/TechDraw/Gui/ViewProviderPage.h b/src/Mod/TechDraw/Gui/ViewProviderPage.h index b23d666c5f..fe5c9be697 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderPage.h +++ b/src/Mod/TechDraw/Gui/ViewProviderPage.h @@ -120,8 +120,8 @@ public: void setGrid(); - QGSPage* getQGSPage(void) { return m_graphicsScene; } - QGVPage* getQGVPage(void) { return m_graphicsView; } + QGSPage* getQGSPage(void) const { return m_graphicsScene; } + QGVPage* getQGVPage(void) const { return m_graphicsView; } ViewProviderPageExtension* getVPPExtension() const; @@ -129,6 +129,7 @@ public: void fixSceneDependencies(); + void redrawPage() const; protected: bool setEdit(int ModNum) override;