update expressions when relabelling a document object

This commit is contained in:
wmayer
2017-10-08 01:45:39 +02:00
parent e3d8daac4c
commit 88962a8c45
2 changed files with 42 additions and 6 deletions

View File

@@ -528,12 +528,19 @@ void DocumentObject::connectRelabelSignals()
if (ExpressionEngine.numExpressions() > 0) {
// Not already connected?
if (!onRelabledObjectConnection.connected())
onRelabledObjectConnection = getDocument()->signalRelabelObject.connect(boost::bind(&PropertyExpressionEngine::slotObjectRenamed, &ExpressionEngine, _1));
if (!onRelabledObjectConnection.connected()) {
onRelabledObjectConnection = getDocument()->signalRelabelObject
.connect(boost::bind(&PropertyExpressionEngine::slotObjectRenamed,
&ExpressionEngine, _1));
}
// Connect to signalDeletedObject, to properly track deletion of other objects that might be referenced in an expression
if (!onDeletedObjectConnection.connected())
onDeletedObjectConnection = getDocument()->signalDeletedObject.connect(boost::bind(&PropertyExpressionEngine::slotObjectDeleted, &ExpressionEngine, _1));
// Connect to signalDeletedObject, to properly track deletion of other objects
// that might be referenced in an expression
if (!onDeletedObjectConnection.connected()) {
onDeletedObjectConnection = getDocument()->signalDeletedObject
.connect(boost::bind(&PropertyExpressionEngine::slotObjectDeleted,
&ExpressionEngine, _1));
}
try {
// Crude method to resolve all expression dependencies