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=nullptr, Base::Matrix4D *mat=nullptr, 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=nullptr) const
 
void elementNameFromIndex (int idx, std::ostream &ss) const
 
DocumentObjectgetContainer ()
 
const DocumentObjectgetContainer () const
 
void setLink (int index, DocumentObject *obj, const char *subname=nullptr, const std::vector< std::string > &subs=std::vector< std::string >())
 
DocumentObjectgetTrueLinkedObject (bool recurse, Base::Matrix4D *mat=nullptr, int depth=0, bool noElement=false) const
 
bool hasPlacement () const
 
void cacheChildLabel (int enable=-1) const
 
void syncCopyOnChange ()
 
void setOnChangeCopyObject (App::DocumentObject *obj, OnChangeCopyOptions options)
 Include or exclude object from list of objects to copy on change. More...
 
std::vector< App::DocumentObject * > getOnChangeCopyObjects (std::vector< App::DocumentObject * > *excludes=nullptr, App::DocumentObject *src=nullptr)
 
bool isLinkedToConfigurableObject () const
 
void monitorOnChangeCopyObjects (const std::vector< App::DocumentObject * > &objs)
 
bool isLinkMutated () const
 Check if the linked object is a copy on change. More...
 
- Public Member Functions inherited from App::DocumentObjectExtension
 DocumentObjectExtension ()
 
virtual App::DocumentObjectExecReturnextensionExecute ()
 
virtual bool extensionGetLinkedObject (DocumentObject *&ret, bool recursive, Base::Matrix4D *mat, bool transform, int depth) const
 Get the linked object. More...
 
virtual bool extensionGetSubObject (DocumentObject *&ret, const char *subname, PyObject **pyObj, Base::Matrix4D *mat, bool transform, int depth) const
 Get the sub object by name. More...
 
virtual bool extensionGetSubObjects (std::vector< std::string > &ret, int reason) const
 Get name references of all sub objects. More...
 
virtual bool extensionHasChildElement () const
 
virtual int extensionIsElementVisible (const char *)
 
virtual short extensionMustExecute ()
 
virtual int extensionSetElementVisible (const char *, bool)
 
App::DocumentObjectgetExtendedObject ()
 
const App::DocumentObjectgetExtendedObject () const
 
virtual PyObjectgetExtensionPyObject () override
 
virtual const char * getViewProviderExtensionName () const
 returns the type name of the ViewProviderExtension which is automatically attached to the viewprovider object when it is initiated More...
 
virtual void onExtendedDocumentRestored ()
 get called after a document has been fully restored 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 void onExtendedUnsetupObject ()
 get called when object is going to be removed from the document More...
 
virtual ~DocumentObjectExtension ()
 
- Public Member Functions inherited from App::Extension
 Extension ()
 
App::ExtensionContainergetExtendedContainer ()
 
const App::ExtensionContainergetExtendedContainer () const
 
virtual PyObjectgetExtensionPyObject ()
 
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 }
 
enum  LinkCopyOnChangeType { CopyOnChangeDisabled = 0 , CopyOnChangeEnabled = 1 , CopyOnChangeOwned = 2 , CopyOnChangeTracking = 3 }
 
enum class  OnChangeCopyOptions { Exclude = 1 , ApplyAll = 2 }
 Options used in setOnChangeCopyObject() Multiple options can be combined by bitwise or operator. More...
 
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=nullptr)
 
static bool setupCopyOnChange (App::DocumentObject *obj, App::DocumentObject *linked, std::vector< boost::signals2::scoped_connection > *copyOnChangeConns, bool checkExisting)
 
static bool isCopyOnChangeProperty (App::DocumentObject *obj, const Property &prop)
 
- Protected Member Functions inherited from App::LinkBaseExtension
void parseSubName () const
 
void update (App::DocumentObject *parent, const Property *prop)
 
void checkCopyOnChange (App::DocumentObject *parent, const App::Property &prop)
 
void setupCopyOnChange (App::DocumentObject *parent, bool checkSource=false)
 
App::DocumentObjectmakeCopyOnChange ()
 
void syncElementList ()
 
void detachElement (App::DocumentObject *obj)
 
void detachElements ()
 
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=nullptr)
 
- 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 prevLinkedObjectID = 0
 
std::unordered_map< std::string, intmyLabelCache
 
bool enableLabelCache
 
bool hasOldSubElement
 
std::vector< boost::signals2::scoped_connection > copyOnChangeConns
 
std::vector< boost::signals2::scoped_connection > copyOnChangeSrcConns
 
bool hasCopyOnChange
 
bool checkingProperty = false
 
bool pauseCopyOnChange = false
 
boost::signals2::scoped_connection connCopyOnChangeSource
 
- Protected Attributes inherited from App::Extension
bool m_isPythonExtension = false
 
Py::SmartPtr ExtensionPythonObject
 

Constructor & Destructor Documentation

◆ LinkExtension()

LinkExtension::LinkExtension ( void  )

◆ ~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: