Mercurial > hg > svcore
comparison 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 |
comparison
equal
deleted
inserted
replaced
1676:3b51df7695a4 | 1677:f97d64b8674f |
---|---|
524 QString indent, | 524 QString indent, |
525 QString extraAttributes) const | 525 QString extraAttributes) const |
526 { | 526 { |
527 QReadLocker locker(&m_lock); | 527 QReadLocker locker(&m_lock); |
528 | 528 |
529 // For historical reasons we read and write "resolution" as "windowSize" | 529 // For historical reasons we read and write "resolution" as "windowSize". |
530 | |
531 // Our dataset doesn't have its own export ID, we just use | |
532 // ours. Actually any model could do that, since datasets aren't | |
533 // in the same id-space as models when re-read | |
530 | 534 |
531 SVDEBUG << "EditableDenseThreeDimensionalModel::toXml" << endl; | 535 SVDEBUG << "EditableDenseThreeDimensionalModel::toXml" << endl; |
532 | 536 |
533 Model::toXml | 537 Model::toXml |
534 (out, indent, | 538 (out, indent, |
535 QString("type=\"dense\" dimensions=\"3\" windowSize=\"%1\" yBinCount=\"%2\" minimum=\"%3\" maximum=\"%4\" dataset=\"%5\" startFrame=\"%6\" %7") | 539 QString("type=\"dense\" dimensions=\"3\" windowSize=\"%1\" yBinCount=\"%2\" minimum=\"%3\" maximum=\"%4\" dataset=\"%5\" startFrame=\"%6\" %7") |
536 .arg(m_resolution) | 540 .arg(m_resolution) |
537 .arg(m_yBinCount) | 541 .arg(m_yBinCount) |
538 .arg(m_minimum) | 542 .arg(m_minimum) |
539 .arg(m_maximum) | 543 .arg(m_maximum) |
540 .arg(getObjectExportId(&m_data)) | 544 .arg(getExportId()) |
541 .arg(m_startFrame) | 545 .arg(m_startFrame) |
542 .arg(extraAttributes)); | 546 .arg(extraAttributes)); |
543 | 547 |
544 out << indent; | 548 out << indent; |
545 out << QString("<dataset id=\"%1\" dimensions=\"3\" separator=\" \">\n") | 549 out << QString("<dataset id=\"%1\" dimensions=\"3\" separator=\" \">\n") |
546 .arg(getObjectExportId(&m_data)); | 550 .arg(getExportId()); |
547 | 551 |
548 for (int i = 0; i < (int)m_binNames.size(); ++i) { | 552 for (int i = 0; i < (int)m_binNames.size(); ++i) { |
549 if (m_binNames[i] != "") { | 553 if (m_binNames[i] != "") { |
550 out << indent + " "; | 554 out << indent + " "; |
551 out << QString("<bin number=\"%1\" name=\"%2\"/>\n") | 555 out << QString("<bin number=\"%1\" name=\"%2\"/>\n") |