Extension: Port ViewProvider of Part

This commit is contained in:
Stefan Tröger 2016-08-27 16:30:46 +02:00 committed by wmayer
parent fe32f03e63
commit 51632426a0
4 changed files with 11 additions and 18 deletions

View File

@ -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();

View File

@ -84,7 +84,7 @@ std::vector<App::DocumentObject*> 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) {

View File

@ -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.
*/

View File

@ -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 @@ public:
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);