// ************************************************************************************************ // // BornAgain: simulate and fit reflection and scattering // //! @file GUI/Model/Sample/LayerStackItem.cpp //! @brief Implements class LayerStackItem. //! //! @homepage http://www.bornagainproject.org //! @license GNU General Public License v3 or higher (see COPYING) //! @copyright Forschungszentrum Jülich GmbH 2024 //! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) // // ************************************************************************************************ #include "GUI/Model/Sample/LayerStackItem.h" #include "GUI/Model/Util/UtilXML.h" namespace { namespace Tag { const QString BaseData("BaseData"); const QString Component("Component"); const QString NumPeriods("NumPeriods"); } // namespace Tag } // namespace LayerStackItem::LayerStackItem(uint n_periods) : m_n_periods(n_periods) { } void LayerStackItem::writeTo(QXmlStreamWriter* w) const { XML::writeBaseElement<ItemWithLayers>(w, Tag::BaseData, this); XML::writeTaggedValue(w, Tag::NumPeriods, m_n_periods); // for (const auto* component : m_components) // XML::writeTaggedElement(w, Tag::Component, *component); } void LayerStackItem::readFrom(QXmlStreamReader* r) { // m_layouts.clear(); while (r->readNextStartElement()) { QString tag = r->name().toString(); if (tag == Tag::BaseData) XML::readBaseElement<ItemWithLayers>(r, tag, this); else if (tag == Tag::NumPeriods) m_n_periods = XML::readTaggedUInt(r, tag); // else if (tag == Tag::Component) // XML::readTaggedElement(r, tag, *addLayoutItem()); else r->skipCurrentElement(); } }