From 70420d9e3bcc34b1c8083c022a5997ff3951ac8a Mon Sep 17 00:00:00 2001 From: WandererFan Date: Wed, 7 Sep 2016 15:41:05 -0400 Subject: [PATCH] Fix getViewObject inheritance across all ViewProviders --- src/Mod/TechDraw/Gui/ViewProviderAnnotation.cpp | 3 +-- src/Mod/TechDraw/Gui/ViewProviderAnnotation.h | 6 ++---- src/Mod/TechDraw/Gui/ViewProviderDimension.cpp | 1 - src/Mod/TechDraw/Gui/ViewProviderDimension.h | 7 ++----- src/Mod/TechDraw/Gui/ViewProviderDrawingView.cpp | 1 - src/Mod/TechDraw/Gui/ViewProviderDrawingView.h | 7 +++---- src/Mod/TechDraw/Gui/ViewProviderProjGroup.cpp | 13 +++++++------ src/Mod/TechDraw/Gui/ViewProviderProjGroup.h | 13 +++++-------- .../TechDraw/Gui/ViewProviderProjGroupItem.cpp | 12 ++++++------ src/Mod/TechDraw/Gui/ViewProviderProjGroupItem.h | 12 ++++++------ src/Mod/TechDraw/Gui/ViewProviderSpreadsheet.cpp | 13 ++++++------- src/Mod/TechDraw/Gui/ViewProviderSpreadsheet.h | 10 ++++------ src/Mod/TechDraw/Gui/ViewProviderSymbol.cpp | 3 +-- src/Mod/TechDraw/Gui/ViewProviderSymbol.h | 11 ++++------- src/Mod/TechDraw/Gui/ViewProviderViewClip.cpp | 11 ++++++----- src/Mod/TechDraw/Gui/ViewProviderViewClip.h | 9 ++++----- src/Mod/TechDraw/Gui/ViewProviderViewPart.cpp | 16 ++++++++++------ src/Mod/TechDraw/Gui/ViewProviderViewPart.h | 7 +++---- src/Mod/TechDraw/Gui/ViewProviderViewSection.cpp | 9 ++------- src/Mod/TechDraw/Gui/ViewProviderViewSection.h | 14 +++++++------- 20 files changed, 79 insertions(+), 99 deletions(-) diff --git a/src/Mod/TechDraw/Gui/ViewProviderAnnotation.cpp b/src/Mod/TechDraw/Gui/ViewProviderAnnotation.cpp index b9058bfe3..caadc59fc 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderAnnotation.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderAnnotation.cpp @@ -38,7 +38,6 @@ #include #include -#include #include "ViewProviderAnnotation.h" using namespace TechDrawGui; @@ -78,7 +77,7 @@ std::vector ViewProviderAnnotation::getDisplayModes(void) const void ViewProviderAnnotation::updateData(const App::Property* prop) { - Gui::ViewProviderDocumentObject::updateData(prop); + Gui::ViewProviderDocumentObject::updateData(prop); } TechDraw::DrawViewAnnotation* ViewProviderAnnotation::getViewObject() const diff --git a/src/Mod/TechDraw/Gui/ViewProviderAnnotation.h b/src/Mod/TechDraw/Gui/ViewProviderAnnotation.h index 72d558650..88b9c8b70 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderAnnotation.h +++ b/src/Mod/TechDraw/Gui/ViewProviderAnnotation.h @@ -29,9 +29,7 @@ #include "ViewProviderDrawingView.h" -namespace TechDraw{ - class DrawViewAnnotation; -} +#include namespace TechDrawGui { @@ -54,7 +52,7 @@ public: virtual std::vector getDisplayModes(void) const; virtual void updateData(const App::Property*); - TechDraw::DrawViewAnnotation* getViewObject() const; + virtual TechDraw::DrawViewAnnotation* getViewObject() const; }; } // namespace TechDrawGui diff --git a/src/Mod/TechDraw/Gui/ViewProviderDimension.cpp b/src/Mod/TechDraw/Gui/ViewProviderDimension.cpp index 3531cb5f0..539d0309e 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderDimension.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderDimension.cpp @@ -38,7 +38,6 @@ #include #include -#include #include "ViewProviderDimension.h" using namespace TechDrawGui; diff --git a/src/Mod/TechDraw/Gui/ViewProviderDimension.h b/src/Mod/TechDraw/Gui/ViewProviderDimension.h index 75e5e3ee5..9bae39907 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderDimension.h +++ b/src/Mod/TechDraw/Gui/ViewProviderDimension.h @@ -25,12 +25,9 @@ #ifndef DRAWINGGUI_VIEWPROVIDERDIMENSION_H #define DRAWINGGUI_VIEWPROVIDERDIMENSION_H -#include #include "ViewProviderDrawingView.h" +#include -namespace TechDraw{ - class DrawViewDimension; -} namespace TechDrawGui { @@ -53,7 +50,7 @@ public: virtual std::vector getDisplayModes(void) const; virtual void updateData(const App::Property*); - TechDraw::DrawViewDimension* getViewObject() const; + virtual TechDraw::DrawViewDimension* getViewObject() const; }; } // namespace TechDrawGui diff --git a/src/Mod/TechDraw/Gui/ViewProviderDrawingView.cpp b/src/Mod/TechDraw/Gui/ViewProviderDrawingView.cpp index b55876642..f124edf52 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderDrawingView.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderDrawingView.cpp @@ -43,7 +43,6 @@ #include #include -#include #include #include diff --git a/src/Mod/TechDraw/Gui/ViewProviderDrawingView.h b/src/Mod/TechDraw/Gui/ViewProviderDrawingView.h index 6eb2750af..1b88253ad 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderDrawingView.h +++ b/src/Mod/TechDraw/Gui/ViewProviderDrawingView.h @@ -28,9 +28,8 @@ #include #include -namespace TechDraw{ - class DrawView; -} +#include +#include "QGIView.h" namespace TechDrawGui { class QGIView; @@ -66,7 +65,7 @@ public: virtual void startRestoring(); virtual void finishRestoring(); //@} - TechDraw::DrawView* getViewObject() const; + virtual TechDraw::DrawView* getViewObject() const; private: bool m_docReady; //sb MDI + QGraphicsScene ready diff --git a/src/Mod/TechDraw/Gui/ViewProviderProjGroup.cpp b/src/Mod/TechDraw/Gui/ViewProviderProjGroup.cpp index 84b523690..d459ddbd3 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderProjGroup.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderProjGroup.cpp @@ -32,8 +32,6 @@ /// Here the FreeCAD includes sorted by Base,App,Gui...... #include #include -#include -#include #include #include @@ -49,14 +47,13 @@ #include #include -#include #include "TaskProjGroup.h" #include "ViewProviderProjGroup.h" using namespace TechDrawGui; -PROPERTY_SOURCE(TechDrawGui::ViewProviderProjGroup, Gui::ViewProviderDocumentObject) +PROPERTY_SOURCE(TechDrawGui::ViewProviderProjGroup, TechDrawGui::ViewProviderDrawingView) //************************************************************************** // Construction/Destruction @@ -165,8 +162,12 @@ std::vector ViewProviderProjGroup::claimChildren(void) con } } - -TechDraw::DrawProjGroup* ViewProviderProjGroup::getObject() const +TechDraw::DrawProjGroup* ViewProviderProjGroup::getViewObject() const { return dynamic_cast(pcObject); } + +TechDraw::DrawProjGroup* ViewProviderProjGroup::getObject() const +{ + return getViewObject(); +} diff --git a/src/Mod/TechDraw/Gui/ViewProviderProjGroup.h b/src/Mod/TechDraw/Gui/ViewProviderProjGroup.h index a9042f6d5..3e70ad59d 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderProjGroup.h +++ b/src/Mod/TechDraw/Gui/ViewProviderProjGroup.h @@ -1,7 +1,7 @@ /*************************************************************************** * Copyright (c) 2013 Luke Parry * * * - * This file is part of the FreeCAD CAx development system. * + * This file is part of the FreeCAD CAx development system. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Library General Public * @@ -10,7 +10,7 @@ * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU Library General Public License for more details. * * * * You should have received a copy of the GNU Library General Public * @@ -26,17 +26,13 @@ #include #include -#include +#include +#include #include "ViewProviderDrawingView.h" -namespace TechDraw{ - class DrawProjGroup; -} - namespace TechDrawGui { - class TechDrawGuiExport ViewProviderProjGroup : public ViewProviderDrawingView { PROPERTY_HEADER(TechDrawGui::ViewProviderProjGroup); @@ -61,6 +57,7 @@ public: virtual void updateData(const App::Property*); TechDraw::DrawProjGroup* getObject() const; + virtual TechDraw::DrawProjGroup* getViewObject() const; void unsetEdit(int ModNum); protected: diff --git a/src/Mod/TechDraw/Gui/ViewProviderProjGroupItem.cpp b/src/Mod/TechDraw/Gui/ViewProviderProjGroupItem.cpp index 0e77c2ff9..808f2a1dc 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderProjGroupItem.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderProjGroupItem.cpp @@ -40,12 +40,8 @@ #include #include #include -#include -#include -#include - #include "ViewProviderProjGroupItem.h" using namespace TechDrawGui; @@ -141,8 +137,12 @@ bool ViewProviderProjGroupItem::doubleClicked(void) return true; } - -TechDraw::DrawProjGroupItem* ViewProviderProjGroupItem::getObject() const +TechDraw::DrawProjGroupItem* ViewProviderProjGroupItem::getViewObject() const { return dynamic_cast(pcObject); } + +TechDraw::DrawProjGroupItem* ViewProviderProjGroupItem::getObject() const +{ + return getViewObject(); +} diff --git a/src/Mod/TechDraw/Gui/ViewProviderProjGroupItem.h b/src/Mod/TechDraw/Gui/ViewProviderProjGroupItem.h index 41f038fb9..48e3091b0 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderProjGroupItem.h +++ b/src/Mod/TechDraw/Gui/ViewProviderProjGroupItem.h @@ -1,7 +1,7 @@ /*************************************************************************** * Copyright (c) 2014 Luke Parry * * * - * This file is part of the FreeCAD CAx development system. * + * This file is part of the FreeCAD CAx development system. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Library General Public * @@ -10,7 +10,7 @@ * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU Library General Public License for more details. * * * * You should have received a copy of the GNU Library General Public * @@ -24,10 +24,9 @@ #define DRAWINGGUI_VIEWPROVIDERVIEWGROUPITEM_H #include "ViewProviderViewPart.h" - -namespace TechDraw{ - class DrawProjGroupItem; -} +#include +#include +#include namespace TechDrawGui { @@ -52,6 +51,7 @@ public: void setupContextMenu(QMenu*, QObject*, const char*); virtual void updateData(const App::Property*); + virtual TechDraw::DrawProjGroupItem* getViewObject() const; TechDraw::DrawProjGroupItem* getObject() const; void unsetEdit(int ModNum); diff --git a/src/Mod/TechDraw/Gui/ViewProviderSpreadsheet.cpp b/src/Mod/TechDraw/Gui/ViewProviderSpreadsheet.cpp index 6898124c3..856ad2ec0 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderSpreadsheet.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderSpreadsheet.cpp @@ -28,16 +28,15 @@ /// Here the FreeCAD includes sorted by Base,App,Gui...... #include -#include -#include -#include +//#include +//#include +//#include #include #include #include -#include -#include +//#include +//#include -#include #include "ViewProviderSpreadsheet.h" using namespace TechDrawGui; @@ -77,7 +76,7 @@ std::vector ViewProviderSpreadsheet::getDisplayModes(void) const void ViewProviderSpreadsheet::updateData(const App::Property* prop) { - Gui::ViewProviderDocumentObject::updateData(prop); + Gui::ViewProviderDocumentObject::updateData(prop); } TechDraw::DrawViewSpreadsheet* ViewProviderSpreadsheet::getViewObject() const diff --git a/src/Mod/TechDraw/Gui/ViewProviderSpreadsheet.h b/src/Mod/TechDraw/Gui/ViewProviderSpreadsheet.h index 3481c6d93..885abb0e8 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderSpreadsheet.h +++ b/src/Mod/TechDraw/Gui/ViewProviderSpreadsheet.h @@ -24,14 +24,12 @@ #ifndef DRAWINGGUI_VIEWPROVIDERSPREADSHEET_H #define DRAWINGGUI_VIEWPROVIDERSPREADSHEET_H -#include +#include "ViewProviderSymbol.h" +#include +#include #include "ViewProviderSymbol.h" -namespace TechDraw{ - class DrawViewSpreadsheet; -} - namespace TechDrawGui { @@ -53,7 +51,7 @@ public: virtual std::vector getDisplayModes(void) const; virtual void updateData(const App::Property*); - TechDraw::DrawViewSpreadsheet* getViewObject() const; + virtual TechDraw::DrawViewSpreadsheet* getViewObject() const; }; } // namespace TechDrawGui diff --git a/src/Mod/TechDraw/Gui/ViewProviderSymbol.cpp b/src/Mod/TechDraw/Gui/ViewProviderSymbol.cpp index 144831590..705b92d65 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderSymbol.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderSymbol.cpp @@ -38,7 +38,6 @@ #include #include -#include #include "ViewProviderSymbol.h" using namespace TechDrawGui; @@ -78,7 +77,7 @@ std::vector ViewProviderSymbol::getDisplayModes(void) const void ViewProviderSymbol::updateData(const App::Property* prop) { - Gui::ViewProviderDocumentObject::updateData(prop); + Gui::ViewProviderDocumentObject::updateData(prop); } TechDraw::DrawViewSymbol* ViewProviderSymbol::getViewObject() const diff --git a/src/Mod/TechDraw/Gui/ViewProviderSymbol.h b/src/Mod/TechDraw/Gui/ViewProviderSymbol.h index 5a38ae998..d5fdf9006 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderSymbol.h +++ b/src/Mod/TechDraw/Gui/ViewProviderSymbol.h @@ -25,13 +25,10 @@ #ifndef DRAWINGGUI_VIEWPROVIDERSYMBOL_H #define DRAWINGGUI_VIEWPROVIDERSYMBOL_H -#include - +#include +#include +#include "ViewProviderDrawingView.h" #include "ViewProviderDrawingView.h" - -namespace TechDraw{ - class DrawViewSymbol; -} namespace TechDrawGui { @@ -54,7 +51,7 @@ public: virtual std::vector getDisplayModes(void) const; virtual void updateData(const App::Property*); - TechDraw::DrawViewSymbol* getViewObject() const; + virtual TechDraw::DrawViewSymbol* getViewObject() const; }; } // namespace TechDrawGui diff --git a/src/Mod/TechDraw/Gui/ViewProviderViewClip.cpp b/src/Mod/TechDraw/Gui/ViewProviderViewClip.cpp index 8513ce3f1..3efca80f3 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderViewClip.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderViewClip.cpp @@ -33,15 +33,11 @@ /// Here the FreeCAD includes sorted by Base,App,Gui...... #include #include -#include -#include #include #include #include #include -#include - #include "ViewProviderViewClip.h" using namespace TechDrawGui; @@ -121,7 +117,12 @@ bool ViewProviderViewClip::isShow(void) const return Visibility.getValue(); } -TechDraw::DrawViewClip* ViewProviderViewClip::getObject() const +TechDraw::DrawViewClip* ViewProviderViewClip::getViewObject() const { return dynamic_cast(pcObject); } + +TechDraw::DrawViewClip* ViewProviderViewClip::getObject() const +{ + return getViewObject(); +} diff --git a/src/Mod/TechDraw/Gui/ViewProviderViewClip.h b/src/Mod/TechDraw/Gui/ViewProviderViewClip.h index 2ec85773c..a30e0f52d 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderViewClip.h +++ b/src/Mod/TechDraw/Gui/ViewProviderViewClip.h @@ -25,13 +25,10 @@ #ifndef DRAWINGGUI_VIEWPROVIDERCLIP_H #define DRAWINGGUI_VIEWPROVIDERCLIP_H -#include +#include +#include #include "ViewProviderDrawingView.h" -namespace TechDraw{ - class DrawViewClip; -} - namespace TechDrawGui { class TechDrawGuiExport ViewProviderViewClip : public ViewProviderDrawingView @@ -50,6 +47,8 @@ public: virtual bool useNewSelectionModel(void) const {return false;} /// returns a list of all possible modes virtual std::vector getDisplayModes(void) const; + + virtual TechDraw::DrawViewClip* getViewObject() const; TechDraw::DrawViewClip* getObject() const; /// Hide the object in the view diff --git a/src/Mod/TechDraw/Gui/ViewProviderViewPart.cpp b/src/Mod/TechDraw/Gui/ViewProviderViewPart.cpp index 18e03b553..43bf9c36b 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderViewPart.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderViewPart.cpp @@ -31,15 +31,14 @@ /// Here the FreeCAD includes sorted by Base,App,Gui...... #include #include -#include -#include +//#include +//#include #include #include #include -#include -#include +//#include +//#include -#include #include #include @@ -112,7 +111,12 @@ std::vector ViewProviderViewPart::claimChildren(void) cons } } -TechDraw::DrawViewPart* ViewProviderViewPart::getViewPart() const +TechDraw::DrawViewPart* ViewProviderViewPart::getViewObject() const { return dynamic_cast(pcObject); } + +TechDraw::DrawViewPart* ViewProviderViewPart::getViewPart() const +{ + return getViewObject(); +} diff --git a/src/Mod/TechDraw/Gui/ViewProviderViewPart.h b/src/Mod/TechDraw/Gui/ViewProviderViewPart.h index 3b39c9da3..4636c4ec7 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderViewPart.h +++ b/src/Mod/TechDraw/Gui/ViewProviderViewPart.h @@ -25,10 +25,8 @@ #define DRAWINGGUI_VIEWPROVIDERVIEWPART_H #include "ViewProviderDrawingView.h" - -namespace TechDraw{ - class DrawViewPart; -} +#include +#include namespace TechDrawGui { @@ -51,6 +49,7 @@ public: public: virtual std::vector claimChildren(void) const; + virtual TechDraw::DrawViewPart* getViewObject() const; TechDraw::DrawViewPart* getViewPart() const; }; diff --git a/src/Mod/TechDraw/Gui/ViewProviderViewSection.cpp b/src/Mod/TechDraw/Gui/ViewProviderViewSection.cpp index 1cfebe906..eecfc4536 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderViewSection.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderViewSection.cpp @@ -33,15 +33,10 @@ /// Here the FreeCAD includes sorted by Base,App,Gui...... #include #include -#include -#include #include #include #include -#include -#include -#include #include "ViewProviderViewSection.h" using namespace TechDrawGui; @@ -91,7 +86,7 @@ std::vector ViewProviderViewSection::claimChildren(void) c return ViewProviderViewPart::claimChildren(); } -TechDraw::DrawView* ViewProviderViewSection::getViewObject() const +TechDraw::DrawViewSection* ViewProviderViewSection::getViewObject() const { - return dynamic_cast(pcObject); + return dynamic_cast(pcObject); } diff --git a/src/Mod/TechDraw/Gui/ViewProviderViewSection.h b/src/Mod/TechDraw/Gui/ViewProviderViewSection.h index 597a46e46..5395ec8e9 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderViewSection.h +++ b/src/Mod/TechDraw/Gui/ViewProviderViewSection.h @@ -2,7 +2,7 @@ * Copyright (c) 2004 Jürgen Riegel * * Copyright (c) 2013 Luke Parry * * * - * This file is part of the FreeCAD CAx development system. * + * This file is part of the FreeCAD CAx development system. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Library General Public * @@ -11,7 +11,7 @@ * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU Library General Public License for more details. * * * * You should have received a copy of the GNU Library General Public * @@ -25,11 +25,11 @@ #ifndef DRAWINGGUI_VIEWPROVIDERVIEWSECTION_H #define DRAWINGGUI_VIEWPROVIDERVIEWSECTION_H -#include "ViewProviderViewPart.h" +#include +#include +#include -namespace TechDraw{ - class DrawView; -} +#include "ViewProviderViewPart.h" namespace TechDrawGui { @@ -52,7 +52,7 @@ public: virtual void updateData(const App::Property*); virtual std::vector claimChildren(void) const; - TechDraw::DrawView* getViewObject() const; + virtual TechDraw::DrawViewSection* getViewObject() const; }; } // namespace TechDrawGui