Mercurial > hg > svapp
diff framework/Document.cpp @ 665:e19c609a7bec
Update so Document owns the alignment model's input aggregate model
author | Chris Cannam |
---|---|
date | Thu, 04 Apr 2019 16:17:11 +0100 |
parents | e2715204feaa |
children | 21673429dba5 |
line wrap: on
line diff
--- a/framework/Document.cpp Wed Jan 09 15:25:09 2019 +0000 +++ b/framework/Document.cpp Thu Apr 04 16:17:11 2019 +0100 @@ -787,6 +787,12 @@ return; } +#ifdef DEBUG_DOCUMENT + SVDEBUG << "Document::releaseModel(" << model << ", type " + << model->getTypeName() << ", name \"" + << model->objectName() << "\")" << endl; +#endif + if (model == m_mainModel) { return; } @@ -803,7 +809,9 @@ } } } else if (m_aggregateModels.find(model) != m_aggregateModels.end()) { +#ifdef DEBUG_DOCUMENT SVDEBUG << "Document::releaseModel: is an aggregate model" << endl; +#endif toDelete = true; } else { SVCERR << "WARNING: Document::releaseModel: Unfound model " @@ -879,7 +887,7 @@ if (m_layers.find(layer) == m_layers.end()) { SVDEBUG << "Document::deleteLayer: Layer " - << layer << " (" << typeid(layer).name() << + << layer << " (typeid " << typeid(layer).name() << ") does not exist, or has already been deleted " << "(this may not be as serious as it sounds)" << endl; return; @@ -888,7 +896,7 @@ m_layers.erase(layer); #ifdef DEBUG_DOCUMENT - SVDEBUG << "Document::deleteLayer: Removing, now have " + SVDEBUG << "Document::deleteLayer: Removing (and about to release model), now have " << m_layers.size() << " layers" << endl; #endif @@ -1101,12 +1109,12 @@ // unaligned model just by looking at the model itself, // without also knowing what the main model is SVDEBUG << "Document::alignModel(" << model << "): is main model, setting appropriately" << endl; - rm->setAlignment(new AlignmentModel(model, model, nullptr, nullptr)); + rm->setAlignment(new AlignmentModel(model, model, nullptr)); return; } - if (!m_align->alignModel(m_mainModel, rm)) { - cerr << "Alignment failed: " << m_align->getError() << endl; + if (!m_align->alignModel(this, m_mainModel, rm)) { + SVCERR << "Alignment failed: " << m_align->getError() << endl; emit alignmentFailed(m_align->getError()); } }