Mercurial > hg > svapp
changeset 667:31ea416fea3c single-point
Ensure main model also gets aligned (as reference)
author | Chris Cannam |
---|---|
date | Fri, 26 Apr 2019 18:39:46 +0100 |
parents | 21673429dba5 |
children | dac3781826da 331be52cd473 |
files | framework/Document.cpp framework/MainWindowBase.cpp |
diffstat | 2 files changed, 14 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/framework/Document.cpp Wed Apr 24 11:45:31 2019 +0100 +++ b/framework/Document.cpp Fri Apr 26 18:39:46 2019 +0100 @@ -579,6 +579,8 @@ if (m_autoAlignment) { SVDEBUG << "Document::setMainModel: auto-alignment is on, aligning model if possible" << endl; alignModel(m_mainModel); + } else { + SVDEBUG << "Document::setMainModel: auto-alignment is off" << endl; } emit mainModelChanged(m_mainModel); @@ -1101,7 +1103,7 @@ void Document::alignModel(Model *model) { - SVDEBUG << "Document::alignModel(" << model << ")" << endl; + SVDEBUG << "Document::alignModel(" << model << ") (main model is " << m_mainModel << ")" << endl; if (!m_mainModel) { SVDEBUG << "(no main model to align to)" << endl; @@ -1111,7 +1113,7 @@ RangeSummarisableTimeValueModel *rm = dynamic_cast<RangeSummarisableTimeValueModel *>(model); if (!rm) { - SVDEBUG << "(main model is not alignable-to)" << endl; + SVDEBUG << "(model " << rm << " is not an alignable sort)" << endl; return; } @@ -1125,11 +1127,18 @@ // it possible to distinguish between the reference and any // 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; + SVDEBUG << "Document::alignModel(" << model << "): is main model, setting alignment to itself appropriately" << endl; rm->setAlignment(new AlignmentModel(model, model, nullptr)); return; } + SVDEBUG << "Document::alignModel: aligning..." << endl; + if (rm->getAlignmentReference() != nullptr) { + SVDEBUG << "(Note: model " << rm << " is currently aligned to model " + << rm->getAlignmentReference() << "; this will replace that)" + << endl; + } + if (!m_align->alignModel(this, m_mainModel, rm)) { SVCERR << "Alignment failed: " << m_align->getError() << endl; emit alignmentFailed(m_align->getError());
--- a/framework/MainWindowBase.cpp Wed Apr 24 11:45:31 2019 +0100 +++ b/framework/MainWindowBase.cpp Fri Apr 26 18:39:46 2019 +0100 @@ -2680,6 +2680,8 @@ connect(m_document, SIGNAL(alignmentFailed(QString)), this, SLOT(alignmentFailed(QString))); + m_document->setAutoAlignment(m_viewManager->getAlignMode()); + emit replacedDocument(); }