DocumentObject: Added getOldLabel() method, preparation for renaming of object identifiers.

This commit is contained in:
Eivind Kvedalen 2015-09-17 00:54:39 +02:00 committed by wmayer
parent 3f0fc98d72
commit b052c21b16
2 changed files with 15 additions and 0 deletions

View File

@ -182,6 +182,12 @@ void DocumentObject::setDocument(App::Document* doc)
void DocumentObject::onBeforeChange(const Property* prop)
{
// Store current name in oldLabel, to be able to easily retrieve old name of document object later
// when renaming expressions.
if (prop == &Label)
oldLabel = static_cast<PropertyString*>(&Label)->getStrValue();
if (_pDoc)
_pDoc->onBeforeChangeProperty(this,prop);
}
@ -191,6 +197,10 @@ void DocumentObject::onChanged(const Property* prop)
{
if (_pDoc)
_pDoc->onChangedProperty(this,prop);
if (prop == &Label && _pDoc)
_pDoc->signalRenamedObject(*this);
if (prop->getType() & Prop_Output)
return;
// set object touched

View File

@ -160,6 +160,8 @@ public:
virtual void Save (Base::Writer &writer) const;
const std::string & getOldLabel() const { return oldLabel; }
protected:
/** get called by the document to recompute this feature
* Normaly this method get called in the processing of
@ -205,6 +207,9 @@ protected: // attributes
/// pointer to the document this object belongs to
App::Document* _pDoc;
/// Old label; used for renaming expressions
std::string oldLabel;
// pointer to the document name string (for performance)
const std::string *pcNameInDocument;
};