App::LinkExtension Class Reference

#include <Link.h>

Public Member Functions

 LinkExtension ()
 
virtual ~LinkExtension ()
 
Helpers for defining extended parameter

extended parameter definition (Name, Type, Property_Type, Default, Document, Property_Name, Derived_Property_Type, App_Property_Type, Group)

This helper simply reuses Name as Property_Name, Property_Type as Derived_Property_type, Prop_None as App_Propert_Type

Note: Because PropertyView will merge linked object's properties into ours, we set the default group name as ' Link' with a leading space to try to make our group before others

void onExtendedDocumentRestored () override
 get called after a document has been fully restored More...
 
- Public Member Functions inherited from App::LinkBaseExtension
 LinkBaseExtension ()
 
virtual ~LinkBaseExtension ()
 
virtual void setProperty (int idx, Property *prop)
 
PropertygetProperty (int idx)
 
PropertygetProperty (const char *)
 
virtual const std::vector< PropInfo > & getPropertyInfo () const
 
virtual const PropInfoMapgetPropertyInfoMap () const
 
std::vector< DocumentObject * > getLinkedChildren (bool filter=true) const
 
const char * flattenSubname (const char *subname) const
 
void expandSubname (std::string &subname) const
 
DocumentObjectgetLink (int depth=0) const
 
Base::Matrix4D getTransform (bool transform) const
 
Base::Vector3d getScaleVector () const
 
App::GroupExtensionlinkedPlainGroup () const
 
bool linkTransform () const
 
const char * getSubName () const
 
const std::vector< std::string > & getSubElements () const
 
bool extensionGetSubObject (DocumentObject *&ret, const char *subname, PyObject **pyObj=0, Base::Matrix4D *mat=0, bool transform=false, int depth=0) const override
 Get the sub object by name. More...
 
bool extensionGetSubObjects (std::vector< std::string > &ret, int reason) const override
 Get name references of all sub objects. More...
 
bool extensionGetLinkedObject (DocumentObject *&ret, bool recurse, Base::Matrix4D *mat, bool transform, int depth) const override
 Get the linked object. More...
 
virtual App::DocumentObjectExecReturnextensionExecute (void) override
 
virtual short extensionMustExecute (void) override
 
virtual void extensionOnChanged (const Property *p) override
 
virtual void onExtendedUnsetupObject () override
 get called when object is going to be removed from the document More...
 
virtual int extensionSetElementVisible (const char *, bool) override
 
virtual int extensionIsElementVisible (const char *) override
 
virtual bool extensionHasChildElement () const override
 
virtual PyObjectgetExtensionPyObject (void) override
 
virtual PropertyextensionGetPropertyByName (const char *name) const override
 find a property by its name More...
 
int getElementIndex (const char *subname, const char **psubname=0) const
 
void elementNameFromIndex (int idx, std::ostream &ss) const
 
DocumentObjectgetContainer ()
 
const DocumentObjectgetContainer () const
 
void setLink (int index, DocumentObject *obj, const char *subname=0, const std::vector< std::string > &subs=std::vector< std::string >())
 
DocumentObjectgetTrueLinkedObject (bool recurse, Base::Matrix4D *mat=0, int depth=0, bool noElement=false) const
 
bool hasPlacement () const
 
void cacheChildLabel (int enable=-1) const
 
- Public Member Functions inherited from App::DocumentObjectExtension
 DocumentObjectExtension ()
 
App::DocumentObjectgetExtendedObject ()
 
const App::DocumentObjectgetExtendedObject () const
 
virtual const char * getViewProviderExtensionName (void) const
 returns the type name of the ViewProviderExtension which is automatically attached to the viewprovider object when it is initiated More...
 
virtual void onExtendedSettingDocument ()
 get called after setting the document More...
 
virtual void onExtendedSetupObject ()
 get called after a brand new object was created More...
 
virtual ~DocumentObjectExtension ()
 
- Public Member Functions inherited from App::Extension
 Extension ()
 
App::ExtensionContainergetExtendedContainer ()
 
const App::ExtensionContainergetExtendedContainer () const
 
virtual void initExtension (App::ExtensionContainer *obj)
 
bool isPythonExtension ()
 
std::string name () const
 
virtual ~Extension ()
 
virtual const char * extensionGetPropertyName (const Property *prop) const
 get the name of a property More...
 
virtual void extensionGetPropertyMap (std::map< std::string, Property * > &Map) const
 get all properties of the class (including properties of the parent) More...
 
virtual void extensionGetPropertyList (std::vector< Property * > &List) const
 get all properties of the class (including properties of the parent) More...
 
virtual short extensionGetPropertyType (const Property *prop) const
 get the Type of a Property More...
 
virtual short extensionGetPropertyType (const char *name) const
 get the Type of a named Property More...
 
virtual const char * extensionGetPropertyGroup (const Property *prop) const
 get the Group of a Property More...
 
virtual const char * extensionGetPropertyGroup (const char *name) const
 get the Group of a named Property More...
 
virtual const char * extensionGetPropertyDocumentation (const Property *prop) const
 get the Group of a Property More...
 
virtual const char * extensionGetPropertyDocumentation (const char *name) const
 get the Group of a named Property More...
 
virtual void extensionSave (Base::Writer &) const
 
virtual void extensionRestore (Base::XMLReader &)
 
bool extensionIsDerivedFrom (const Base::Type type) const
 

Additional Inherited Members

- Public Types inherited from App::LinkBaseExtension
enum  { LinkModeNone, LinkModeAutoDelete, LinkModeAutoLink, LinkModeAutoUnlink }
 
enum  PropIndex { PropMax }
 
typedef std::map< std::string, PropInfoPropInfoMap
 
typedef std::map< const Property *, std::pair< LinkBaseExtension *, int > > LinkPropMap
 
- Static Public Member Functions inherited from App::LinkBaseExtension
static int getArrayIndex (const char *subname, const char **psubname=0)
 
- Protected Member Functions inherited from App::LinkBaseExtension
void parseSubName () const
 
void update (App::DocumentObject *parent, const Property *prop)
 
void syncElementList ()
 
void detachElement (App::DocumentObject *obj)
 
void checkGeoElementMap (const App::DocumentObject *obj, const App::DocumentObject *linked, PyObject **pyObj, const char *postfix) const
 
void updateGroup ()
 
void slotChangedPlainGroup (const App::DocumentObject &, const App::Property &)
 
- Protected Member Functions inherited from App::Extension
void initExtensionType (Base::Type type)
 
- Static Protected Member Functions inherited from App::Extension
static void initExtensionSubclass (Base::Type &toInit, const char *ClassName, const char *ParentName, Base::Type::instantiationMethod method=0)
 
- Protected Attributes inherited from App::LinkBaseExtension
std::vector< Property * > props
 
std::unordered_set< const App::DocumentObject * > myHiddenElements
 
std::vector< std::string > mySubElements
 
std::string mySubName
 
std::unordered_map< const App::DocumentObject *, boost::signals2::scoped_connection > plainGroupConns
 
long myOwner
 
std::unordered_map< std::string, int > myLabelCache
 
bool enableLabelCache
 
bool hasOldSubElement
 
- Protected Attributes inherited from App::Extension
bool m_isPythonExtension = false
 
Py::Object ExtensionPythonObject
 

Constructor & Destructor Documentation

◆ LinkExtension()

LinkExtension::LinkExtension ( )

◆ ~LinkExtension()

LinkExtension::~LinkExtension ( )
virtual

Member Function Documentation

◆ onExtendedDocumentRestored()

void App::LinkExtension::onExtendedDocumentRestored ( )
overridevirtual

get called after a document has been fully restored

Reimplemented from App::LinkBaseExtension.


The documentation for this class was generated from the following files:
  • src/App/Link.h
  • src/App/Link.cpp