Mercurial > hg > svcore
diff data/model/EditableDenseThreeDimensionalModel.cpp @ 1677:f97d64b8674f single-point
Make XmlExportables store their export IDs and always obtain a new one, avoiding reuse when an object is allocated at the same heap location as a previous one. This makes the ID system stable enough to be used in the export tests.
author | Chris Cannam |
---|---|
date | Thu, 28 Mar 2019 11:55:02 +0000 |
parents | 48e9f538e6e9 |
children | 0d89abd631ac |
line wrap: on
line diff
--- a/data/model/EditableDenseThreeDimensionalModel.cpp Thu Mar 28 10:39:24 2019 +0000 +++ b/data/model/EditableDenseThreeDimensionalModel.cpp Thu Mar 28 11:55:02 2019 +0000 @@ -526,7 +526,11 @@ { QReadLocker locker(&m_lock); - // For historical reasons we read and write "resolution" as "windowSize" + // For historical reasons we read and write "resolution" as "windowSize". + + // Our dataset doesn't have its own export ID, we just use + // ours. Actually any model could do that, since datasets aren't + // in the same id-space as models when re-read SVDEBUG << "EditableDenseThreeDimensionalModel::toXml" << endl; @@ -537,13 +541,13 @@ .arg(m_yBinCount) .arg(m_minimum) .arg(m_maximum) - .arg(getObjectExportId(&m_data)) + .arg(getExportId()) .arg(m_startFrame) .arg(extraAttributes)); out << indent; out << QString("<dataset id=\"%1\" dimensions=\"3\" separator=\" \">\n") - .arg(getObjectExportId(&m_data)); + .arg(getExportId()); for (int i = 0; i < (int)m_binNames.size(); ++i) { if (m_binNames[i] != "") {