#include <PropertyLinks.h>
Classes | |
struct | SubSet |
Public Member Functions | |
virtual Property * | Copy (void) const |
Returns a new copy of the property (mainly for Undo/Redo and transactions). | |
virtual unsigned int | getMemSize (void) const |
This method is used to get the size of objects It is not meant to have the exact size, it is more or less an estimation which runs fast! Is it two bytes or a GB? This method is defined in Base::Persistence. | |
virtual PyObject * | getPyObject (void) |
This method returns the Python wrapper for a C++ object. | |
virtual int | getSize (void) const |
const std::vector< std::string > & | getSubValues (void) const |
virtual Base::Type | getTypeId (void) const |
const std::vector < DocumentObject * > & | getValues (void) const |
SubSet | operator[] (const int idx) const |
virtual void | Paste (const Property &from) |
PropertyLinkSubList () | |
A constructor. | |
virtual void | Restore (Base::XMLReader &reader) |
This method is used to restore properties from an XML document. | |
virtual void | Save (Base::Writer &writer) const |
This method is used to save properties to an XML document. | |
virtual void | setPyObject (PyObject *) |
virtual void | setSize (int newSize) |
void | setValue (DocumentObject *, const char *) |
Sets the property. | |
void | setValues (const std::vector< DocumentObject * > &, const std::vector< std::string > &) |
void | setValues (const std::vector< DocumentObject * > &, const std::vector< const char * > &) |
virtual | ~PropertyLinkSubList () |
A destructor. | |
Static Public Member Functions | |
static void * | create (void) |
static Base::Type | getClassTypeId (void) |
static void | init (void) |
Definition at line 221 of file PropertyLinks.h.
PropertyLinkSubList::PropertyLinkSubList | ( | ) |
A constructor.
A more elaborate description of the constructor.
Definition at line 490 of file PropertyLinks.cpp.
Referenced by Copy().
PropertyLinkSubList::~PropertyLinkSubList | ( | ) | [virtual] |
A destructor.
A more elaborate description of the destructor.
Definition at line 495 of file PropertyLinks.cpp.
Property * PropertyLinkSubList::Copy | ( | void | ) | const [virtual] |
Returns a new copy of the property (mainly for Undo/Redo and transactions).
Implements App::Property.
Definition at line 653 of file PropertyLinks.cpp.
References draftTools::p, and PropertyLinkSubList().
void * App::PropertyLinkSubList::create | ( | void | ) | [static] |
Reimplemented from App::PropertyLists.
Definition at line 484 of file PropertyLinks.cpp.
Base::Type App::PropertyLinkSubList::getClassTypeId | ( | void | ) | [static] |
Reimplemented from App::PropertyLists.
Definition at line 484 of file PropertyLinks.cpp.
unsigned int PropertyLinkSubList::getMemSize | ( | void | ) | const [virtual] |
This method is used to get the size of objects It is not meant to have the exact size, it is more or less an estimation which runs fast! Is it two bytes or a GB? This method is defined in Base::Persistence.
Reimplemented from App::Property.
Definition at line 669 of file PropertyLinks.cpp.
References getSize().
PyObject * PropertyLinkSubList::getPyObject | ( | void | ) | [virtual] |
This method returns the Python wrapper for a C++ object.
It's in the responsibility of the programmer to do the correct reference counting. Basically there are two ways how to implement that: Either always return a new Python object then reference counting is not a matter or return always the same Python object then the reference counter must be incremented by one. However, it's absolutely forbidden to return always the same Python object without incrementing the reference counter.
The default implementation returns 'None'.
Reimplemented from Base::BaseClass.
Definition at line 542 of file PropertyLinks.cpp.
References RobotExampleTrajectoryOutOfShapes::count, getSize(), Py::new_reference_to(), and draftlibs::fcvec::tup().
int PropertyLinkSubList::getSize | ( | void | ) | const [virtual] |
Implements App::PropertyLists.
Definition at line 506 of file PropertyLinks.cpp.
Referenced by getMemSize(), getPyObject(), and Save().
const std::vector<std::string>& App::PropertyLinkSubList::getSubValues | ( | void | ) | const [inline] |
Definition at line 263 of file PropertyLinks.h.
Referenced by Sketcher::SketchObject::addExternal().
Base::Type App::PropertyLinkSubList::getTypeId | ( | void | ) | const [virtual] |
Reimplemented from App::PropertyLists.
Definition at line 484 of file PropertyLinks.cpp.
Referenced by Restore().
const std::vector<DocumentObject*>& App::PropertyLinkSubList::getValues | ( | void | ) | const [inline] |
Definition at line 259 of file PropertyLinks.h.
Referenced by Sketcher::SketchObject::addExternal().
void App::PropertyLinkSubList::init | ( | void | ) | [static] |
Reimplemented from App::PropertyLists.
Definition at line 484 of file PropertyLinks.cpp.
SubSet App::PropertyLinkSubList::operator[] | ( | const int | idx | ) | const [inline] |
Definition at line 255 of file PropertyLinks.h.
void PropertyLinkSubList::Paste | ( | const Property & | from | ) | [virtual] |
Definition at line 661 of file PropertyLinks.cpp.
References App::Property::aboutToSetValue(), and App::Property::hasSetValue().
void PropertyLinkSubList::Restore | ( | Base::XMLReader & | ) | [virtual] |
This method is used to restore properties from an XML document.
It uses the XMLReader class, which bases on SAX, to read the in Save() written information. Again the Vector as an example:
void PropertyVector::Restore(Base::XMLReader &reader) { // read my Element reader.readElement("PropertyVector"); // get the value of my Attribute _cVec.x = (float)reader.getAttributeAsFloat("valueX"); _cVec.y = (float)reader.getAttributeAsFloat("valueY"); _cVec.z = (float)reader.getAttributeAsFloat("valueZ"); }
Implements Base::Persistence.
Definition at line 617 of file PropertyLinks.cpp.
References Base::Console(), RobotExampleTrajectoryOutOfShapes::count, Base::XMLReader::getAttribute(), Base::XMLReader::getAttributeAsInteger(), App::PropertyContainer::getClassTypeId(), App::Property::getContainer(), App::DocumentObject::getDocument(), App::Document::getObject(), getTypeId(), Base::BaseClass::isDerivedFrom(), Base::XMLReader::readElement(), Base::XMLReader::readEndElement(), setValues(), and Base::ConsoleSingleton::Warning().
void PropertyLinkSubList::Save | ( | Base::Writer & | ) | const [virtual] |
This method is used to save properties to an XML document.
A good example you'll find in PropertyStandard.cpp, e.g. the vector:
void PropertyVector::Save (Writer &writer) const { writer << writer.ind() << "<PropertyVector valueX=\"" << _cVec.x << "\" valueY=\"" << _cVec.y << "\" valueZ=\"" << _cVec.z <<"\"/>" << endl; }
The writer.ind() expression writes the indention, just for pretty printing of the XML. As you see, the writing of the XML document is not done with a DOM implementation because of performance reasons. Therefore the programmer has to take care that a valid XML document is written. This means closing tags and writing UTF-8.
Implements Base::Persistence.
Definition at line 603 of file PropertyLinks.cpp.
References Base::Writer::decInd(), getSize(), Base::Writer::incInd(), Base::Writer::ind(), and Base::Writer::Stream().
void PropertyLinkSubList::setPyObject | ( | PyObject * | value | ) | [virtual] |
Reimplemented from Base::BaseClass.
Definition at line 560 of file PropertyLinks.cpp.
References draftlibs::dxfReader::error(), App::DocumentObjectPy::getDocumentObjectPtr(), Py::Object::isString(), Py::Object::isTuple(), Py::Object::ptr(), setValues(), Py::SeqBase< T >::size(), draftlibs::fcvec::tup(), and App::DocumentObjectPy::Type.
void PropertyLinkSubList::setSize | ( | int | newSize | ) | [virtual] |
Implements App::PropertyLists.
Definition at line 500 of file PropertyLinks.cpp.
void PropertyLinkSubList::setValue | ( | DocumentObject * | lValue, | |
const char * | SubName | |||
) |
Sets the property.
Definition at line 511 of file PropertyLinks.cpp.
References App::Property::aboutToSetValue(), and App::Property::hasSetValue().
void PropertyLinkSubList::setValues | ( | const std::vector< DocumentObject * > & | lValue, | |
const std::vector< std::string > & | lSubNames | |||
) |
Definition at line 534 of file PropertyLinks.cpp.
References App::Property::aboutToSetValue(), and App::Property::hasSetValue().
void PropertyLinkSubList::setValues | ( | const std::vector< DocumentObject * > & | lValue, | |
const std::vector< const char * > & | lSubNames | |||
) |
Definition at line 523 of file PropertyLinks.cpp.
References App::Property::aboutToSetValue(), and App::Property::hasSetValue().
Referenced by Sketcher::SketchObject::addExternal(), Restore(), and setPyObject().