MCPcopy Create free account
hub / github.com/FreeCAD/FreeCAD / removeDynamicProperty

Method removeDynamicProperty

src/App/DocumentObject.cpp:825–856  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

823}
824
825bool DocumentObject::removeDynamicProperty(const char* name)
826{
827 if (!_pDoc || testStatus(ObjectStatus::Destroy)) {
828 return false;
829 }
830
831 Property* prop = getDynamicPropertyByName(name);
832 if (!prop || prop->testStatus(App::Property::LockDynamic)) {
833 return false;
834 }
835
836 if (prop->isDerivedFrom<PropertyLinkBase>()) {
837 clearOutListCache();
838 }
839
840 _pDoc->addOrRemovePropertyOfObject(this, prop, false);
841
842 auto expressions = ExpressionEngine.getExpressions();
843 std::vector<App::ObjectIdentifier> removeExpr;
844
845 for (const auto& it : expressions) {
846 if (it.first.getProperty() == prop) {
847 removeExpr.push_back(it.first);
848 }
849 }
850
851 for (const auto& it : removeExpr) {
852 ExpressionEngine.setValue(it, std::shared_ptr<Expression>());
853 }
854
855 return TransactionalObject::removeDynamicProperty(name);
856}
857
858bool DocumentObject::renameDynamicProperty(Property* prop, const char* name)
859{

Callers 15

removePropertyMethod · 0.45
removePropertyMethod · 0.45
extensionExecuteMethod · 0.45
setupCopyOnChangeMethod · 0.45
applyChnMethod · 0.45
removeDynamicPropertyFunction · 0.45
setAliasMethod · 0.45
clearAllMethod · 0.45
setFloatPropertyMethod · 0.45
setIntegerPropertyMethod · 0.45
setQuantityPropertyMethod · 0.45
setStringPropertyMethod · 0.45

Calls 9

getDynamicPropertyByNameFunction · 0.85
removeDynamicPropertyFunction · 0.85
testStatusFunction · 0.70
testStatusMethod · 0.45
getExpressionsMethod · 0.45
getPropertyMethod · 0.45
push_backMethod · 0.45
setValueMethod · 0.45

Tested by

no test coverage detected