From b6d8bb094ab4331f9323b6577907e50cf89ddd68 Mon Sep 17 00:00:00 2001 From: PaddleStroke Date: Tue, 2 Apr 2024 13:58:56 +0200 Subject: [PATCH] TechDraw: InsertView switch the MDI to page when triggered. --- src/Mod/TechDraw/Gui/Command.cpp | 8 ++++++++ src/Mod/TechDraw/Gui/ViewProviderPage.cpp | 7 ++++++- src/Mod/TechDraw/Gui/ViewProviderPage.h | 1 + 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/Mod/TechDraw/Gui/Command.cpp b/src/Mod/TechDraw/Gui/Command.cpp index a14044c6e9..5bb1f6b4fe 100644 --- a/src/Mod/TechDraw/Gui/Command.cpp +++ b/src/Mod/TechDraw/Gui/Command.cpp @@ -314,6 +314,14 @@ void CmdTechDrawView::activated(int iMsg) } std::string PageName = page->getNameInDocument(); + // switch to the page if it's not current active window + auto* vpp = dynamic_cast + (Gui::Application::Instance->getViewProvider(page)); + if (vpp) { + vpp->switchToMdiViewPage(); + } + + //set projection direction from selected Face //use first object with a face selected std::vector shapes, xShapes; diff --git a/src/Mod/TechDraw/Gui/ViewProviderPage.cpp b/src/Mod/TechDraw/Gui/ViewProviderPage.cpp index c78b9cfa8f..fae8b1a27b 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderPage.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderPage.cpp @@ -275,7 +275,7 @@ bool ViewProviderPage::doubleClicked(void) show(); if (m_mdiView) { - Gui::getMainWindow()->setActiveWindow(m_mdiView); + switchToMdiViewPage(); } return true; } @@ -339,6 +339,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); m_graphicsView->setFocus(); } diff --git a/src/Mod/TechDraw/Gui/ViewProviderPage.h b/src/Mod/TechDraw/Gui/ViewProviderPage.h index 34dbb27d42..b23d666c5f 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderPage.h +++ b/src/Mod/TechDraw/Gui/ViewProviderPage.h @@ -107,6 +107,7 @@ public: MDIViewPage* getMDIViewPage() const; bool showMDIViewPage(); void removeMDIView(); + void switchToMdiViewPage(); Gui::MDIView* getMDIView() const override;