From 234f63623cf536ed55f297cc0c49d13f2bda3a18 Mon Sep 17 00:00:00 2001 From: Mikhail Svechnikov <m.svechnikov@fz-juelich.de> Date: Thu, 8 Dec 2022 14:17:11 +0100 Subject: [PATCH] DataItem: make readFrom and writeTo pure virtual --- GUI/Model/Data/DataItem.cpp | 10 ++-------- GUI/Model/Data/DataItem.h | 7 ++++--- GUI/Model/Data/IntensityDataItem.cpp | 4 ++-- GUI/Model/Data/RealItem.cpp | 6 +++--- GUI/Model/Data/SpecularDataItem.cpp | 4 ++-- GUI/Model/Project/ProjectDocument.cpp | 6 +++--- 6 files changed, 16 insertions(+), 21 deletions(-) diff --git a/GUI/Model/Data/DataItem.cpp b/GUI/Model/Data/DataItem.cpp index b541159594a..9fea9ff55af 100644 --- a/GUI/Model/Data/DataItem.cpp +++ b/GUI/Model/Data/DataItem.cpp @@ -267,7 +267,7 @@ void DataItem::setAxesRangeToData() setUpperY(yMax()); } -void DataItem::writeTo(QXmlStreamWriter* writer) const +void DataItem::writeBaseData(QXmlStreamWriter *writer) const { // file name writer->writeStartElement(Tag::FileName); @@ -290,13 +290,7 @@ void DataItem::writeTo(QXmlStreamWriter* writer) const writer->writeEndElement(); } -void DataItem::readFrom(QXmlStreamReader* reader) -{ - while (reader->readNextStartElement()) - readBasicTags(reader); -} - -void DataItem::readBasicTags(QXmlStreamReader* reader) +void DataItem::readBaseData(QXmlStreamReader* reader) { // file name if (reader->name() == Tag::FileName) { diff --git a/GUI/Model/Data/DataItem.h b/GUI/Model/Data/DataItem.h index 0c5756fef1f..e220ee1693a 100644 --- a/GUI/Model/Data/DataItem.h +++ b/GUI/Model/Data/DataItem.h @@ -123,9 +123,10 @@ public: protected: // write/read - virtual void writeTo(QXmlStreamWriter* writer) const; - virtual void readFrom(QXmlStreamReader* reader); - void readBasicTags(QXmlStreamReader* reader); + virtual void writeTo(QXmlStreamWriter* writer) const = 0; + virtual void readFrom(QXmlStreamReader* reader) = 0; + void writeBaseData(QXmlStreamWriter* writer) const; + void readBaseData(QXmlStreamReader* reader); signals: void datafieldChanged(); diff --git a/GUI/Model/Data/IntensityDataItem.cpp b/GUI/Model/Data/IntensityDataItem.cpp index 8214f5d9295..28dd9feb455 100644 --- a/GUI/Model/Data/IntensityDataItem.cpp +++ b/GUI/Model/Data/IntensityDataItem.cpp @@ -321,7 +321,7 @@ void IntensityDataItem::resetView() void IntensityDataItem::writeTo(QXmlStreamWriter* writer) const { - DataItem::writeTo(writer); + DataItem::writeBaseData(writer); // interpolation writer->writeStartElement(Tag::Interpolation); @@ -360,7 +360,7 @@ void IntensityDataItem::readFrom(QXmlStreamReader* reader) // types from base class } else { - DataItem::readBasicTags(reader); + DataItem::readBaseData(reader); } } } diff --git a/GUI/Model/Data/RealItem.cpp b/GUI/Model/Data/RealItem.cpp index 64dff323bbf..f4a430f79ed 100644 --- a/GUI/Model/Data/RealItem.cpp +++ b/GUI/Model/Data/RealItem.cpp @@ -44,7 +44,7 @@ const QString NativeDataUnits("NativeDataUnits"); namespace Attrib { -const QString version("version"); +const QString BA_Version("version"); const QString value("value"); } // namespace Attrib @@ -351,7 +351,7 @@ void RealItem::writeTo(QXmlStreamWriter* writer) const QByteArray a = serializeBinaryData(); if (!a.isEmpty()) { writer->writeStartElement(Tag::BinaryData); - writer->writeAttribute(Attrib::version, "1"); + writer->writeAttribute(Attrib::BA_Version, "1"); writer->writeCharacters(a.toBase64()); writer->writeEndElement(); } @@ -400,7 +400,7 @@ void RealItem::readFrom(QXmlStreamReader* reader) // binary data if (reader->name() == Tag::BinaryData) { - if (reader->attributes().value(Attrib::version).toInt() == 1) { + if (reader->attributes().value(Attrib::BA_Version).toInt() == 1) { QString valueAsBase64 = reader->readElementText(QXmlStreamReader::SkipChildElements); const auto data = QByteArray::fromBase64( diff --git a/GUI/Model/Data/SpecularDataItem.cpp b/GUI/Model/Data/SpecularDataItem.cpp index 27e0bdddd87..852217314bc 100644 --- a/GUI/Model/Data/SpecularDataItem.cpp +++ b/GUI/Model/Data/SpecularDataItem.cpp @@ -215,7 +215,7 @@ void SpecularDataItem::setRealPlotStyle() void SpecularDataItem::writeTo(QXmlStreamWriter* writer) const { - DataItem::writeTo(writer); + DataItem::writeBaseData(writer); // line type writer->writeStartElement(Tag::LineType); @@ -276,7 +276,7 @@ void SpecularDataItem::readFrom(QXmlStreamReader* reader) // types from base class } else { - DataItem::readBasicTags(reader); + DataItem::readBaseData(reader); } } } diff --git a/GUI/Model/Project/ProjectDocument.cpp b/GUI/Model/Project/ProjectDocument.cpp index ab653cde70a..1f32de750e9 100644 --- a/GUI/Model/Project/ProjectDocument.cpp +++ b/GUI/Model/Project/ProjectDocument.cpp @@ -50,7 +50,7 @@ const QString Instruments("Instruments"); namespace Attrib { -const QString version("Version"); +const QString BA_Version("BA_Version"); const QString projectName("projectName"); } // namespace Attrib @@ -319,7 +319,7 @@ ProjectDocument::ReadResult ProjectDocument::readProject(QIODevice* device, if (reader.isStartElement()) { if (reader.name() == Tag::BornAgain) { Streamer(&reader).assertVersion(2); - m_currentVersion = reader.attributes().value(Attrib::version).toString(); + m_currentVersion = reader.attributes().value(Attrib::BA_Version).toString(); if (!GUI::Util::Path::isVersionMatchMinimal(m_currentVersion, minimal_supported_version)) { @@ -392,7 +392,7 @@ void ProjectDocument::writeTo(QIODevice* device) writer.writeStartDocument(); writer.writeStartElement(Tag::BornAgain); QString version_string = GUI::Util::Path::getBornAgainVersionString(); - writer.writeAttribute(Attrib::version, version_string); + writer.writeAttribute(Attrib::BA_Version, version_string); Streamer(&writer).writeVersion(2); writer.writeStartElement(Tag::DocumentInfo); -- GitLab