diff --git a/src/Mod/TechDraw/Gui/Command.cpp b/src/Mod/TechDraw/Gui/Command.cpp index 42169daa1..fbd3bf424 100644 --- a/src/Mod/TechDraw/Gui/Command.cpp +++ b/src/Mod/TechDraw/Gui/Command.cpp @@ -79,19 +79,19 @@ using namespace std; //TODO: code is duplicated in CommandCreateDims and CommandDecorate TechDraw::DrawPage* _findPage(Gui::Command* cmd) { - TechDraw::DrawPage* page = 0; //check if a DrawPage is currently displayed - Gui::MainWindow* w = Gui::getMainWindow(); - Gui::MDIView* mv = w->activeWindow(); - MDIViewPage* mvp = dynamic_cast(mv); + auto mdiView( Gui::getMainWindow()->activeWindow() ); + auto mvp( dynamic_cast(mdiView) ); if (mvp) { - QGVPage* qp = mvp->getQGVPage(); - page = qp->getDrawPage(); + return mvp->getQGVPage()->getDrawPage(); } else { + TechDraw::DrawPage* page(nullptr); + //DrawPage not displayed, check Selection and/or Document for a DrawPage - std::vector selPages = cmd->getSelection().getObjectsOfType(TechDraw::DrawPage::getClassTypeId()); + auto drawPageType( TechDraw::DrawPage::getClassTypeId() ); + auto selPages( cmd->getSelection().getObjectsOfType(drawPageType) ); if (selPages.empty()) { //no page in selection - selPages = cmd->getDocument()->getObjectsOfType(TechDraw::DrawPage::getClassTypeId()); + selPages = cmd->getDocument()->getObjectsOfType(drawPageType); if (selPages.empty()) { //no page in document QMessageBox::warning(Gui::getMainWindow(), QObject::tr("No page found"), QObject::tr("Create a page first.")); @@ -108,10 +108,11 @@ TechDraw::DrawPage* _findPage(Gui::Command* cmd) QObject::tr("Select exactly 1 page.")); return page; } else { //use only page in selection - page = dynamic_cast(selPages.front()); + page = dynamic_cast(selPages.front()); } + + return page; } - return page; } bool isDrawingPageActive(Gui::Document *doc) diff --git a/src/Mod/TechDraw/Gui/QGVPage.cpp b/src/Mod/TechDraw/Gui/QGVPage.cpp index 86a17add9..f74d3dd57 100644 --- a/src/Mod/TechDraw/Gui/QGVPage.cpp +++ b/src/Mod/TechDraw/Gui/QGVPage.cpp @@ -57,7 +57,6 @@ #include #include -#include "ViewProviderPage.h" #include "QGIDrawingTemplate.h" #include "QGISVGTemplate.h" diff --git a/src/Mod/TechDraw/Gui/QGVPage.h b/src/Mod/TechDraw/Gui/QGVPage.h index c66e730e8..1fcc422c0 100644 --- a/src/Mod/TechDraw/Gui/QGVPage.h +++ b/src/Mod/TechDraw/Gui/QGVPage.h @@ -25,6 +25,8 @@ #include +#include "ViewProviderPage.h" + namespace TechDraw { class DrawViewPart; class DrawProjGroup; @@ -44,7 +46,6 @@ class QGIView; class QGIViewDimension; class QGITemplate; class QGIHatch; -class ViewProviderPage; class TechDrawGuiExport QGVPage : public QGraphicsView { @@ -83,7 +84,7 @@ public: void removeTemplate(); /// Getter for DrawPage feature - TechDraw::DrawPage * getDrawPage() { return pageFeat; } + TechDraw::DrawPage * getDrawPage() { return pageGui->getPageObject(); } void toggleEdit(bool enable); @@ -112,7 +113,6 @@ private: RendererType m_renderer; bool drawBkg; - TechDraw::DrawPage *pageFeat; QGraphicsRectItem *m_backgroundItem; QGraphicsRectItem *m_outlineItem; QBrush *bkgBrush;