Skip to content
Snippets Groups Projects
Commit ff8c5e92 authored by Mikhail Svechnikov's avatar Mikhail Svechnikov
Browse files

SpecularBeamInclinationItem: upd r/w

parent 092582d3
No related branches found
No related tags found
1 merge request!1197GUI: serialization refactoring part 5
...@@ -27,6 +27,7 @@ namespace Tag { ...@@ -27,6 +27,7 @@ namespace Tag {
const QString UniformAxis("UniformAxis"); const QString UniformAxis("UniformAxis");
const QString PointwiseAxis("PointwiseAxis"); const QString PointwiseAxis("PointwiseAxis");
const QString BeamInclinationDistribution("BeamInclinationDistribution"); const QString BeamInclinationDistribution("BeamInclinationDistribution");
const QString IsUniformAxis("IsUniformAxis");
} // namespace Tag } // namespace Tag
...@@ -79,7 +80,6 @@ void SpecularBeamInclinationItem::serialize(Streamer& s) ...@@ -79,7 +80,6 @@ void SpecularBeamInclinationItem::serialize(Streamer& s)
{ {
s.assertVersion(0); s.assertVersion(0);
m_distribution.rwSelected(s, Tag::BeamInclinationDistribution); m_distribution.rwSelected(s, Tag::BeamInclinationDistribution);
Serialize::rwValue(s, "currentAxisIsUniformAxis", m_currentAxisIsUniformAxis);
// r/w axes // r/w axes
if (auto* w = s.xmlWriter()) if (auto* w = s.xmlWriter())
...@@ -94,43 +94,59 @@ void SpecularBeamInclinationItem::serialize(Streamer& s) ...@@ -94,43 +94,59 @@ void SpecularBeamInclinationItem::serialize(Streamer& s)
} }
} }
void SpecularBeamInclinationItem::writeTo(QXmlStreamWriter* writer) const void SpecularBeamInclinationItem::writeTo(QXmlStreamWriter* w) const
{ {
XML::writeAttribute(w, XML::Attrib::version, uint(1));
// is uniform axis?
w->writeStartElement(Tag::IsUniformAxis);
XML::writeAttribute(w, XML::Attrib::value, m_currentAxisIsUniformAxis);
w->writeEndElement();
// uniform axis // uniform axis
if (m_uniformAlphaAxis) { if (m_uniformAlphaAxis) {
writer->writeStartElement(Tag::UniformAxis); w->writeStartElement(Tag::UniformAxis);
m_uniformAlphaAxis->writeTo(writer); m_uniformAlphaAxis->writeTo(w);
writer->writeEndElement(); w->writeEndElement();
} }
// pointwise axis // pointwise axis
if (m_pointwiseAlphaAxis) { if (m_pointwiseAlphaAxis) {
writer->writeStartElement(Tag::PointwiseAxis); w->writeStartElement(Tag::PointwiseAxis);
m_pointwiseAlphaAxis->writeTo(writer); m_pointwiseAlphaAxis->writeTo(w);
writer->writeEndElement(); w->writeEndElement();
} }
} }
void SpecularBeamInclinationItem::readFrom(QXmlStreamReader* reader) void SpecularBeamInclinationItem::readFrom(QXmlStreamReader* r)
{ {
while (reader->readNextStartElement()) { const uint version = XML::readUIntAttribute(r, XML::Attrib::version);
Q_UNUSED(version)
while (r->readNextStartElement()) {
QString tag = r->name().toString();
// is uniform axis?
if (tag == Tag::IsUniformAxis) {
XML::readAttribute(r, XML::Attrib::value, &m_currentAxisIsUniformAxis);
XML::gotoEndElementOfTag(r, tag);
// uniform axis // uniform axis
if (reader->name() == Tag::UniformAxis) { } else if (tag == Tag::UniformAxis) {
m_uniformAlphaAxis = std::make_unique<BasicAxisItem>(); m_uniformAlphaAxis = std::make_unique<BasicAxisItem>();
setAxisPresentationDefaults(m_uniformAlphaAxis.get()); setAxisPresentationDefaults(m_uniformAlphaAxis.get());
m_uniformAlphaAxis->readFrom(reader); m_uniformAlphaAxis->readFrom(r);
XML::gotoEndElementOfTag(reader, Tag::UniformAxis); XML::gotoEndElementOfTag(r, tag);
// pointwise axis // pointwise axis
} else if (reader->name() == Tag::PointwiseAxis) { } else if (tag == Tag::PointwiseAxis) {
m_pointwiseAlphaAxis = std::make_unique<PointwiseAxisItem>(); m_pointwiseAlphaAxis = std::make_unique<PointwiseAxisItem>();
setAxisPresentationDefaults(m_pointwiseAlphaAxis.get()); setAxisPresentationDefaults(m_pointwiseAlphaAxis.get());
m_pointwiseAlphaAxis->readFrom(reader); m_pointwiseAlphaAxis->readFrom(r);
XML::gotoEndElementOfTag(reader, Tag::PointwiseAxis); XML::gotoEndElementOfTag(r, tag);
} else } else
reader->skipCurrentElement(); r->skipCurrentElement();
} }
} }
......
...@@ -28,8 +28,8 @@ public: ...@@ -28,8 +28,8 @@ public:
explicit SpecularBeamInclinationItem(const InstrumentItem* owningInstrument); explicit SpecularBeamInclinationItem(const InstrumentItem* owningInstrument);
void serialize(Streamer& s) override; void serialize(Streamer& s) override;
void writeTo(QXmlStreamWriter* writer) const; void writeTo(QXmlStreamWriter* w) const;
void readFrom(QXmlStreamReader* reader); void readFrom(QXmlStreamReader* r);
double scaleFactor() const override; double scaleFactor() const override;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment