diff --git a/GUI/Model/Data/IntensityDataItem.cpp b/GUI/Model/Data/IntensityDataItem.cpp index 28dd9feb4552330caefec412b31885e3862849a3..edf7c52b87c2eda4dcf7a403cb8bc636b7ce4b09 100644 --- a/GUI/Model/Data/IntensityDataItem.cpp +++ b/GUI/Model/Data/IntensityDataItem.cpp @@ -34,12 +34,6 @@ const QString Gradient("Gradient"); } // namespace Tag -namespace Attrib { - -const QString value("value"); - -} // namespace Attrib - // gradient map for colormaps const QMap<QString, QCPColorGradient::GradientPreset> gradient_map = { {"Grayscale", QCPColorGradient::gpGrayscale}, @@ -321,11 +315,13 @@ void IntensityDataItem::resetView() void IntensityDataItem::writeTo(QXmlStreamWriter* writer) const { + XML::writeAttribute(writer, XML::Attrib::version, uint(1)); + DataItem::writeBaseData(writer); // interpolation writer->writeStartElement(Tag::Interpolation); - XML::writeAttribute(writer, Attrib::value, m_isInterpolated); + XML::writeAttribute(writer, XML::Attrib::value, m_isInterpolated); writer->writeEndElement(); // gradient @@ -341,27 +337,29 @@ void IntensityDataItem::writeTo(QXmlStreamWriter* writer) const void IntensityDataItem::readFrom(QXmlStreamReader* reader) { + uint version = XML::readUIntAttribute(reader, XML::Attrib::version); + Q_UNUSED(version) + while (reader->readNextStartElement()) { + QString name = reader->name().toString(); // interpolation - if (reader->name() == Tag::Interpolation) { - XML::readAttribute(reader, Attrib::value, &m_isInterpolated); - XML::gotoEndElementOfTag(reader, Tag::Interpolation); + if (name == Tag::Interpolation) { + XML::readAttribute(reader, XML::Attrib::value, &m_isInterpolated); + XML::gotoEndElementOfTag(reader, name); // gradient - } else if (reader->name() == Tag::Gradient) { + } else if (name == Tag::Gradient) { m_gradient.readFrom(reader); - XML::gotoEndElementOfTag(reader, Tag::Gradient); + XML::gotoEndElementOfTag(reader, name); // z axis - } else if (reader->name() == Tag::ZAxis) { + } else if (name == Tag::ZAxis) { m_zAxis->readFrom(reader); - XML::gotoEndElementOfTag(reader, Tag::ZAxis); + XML::gotoEndElementOfTag(reader, name); - // types from base class - } else { + } else DataItem::readBaseData(reader); - } } } diff --git a/GUI/Support/XML/UtilXML.h b/GUI/Support/XML/UtilXML.h index 15dd258fbe83a84883bd1b8ffbdc818342aecadf..33c380db881113aa436d08c272913284cf7991be 100644 --- a/GUI/Support/XML/UtilXML.h +++ b/GUI/Support/XML/UtilXML.h @@ -27,6 +27,13 @@ class QUuid; namespace XML { +namespace Attrib { + +const QString value("value"); +const QString version("version"); + +} // namespace Attrib + namespace Tags { constexpr auto Id("id"); constexpr auto TagAttribute("Tag");