aNewLab = aNewData->label().Father();
}
// do the substitution
+ ADD_BACK_REF(theNew);
if (myRef->InsertAfter(aNewLab, aCurrentLab)) {
myRef->Remove(aCurrentLab);
+ REMOVE_BACK_REF(theCurrent);
}
+ owner()->data()->sendAttributeUpdated(this);
}
}
}
#include <TDF_AttributeDelta.hxx>
#include <TDF_AttributeDeltaList.hxx>
#include <TDF_ListIteratorOfAttributeDeltaList.hxx>
+#include <TDF_ListIteratorOfLabelList.hxx>
#include <climits>
#ifndef WIN32
aDelta = theDoc->GetRedos().First();
else
aDelta = theDoc->GetUndos().Last();
- aDelta->Labels(theDelta);
+ TDF_LabelList aDeltaList;
+ aDelta->Labels(aDeltaList); // it clears list, so, use new one and then append to the result
+ for(TDF_ListIteratorOfLabelList aListIter(aDeltaList); aListIter.More(); aListIter.Next()) {
+ theDelta.Append(aListIter.Value());
+ }
// add also label of the modified attributes
const TDF_AttributeDeltaList& anAttrs = aDelta->AttributeDeltas();
for (TDF_ListIteratorOfAttributeDeltaList anAttr(anAttrs); anAttr.More(); anAttr.Next()) {