From 51632426a0a0c03abd315ad9f2f36cfc44fb2d2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Tr=C3=B6ger?= Date: Sat, 27 Aug 2016 16:30:46 +0200 Subject: [PATCH] Extension: Port ViewProvider of Part --- src/Gui/Application.cpp | 1 + src/Gui/ViewProviderOriginGroupExtension.cpp | 4 ++-- src/Gui/ViewProviderPart.cpp | 18 +++++------------- src/Gui/ViewProviderPart.h | 6 +++--- 4 files changed, 11 insertions(+), 18 deletions(-) diff --git a/src/Gui/Application.cpp b/src/Gui/Application.cpp index da5caa8c827f..2e812f2bdaa1 100644 --- a/src/Gui/Application.cpp +++ b/src/Gui/Application.cpp @@ -1474,6 +1474,7 @@ void Application::initTypes(void) Gui::ViewProviderExtension ::init(); Gui::ViewProviderGroupExtension ::init(); Gui::ViewProviderGeoFeatureGroupExtension ::init(); + Gui::ViewProviderOriginGroupExtension ::init(); Gui::ViewProviderExtern ::init(); Gui::ViewProviderDocumentObject ::init(); Gui::ViewProviderFeature ::init(); diff --git a/src/Gui/ViewProviderOriginGroupExtension.cpp b/src/Gui/ViewProviderOriginGroupExtension.cpp index 72466579f57a..02b91bd3503e 100644 --- a/src/Gui/ViewProviderOriginGroupExtension.cpp +++ b/src/Gui/ViewProviderOriginGroupExtension.cpp @@ -84,7 +84,7 @@ std::vector ViewProviderOriginGroupExtension::extensionCla } void ViewProviderOriginGroupExtension::extensionAttach(App::DocumentObject *pcObject) { - ViewProviderOriginGroupExtension::extensionAttach ( pcObject ); + ViewProviderGeoFeatureGroupExtension::extensionAttach ( pcObject ); App::Document *adoc = pcObject->getDocument (); Gui::Document *gdoc = Gui::Application::Instance->getDocument ( adoc ) ; @@ -106,7 +106,7 @@ void ViewProviderOriginGroupExtension::extensionUpdateData( const App::Property* updateOriginSize(); } - ViewProviderOriginGroupExtension::extensionUpdateData ( prop ); + ViewProviderGeoFeatureGroupExtension::extensionUpdateData ( prop ); } void ViewProviderOriginGroupExtension::slotChangedObjectApp ( const App::DocumentObject& obj) { diff --git a/src/Gui/ViewProviderPart.cpp b/src/Gui/ViewProviderPart.cpp index 348a2b4928e8..2d7083caa813 100644 --- a/src/Gui/ViewProviderPart.cpp +++ b/src/Gui/ViewProviderPart.cpp @@ -43,14 +43,16 @@ using namespace Gui; -PROPERTY_SOURCE(Gui::ViewProviderPart, Gui::ViewProviderOriginGroup) +PROPERTY_SOURCE_WITH_EXTENSIONS(Gui::ViewProviderPart, Gui::ViewProviderDocumentObject, (Gui::ViewProviderOriginGroupExtension)) /** * Creates the view provider for an object group. */ ViewProviderPart::ViewProviderPart() -{ } +{ + initExtension(this); +} ViewProviderPart::~ViewProviderPart() { } @@ -61,7 +63,7 @@ ViewProviderPart::~ViewProviderPart() * associated view providers of the objects of the object group get changed as well. */ void ViewProviderPart::onChanged(const App::Property* prop) { - ViewProviderOriginGroup::onChanged(prop); + ViewProviderDocumentObject::onChanged(prop); } bool ViewProviderPart::doubleClicked(void) @@ -94,16 +96,6 @@ bool ViewProviderPart::doubleClicked(void) return true; } -bool ViewProviderPart::canDropObject(App::DocumentObject* obj) const { - - //it is not allowed to have any part or assembly object within a part, hence we exclude origin groups - if(obj->hasExtension(App::OriginGroupExtension::getClassTypeId())) - return false; - - return Gui::ViewProvider::canDropObject(obj); -} - - /** * Returns the pixmap for the list item. */ diff --git a/src/Gui/ViewProviderPart.h b/src/Gui/ViewProviderPart.h index 53bf882e7a56..a418aa9d59b3 100644 --- a/src/Gui/ViewProviderPart.h +++ b/src/Gui/ViewProviderPart.h @@ -31,9 +31,10 @@ namespace Gui { -class GuiExport ViewProviderPart : public ViewProviderOriginGroup +class GuiExport ViewProviderPart : public ViewProviderDocumentObject, + public ViewProviderOriginGroupExtension { - PROPERTY_HEADER(Gui::ViewProviderPart); + PROPERTY_HEADER_WITH_EXTENSIONS(Gui::ViewProviderPart); public: /// constructor. @@ -44,7 +45,6 @@ class GuiExport ViewProviderPart : public ViewProviderOriginGroup QIcon getIcon(void) const; virtual bool doubleClicked(void); - virtual bool canDropObject(App::DocumentObject*) const; protected: /// get called by the container whenever a property has been changed virtual void onChanged(const App::Property* prop);