diff --git a/GUI/Model/Job/FitParameterContainerItem.cpp b/GUI/Model/Job/FitParameterContainerItem.cpp index 4db4a667185b611d82566a510cafef9ee7c9501a..4451ba66a8e5436d68e1d08639398ada87a3cf82 100644 --- a/GUI/Model/Job/FitParameterContainerItem.cpp +++ b/GUI/Model/Job/FitParameterContainerItem.cpp @@ -26,11 +26,15 @@ namespace { namespace Tag { -const QString FitParameters("FitParameters"); const QString FitParameter("FitParameter"); } // namespace Tag +namespace Attrib { + +const QString name("name"); + +} } // namespace FitParameterContainerItem::FitParameterContainerItem(QObject* parent) @@ -51,9 +55,7 @@ void FitParameterContainerItem::createFitParameter(ParameterItem* parameterItem) if (!oldFitPar) removeLink(parameterItem); - FitParameterItem* fitPar = new FitParameterItem(this); - m_fitParameterItems.emplace_back(fitPar); - updateFitParameterNames(); + auto* fitPar = createBareFitParameter(); fitPar->setStartValue(parameterItem->valueOfLink()); fitPar->initMinMaxValues(parameterItem->limitsOfLink()); @@ -134,7 +136,6 @@ void FitParameterContainerItem::removeLink(const ParameterItem* parameterItem) fitParItem->removeLink(parameterItem->link()); } -// for tests FitParameterItem* FitParameterContainerItem::createBareFitParameter() { FitParameterItem* fitPar = new FitParameterItem(this); @@ -192,21 +193,23 @@ mumufit::Parameters FitParameterContainerItem::createParameters() const void FitParameterContainerItem::writeTo(QXmlStreamWriter* writer) const { - // fit parameters - writer->writeStartElement(Tag::FitParameters); - GUI::Session::XML::writeVectorClass(writer, Tag::FitParameter, m_fitParameterItems); - writer->writeEndElement(); + // fit parameters + for (const auto* fitPar : fitParameterItems()) { + writer->writeStartElement(Tag::FitParameter); + writer->writeAttribute(Attrib::name, fitPar->displayName()); + fitPar->writeTo(writer); + writer->writeEndElement(); + } } void FitParameterContainerItem::readFrom(QXmlStreamReader* reader) -{ +{ while (reader->readNextStartElement()) { // fit parameters - if (reader->name() == Tag::FitParameters) { - GUI::Session::XML::readVectorClass(reader, Tag::FitParameter, m_fitParameterItems, - this); - GUI::Session::XML::gotoEndElementOfTag(reader, Tag::FitParameters); + if (reader->name() == Tag::FitParameter) { + createBareFitParameter()->readFrom(reader); + GUI::Session::XML::gotoEndElementOfTag(reader, Tag::FitParameter); } else reader->skipCurrentElement(); diff --git a/GUI/Model/Job/FitParameterContainerItem.h b/GUI/Model/Job/FitParameterContainerItem.h index 29c1d3c507524d2fa8aabc6e5866ee903f288fde..d9c4d6624fdda53ad985311241fd60bd7546b59e 100644 --- a/GUI/Model/Job/FitParameterContainerItem.h +++ b/GUI/Model/Job/FitParameterContainerItem.h @@ -60,7 +60,7 @@ public: void removeLink(const ParameterItem* parameterItem); - FitParameterItem* createBareFitParameter(); // for tests + FitParameterItem* createBareFitParameter(); bool isEmpty(); void setValuesInParameterContainer(const std::vector<double>& values, diff --git a/GUI/Model/Model/JobModel.cpp b/GUI/Model/Model/JobModel.cpp index 1386101c8f261f6e7dae4752009504558b3defb7..b4cda912ee2b21cbedbe9ead450d01cd96f15692 100644 --- a/GUI/Model/Model/JobModel.cpp +++ b/GUI/Model/Model/JobModel.cpp @@ -145,7 +145,7 @@ void JobModel::writeTo(QXmlStreamWriter* writer) ASSERT(writer); // jobs - for (auto* job : jobItems()) { + for (const auto* job : jobItems()) { writer->writeStartElement(Tag::Job); writer->writeAttribute(Attrib::name, job->jobName()); job->writeTo(writer);