diff --git a/GUI/Model/Data/DataItem.cpp b/GUI/Model/Data/DataItem.cpp index 539f91baed9686ad067cf65291571e9e2cac185d..9f0b3440e532977407413981068d37653e2145e5 100644 --- a/GUI/Model/Data/DataItem.cpp +++ b/GUI/Model/Data/DataItem.cpp @@ -259,60 +259,60 @@ void DataItem::setAxesRangeToData() setUpperY(yMax()); } -void DataItem::writeTo(QXmlStreamWriter* writer) const +void DataItem::writeTo(QXmlStreamWriter* w) const { - XML::writeAttribute(writer, XML::Attrib::version, uint(1)); + XML::writeAttribute(w, XML::Attrib::version, uint(1)); // file name - writer->writeStartElement(Tag::FileName); - XML::writeAttribute(writer, XML::Attrib::value, m_fileName); - writer->writeEndElement(); + w->writeStartElement(Tag::FileName); + XML::writeAttribute(w, XML::Attrib::value, m_fileName); + w->writeEndElement(); // axes units - writer->writeStartElement(Tag::AxesUnits); - m_axesUnits.writeTo(writer); - writer->writeEndElement(); + w->writeStartElement(Tag::AxesUnits); + m_axesUnits.writeTo(w); + w->writeEndElement(); // x axis - writer->writeStartElement(Tag::XAxis); - m_xAxis->writeTo(writer); - writer->writeEndElement(); + w->writeStartElement(Tag::XAxis); + m_xAxis->writeTo(w); + w->writeEndElement(); // y axis - writer->writeStartElement(Tag::YAxis); - m_yAxis->writeTo(writer); - writer->writeEndElement(); + w->writeStartElement(Tag::YAxis); + m_yAxis->writeTo(w); + w->writeEndElement(); } -void DataItem::readFrom(QXmlStreamReader* reader) +void DataItem::readFrom(QXmlStreamReader* r) { - const uint version = XML::readUIntAttribute(reader, XML::Attrib::version); + const uint version = XML::readUIntAttribute(r, XML::Attrib::version); Q_UNUSED(version) - while (reader->readNextStartElement()) { - QString name = reader->name().toString(); + while (r->readNextStartElement()) { + QString name = r->name().toString(); // file name if (name == Tag::FileName) { - XML::readAttribute(reader, XML::Attrib::value, &m_fileName); - XML::gotoEndElementOfTag(reader, name); + XML::readAttribute(r, XML::Attrib::value, &m_fileName); + XML::gotoEndElementOfTag(r, name); // axes units } else if (name == Tag::AxesUnits) { - m_axesUnits.readFrom(reader); - XML::gotoEndElementOfTag(reader, name); + m_axesUnits.readFrom(r); + XML::gotoEndElementOfTag(r, name); // x axis } else if (name == Tag::XAxis) { - m_xAxis->readFrom(reader); - XML::gotoEndElementOfTag(reader, name); + m_xAxis->readFrom(r); + XML::gotoEndElementOfTag(r, name); // y axis } else if (name == Tag::YAxis) { - m_yAxis->readFrom(reader); - XML::gotoEndElementOfTag(reader, name); + m_yAxis->readFrom(r); + XML::gotoEndElementOfTag(r, name); } else - reader->skipCurrentElement(); + r->skipCurrentElement(); } } diff --git a/GUI/Model/Data/DataItem.h b/GUI/Model/Data/DataItem.h index e9ee652da59fa9024a10e269972a9c47e2dfd060..ea4eaae38ae366a7299c27f91f4a8080486dd826 100644 --- a/GUI/Model/Data/DataItem.h +++ b/GUI/Model/Data/DataItem.h @@ -121,8 +121,8 @@ public: //! Set axes viewport to original data. virtual void resetView() = 0; - virtual void writeTo(QXmlStreamWriter* writer) const = 0; - virtual void readFrom(QXmlStreamReader* reader) = 0; + virtual void writeTo(QXmlStreamWriter* w) const; + virtual void readFrom(QXmlStreamReader* r); signals: void datafieldChanged(); diff --git a/GUI/Model/Data/IntensityDataItem.cpp b/GUI/Model/Data/IntensityDataItem.cpp index 77195d8b52e4f2119743bb872d4ee3915834923f..e48ea08e8364429e497436e452c43fbf2c25e53e 100644 --- a/GUI/Model/Data/IntensityDataItem.cpp +++ b/GUI/Model/Data/IntensityDataItem.cpp @@ -314,72 +314,72 @@ void IntensityDataItem::resetView() computeDataRange(); } -void IntensityDataItem::writeTo(QXmlStreamWriter* writer) const +void IntensityDataItem::writeTo(QXmlStreamWriter* w) const { - XML::writeAttribute(writer, XML::Attrib::version, uint(1)); + XML::writeAttribute(w, XML::Attrib::version, uint(1)); // parameters from base class - writer->writeStartElement(Tag::BaseData); - DataItem::writeTo(writer); - writer->writeEndElement(); + w->writeStartElement(Tag::BaseData); + DataItem::writeTo(w); + w->writeEndElement(); // interpolation - writer->writeStartElement(Tag::Interpolation); - XML::writeAttribute(writer, XML::Attrib::value, m_isInterpolated); - writer->writeEndElement(); + w->writeStartElement(Tag::Interpolation); + XML::writeAttribute(w, XML::Attrib::value, m_isInterpolated); + w->writeEndElement(); // gradient - writer->writeStartElement(Tag::Gradient); - m_gradient.writeTo(writer); - writer->writeEndElement(); + w->writeStartElement(Tag::Gradient); + m_gradient.writeTo(w); + w->writeEndElement(); // z axis - writer->writeStartElement(Tag::ZAxis); - m_zAxis->writeTo(writer); - writer->writeEndElement(); + w->writeStartElement(Tag::ZAxis); + m_zAxis->writeTo(w); + w->writeEndElement(); } -void IntensityDataItem::readFrom(QXmlStreamReader* reader) +void IntensityDataItem::readFrom(QXmlStreamReader* r) { - const uint version = XML::readUIntAttribute(reader, XML::Attrib::version); + const uint version = XML::readUIntAttribute(r, XML::Attrib::version); Q_UNUSED(version) - while (reader->readNextStartElement()) { - QString name = reader->name().toString(); + while (r->readNextStartElement()) { + QString name = r->name().toString(); // parameters from base class if (name == Tag::BaseData) { - DataItem::readFrom(reader); - XML::gotoEndElementOfTag(reader, name); + DataItem::readFrom(r); + XML::gotoEndElementOfTag(r, name); // interpolation } else if (name == Tag::Interpolation) { - XML::readAttribute(reader, XML::Attrib::value, &m_isInterpolated); - XML::gotoEndElementOfTag(reader, name); + XML::readAttribute(r, XML::Attrib::value, &m_isInterpolated); + XML::gotoEndElementOfTag(r, name); // gradient } else if (name == Tag::Gradient) { - m_gradient.readFrom(reader); - XML::gotoEndElementOfTag(reader, name); + m_gradient.readFrom(r); + XML::gotoEndElementOfTag(r, name); // z axis } else if (name == Tag::ZAxis) { - m_zAxis->readFrom(reader); - XML::gotoEndElementOfTag(reader, name); + m_zAxis->readFrom(r); + XML::gotoEndElementOfTag(r, name); } else - reader->skipCurrentElement(); + r->skipCurrentElement(); } } -void IntensityDataItem::writeNonSessionItems(QXmlStreamWriter* writer) const +void IntensityDataItem::writeNonSessionItems(QXmlStreamWriter* w) const { - writeTo(writer); + writeTo(w); } -void IntensityDataItem::readNonSessionItems(QXmlStreamReader* reader) +void IntensityDataItem::readNonSessionItems(QXmlStreamReader* r) { - readFrom(reader); + readFrom(r); } MaskContainerItem* IntensityDataItem::maskContainerItem() diff --git a/GUI/Model/Data/IntensityDataItem.h b/GUI/Model/Data/IntensityDataItem.h index d5aa362419d899814844929043c4653ecea34eb8..190d940a230bddb372b3a27be5db5aa6a303b36d 100644 --- a/GUI/Model/Data/IntensityDataItem.h +++ b/GUI/Model/Data/IntensityDataItem.h @@ -107,11 +107,11 @@ public: // write/read - void writeTo(QXmlStreamWriter* writer) const override; - void readFrom(QXmlStreamReader* reader) override; + void writeTo(QXmlStreamWriter* w) const override; + void readFrom(QXmlStreamReader* r) override; - void writeNonSessionItems(QXmlStreamWriter* writer) const override; - void readNonSessionItems(QXmlStreamReader* reader) override; + void writeNonSessionItems(QXmlStreamWriter* w) const override; + void readNonSessionItems(QXmlStreamReader* r) override; signals: void gradientChanged(); diff --git a/GUI/Model/Data/SpecularDataItem.cpp b/GUI/Model/Data/SpecularDataItem.cpp index 9539543d65cbade9c2d14998f0e6cf9589db397b..e73af68cd88c0cdf56581c1e7aa755e0d0a3e385 100644 --- a/GUI/Model/Data/SpecularDataItem.cpp +++ b/GUI/Model/Data/SpecularDataItem.cpp @@ -207,83 +207,83 @@ void SpecularDataItem::setRealPlotStyle() setLineStyle(QCPGraph::LineStyle::lsNone); } -void SpecularDataItem::writeTo(QXmlStreamWriter* writer) const +void SpecularDataItem::writeTo(QXmlStreamWriter* w) const { - XML::writeAttribute(writer, XML::Attrib::version, uint(1)); + XML::writeAttribute(w, XML::Attrib::version, uint(1)); // parameters from base class - writer->writeStartElement(Tag::BaseData); - DataItem::writeTo(writer); - writer->writeEndElement(); + w->writeStartElement(Tag::BaseData); + DataItem::writeTo(w); + w->writeEndElement(); // line type - writer->writeStartElement(Tag::LineType); - XML::writeAttribute(writer, XML::Attrib::value, m_lineType); - writer->writeEndElement(); + w->writeStartElement(Tag::LineType); + XML::writeAttribute(w, XML::Attrib::value, m_lineType); + w->writeEndElement(); // color - writer->writeStartElement(Tag::Color); - XML::writeAttribute(writer, XML::Attrib::value, m_color.name(QColor::HexArgb)); - writer->writeEndElement(); + w->writeStartElement(Tag::Color); + XML::writeAttribute(w, XML::Attrib::value, m_color.name(QColor::HexArgb)); + w->writeEndElement(); // thickness - writer->writeStartElement(Tag::Thickness); - XML::writeAttribute(writer, XML::Attrib::value, m_thickness); - writer->writeEndElement(); + w->writeStartElement(Tag::Thickness); + XML::writeAttribute(w, XML::Attrib::value, m_thickness); + w->writeEndElement(); // scatter type - writer->writeStartElement(Tag::ScatterType); - XML::writeAttribute(writer, XML::Attrib::value, m_scatterType); - writer->writeEndElement(); + w->writeStartElement(Tag::ScatterType); + XML::writeAttribute(w, XML::Attrib::value, m_scatterType); + w->writeEndElement(); // scatter size - writer->writeStartElement(Tag::ScatterSize); - XML::writeAttribute(writer, XML::Attrib::value, m_scatterSize); - writer->writeEndElement(); + w->writeStartElement(Tag::ScatterSize); + XML::writeAttribute(w, XML::Attrib::value, m_scatterSize); + w->writeEndElement(); } -void SpecularDataItem::readFrom(QXmlStreamReader* reader) +void SpecularDataItem::readFrom(QXmlStreamReader* r) { - const uint version = XML::readUIntAttribute(reader, XML::Attrib::version); + const uint version = XML::readUIntAttribute(r, XML::Attrib::version); Q_UNUSED(version) - while (reader->readNextStartElement()) { - QString name = reader->name().toString(); + while (r->readNextStartElement()) { + QString name = r->name().toString(); // parameters from base class if (name == Tag::BaseData) { - DataItem::readFrom(reader); - XML::gotoEndElementOfTag(reader, name); + DataItem::readFrom(r); + XML::gotoEndElementOfTag(r, name); // line type } else if (name == Tag::LineType) { - XML::readAttribute(reader, XML::Attrib::value, &m_lineType); - XML::gotoEndElementOfTag(reader, name); + XML::readAttribute(r, XML::Attrib::value, &m_lineType); + XML::gotoEndElementOfTag(r, name); // color } else if (name == Tag::Color) { QString col; - XML::readAttribute(reader, XML::Attrib::value, &col); + XML::readAttribute(r, XML::Attrib::value, &col); m_color = QColor(col); - XML::gotoEndElementOfTag(reader, name); + XML::gotoEndElementOfTag(r, name); // thickness } else if (name == Tag::Thickness) { - XML::readAttribute(reader, XML::Attrib::value, &m_thickness); - XML::gotoEndElementOfTag(reader, name); + XML::readAttribute(r, XML::Attrib::value, &m_thickness); + XML::gotoEndElementOfTag(r, name); // scatter type } else if (name == Tag::ScatterType) { - XML::readAttribute(reader, XML::Attrib::value, &m_scatterType); - XML::gotoEndElementOfTag(reader, name); + XML::readAttribute(r, XML::Attrib::value, &m_scatterType); + XML::gotoEndElementOfTag(r, name); // scatter size } else if (name == Tag::ScatterSize) { - XML::readAttribute(reader, XML::Attrib::value, &m_scatterSize); - XML::gotoEndElementOfTag(reader, name); + XML::readAttribute(r, XML::Attrib::value, &m_scatterSize); + XML::gotoEndElementOfTag(r, name); } else - reader->skipCurrentElement(); + r->skipCurrentElement(); } } diff --git a/GUI/Model/Data/SpecularDataItem.h b/GUI/Model/Data/SpecularDataItem.h index c76936b2fb75152fb954c73faa8d3ba0a1f23780..5ec5489d976d1d76d3d6ebc812789e8e032ef1b6 100644 --- a/GUI/Model/Data/SpecularDataItem.h +++ b/GUI/Model/Data/SpecularDataItem.h @@ -84,8 +84,8 @@ public: // write/read - void writeTo(QXmlStreamWriter* writer) const override; - void readFrom(QXmlStreamReader* reader) override; + void writeTo(QXmlStreamWriter* w) const override; + void readFrom(QXmlStreamReader* r) override; void writeNonSessionItems(QXmlStreamWriter* writer) const override; void readNonSessionItems(QXmlStreamReader* reader) override; diff --git a/GUI/Model/Job/JobItem.h b/GUI/Model/Job/JobItem.h index 60a89e7576f95f6749ae2a80abbc63976b1cda29..91606d1dcea4b8404a4fbba0af81094b16452510 100644 --- a/GUI/Model/Job/JobItem.h +++ b/GUI/Model/Job/JobItem.h @@ -16,7 +16,7 @@ #define BORNAGAIN_GUI_MODEL_JOB_JOBITEM_H #include "GUI/Model/BaseItem/JobRealBase.h" -#include "GUI/Support/Data/JobStatus.h" // enum cannot be forward declared +#include "GUI/Support/Data/JobStatus.h" #include "GUI/Support/Data/SimulationOptionsItem.h" #include <QDateTime> diff --git a/GUI/Model/Model/JobModel.cpp b/GUI/Model/Model/JobModel.cpp index b2f0d4ad2f604758df1ac4758c83e984fa08a706..f49af0077e214e0ee9fdf9286befe037d0e870ea 100644 --- a/GUI/Model/Model/JobModel.cpp +++ b/GUI/Model/Model/JobModel.cpp @@ -28,12 +28,6 @@ namespace Tag { const QString Job("Job"); -} - -namespace Attrib { - -const QString name("name"); - } } // namespace @@ -145,9 +139,9 @@ void JobModel::writeTo(QXmlStreamWriter* writer) ASSERT(writer); // jobs - for (const auto* job : jobItems()) { + for (const auto* job : m_jobItems) { writer->writeStartElement(Tag::Job); - writer->writeAttribute(Attrib::name, job->jobName()); + writer->writeAttribute(XML::Attrib::name, job->jobName()); job->writeTo(writer); writer->writeEndElement(); } diff --git a/GUI/Model/Project/ProjectDocument.cpp b/GUI/Model/Project/ProjectDocument.cpp index e43174cb755b6c6a67bd18ef7d5554d49b188875..18d71fd2eb24986ed74409de580602025c61062c 100644 --- a/GUI/Model/Project/ProjectDocument.cpp +++ b/GUI/Model/Project/ProjectDocument.cpp @@ -314,13 +314,14 @@ void ProjectDocument::writeProject(QIODevice* device) writer.writeAttribute(XML::Attrib::projectName, projectName()); writer.writeEndElement(); + // simulation options writer.writeStartElement(Tag::SimulationOptions); m_simulationOptionsItem.writeTo(&writer); writer.writeEndElement(); + // samples writer.writeStartElement(Tag::Samples); - Streamer s(&writer); - m_sampleItems.serialize(s); + m_sampleItems.writeTo(&writer); writer.writeEndElement(); writer.writeStartElement(Tag::Instruments); @@ -361,24 +362,19 @@ ProjectDocument::ReadResult ProjectDocument::readProject(QIODevice* device, while (reader.readNextStartElement()) { QString name = reader.name().toString(); - // simulation options - if (name == Tag::SimulationOptions) { + if (name == Tag::DocumentInfo) { + reader.skipCurrentElement(); + + // simulation options + } else if (name == Tag::SimulationOptions) { m_simulationOptionsItem.readFrom(&reader); XML::gotoEndElementOfTag(&reader, name); - } else if (reader.name() == Tag::Samples) { - Streamer s(&reader); - m_sampleItems.serialize(s); - // cleanup - if (reader.name() != Tag::Samples) { - if (!reader.isEndElement()) - reader.skipCurrentElement(); - reader.skipCurrentElement(); - } - XML::assertExpectedTag(&reader, Tag::Samples); - ASSERT(reader.isEndElement()); + // samples + } else if (name == Tag::Samples) { + m_sampleItems.readFrom(&reader); + XML::gotoEndElementOfTag(&reader, name); - XML::assertExpectedTag(&reader, Tag::Samples); } else if (reader.name() == Tag::Instruments) { Streamer s(&reader); m_instruments.serialize(s); diff --git a/GUI/Model/Sample/MultiLayerItems.cpp b/GUI/Model/Sample/MultiLayerItems.cpp index 02b48b3fadf9b119ab9a478802766e013696c03a..b1361827877b26e2ea57385989229316c598c52c 100644 --- a/GUI/Model/Sample/MultiLayerItems.cpp +++ b/GUI/Model/Sample/MultiLayerItems.cpp @@ -15,34 +15,38 @@ #include "GUI/Model/Sample/MultiLayerItems.h" #include "GUI/Model/Sample/ItemWithMaterial.h" #include "GUI/Model/Sample/MultiLayerItem.h" -#include "GUI/Support/XML/Serialize.h" +#include "GUI/Support/XML/UtilXML.h" #include <QApplication> -MultiLayerItems::~MultiLayerItems() -{ - qDeleteAll(m_samples); -} +namespace { +namespace Tag { + +const QString Sample("Sample"); + +} // namespace Tag +} // namespace + +MultiLayerItems::~MultiLayerItems() {} QVector<MultiLayerItem*> MultiLayerItems::sampleItems() const { - return m_samples; + return QVector<MultiLayerItem*>(m_samples.begin(), m_samples.end()); } MultiLayerItem* MultiLayerItems::addMultiLayer() { - m_samples << new MultiLayerItem(); + m_samples.emplace_back(new MultiLayerItem()); return m_samples.back(); } void MultiLayerItems::addMultiLayer(MultiLayerItem* sample) { - m_samples << sample; + m_samples.emplace_back(sample); } void MultiLayerItems::removeMultiLayer(MultiLayerItem* sample) { - m_samples.removeAll(sample); - delete sample; + m_samples.delete_element(sample); } QStringList MultiLayerItems::sampleNames() const @@ -53,8 +57,34 @@ QStringList MultiLayerItems::sampleNames() const return existingNames; } -void MultiLayerItems::serialize(Streamer& s) +void MultiLayerItems::writeTo(QXmlStreamWriter *w) const { - s.assertVersion(0); - Serialize::rwVector(s, "Multilayers", m_samples); + XML::writeAttribute(w, XML::Attrib::version, uint(1)); + + // samples + for (const auto* sample : m_samples) { + w->writeStartElement(Tag::Sample); + sample->writeTo(w); + w->writeEndElement(); + } +} + +void MultiLayerItems::readFrom(QXmlStreamReader *r) +{ + m_samples.clear(); + + const uint version = XML::readUIntAttribute(r, XML::Attrib::version); + Q_UNUSED(version) + + while (r->readNextStartElement()) { + QString name = r->name().toString(); + + // sample + if (name == Tag::Sample) { + addMultiLayer()->readFrom(r); + XML::gotoEndElementOfTag(r, name); + + } else + r->skipCurrentElement(); + } } diff --git a/GUI/Model/Sample/MultiLayerItems.h b/GUI/Model/Sample/MultiLayerItems.h index ca38ab143657de28f39b6273e85477537645cfd2..7fd8cc96d9d17a7e5d86ce897a3b554ddc210a38 100644 --- a/GUI/Model/Sample/MultiLayerItems.h +++ b/GUI/Model/Sample/MultiLayerItems.h @@ -15,10 +15,12 @@ #ifndef BORNAGAIN_GUI_MODEL_SAMPLE_MULTILAYERITEMS_H #define BORNAGAIN_GUI_MODEL_SAMPLE_MULTILAYERITEMS_H +#include "Base/Types/OwningVector.h" #include <QVector> class MultiLayerItem; -class Streamer; +class QXmlStreamWriter; +class QXmlStreamReader; //! Main model to hold sample items. @@ -27,17 +29,17 @@ public: ~MultiLayerItems(); QVector<MultiLayerItem*> sampleItems() const; - //! Adds a sample and returns the new item. MultiLayerItem* addMultiLayer(); void addMultiLayer(MultiLayerItem* sample); void removeMultiLayer(MultiLayerItem* sample); QStringList sampleNames() const; - void serialize(Streamer& s); + void writeTo(QXmlStreamWriter* w) const; + void readFrom(QXmlStreamReader* r); private: - QVector<MultiLayerItem*> m_samples; + OwningVector<MultiLayerItem> m_samples; }; #endif // BORNAGAIN_GUI_MODEL_SAMPLE_MULTILAYERITEMS_H diff --git a/GUI/Support/Data/SimulationOptionsItem.cpp b/GUI/Support/Data/SimulationOptionsItem.cpp index 74499f7fb8b93ac3b45f1008411e0b6d61585382..d999906836b030c376148519008c85a322fd8ff0 100644 --- a/GUI/Support/Data/SimulationOptionsItem.cpp +++ b/GUI/Support/Data/SimulationOptionsItem.cpp @@ -115,81 +115,81 @@ bool SimulationOptionsItem::includeSpecularPeak() const return m_includeSpecularPeak; } -void SimulationOptionsItem::writeTo(QXmlStreamWriter* writer) const +void SimulationOptionsItem::writeTo(QXmlStreamWriter* w) const { - XML::writeAttribute(writer, XML::Attrib::version, uint(1)); + XML::writeAttribute(w, XML::Attrib::version, uint(1)); // run immediately - writer->writeStartElement(Tag::RunImmediately); - XML::writeAttribute(writer, XML::Attrib::value, m_runImmediately); - writer->writeEndElement(); + w->writeStartElement(Tag::RunImmediately); + XML::writeAttribute(w, XML::Attrib::value, m_runImmediately); + w->writeEndElement(); // number of threads - writer->writeStartElement(Tag::NumberOfThreads); - XML::writeAttribute(writer, XML::Attrib::value, m_numberOfThreads); - writer->writeEndElement(); + w->writeStartElement(Tag::NumberOfThreads); + XML::writeAttribute(w, XML::Attrib::value, m_numberOfThreads); + w->writeEndElement(); // computaion method - writer->writeStartElement(Tag::Analytical); - XML::writeAttribute(writer, XML::Attrib::value, m_computationMethodAnalytical); - writer->writeEndElement(); + w->writeStartElement(Tag::Analytical); + XML::writeAttribute(w, XML::Attrib::value, m_computationMethodAnalytical); + w->writeEndElement(); // number of Monte Carlo points - writer->writeStartElement(Tag::NumberOfMonteCarloPoints); - XML::writeAttribute(writer, XML::Attrib::value, m_numberOfMonteCarloPoints); - writer->writeEndElement(); + w->writeStartElement(Tag::NumberOfMonteCarloPoints); + XML::writeAttribute(w, XML::Attrib::value, m_numberOfMonteCarloPoints); + w->writeEndElement(); // use average materials - writer->writeStartElement(Tag::UseAverageMaterials); - XML::writeAttribute(writer, XML::Attrib::value, m_useAverageMaterials); - writer->writeEndElement(); + w->writeStartElement(Tag::UseAverageMaterials); + XML::writeAttribute(w, XML::Attrib::value, m_useAverageMaterials); + w->writeEndElement(); // include specular peak - writer->writeStartElement(Tag::IncludeSpecularPeak); - XML::writeAttribute(writer, XML::Attrib::value, m_includeSpecularPeak); - writer->writeEndElement(); + w->writeStartElement(Tag::IncludeSpecularPeak); + XML::writeAttribute(w, XML::Attrib::value, m_includeSpecularPeak); + w->writeEndElement(); } -void SimulationOptionsItem::readFrom(QXmlStreamReader* reader) +void SimulationOptionsItem::readFrom(QXmlStreamReader* r) { - const uint version = XML::readUIntAttribute(reader, XML::Attrib::version); + const uint version = XML::readUIntAttribute(r, XML::Attrib::version); Q_UNUSED(version) - while (reader->readNextStartElement()) { - QString name = reader->name().toString(); + while (r->readNextStartElement()) { + QString name = r->name().toString(); // run immediately if (name == Tag::RunImmediately) { - XML::readAttribute(reader, XML::Attrib::value, &m_runImmediately); - XML::gotoEndElementOfTag(reader, name); + XML::readAttribute(r, XML::Attrib::value, &m_runImmediately); + XML::gotoEndElementOfTag(r, name); // number of threads } else if (name == Tag::NumberOfThreads) { - XML::readAttribute(reader, XML::Attrib::value, &m_numberOfThreads); - XML::gotoEndElementOfTag(reader, name); + XML::readAttribute(r, XML::Attrib::value, &m_numberOfThreads); + XML::gotoEndElementOfTag(r, name); // computaion method } else if (name == Tag::Analytical) { - XML::readAttribute(reader, XML::Attrib::value, &m_computationMethodAnalytical); - XML::gotoEndElementOfTag(reader, name); + XML::readAttribute(r, XML::Attrib::value, &m_computationMethodAnalytical); + XML::gotoEndElementOfTag(r, name); // number of Monte Carlo points } else if (name == Tag::NumberOfMonteCarloPoints) { - XML::readAttribute(reader, XML::Attrib::value, &m_numberOfMonteCarloPoints); - XML::gotoEndElementOfTag(reader, name); + XML::readAttribute(r, XML::Attrib::value, &m_numberOfMonteCarloPoints); + XML::gotoEndElementOfTag(r, name); // use average materials } else if (name == Tag::UseAverageMaterials) { - XML::readAttribute(reader, XML::Attrib::value, &m_useAverageMaterials); - XML::gotoEndElementOfTag(reader, name); + XML::readAttribute(r, XML::Attrib::value, &m_useAverageMaterials); + XML::gotoEndElementOfTag(r, name); // include specular peak } else if (name == Tag::IncludeSpecularPeak) { - XML::readAttribute(reader, XML::Attrib::value, &m_includeSpecularPeak); - XML::gotoEndElementOfTag(reader, name); + XML::readAttribute(r, XML::Attrib::value, &m_includeSpecularPeak); + XML::gotoEndElementOfTag(r, name); } else - reader->skipCurrentElement(); + r->skipCurrentElement(); } } diff --git a/GUI/Support/Data/SimulationOptionsItem.h b/GUI/Support/Data/SimulationOptionsItem.h index e6c947ff1ad9a6f462bb39018601a9cddd6fa6e3..b6d611965a84bed73de89986de6b41201b08b0c9 100644 --- a/GUI/Support/Data/SimulationOptionsItem.h +++ b/GUI/Support/Data/SimulationOptionsItem.h @@ -46,8 +46,8 @@ public: void setIncludeSpecularPeak(bool includeSpecularPeak); bool includeSpecularPeak() const; - void writeTo(QXmlStreamWriter* writer) const; - void readFrom(QXmlStreamReader* reader); + void writeTo(QXmlStreamWriter* w) const; + void readFrom(QXmlStreamReader* r); private: bool m_runImmediately; diff --git a/GUI/Support/XML/UtilXML.h b/GUI/Support/XML/UtilXML.h index dab31d1dca8af67f361f978d991667ae29a48cc7..737c7ec84b110012c89a0c0624abf44800f676a3 100644 --- a/GUI/Support/XML/UtilXML.h +++ b/GUI/Support/XML/UtilXML.h @@ -27,6 +27,7 @@ const QString version("version"); const QString value("value"); const QString BA_Version("BA_Version"); const QString projectName("projectName"); +const QString name("name"); } // namespace Attrib