void PropertyExpressionEngine::slotObjectRenamed(const DocumentObject &obj) { #ifdef FC_PROPERTYEXPRESSIONENGINE_LOG std::clog << "Object " << obj.getOldLabel() << " renamed to " << obj.Label.getValue() << std::endl; #endif DocumentObject * docObj = freecad_dynamic_cast<DocumentObject>(getContainer()); /* In a document object, and on undo stack? */ if (!docObj || docObj->getNameInDocument() == 0) return; RelabelDocumentObjectExpressionVisitor v(boost::bind( &PropertyExpressionEngine::aboutToSetValue, this), boost::bind( &PropertyExpressionEngine::hasSetValue, this), obj.getOldLabel(), obj.Label.getStrValue()); for (ExpressionMap::iterator it = expressions.begin(); it != expressions.end(); ++it) { int changed = v.getChanged(); it->second.expression->visit(v); if (changed != v.getChanged()) expressionChanged(it->first); } }
void PropertyExpressionEngine::slotObjectRenamed(const DocumentObject &obj) { #ifdef FC_PROPERTYEXPRESSIONENGINE_LOG std::clog << "Object " << obj.getOldLabel() << " renamed to " << obj.Label.getValue() << std::endl; #endif RelabelDocumentObjectExpressionVisitor v(obj.getOldLabel(), obj.Label.getStrValue()); aboutToSetValue(); for (ExpressionMap::iterator it = expressions.begin(); it != expressions.end(); ++it) it->second.expression->visit(v); hasSetValue(); }